#include <QNetworkReply>
#include <QNetworkRequest>
#include <QSharedPointer>
+#if 0
#include <QWebElement>
#include <QWebFrame>
#include <QWebPage>
+#endif
// Constants
static const int RECENT_STATIONS_MAX_COUNT = 10;
*/
+#ifdef TARGET_PLATFORM_FREMANTLE
#include "app.h"
-#ifndef TARGET_PLATFORM_FREMANTLE
+#else
#include "view.h"
#endif
+#ifdef TARGET_PLATFORM_SAILFISH
+#include <QtGui/QGuiApplication>
+#else
#include <QtGui/QApplication>
+#endif
#include <QDir>
#include <QDebug>
#include <QLocale>
Q_DECL_EXPORT int main(int argc, char *argv[])
{
-#ifdef TARGET_PLATFORM_HARMATTAN
+#ifdef TARGET_PLATFORM_SAILFISH
+ QScopedPointer< QGuiApplication > a(new QGuiApplication(argc, argv));
+#elif TARGET_PLATFORM_HARMATTAN
QScopedPointer< QApplication > a(MDeclarativeCache::qApplication(argc, argv));
#else
QScopedPointer< QApplication > a(new QApplication(argc, argv));
#include "settings.h"
-#include <QApplication>
+#include <QCoreApplication>
#include <QDebug>
#include <QSettings>
#include <QStringList>
#include <QFileInfo>
#include <QDebug>
#include <QStandardItem>
+#ifndef TARGET_PLATFORM_SAILFISH
#include <QGeoCoordinate>
+#endif
+#ifndef TARGET_PLATFORM_SAILFISH
QTM_USE_NAMESPACE
Q_DECLARE_METATYPE(QGeoCoordinate)
+#endif
+
+static QHash<int, QByteArray> roles;
StationListModel::StationListModel(QObject *parent) :
QStandardItemModel(parent)
{
setRowCount(0);
+#ifndef TARGET_PLATFORM_SAILFISH
QHash<int, QByteArray> roles;
+#endif
roles[Qt::DisplayRole] = "name";
roles[StationListModel::PositionRole] = "position";
roles[StationListModel::StationCodeRole] = "code";
+#ifndef TARGET_PLATFORM_SAILFISH
setRoleNames(roles);
+#endif
}
bool StationListModel::load(const QString &filename)
return true;
}
+QHash<int, QByteArray> StationListModel::roleNames() const
+{
+ return roles;
+}
+
void StationListModel::readStationsElement()
{
m_reader.readNext();
void StationListModel::readPosElement(QStandardItem *item)
{
QStringList coordinates = m_reader.readElementText().split(",");
+#ifndef TARGET_PLATFORM_SAILFISH
QGeoCoordinate pos = QGeoCoordinate(coordinates[0].toDouble(), coordinates[1].toDouble());
item->setData(QVariant::fromValue(pos), PositionRole);
+#endif
m_reader.readElementText();
if (m_reader.isEndElement()) {
m_reader.readNext();
bool load(const QString &filename);
+ QHash<int, QByteArray> roleNames() const;
+
signals:
public slots:
#include "stationlistmodel.h"
#include <QDebug>
+#ifndef TARGET_PLATFORM_SAILFISH
#include <QGeoCoordinate>
QTM_USE_NAMESPACE
Q_DECLARE_METATYPE(QGeoCoordinate)
+#endif
StationListProxyModel::StationListProxyModel(QObject *parent) :
QSortFilterProxyModel(parent),
+#ifndef TARGET_PLATFORM_SAILFISH
positionInfoSource(QGeoPositionInfoSource::createDefaultSource(this)),
m_here(44.5, 9.0),
+#endif
m_filterRecentOnly(false)
{
Settings *settings = Settings::instance();
setFilterCaseSensitivity(Qt::CaseInsensitive);
setSortCaseSensitivity(Qt::CaseInsensitive);
setDynamicSortFilter(true);
+#ifndef TARGET_PLATFORM_SAILFISH
if (positionInfoSource) {
qDebug() << "position info source available";
connect(positionInfoSource, SIGNAL(positionUpdated(QGeoPositionInfo)),
} else {
qDebug() << "No position info source available";
}
+#endif
connect(settings, SIGNAL(recentStationsChanged()),
this, SLOT(updateRecentStations()));
updateRecentStations();
int role = sortRole();
if (role == StationListModel::PositionRole) {
+#ifdef TARGET_PLATFORM_SAILFISH
+ return 0;
+#else
QGeoCoordinate first = left.data(role).value<QGeoCoordinate>();
QGeoCoordinate second = right.data(role).value<QGeoCoordinate>();
return first.distanceTo(m_here) < second.distanceTo(m_here);
+#endif
} else {
return QString::compare(left.data(role).toString(),
right.data(role).toString(),
}
}
+
+#ifndef TARGET_PLATFORM_SAILFISH
void StationListProxyModel::setUserPosition(const QtMobility::QGeoCoordinate &pos)
{
qDebug() << "Position is now" << pos;
invalidate();
}
}
+#endif
void StationListProxyModel::setRecentStations(const QStringList &stations)
{
default:
break;
}
+#ifndef TARGET_PLATFORM_SAILFISH
if (mode == StationListProxyModel::DistanceSorting) {
positionInfoSource->startUpdates();
} else {
positionInfoSource->stopUpdates();
}
+#endif
invalidate();
sort(0);
}
+#ifndef TARGET_PLATFORM_SAILFISH
void StationListProxyModel::updatePosition(const QtMobility::QGeoPositionInfo &update)
{
qDebug() << "Position update received" << update;
}
}
}
+#endif
*/
#include <QSortFilterProxyModel>
+#ifndef TARGET_PLATFORM_SAILFISH
#include <QGeoCoordinate>
#include <QGeoPositionInfoSource>
+#endif
#include <QMetaType>
#include <QStringList>
+#ifndef TARGET_PLATFORM_SAILFISH
QTM_USE_NAMESPACE
+#endif
class StationListProxyModel : public QSortFilterProxyModel
{
SortingMode sortingMode();
void setSortingMode(SortingMode mode);
+#ifndef TARGET_PLATFORM_SAILFISH
Q_INVOKABLE void setUserPosition(const QGeoCoordinate &pos);
+#endif
Q_INVOKABLE void setRecentStations(const QStringList &stations);
Q_INVOKABLE void setRecentOnlyFilter(bool);
void forceSortingMode(SortingMode mode);
private slots:
+#ifndef TARGET_PLATFORM_SAILFISH
void updatePosition(const QGeoPositionInfo &update);
+#endif
void updateRecentStations(void);
private:
QString m_searchPattern;
+#ifndef TARGET_PLATFORM_SAILFISH
QGeoPositionInfoSource *positionInfoSource;
QGeoCoordinate m_here;
+#endif
QStringList m_stations;
SortingMode m_sortingMode;
bool m_filterRecentOnly;
#include <QFile>
#include <QModelIndex>
#include <QtConcurrentRun>
+#ifdef TARGET_PLATFORM_SAILFISH
+#include <QtQuick>
+#else
#include <QtDeclarative>
+#endif
// search Paths seem to be broken in Harmattan?
#endif
}
+#ifdef TARGET_PLATFORM_SAILFISH
+View::View(QWindow *parent) :
+ QQuickView(parent),
+#else
View::View(QWidget *parent) :
QDeclarativeView(parent),
+#endif
stationListModel(new StationListModel(this)),
stationListProxyModel(new StationListProxyModel(this))
{
qmlRegisterType<StationScheduleModel>(
"net.cirulla.quandoparte", 1, 0, "StationScheduleModel");
+#ifdef TARGET_PLATFORM_SAILFISH
+ QQmlContext *context = this->rootContext();
+#else
QDeclarativeContext *context = this->rootContext();
+#endif
/* objects to be made accessible to QML */
context->setContextProperty("settings", Settings::instance());
context->setContextProperty("stationList", stationListModel);
*/
#include <QFuture>
+#ifdef TARGET_PLATFORM_SAILFISH
+#include <QQuickView>
+#else
#include <QDeclarativeView>
+#endif
class StationListModel;
class StationListProxyModel;
-class View : public QDeclarativeView
+class View :
+#ifdef TARGET_PLATFORM_SAILFISH
+ public QQuickView
+#else
+ public QDeclarativeView
+#endif
{
Q_OBJECT
public:
+#ifdef TARGET_PLATFORM_SAILFISH
+ explicit View(QWindow *parent = 0);
+#else
explicit View(QWidget *parent = 0);
+#endif
+
~View();
signals: