summaryrefslogtreecommitdiff
path: root/src/sync
diff options
context:
space:
mode:
authorSiteshwar Vashisht <siteshwar@gmail.com>2012-05-06 00:19:13 +0530
committerAndrea Diamantini <adjam7@gmail.com>2012-05-28 00:10:30 +0200
commit701ed3ea2a7587d72601d6a6ebf6062d81b12140 (patch)
treead62806f620740941c7a4f55160a130428ab59f8 /src/sync
parentFirst working implementation for syncing with Opera Link, code needs lots of ... (diff)
downloadrekonq-701ed3ea2a7587d72601d6a6ebf6062d81b12140.tar.xz
Refactored code and tried to stablize support for syncing with Opera Bookmarks.
Diffstat (limited to 'src/sync')
-rw-r--r--src/sync/operasynchandler.cpp279
-rw-r--r--src/sync/operasynchandler.h55
2 files changed, 175 insertions, 159 deletions
diff --git a/src/sync/operasynchandler.cpp b/src/sync/operasynchandler.cpp
index cdddbe38..ed25e34b 100644
--- a/src/sync/operasynchandler.cpp
+++ b/src/sync/operasynchandler.cpp
@@ -56,23 +56,17 @@
OperaSyncHandler::OperaSyncHandler(QObject *parent)
: SyncHandler(parent)
, _mode(RECEIVE_CHANGES)
-// , _doLogin(false)
+ , _doLogin(false)
+ , _requestCount(0)
, _isSyncing(false)
-/* , _reply(0)
- , _requestCount(0)*/
{
kDebug() << "Creating Opera Bookmarks handler...";
-// _webPage.settings()->setAttribute(QWebSettings::AutoLoadImages, false);
-// _webPage.settings()->setAttribute(QWebSettings::PrivateBrowsingEnabled, true);
-// connect(&_webPage, SIGNAL(loadFinished(bool)), this, SLOT(loadFinished(bool)));
+ _webPage.settings()->setAttribute(QWebSettings::AutoLoadImages, false);
+ _webPage.settings()->setAttribute(QWebSettings::PrivateBrowsingEnabled, true);
+ connect(&_webPage, SIGNAL(loadFinished(bool)), this, SLOT(loadFinished(bool)));
- webView = new QWebView();
- webView->settings()->setAttribute(QWebSettings::AutoLoadImages, false);
- connect(webView, SIGNAL(loadFinished(bool)), this, SLOT(loadFinished(bool)));
-
- qoauth = new QOAuth::Interface();
- qoauth->setConsumerKey("test_desktop_key");
- qoauth->setConsumerSecret("p2FlOFGr3XFm5gOwEKKDcg3CvA4pp0BC");
+ _qoauth.setConsumerKey("zCuj9aUcehaHsfKtcHcg2YYLX42CkxDX");
+ _qoauth.setConsumerSecret("xApuyHdDd9DSbTXLDRXuZzwKI2lOYSsl");
}
@@ -87,8 +81,7 @@ void OperaSyncHandler::initialLoadAndCheck()
// Bookmarks
if (ReKonfig::syncBookmarks())
{
-// _mode = RECEIVE_CHANGES;
- _mode = SEND_CHANGES;
+ _mode = RECEIVE_CHANGES;
startLogin();
}
@@ -143,8 +136,8 @@ void OperaSyncHandler::syncBookmarks()
kDebug() << "Sync already in progress!";
return;
}
-// _mode = SEND_CHANGES;
-// startLogin();
+ _mode = SEND_CHANGES;
+ startLogin();
}
void OperaSyncHandler::startLogin()
@@ -162,33 +155,26 @@ void OperaSyncHandler::startLogin()
_doLogin = true;
kDebug() << "Loading login page...";
-// _webPage.mainFrame()->load(QUrl("http://bookmarks.google.com/"));
-
- qoauth->setRequestTimeout(20000);
- qoauth->ignoreSslErrors();
+ _qoauth.setRequestTimeout(20000);
+ _qoauth.ignoreSslErrors();
QOAuth::ParamMap requestMap;
requestMap.insert("oauth_callback", "oob");
- requestParam = qoauth->requestToken("https://auth.opera.com/service/oauth/request_token", QOAuth::POST, QOAuth::HMAC_SHA1, requestMap);
- qDebug() << qoauth->error();
+ QOAuth::ParamMap requestParam = _qoauth.requestToken("https://auth.opera.com/service/oauth/request_token", QOAuth::POST, QOAuth::HMAC_SHA1, requestMap);
+ qDebug() << _qoauth.error();
qDebug() << requestParam;
- requestToken = requestParam.value("oauth_token");
- requestTokenSecret = requestParam.value("oauth_token_secret");
-
- qDebug() << requestToken;
- qDebug() << requestTokenSecret;
-
-
- qDebug() << QUrl("https://auth.opera.com/service/oauth/authorize?oauth_token=" + QString(requestToken) + "&oauth_callback=oob");
+ _requestToken = requestParam.value("oauth_token");
+ _requestTokenSecret = requestParam.value("oauth_token_secret");
- webView->resize(400, 400);
+ qDebug() << _requestToken;
+ qDebug() << _requestTokenSecret;
- webView->load(QUrl("https://auth.opera.com/service/oauth/authorize?oauth_token=" + QString(requestToken) + "&oauth_callback=oob" ));
- webView->show();
+ qDebug() << QUrl("https://auth.opera.com/service/oauth/authorize?oauth_token=" + QString(_requestToken) + "&oauth_callback=oob");
+ _webPage.mainFrame()->load(QUrl("https://auth.opera.com/service/oauth/authorize?oauth_token=" + QString(_requestToken) + "&oauth_callback=oob" ));
}
@@ -205,16 +191,15 @@ void OperaSyncHandler::loadFinished(bool ok)
return;
}
- qDebug() << webView->url();
- QString path = webView->url().path();
+ QString path = _webPage.mainFrame()->url().path();
qDebug() << path;
if (path == "/service/oauth/authorize")
{
- QWebFrame *mainFrame = webView->page()->mainFrame();
+ QWebFrame *mainFrame = _webPage.mainFrame();
QString html = mainFrame->toHtml();
- if (html.contains("login-form"))
+ if (_doLogin == true && html.contains("login-form"))
{
qDebug() << "Login page";
QWebElement form = mainFrame->findFirstElement("#login-form");
@@ -236,79 +221,89 @@ void OperaSyncHandler::loadFinished(bool ok)
qDebug() << button.toPlainText();
button.evaluateJavaScript("this.click();");
+ emit syncStatus(Rekonq::Bookmarks, true, i18n("Signing in..."));
+ _doLogin = false;
}
else if (html.contains("verifier"))
{
+ QOAuth::ParamMap authParams;
QWebElement authkey = mainFrame->findFirstElement("#verifier");
QByteArray verifier = authkey.toPlainText().toUtf8();
qDebug() << verifier;
authParams.insert("oauth_verifier", verifier);
- resultParam = qoauth->accessToken("https://auth.opera.com/service/oauth/access_token", QOAuth::POST, requestToken, requestTokenSecret, QOAuth::HMAC_SHA1, authParams);
+ QOAuth::ParamMap resultParam = _qoauth.accessToken("https://auth.opera.com/service/oauth/access_token", QOAuth::POST, _requestToken, _requestTokenSecret, QOAuth::HMAC_SHA1, authParams);
- qDebug() << qoauth->error();
+ qDebug() << _qoauth.error();
qDebug() << resultParam;
- authToken = resultParam.value("oauth_token");
- authTokenSecret = resultParam.value("oauth_token_secret");
+ _authToken = resultParam.value("oauth_token");
+ _authTokenSecret = resultParam.value("oauth_token_secret");
+ _requestToken.clear();
+ _requestTokenSecret.clear();
- requestToken.clear();
- requestTokenSecret.clear();
- requestParam.clear();
- resultParam.clear();
- authParams.clear();
getBookmarks();
}
-
+ else if (_doLogin == false)
+ {
+ //Login failed
+ emit syncStatus(Rekonq::Bookmarks, false, i18n("Login failed!"));
+ _isSyncing = false;
+ }
}
}
-
-
+//Fetch all the bookmarks from server
void OperaSyncHandler::getBookmarks()
{
+ emit syncStatus(Rekonq::Bookmarks, true, i18n("Fetching bookmarks from server..."));
+
QOAuth::ParamMap requestMap;
- //requestMap.insert("oauth_nonce", "123");
+
requestMap.insert("api_output", "xml");
- qDebug() << "Auth Token : " << authToken;
- qDebug() << "Auth Token Secret : " << authTokenSecret;
+ qDebug() << "Auth Token : " << _authToken;
+ qDebug() << "Auth Token Secret : " << _authTokenSecret;
+
- urlParams = qoauth->createParametersString("https://link.api.opera.com/rest/bookmark/descendants", QOAuth::GET, authToken, authTokenSecret, QOAuth::HMAC_SHA1, requestMap, QOAuth::ParseForInlineQuery);
+
+ QByteArray fetchBookmarksUrl = "https://link.api.opera.com/rest/bookmark/descendants/";
+ QByteArray urlParams = _qoauth.createParametersString(fetchBookmarksUrl, QOAuth::GET, _authToken, _authTokenSecret, QOAuth::HMAC_SHA1, requestMap, QOAuth::ParseForInlineQuery);
QNetworkRequest request;
qDebug() << "URL Params: " << urlParams;
- QByteArray urlstr = "https://link.api.opera.com/rest/bookmark/descendants";
- urlstr.append(urlParams);
- kDebug() << urlstr;
- KIO::TransferJob *job = KIO::get(KUrl(urlstr), KIO::Reload, KIO::HideProgressInfo);
- connect(job, SIGNAL(result(KJob*)), this, SLOT(resultSlot(KJob*)));
- connect(job, SIGNAL(data(KIO::Job*, QByteArray)), this, SLOT(dataSlot(KIO::Job*, QByteArray)));
+ fetchBookmarksUrl.append(urlParams);
+ //kDebug() << urlstr;
+ KIO::TransferJob *job = KIO::get(KUrl(fetchBookmarksUrl), KIO::Reload, KIO::HideProgressInfo);
+
+ connect(job, SIGNAL(result(KJob*)), this, SLOT(fetchBookmarksResultSlot(KJob*)));
+ connect(job, SIGNAL(data(KIO::Job*, QByteArray)), this, SLOT(fetchBookmarksDataSlot(KIO::Job*, QByteArray)));
}
-void OperaSyncHandler::dataSlot(KIO::Job* job, QByteArray data)
+void OperaSyncHandler::fetchBookmarksDataSlot(KIO::Job* job, QByteArray data)
{
kDebug() << data;
- xmlData += data;
+ _xmlData += data;
}
-void OperaSyncHandler::resultSlot(KJob* job)
+//We have received all the bookmarks which exist on server, now we need to compare them with local bookmarks.
+void OperaSyncHandler::fetchBookmarksResultSlot(KJob* job)
{
if (job->error() != 0)
{
- xmlData = "";
+ _xmlData = "";
kDebug() << "Some error!";
return;
}
kDebug() << "No Error!";
- kDebug() << xmlData;
+ kDebug() << _xmlData;
QDomDocument doc("bookmarks");
- doc.setContent(xmlData);
+ doc.setContent(_xmlData);
QDomNodeList responseList = doc.elementsByTagName("response");
qDebug() << responseList.size();
@@ -316,35 +311,13 @@ void OperaSyncHandler::resultSlot(KJob* job)
if (_mode == RECEIVE_CHANGES)
{
- if (responseList.size() > 0)
- {
- QDomNode item = responseList.at(0).firstChild();
-
- // qDebug() << item.nodeName();
-
- while (!item.isNull())
- {
- handleResource(item, root);
- item = item.nextSibling();
- }
- }
+ handleResponse(responseList, root);
+ emit syncStatus(Rekonq::Bookmarks, true, i18n("Done!"));
+ _isSyncing = false;
}
else
{
- if (responseList.size() > 0)
- {
- QDomNode item = responseList.at(0).firstChild();
-
- // qDebug() << item.nodeName();
-
- while (!item.isNull())
- {
- handleResource(item, root);
- item = item.nextSibling();
- }
- }
-
- //handleLocalGroup(root, responseList.at(0).toElement());
+ handleResponse(responseList, root);
QDomElement item = responseList.at(0).toElement();
KBookmark current = root.first();
@@ -361,7 +334,7 @@ void OperaSyncHandler::resultSlot(KJob* job)
//Add Opera group here
kDebug() << "Add group " << groupName;
KJob *job = addBookmarkFolderOnServer(current.fullText());
- jobToGroupMap.insert(job, root);
+ _jobToGroupMap.insert(job, current.toGroup());
}
else
{
@@ -404,19 +377,24 @@ void OperaSyncHandler::resultSlot(KJob* job)
current = root.next(current);
}
+
+ decreaseRequestCount();
}
- xmlData = "";
+ _xmlData = "";
}
-void OperaSyncHandler::bookmarkDataSlot(KIO::Job* job, QByteArray data)
+void OperaSyncHandler::createBookmarkDataSlot(KIO::Job* job, QByteArray data)
{
kDebug() << data;
- //xmlData += data;
+ //_xmlData += data;
}
-void OperaSyncHandler::bookmarkResultSlot(KJob* job)
+//Check whether bookmark creation was succesful on server
+void OperaSyncHandler::createBookmarkResultSlot(KJob* job)
{
+ decreaseRequestCount();
+
if (job->error() != 0)
{
kDebug() << "Some error!" << job->error();
@@ -424,27 +402,31 @@ void OperaSyncHandler::bookmarkResultSlot(KJob* job)
}
}
-void OperaSyncHandler::bookmarkFolderDataSlot(KIO::Job* job, QByteArray data)
+void OperaSyncHandler::createBookmarkFolderDataSlot(KIO::Job* job, QByteArray data)
{
kDebug() << data;
- QByteArray &value = jobToResponseMap[job];
+ QByteArray &value = _jobToResponseMap[job];
value.append(data);
- //xmlData += data;
}
-void OperaSyncHandler::bookmarkFolderResultSlot(KJob* job)
+//If bookmark folder (it's empty) was creted succesfully on server, we need to add all it's children (which exists in local bookmarks) on server.
+void OperaSyncHandler::createBookmarkFolderResultSlot(KJob* job)
{
+ decreaseRequestCount();
+
+ QByteArray value = _jobToResponseMap[job];
+ KBookmarkGroup root = _jobToGroupMap[job];
+
+ _jobToResponseMap.remove(job);
+ _jobToGroupMap.remove(job);
+
if (job->error() != 0)
{
kDebug() << "Some error!";
return;
}
- QByteArray value = jobToResponseMap[job];
- KBookmarkGroup root = jobToGroupMap[job];
-
- kDebug() << "Final value is " << value;
QDomDocument doc("new bookmark");
doc.setContent(value);
QDomNodeList responseList = doc.elementsByTagName("response");
@@ -463,6 +445,23 @@ void OperaSyncHandler::bookmarkFolderResultSlot(KJob* job)
}
}
+void OperaSyncHandler::deleteResourceResultSlot(KJob* job)
+{
+ decreaseRequestCount();
+
+ if (job->error() != 160)
+ {
+ kDebug() << "Some error!" << job->error();
+ return;
+ }
+}
+
+void OperaSyncHandler::deleteResourceDataSlot(KIO::Job* job, QByteArray data)
+{
+ kDebug() << data;
+}
+
+//Checks whether a bookmark exists locally or not, and either add it locally or delete from server
void OperaSyncHandler::handleBookmark(const QDomElement &item, KBookmarkGroup root)
{
QString url = getUrlFromResourceProperties(item);
@@ -488,6 +487,7 @@ void OperaSyncHandler::handleBookmark(const QDomElement &item, KBookmarkGroup ro
}
+//Traverse through all the children of a bookmark folder
void OperaSyncHandler::handleBookmarkFolder(const QDomElement &item, KBookmarkGroup &root)
{
qDebug() << "Title : " << getTitleFromResourceProperties(item);
@@ -554,21 +554,24 @@ void OperaSyncHandler::handleResource(const QDomNode &item, KBookmarkGroup &root
}
}
-/*
-void OperaSyncHandler::handleLocalBookmark(const KBookmark &root, const QDomElement &item)
+//Start traversing the response received from server from <response> tag
+void OperaSyncHandler::handleResponse(const QDomNodeList &responseList, KBookmarkGroup &root)
{
- KUrl url = root.url();
+ if (responseList.size() > 0)
+ {
+ QDomNode item = responseList.at(0).firstChild();
- QDomElement child = findOperaBookmark(item, url);
+ // qDebug() << item.nodeName();
- if (child.isNull())
- {
- //Delete bookmark on server
+ do
+ {
+ handleResource(item, root);
+ item = item.nextSibling();
+ }while (!item.isNull());
}
-
}
-*/
+//This method checks whether we need to add a bookmark or bookmark folder on server which exists only locally
void OperaSyncHandler::handleLocalGroup(const KBookmarkGroup &root, const QDomElement &item, QString parentId)
{
KBookmark current = root.first();
@@ -590,7 +593,7 @@ void OperaSyncHandler::handleLocalGroup(const KBookmarkGroup &root, const QDomEl
//QString parentId = getIdFromResource(item);
kDebug() << "Parent id is " << parentId;
KJob *job = addBookmarkFolderOnServer(current.fullText(), parentId);
- jobToGroupMap.insert(job, current.toGroup());
+ _jobToGroupMap.insert(job, current.toGroup());
}
else
{
@@ -608,8 +611,6 @@ void OperaSyncHandler::handleLocalGroup(const KBookmarkGroup &root, const QDomEl
{
handleLocalGroup(current.toGroup(), grandChild, id);
}
-
-
}
}
else
@@ -637,6 +638,7 @@ void OperaSyncHandler::handleLocalGroup(const KBookmarkGroup &root, const QDomEl
}
}
+//Add a bookmark on server
void OperaSyncHandler::addBookmarkOnServer(QString title, QString url, QString parent)
{
QOAuth::ParamMap requestMap;
@@ -653,7 +655,7 @@ void OperaSyncHandler::addBookmarkOnServer(QString title, QString url, QString p
requestUrl.append(parent.toUtf8());
}
- QByteArray postData = qoauth->createParametersString(requestUrl, QOAuth::POST, authToken, authTokenSecret, QOAuth::HMAC_SHA1, requestMap, QOAuth::ParseForRequestContent);
+ QByteArray postData = _qoauth.createParametersString(requestUrl, QOAuth::POST, _authToken, _authTokenSecret, QOAuth::HMAC_SHA1, requestMap, QOAuth::ParseForRequestContent);
kDebug() << "Post data is : " << postData;
@@ -662,11 +664,13 @@ void OperaSyncHandler::addBookmarkOnServer(QString title, QString url, QString p
KIO::TransferJob *job = KIO::http_post( KUrl(requestUrl), postData, KIO::HideProgressInfo );
job->addMetaData("Content-Type", "application/x-www-form-urlencoded" );
- connect(job, SIGNAL(result(KJob*)), this, SLOT(bookmarkResultSlot(KJob*)));
- connect(job, SIGNAL(data(KIO::Job*, QByteArray)), this, SLOT(bookmarkDataSlot(KIO::Job*, QByteArray)));
+ connect(job, SIGNAL(result(KJob*)), this, SLOT(createBookmarkResultSlot(KJob*)));
+ connect(job, SIGNAL(data(KIO::Job*, QByteArray)), this, SLOT(createBookmarkDataSlot(KIO::Job*, QByteArray)));
+ ++_requestCount;
}
+//Add a bookmark folder on server
KJob *OperaSyncHandler::addBookmarkFolderOnServer(QString title, QString parent)
{
QOAuth::ParamMap requestMap;
@@ -681,7 +685,7 @@ KJob *OperaSyncHandler::addBookmarkFolderOnServer(QString title, QString parent)
requestUrl.append(parent.toUtf8());
}
- QByteArray postData = qoauth->createParametersString(requestUrl, QOAuth::POST, authToken, authTokenSecret, QOAuth::HMAC_SHA1, requestMap, QOAuth::ParseForRequestContent);
+ QByteArray postData = _qoauth.createParametersString(requestUrl, QOAuth::POST, _authToken, _authTokenSecret, QOAuth::HMAC_SHA1, requestMap, QOAuth::ParseForRequestContent);
kDebug() << "Post data is : " << postData;
@@ -689,14 +693,16 @@ KJob *OperaSyncHandler::addBookmarkFolderOnServer(QString title, QString parent)
KIO::TransferJob *job = KIO::http_post( KUrl(requestUrl), postData, KIO::HideProgressInfo );
job->addMetaData("Content-Type", "application/x-www-form-urlencoded" );
- jobToResponseMap.insert(job, "");
+ _jobToResponseMap.insert(job, "");
- connect(job, SIGNAL(result(KJob*)), this, SLOT(bookmarkFolderResultSlot(KJob*)));
- connect(job, SIGNAL(data(KIO::Job*, QByteArray)), this, SLOT(bookmarkFolderDataSlot(KIO::Job*, QByteArray)));
+ connect(job, SIGNAL(result(KJob*)), this, SLOT(createBookmarkFolderResultSlot(KJob*)));
+ connect(job, SIGNAL(data(KIO::Job*, QByteArray)), this, SLOT(createBookmarkFolderDataSlot(KIO::Job*, QByteArray)));
+ ++_requestCount;
return job;
}
+//Resource could be either a bookmark folder or bookmark.
void OperaSyncHandler::deleteResourceOnServer(QString id)
{
QOAuth::ParamMap requestMap;
@@ -711,7 +717,7 @@ void OperaSyncHandler::deleteResourceOnServer(QString id)
}
requestUrl.append(id.toUtf8());
- QByteArray postData = qoauth->createParametersString(requestUrl, QOAuth::POST, authToken, authTokenSecret, QOAuth::HMAC_SHA1, requestMap, QOAuth::ParseForRequestContent);
+ QByteArray postData = _qoauth.createParametersString(requestUrl, QOAuth::POST, _authToken, _authTokenSecret, QOAuth::HMAC_SHA1, requestMap, QOAuth::ParseForRequestContent);
kDebug() << "Deleting Resource : " << id;
kDebug() << "Post data is : " << postData;
@@ -721,9 +727,10 @@ void OperaSyncHandler::deleteResourceOnServer(QString id)
KIO::TransferJob *job = KIO::http_post( KUrl(requestUrl), postData, KIO::HideProgressInfo );
job->addMetaData("Content-Type", "application/x-www-form-urlencoded" );
- connect(job, SIGNAL(result(KJob*)), this, SLOT(bookmarkResultSlot(KJob*)));
- connect(job, SIGNAL(data(KIO::Job*, QByteArray)), this, SLOT(bookmarkDataSlot(KIO::Job*, QByteArray)));
+ connect(job, SIGNAL(result(KJob*)), this, SLOT(deleteResourceResultSlot(KJob*)));
+ connect(job, SIGNAL(data(KIO::Job*, QByteArray)), this, SLOT(deleteResourceDataSlot(KIO::Job*, QByteArray)));
+ ++_requestCount;
}
//Get url for a bookmark from xml element of Opera bookmarks
@@ -811,6 +818,7 @@ QDomElement OperaSyncHandler::getChildElement(const QDomNode &node, const QStrin
}
return QDomElement();
}
+
//Find a bookmark group in a specifiec bookmark group of client
KBookmarkGroup OperaSyncHandler::findLocalGroup(const KBookmarkGroup &root, const QString &name)
{
@@ -882,3 +890,20 @@ QDomElement OperaSyncHandler::findOperaBookmark(const QDomElement &root, const K
return current;
}
+
+/*While sending changes to server, we need to keep track of requests which have been sent to server
+to check whether syncing is finished.
+*/
+void OperaSyncHandler::decreaseRequestCount()
+{
+ if (_requestCount > 0)
+ {
+ --_requestCount;
+ }
+
+ if (_requestCount <= 0)
+ {
+ emit syncStatus(Rekonq::Bookmarks, true, i18n("Done!"));
+ _isSyncing = false;
+ }
+}
diff --git a/src/sync/operasynchandler.h b/src/sync/operasynchandler.h
index 5131425f..59aff9fb 100644
--- a/src/sync/operasynchandler.h
+++ b/src/sync/operasynchandler.h
@@ -61,17 +61,18 @@ public:
private Q_SLOTS:
void loadFinished(bool);
-/* void fetchingBookmarksFinished();
- void updateBookmarkFinished();
-*/
- void dataSlot(KIO::Job*, QByteArray);
- void resultSlot(KJob*);
- void bookmarkDataSlot(KIO::Job*, QByteArray);
- void bookmarkResultSlot(KJob*);
+ void fetchBookmarksDataSlot(KIO::Job*, QByteArray);
+ void fetchBookmarksResultSlot(KJob*);
- void bookmarkFolderDataSlot(KIO::Job*, QByteArray);
- void bookmarkFolderResultSlot(KJob*);
+ void createBookmarkDataSlot(KIO::Job*, QByteArray);
+ void createBookmarkResultSlot(KJob*);
+
+ void createBookmarkFolderDataSlot(KIO::Job*, QByteArray);
+ void createBookmarkFolderResultSlot(KJob*);
+
+ void deleteResourceDataSlot(KIO::Job*, QByteArray);
+ void deleteResourceResultSlot(KJob*);
Q_SIGNALS:
void syncBookmarksFinished(bool);
@@ -80,16 +81,16 @@ Q_SIGNALS:
private:
enum {SEND_CHANGES, RECEIVE_CHANGES} _mode;
- enum BookmarkType {BOOKMARK, BOOKMARK_FOLDER};
bool syncRelativeEnabled(bool);
void startLogin();
void getBookmarks();
+
void handleBookmark(const QDomElement &item, KBookmarkGroup root);
void handleBookmarkFolder(const QDomElement &item, KBookmarkGroup &root);
void handleResource(const QDomNode &item, KBookmarkGroup &root);
+ void handleResponse(const QDomNodeList &responseList, KBookmarkGroup &root);
-// void handleLocalBookmark(const KBookmarkGroup &root, const QDomElement &item);
void handleLocalGroup(const KBookmarkGroup &root, const QDomElement &item, QString parentId);
void addBookmarkOnServer(QString, QString, QString parent = QString());
@@ -108,35 +109,25 @@ private:
static QDomElement findOperaFolder(const QDomElement &root, const QString &name);
static QDomElement findOperaBookmark(const QDomElement &root, const KUrl &url);
-/* void checkToAddGB(const KBookmarkGroup &root, const QDomNodeList &);
- void checkToDeleteGB(BookmarkManager *, const QDomNodeList &);
- QString getChildElement(const QDomNode &node, QString name);
- void checkRequestCount();*/
+ void decreaseRequestCount();
- // QUrl _remoteBookmarksUrl;
bool _doLogin;
QWebPage _webPage;
-/* QNetworkReply *_reply;
- QSet<KUrl> _bookmarksToAdd;
- QSet<QString> _bookmarksToDelete;
- unsigned int _requestCount;*/
+
+ int _requestCount;
bool _isSyncing;
- QOAuth::Interface *qoauth;
- QOAuth::ParamMap requestParam, resultParam, authParams;
- QByteArray requestToken, requestTokenSecret;
- QByteArray authToken, authTokenSecret;
-
- QUrl url;
-// QSslSocket *socket;
- QByteArray urlParams;
- QWebView *webView;
- QByteArray xmlData;
- QMap<KJob*, QByteArray> jobToResponseMap;
- QMap<KJob*, KBookmarkGroup> jobToGroupMap;
+ QOAuth::Interface _qoauth;
+
+ QByteArray _requestToken, _requestTokenSecret;
+ QByteArray _authToken, _authTokenSecret;
+
+ QByteArray _xmlData;
+ QMap<KJob*, QByteArray> _jobToResponseMap;
+ QMap<KJob*, KBookmarkGroup> _jobToGroupMap;
};
#endif // OPERA_SYNC_HANDLER_H