backup
authorlampehe-local <henri.lampela@ixonos.com>
Mon, 7 Jun 2010 11:56:09 +0000 (14:56 +0300)
committerlampehe-local <henri.lampela@ixonos.com>
Mon, 7 Jun 2010 11:56:09 +0000 (14:56 +0300)
src/ui/mainwindow.cpp
src/ui/mainwindow.h

index d2e0421..b0ae04b 100644 (file)
@@ -371,7 +371,7 @@ void MainWindow::createMenus()
 void MainWindow::dialogFinished(int status)
 {
     qDebug() << __PRETTY_FUNCTION__;
-    qDebug() << status;
+
     QDialog *dialog = m_queue.takeFirst();
     if(!dialog->objectName().isEmpty()) {
         buildWebView();
@@ -382,6 +382,8 @@ void MainWindow::dialogFinished(int status)
                 m_cookieJar = new NetworkCookieJar(new QNetworkCookieJar(this));
 
             m_webView->page()->networkAccessManager()->setCookieJar(m_cookieJar);
+            connect(m_webView->page()->networkAccessManager(), SIGNAL(finished(QNetworkReply*)),
+                    this, SLOT(webViewRequestFinished(QNetworkReply*)));
 
             QStringList urlParts;
             urlParts.append(FACEBOOK_LOGINBASE);
@@ -618,14 +620,17 @@ void MainWindow::queueDialog(QDialog *dialog)
 {
     qDebug() << __PRETTY_FUNCTION__;
 
-    if(dialog->isModal()) {
-        m_queue.insert(0, dialog);
-    } else {
+//    if(dialog->isModal()) {
+//        m_modal_queue.append(dialog);
+//    } else {
         m_queue.append(dialog);
-    }
+//    }
+
+//    if(m_modal_queue.count() == 1)
+//        showErrorNote();
 
     if(m_queue.count() == 1)
-        this->showInformationBox();
+        showInformationBox();
 }
 
 void MainWindow::saveCookies()
@@ -786,3 +791,37 @@ const QString MainWindow::username()
     
     return m_email;
 }
+
+void MainWindow::showErrorNote()
+{
+    qDebug() << __PRETTY_FUNCTION__;
+
+    QDialog *dialog = m_modal_queue.takeFirst();
+    connect(dialog, SIGNAL(finished(int)),
+            this, SLOT(errorNoteFinished()));
+    dialog->show();
+    m_queue.insert(0, dialog);
+}
+
+void MainWindow::webViewRequestFinished(QNetworkReply *reply)
+{
+    qDebug() << __PRETTY_FUNCTION__;
+
+    if(reply->error()) {
+        // todo: emit error to engine
+        qDebug() << reply->errorString();
+        m_webView->stop();
+        toggleProgressIndicator(false);
+    }
+}
+
+void MainWindow::errorNoteFinished()
+{
+    qDebug() << __PRETTY_FUNCTION__;
+
+    QDialog *dialog = m_queue.takeFirst();
+    dialog->deleteLater();
+
+    if(!m_modal_queue.isEmpty())
+        showErrorNote();
+}
index a496e9e..3ddadcf 100644 (file)
@@ -33,6 +33,7 @@
 class QGraphicsScene;
 class QLabel;
 class QWebView;
+class QNetworkReply;
 
 class FacebookAuthentication;
 class FriendListPanel;
@@ -244,6 +245,8 @@ private:
       */
     void setOwnLocationCrosshairVisibility(bool visible);
 
+    void showErrorNote();
+
     /**
     * @brief Shows queued information box
     *
@@ -320,6 +323,10 @@ private slots:
     */
     void toggleFullScreen();
 
+    void webViewRequestFinished(QNetworkReply* reply);
+
+    void errorNoteFinished();
+
 /*******************************************************************************
  * SIGNALS
  ******************************************************************************/
@@ -530,6 +537,7 @@ private:
     SettingsDialog *m_settingsDialog;       ///< Settings dialog
 
     QList<QDialog *> m_queue;
+    QList<QDialog *> m_modal_queue;
 };
 
 #endif // MAINWINDOW_H