diff -r bf4420e9fa4d -r 2e16851ffecd ginebra/viewstack.cpp --- a/ginebra/viewstack.cpp Fri Jun 11 16:23:26 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,254 +0,0 @@ -/* -* 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". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#include "utilities.h" -#include -#include "viewstack.h" -#include "viewcontroller.h" -#include "chromeview.h" -#include "chromewidget.h" -#include "chromesnippet.h" -#include "webpagecontroller.h" -#include "HistoryFlowView.h" -#include "WindowFlowView.h" - - -ViewStack* ViewStack::getSingleton() -{ - static ViewStack* singleton = 0; - if(!singleton) - { - singleton = new ViewStack; - singleton->setObjectName("viewStack"); - } // if(! singleton) - - assert(singleton); - return singleton; -} - -void ViewStack::fromWindowView(const QString &to) -{ - emit (deActivateWindowView()); - - m_chromeView->setViewofCurrentPage(); - - WRT::WindowFlowView* windowView = static_cast(m_viewController->getView("WindowView")); - - disconnect(windowView, SIGNAL(ok(WrtBrowserContainer*)), this, SLOT(goBackFromWindowView())); - disconnect(windowView, SIGNAL(addPageComplete()), this, SLOT(goBackFromWindowView())); - disconnect(windowView, SIGNAL(centerIndexChanged(int)), this, SIGNAL(pageChanged(int))); - - m_viewController->showContent(to); -} - -void ViewStack::fromGoAnywhereView(const QString &to) -{ - WRT::HistoryFlowView* historyView = static_cast(m_viewController->getView("historyView")); - - disconnect(historyView, SIGNAL(ok(int)), this, SLOT(loadHistoryItem(int))); - - m_viewController->showContent(to); - - disconnect(historyView, SIGNAL(activated()), this, SIGNAL(activateHistory())); - disconnect(historyView, SIGNAL(deactivated()), this, SIGNAL(deActivateHistory())); -} - -void ViewStack::fromWebView(const QString &to) -{ - m_viewController->showContent(to); - emit (deActivateWebView()); -} - - -void ViewStack::fromBookmarkTreeView(const QString &to) -{ - m_viewController->showContent(to); - emit(deActivateBookmark()); -} - - -void ViewStack::fromBookmarkHistoryView(const QString &to) -{ - m_viewController->showContent(to); - emit(deActivateBookMarkHistory()); -} - -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(m_viewController->getView("historyView")); - - safe_connect(historyView, SIGNAL(ok(int)), this, SLOT(loadHistoryItem(int))) - safe_connect(historyView, SIGNAL(activated()), this, SIGNAL(activateHistory())); - safe_connect(historyView, SIGNAL(deactivated()), this, SIGNAL(deActivateHistory())); -} - -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(width, height); - WRT::WindowFlowView* windowView = static_cast(m_viewController->getView("WindowView")); - windowView->setSize(windowViewSize); -} - -void ViewStack::toWindowView() -{ - emit(activateWindowView()); - - WRT::WindowFlowView* windowView = static_cast(m_viewController->getView("WindowView")); - - safe_connect(windowView, SIGNAL(ok(WrtBrowserContainer*)), this, SLOT(goBackFromWindowView())); - safe_connect(windowView, SIGNAL(addPageComplete()), this, SLOT(goBackFromWindowView())); - safe_connect(windowView, SIGNAL(centerIndexChanged(int)), this, SIGNAL(pageChanged(int))); -} - -void ViewStack::toWebView() -{ - emit (activateWebView()); -} - -void ViewStack::toBookmarkHistoryView() -{ - emit(activateBookMarkHistory()); - -} - -void ViewStack::toBookmarkView() -{ - emit(activateBookmark()); -} - - -void ViewStack::switchView(const QString &to, const QString &from) { - - if (to == from) { - return; - } - if (!m_viewController) { - return; - } - - if (from == "WindowView") { - fromWindowView(to); - } - else if (from == "goAnywhereView") { - fromGoAnywhereView(to); - } - else if (from == "webView") { - if (to == "WindowView") - initWindowView(); // to fix the size issue of windows view - fromWebView(to); - } - else if (from == "bookmarkHistoryView") { - fromBookmarkHistoryView(to); - } - else if (from == "bookmarkTreeView") { - fromBookmarkTreeView(to); - } - - if (to == "WindowView") { - toWindowView(); - } - else if (to == "goAnywhereView") { - toGoAnywhereView(); - } - else if (to == "webView") { - toWebView(); - } - else if (to == "bookmarkHistoryView") { - toBookmarkHistoryView(); - } - else if (to == "bookmarkTreeView") { - toBookmarkView(); - } -} - - -void ViewStack::loadHistoryItem(int item) { - - if (!m_viewController) { - return; - } - WRT::HistoryFlowView* historyView = static_cast(m_viewController->getView("historyView")); - //var myIndex = window.viewManager.historyView.currentHistIndex; - int myIndex = historyView->currentIndex(); - - if (myIndex != item ) { - //window.chrome.alert("loadFromHistory"); - 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("webView", "goAnywhereView"); -} - - -void ViewStack::goBackFromWindowView() { - switchView("webView", "WindowView"); -} - -void ViewStack::goBackFromRecentUrlView() { - switchView("webView", "bookmarkHistoryView"); -} - -void ViewStack::goBackFromBookmarkView() { - switchView("webView", "bookmarkTreeView"); -} - -void ViewStack::showContentView(int progress) { - - if (!m_viewController) { - return; - } - - if (progress >= 30 && m_viewController->currentView()->type() == "goAnywhereView") { - //goBackToWebView(); - goBackFromGoAnywhereView(); - disconnect(m_viewController,SIGNAL(loadProgess(const int)), this, SLOT(showContentView(const int))); - } - else if ( m_viewController->currentView()->type() == "webView" ) { - disconnect(m_viewController,SIGNAL(loadProgess(const int)), this, SLOT(showContentView(const int))); - } -} -