ginebra2/ViewStack.cpp
changeset 3 0954f5dd2cd0
parent 0 1450b09d0cfd
child 16 3c88a81ff781
--- a/ginebra2/ViewStack.cpp	Fri May 14 15:40:36 2010 +0300
+++ b/ginebra2/ViewStack.cpp	Tue Jun 29 00:46:29 2010 -0400
@@ -1,37 +1,37 @@
 /*
 * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License as published by
+* the Free Software Foundation, version 2.1 of the License.
 *
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
+* This program 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 Lesser General Public License for more details.
 *
-* Contributors:
+* You should have received a copy of the GNU Lesser General Public License
+* along with this program.  If not,
+* see "http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html/".
 *
-* Description: 
+* Description:
 *
 */
 
-
 #include "Utilities.h"
 #include <QtCore/QUrl>
 #include "ViewStack.h"
 #include "ViewController.h"
-#include "ChromeWidget.h"
 #include "webpagecontroller.h"
 #include "HistoryFlowView.h"
-#include "BookmarksTreeView.h"
-#include "BookMarksHistoryView.h"
 #include "WindowFlowView.h"
+#include "ChromeSnippet.h"
 
 namespace GVA {
 
 static const QString KBookmarkHistoryViewName = "BookmarkHistoryView";
 static const QString KBookmarkTreeViewName = "BookmarkTreeView";
-static const QString KGoAnywhereViewName = "GoAnywhereView";
 static const QString KWebViewName = "WebView";
 static const QString KWindowViewName = "WindowView";
 static const QString KHistoryViewName = "HistoryView";
@@ -41,11 +41,11 @@
 ViewStack* ViewStack::getSingleton()
 {
     static ViewStack* singleton = 0;
-    if(!singleton)
+    if (!singleton)
     {
         singleton = new ViewStack;
         singleton->setObjectName("ViewStack");
-    } // if(! singleton)
+    } // if (! singleton)
 
     assert(singleton);
     return singleton;
@@ -55,6 +55,10 @@
 {
     emit (deActivateWindowView());
 
+    ChromeSnippet* tbSnippet = m_chrome->getSnippet("WindowViewToolbarId");
+    if (tbSnippet)
+        tbSnippet->hide();
+
     //m_chromeView->setViewofCurrentPage();
 
     WRT::WindowFlowView* windowView = static_cast<WRT::WindowFlowView *>(m_viewController->view(KWindowViewName));
@@ -68,112 +72,56 @@
 
 void ViewStack::fromSettingsView(const QString &to)  // goto WebView
 {
-    emit (deActivateSettingsView());    
-    emit (currentViewChanged());
     m_viewController->showContent(to);
-}
-
-void ViewStack::fromGoAnywhereView(const QString &to)
-{
-    WRT::HistoryFlowView* historyView = static_cast<WRT::HistoryFlowView*>(m_viewController->view(KHistoryViewName));
-    WRT::BookmarksTreeView* bookmarkTreeView = static_cast<WRT::BookmarksTreeView *>(m_viewController->view(KBookmarkTreeViewName));
-    WRT::BookmarksHistoryView* bookmarkHistoryView = static_cast<WRT::BookmarksHistoryView *>(m_viewController->view(KBookmarkHistoryViewName));
+    ChromeSnippet* tbSnippet = m_chrome->getSnippet("SettingsViewToolbarId");
+    if (tbSnippet)
+        tbSnippet->hide();
 
-    disconnect(historyView, SIGNAL(ok(int)), this, SLOT(loadHistoryItem(int)));
-    disconnect(bookmarkTreeView, SIGNAL(openUrl(const QUrl &)), this, SLOT(goBackFromGoAnywhereView()));
-    disconnect(bookmarkHistoryView, SIGNAL(openUrl(const QUrl &)), this, SLOT(goBackFromGoAnywhereView()));
-
-    m_viewController->showContent(to);
-
-    disconnect(bookmarkTreeView, SIGNAL(activated()), this, SIGNAL(activateBookmark()));
-    disconnect(bookmarkTreeView, SIGNAL(deactivated()), this, SIGNAL(deActivateBookmark()));
-    disconnect(historyView, SIGNAL(activated()), this, SIGNAL(activateHistory()));
-    disconnect(historyView, SIGNAL(deactivated()), this, SIGNAL(deActivateHistory()));
-    disconnect(bookmarkHistoryView, SIGNAL(activated()), this, SIGNAL(activateBookMarkHistory()));
-    disconnect(bookmarkHistoryView, SIGNAL(deactivated()), this, SIGNAL(deActivateBookMarkHistory()));
+    WebPageController::getSingleton()->setSettingsLoaded(0);
 }
 
 void ViewStack::fromWebView(const QString &to)
 {
     m_viewController->showContent(to);
-    emit (deActivateWebView());
+    ChromeSnippet* tbSnippet = m_chrome->getSnippet("WebViewToolbarId");
+    if (tbSnippet)
+        tbSnippet->hide(false);
 }
 
-
 void ViewStack::fromBookmarkTreeView(const QString &to)
 {
-    //m_viewController->showContent(to);
-    //WRT::BookmarksTreeView* bookmarkTreeView = static_cast<WRT::BookmarksTreeView *>(m_viewController->view(KBookmarkTreeViewName));
-
-    //disconnect(bookmarkTreeView, SIGNAL(openUrl(const QUrl &)), this, SLOT(goBackFromBookmarkView()));
-    m_viewController->viewChanged();
+     m_viewController->showContent(to);
+    // Hide toolbar and dialog if visible
+    ChromeSnippet* visibleSnippet = m_chrome->getSnippet("BookmarkViewToolbarId");
+    if (visibleSnippet)
+        visibleSnippet->hide();
     
-    emit(deActivateBookmark());
+    visibleSnippet = m_chrome->getSnippet("BookmarkDialogId");
+    if (visibleSnippet)
+        visibleSnippet->hide();
 }
 
 
 void ViewStack::fromBookmarkHistoryView(const QString &to)
 {
-    //m_viewController->showContent(to);
-    //WRT::BookmarksHistoryView* bookmarkHistoryView = static_cast<WRT::BookmarksHistoryView *>(m_viewController->view(KBookmarkHistoryViewName));
-
-    //disconnect(bookmarkHistoryView, SIGNAL(openUrl(const QUrl &)), this, SLOT(goBackFromRecentUrlView()));
-    m_viewController->viewChanged();
-
-    emit(deActivateBookMarkHistory());
+    m_viewController->showContent(to);
+    ChromeSnippet* tbSnippet = m_chrome->getSnippet("RecentUrlViewToolbarId");
+    if (tbSnippet)
+        tbSnippet->hide();
+    
+    ChromeSnippet* visibleSnippet  = m_chrome->getSnippet("ClearHistoryDialogId");
+    if (visibleSnippet)
+         visibleSnippet->hide();
 }
 
-void ViewStack::toGoAnywhereView()
-{
-    emit (activateHistory()); // by default go to history view
-
-    /* Connect ALL of goAnywhere's signals in one shot */
-
-    WRT::HistoryFlowView* historyView = static_cast<WRT::HistoryFlowView*>(m_viewController->view(KHistoryViewName));
-    WRT::BookmarksTreeView* bookmarkTreeView = static_cast<WRT::BookmarksTreeView *>(m_viewController->view(KBookmarkTreeViewName));
-    WRT::BookmarksHistoryView* bookmarkHistoryView = static_cast<WRT::BookmarksHistoryView *>(m_viewController->view(KBookmarkHistoryViewName));
-
-    safe_connect(historyView, SIGNAL(ok(int)), this, SLOT(loadHistoryItem(int)))
-    safe_connect(bookmarkTreeView, SIGNAL(openUrl(const QUrl &)), this, SLOT(goBackFromGoAnywhereView()))
-    safe_connect(bookmarkHistoryView, SIGNAL(openUrl(const QUrl &)), this, SLOT(goBackFromGoAnywhereView()));
-    safe_connect(bookmarkTreeView, SIGNAL(activated()), this, SIGNAL(activateBookmark()));
-    safe_connect(bookmarkTreeView, SIGNAL(deactivated()), this, SIGNAL(deActivateBookmark()));
-    safe_connect(historyView, SIGNAL(activated()), this, SIGNAL(activateHistory()));
-    safe_connect(historyView, SIGNAL(deactivated()), this, SIGNAL(deActivateHistory()));
-    safe_connect(bookmarkHistoryView, SIGNAL(activated()), this, SIGNAL(activateBookMarkHistory()));
-    safe_connect(bookmarkHistoryView, SIGNAL(deactivated()), this, SIGNAL(deActivateBookMarkHistory()));
-}
-
-void  ViewStack::initWindowView()
-{
-    /*
-    int width = m_chromeView->size().width();
-    int height = m_chromeView->size().height();
-    // FIXME: the snippet id is hardcode
-    ChromeSnippet* visibleSnippet = m_chromeView->getChromeWidget()->getSnippet("StatusBarChromeId");
-    if (visibleSnippet)
-        height -= (int) (visibleSnippet->rect().height()); 
-
-    visibleSnippet = m_chromeView->getChromeWidget()->getSnippet("WebViewToolbarId");
-    if (visibleSnippet)
-        height -= (int) (visibleSnippet->rect().height()); 
-
-    if (m_chromeView->displayMode() ==  ChromeView::DisplayModePortrait) {
-        visibleSnippet = m_chromeView->getChromeWidget()->getSnippet("WindowCountBarId");
-        if (visibleSnippet)
-            height -= (int) (visibleSnippet->rect().height()); 
-    }
-    QSize windowViewSize(100,100);
-    WRT::WindowFlowView* windowView = static_cast<WRT::WindowFlowView *>(m_viewController->view(KWindowViewName));
-    windowView->setSize(windowViewSize);
-*/
-}
-
-
 void ViewStack::toWindowView()
 {
     emit(activateWindowView());
 
+    ChromeSnippet* tbSnippet = m_chrome->getSnippet("WindowViewToolbarId");
+    if (tbSnippet)
+        tbSnippet->show();
+
     WRT::WindowFlowView* windowView = static_cast<WRT::WindowFlowView *>(m_viewController->view(KWindowViewName));
 
     safe_connect(windowView, SIGNAL(ok(WrtBrowserContainer*)), this, SLOT(goBackFromWindowView()));
@@ -181,45 +129,56 @@
     safe_connect(windowView, SIGNAL(centerIndexChanged(int)), this, SIGNAL(pageChanged(int)));
 }
 
-void  ViewStack::initSettingsView()
-{
-}
-
 void ViewStack::toSettingsView()
 {
-    emit(activateSettingsView());    
-    emit(currentViewChanged());
+    ChromeSnippet* tbSnippet = m_chrome->getSnippet("SettingsViewToolbarId");
+    if (tbSnippet)
+        tbSnippet->show();
+
+    WebPageController::getSingleton()->setSettingsLoaded(0);
+
 }
 
 void ViewStack::toWebView()
 {
-    emit (activateWebView());
+    ChromeSnippet* tbSnippet = m_chrome->getSnippet("WebViewToolbarId");
+    if (tbSnippet)
+        tbSnippet->show(false);
 }
 
 void ViewStack::toBookmarkHistoryView()
 {
-    emit(activateBookMarkHistory());
-
-    m_viewController->viewChanged();
-    //WRT::BookmarksHistoryView* bookmarkHistoryView = static_cast<WRT::BookmarksHistoryView *>(m_viewController->view(KBookmarkHistoryViewName));
-
-    //safe_connect(bookmarkHistoryView, SIGNAL(openUrl(const QUrl &)), this, SLOT(goBackFromRecentUrlView()));
+    ChromeSnippet* tbSnippet = m_chrome->getSnippet("RecentUrlViewToolbarId");
+    if (tbSnippet)
+        tbSnippet->show();
 }
 
 void ViewStack::toBookmarkView()
 {
-    emit(activateBookmark());
-    
-    m_viewController->viewChanged();
+    ChromeSnippet* tbSnippet = m_chrome->getSnippet("BookmarkViewToolbarId");
+    if (tbSnippet)
+        tbSnippet->show();
 
-    //WRT::BookmarksTreeView* bookmarkTreeView = static_cast<WRT::BookmarksTreeView *>(m_viewController->view(KBookmarkTreeViewName));
-
-    //safe_connect(bookmarkTreeView, SIGNAL(openUrl(const QUrl &)), this, SLOT(goBackFromBookmarkView()));
+    emit activateBookmark();
 }
 
+void ViewStack::creatingPage(WRT::WrtBrowserContainer* page) {
+    Q_UNUSED(page);
+
+    //qDebug() << "VIEW STACK:: Received creating Page" << page;
+
+    if (m_viewController->currentView()->type() == "webView" ) {
+        //qDebug() << "ViewStack::page: " << page << "Created In " << m_viewController->currentView()->type() ;
+
+        WRT::WindowFlowView* windowView = static_cast<WRT::WindowFlowView *>(m_viewController->view(KWindowViewName));
+        windowView->setMode(WRT::WindowView::WindowViewModeTransition);
+        windowView->onPageCreated(page);
+        ViewStack::getSingleton()->switchView(KWindowViewName, KWebViewName);
+    }
+
+}
 
 void ViewStack::switchView(const QString &to, const QString &from) {
-    qDebug() << "ViewStack::switchView: " << to << " " << from;
 
     if (to == from) {
         return;
@@ -231,13 +190,8 @@
     if (from == KWindowViewName) {
         fromWindowView(to);
     }
-    else if (from == KGoAnywhereViewName) {
-        fromGoAnywhereView(to);
-    }
     else if (from == KWebViewName) {
-       if (to == KWindowViewName)
-           initWindowView(); // to fix the size issue of windows view
-       fromWebView(to);
+        fromWebView(to);
     }
     else if (from == KBookmarkHistoryViewName) {
         fromBookmarkHistoryView(to);
@@ -252,9 +206,6 @@
     if (to == KWindowViewName) {
         toWindowView();
     }
-    else if (to == KGoAnywhereViewName) {
-        toGoAnywhereView();
-    }
     else if (to == KWebViewName) {
         toWebView();
     }
@@ -284,17 +235,8 @@
         WebPageController::getSingleton()->currentSetFromHistory(item);
         safe_connect(m_viewController,SIGNAL(loadProgess(const int)), this, SLOT(showContentView(const int)));
     }
-    else {
-        //window.chrome.alert("Just go back");
-        goBackFromGoAnywhereView();
-    }
 }
 
-void ViewStack::goBackFromGoAnywhereView() {
-    switchView(KWebViewName, KGoAnywhereViewName);
-}
-
-
 void ViewStack::goBackFromWindowView() {
     switchView(KWebViewName, KWindowViewName);
 }
@@ -312,17 +254,13 @@
 }
 
 void ViewStack::showContentView(int progress) {
+    Q_UNUSED(progress);
 
     if (!m_viewController) {
         return;
     }
 
-    if (progress >= 30 && m_viewController->currentView()->type() == KGoAnywhereViewName) {
-        //goBackToWebView();
-        goBackFromGoAnywhereView();
-        disconnect(m_viewController,SIGNAL(loadProgess(const int)), this, SLOT(showContentView(const int)));
-    }
-    else if ( m_viewController->currentView()->type() == KWebViewName ) {
+    if ( m_viewController->currentView()->type() == KWebViewName ) {
         disconnect(m_viewController,SIGNAL(loadProgess(const int)), this, SLOT(showContentView(const int)));
     }
 }