// signals connected, now it's time to show the main window
// but init the MapEngine before so starting location is set
-// m_mapEngine->init();
-// m_ui->show();
+ m_mapEngine->init();
+ m_ui->show();
QSettings settings(DIRECTORY_NAME, FILE_NAME);
QVariant gpsEnabled = settings.value(SETTINGS_GPS_ENABLED);
if (gpsEnabled.toBool() && autoCenteringEnabled.toBool())
m_ui->showMaemoInformationBox(tr("Auto centering enabled"));
- //Request network state.
- m_networkHandler->state();
+ m_facebookAuthenticator->start();
}
SituareEngine::~SituareEngine()
*/
#include <QNetworkRequest>
+#include <QNetworkAccessManager>
#include "networkhandler.h"
#include "networkaccessmanager.h"
+#include "networkreply.h"
NetworkAccessManager::NetworkAccessManager(QObject *parent)
- : QNetworkAccessManager(parent),
- m_networkHandler(0)
+ : QObject(parent),
+ m_networkHandler(0),
+ m_networkAccessManagerPrivate(0)
{
m_networkHandler = new NetworkHandler(this);
+ m_networkAccessManagerPrivate = new QNetworkAccessManager(this);
connect(m_networkHandler, SIGNAL(connected()),
this, SLOT(connected()));
}
-QNetworkReply *NetworkAccessManager::getti(const QNetworkRequest &request)
+void NetworkAccessManager::setCache(QAbstractNetworkCache *cache)
+{
+ m_networkAccessManagerPrivate->setCache(cache);
+}
+
+QAbstractNetworkCache *NetworkAccessManager::cache() const
+{
+ return m_networkAccessManagerPrivate->cache();
+}
+
+QNetworkReply *NetworkAccessManager::get(const QNetworkRequest &request)
{
if (!m_networkHandler->isConnected()) {
m_requestQueue.append(request);
m_networkHandler->connect();
- return createRequest(QNetworkAccessManager::GetOperation, request);
+ QNetworkReply *reply = new NetworkReply(this);
+ m_replyQueue.append(reply);
+ return reply;
}
else {
return get(request);
void NetworkAccessManager::connected()
{
- foreach (QNetworkRequest request, m_requestQueue)
- get(request);
+ foreach (QNetworkRequest request, m_requestQueue) {
+ QNetworkReply *reply = get(request);
+ }
+ m_replyQueue.clear();
m_requestQueue.clear();
}
#ifndef NETWORKACCESSMANAGER_H
#define NETWORKACCESSMANAGER_H
-#include <QNetworkAccessManager>
#include <QList>
#include <QNetworkReply>
#include <QNetworkRequest>
+#include <QAbstractNetworkCache>
+
+
class NetworkHandler;
+class QNetworkAccessManager;
-class NetworkAccessManager : public QNetworkAccessManager
+class NetworkAccessManager : public QObject
{
Q_OBJECT
public:
NetworkAccessManager(QObject *parent = 0);
- QNetworkReply *getti(const QNetworkRequest &request);
+ QNetworkReply *get(const QNetworkRequest &request);
+
+ void setCache(QAbstractNetworkCache *cache);
+
+ QAbstractNetworkCache *cache() const;
private slots:
void connected();
private:
NetworkHandler *m_networkHandler;
+ QNetworkAccessManager *m_networkAccessManagerPrivate;
QList<QNetworkRequest> m_requestQueue;
+ QList<QNetworkReply*> m_replyQueue;
};
#endif // NETWORKACCESSMANAGER_H
dBusConnection.connect(ICD_DBUS_API_INTERFACE, ICD_DBUS_API_PATH, ICD_DBUS_API_INTERFACE,
ICD_DBUS_API_STATE_SIG,
this, SLOT(stateChanged(const QDBusMessage &)));
+
+ state();
}
void NetworkHandler::stateChanged(const QDBusMessage &message)
--- /dev/null
+/*
+ Situare - A location system for Facebook
+ Copyright (C) 2010 Ixonos Plc. Authors:
+
+ Jussi Laitinen - jussi.laitinen@ixonos.com
+
+ Situare is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ version 2 as published by the Free Software Foundation.
+
+ Situare is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Situare; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA.
+*/
+
+#include "networkreply.h"
+
+NetworkReply::NetworkReply(QObject *parent)
+ : QNetworkReply(parent)
+{
+}
+
+qint64 NetworkReply::readData(char *data, qint64 maxlen)
+{
+ if (m_offset < m_content.size()) {
+ qint64 number = qMin(maxlen, m_content.size() - m_offset);
+ memcpy(data, m_content.constData() + m_offset, number);
+ m_offset += number;
+ return number;
+ } else
+ return -1;
+}
+
+void NetworkReply::abort()
+{
+
+}
--- /dev/null
+/*
+ Situare - A location system for Facebook
+ Copyright (C) 2010 Ixonos Plc. Authors:
+
+ Jussi Laitinen - jussi.laitinen@ixonos.com
+
+ Situare is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ version 2 as published by the Free Software Foundation.
+
+ Situare is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Situare; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA.
+*/
+
+#ifndef NETWORKREPLY_H
+#define NETWORKREPLY_H
+
+#include <QNetworkReply>
+
+class NetworkReply : public QNetworkReply
+{
+public:
+ NetworkReply(QObject *parent = 0);
+
+protected:
+ qint64 readData(char *data, qint64 maxlen);
+ void abort();
+
+private:
+ QByteArray m_content;
+ qint64 m_offset;
+
+};
+
+#endif // NETWORKREPLY_H
QNetworkRequest request(url);
request.setRawHeader("User-Agent", "Situare");
- QNetworkReply *reply = m_manager->getti(request);
+ QNetworkReply *reply = m_manager->get(request);
m_currentDownloads.append(reply);
}
ui/userinfo.cpp \
engine/networkhandler.cpp \
ui/sidepanel.cpp \
- engine/networkaccessmanager.cpp
+ engine/networkaccessmanager.cpp \
+ engine/networkreply.cpp
HEADERS += ui/mainwindow.h \
map/mapengine.h \
map/mapview.h \
ui/userinfo.h \
engine/networkhandler.h \
ui/sidepanel.h \
- engine/networkaccessmanager.h
+ engine/networkaccessmanager.h \
+ engine/networkreply.h
QT += network \
webkit