From c7fa09a7b96e239ff6e7349c9d90e7409d7bbcb3 Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Tue, 10 Nov 2009 14:47:39 +0100 Subject: fixing new mainWindow() behaviour, porting functions calling it --- src/application.cpp | 33 +++++++++++---------------------- src/homepage.cpp | 3 +-- src/homepage.h | 10 +++++----- src/mainview.cpp | 30 ++++++++++++------------------ src/mainview.h | 9 ++++++--- src/mainwindow.cpp | 12 +++++++----- src/mainwindow.h | 7 ++++--- src/tabbar.h | 2 +- 8 files changed, 47 insertions(+), 59 deletions(-) (limited to 'src') diff --git a/src/application.cpp b/src/application.cpp index 8e870764..d29bcc78 100644 --- a/src/application.cpp +++ b/src/application.cpp @@ -94,31 +94,28 @@ int Application::newInstance() if(args->count() == 0) { - MainWindow *w = 0; if(first) // we are starting rekonq, for the first time with no args: use startup behaviour { switch(ReKonfig::startupBehaviour()) { case 0: // open home page - w = newMainWindow(); - w->slotHome(); + mainWindow()->homePage(); break; case 1: // open new tab page - w = newMainWindow(); - w->homePage(); + kDebug() << "newInstance"; + mainWindow()->newTabPage(); break; case 2: // restore session if(sessionManager()->restoreSession()) break; default: - w = newMainWindow(); - w->slotHome(); + mainWindow()->homePage(); break; } } else // rekonq has just been started. Just open a new window { - w = newMainWindow(); + newMainWindow(); } } @@ -348,8 +345,8 @@ void Application::loadUrl(const KUrl& url, const Rekonq::OpenType& type) } // loading home pages - kDebug() << "here.."; - if (mainWindow()->homePage(url)) + kDebug() << "loadUrl loading " << url; + if (mainWindow()->newTabPage(url)) return; if (url.scheme() == QLatin1String("mailto")) @@ -360,17 +357,8 @@ void Application::loadUrl(const KUrl& url, const Rekonq::OpenType& type) // first, create the webview(s) to not let hangs UI.. WebView *webView = 0; - MainWindow *w = 0; - - if(type == Rekonq::NewWindow) - { - w = newMainWindow(); - } - else - { - w = mainWindow(); - } - + MainWindow *w = mainWindow(); + switch(type) { case Rekonq::SettingOpenTab: @@ -419,7 +407,7 @@ void Application::loadUrl(const KUrl& url, const Rekonq::OpenType& type) // are considered as executables if (KUriFilter::self()->filterUri(data)) { - loadingUrl = data.uri().url(); + loadingUrl = data.uri().url(); } // ------------------- END WARNING -------------------------------------- @@ -445,6 +433,7 @@ void Application::loadUrl(const QString& urlString, const Rekonq::OpenType& typ MainWindow *Application::newMainWindow() { MainWindow *w = new MainWindow(); + kDebug() << "newMainWindow"; w->mainView()->newWebView(); // remember using newWebView and NOT newTab here!! m_mainWindows.prepend(w); diff --git a/src/homepage.cpp b/src/homepage.cpp index 27d613ce..5c34bcd7 100644 --- a/src/homepage.cpp +++ b/src/homepage.cpp @@ -49,8 +49,7 @@ #include -HomePage::HomePage(QObject *parent) - : QObject(parent) +HomePage::HomePage() { m_homePagePath = KStandardDirs::locate("data", "rekonq/htmls/home.html"); } diff --git a/src/homepage.h b/src/homepage.h index 7963119c..abc28de0 100644 --- a/src/homepage.h +++ b/src/homepage.h @@ -39,18 +39,18 @@ class KBookmark; -class HomePage : public QObject +class HomePage { -Q_OBJECT public: - HomePage(QObject *parent = 0); + HomePage(); ~HomePage(); QString rekonqHomePage(const KUrl &url = KUrl("rekonq:home")); - QString homePageMenu(KUrl currentUrl); - + private: + QString homePageMenu(KUrl currentUrl); + QString fillFavorites(); QString lastVisitedSites(); QString fillHistory(); diff --git a/src/mainview.cpp b/src/mainview.cpp index c4b0cfc2..10007140 100644 --- a/src/mainview.cpp +++ b/src/mainview.cpp @@ -36,7 +36,6 @@ // Local Includes #include "tabbar.h" #include "application.h" -#include "mainwindow.h" #include "history.h" #include "urlbar.h" #include "webview.h" @@ -64,12 +63,13 @@ #include -MainView::MainView(QWidget *parent) +MainView::MainView(MainWindow *parent) : KTabWidget(parent) , m_urlBar(new UrlBar(this)) , m_tabBar(new TabBar(this)) , m_addTabButton(new QToolButton(this)) , m_currentTabIndex(0) + , m_parentWindow(parent) { // setting tabbar setTabBar(m_tabBar); @@ -109,17 +109,8 @@ void MainView::postLaunch() // Session Manager connect (this, SIGNAL(tabsChanged()), Application::sessionManager(), SLOT(saveSession())); - // Find the correct MainWindow of this tab button - MainWindowList list = Application::instance()->mainWindowList(); - Q_FOREACH(QPointer w, list) - { - if (w->isAncestorOf(this)) - { - m_addTabButton->setDefaultAction(w->actionByName("new_tab")); - break; - } - } - + m_addTabButton->setDefaultAction(m_parentWindow->actionByName("new_tab")); + m_addTabButton->setAutoRaise(true); m_addTabButton->setToolButtonStyle(Qt::ToolButtonIconOnly); } @@ -356,6 +347,7 @@ WebView *MainView::newWebView(bool focused, bool nearParent) else addTab(webView, i18n("(Untitled)")); + kDebug() << "newWebView"; updateTabBar(); if (focused) @@ -375,13 +367,14 @@ void MainView::newTab() switch(ReKonfig::newTabsBehaviour()) { - case 0: - if(Application::instance()->mainWindow()->homePage()) + case 0: // new tab page + kDebug() << "newTab"; + if(m_parentWindow->newTabPage()) break; - case 1: + case 1: // blank page urlBar()->setUrl(KUrl("")); break; - case 2: + case 2: // homepage w->load( QUrl(ReKonfig::homePage()) ); break; default: @@ -414,7 +407,7 @@ void MainView::windowCloseRequested() { if (count() == 1) { - Application::instance()->mainWindow()->close(); + m_parentWindow->close(); } else { @@ -669,6 +662,7 @@ QList MainView::recentlyClosedTabs() void MainView::resizeEvent(QResizeEvent *event) { + kDebug() << "resizeEvent"; updateTabBar(); KTabWidget::resizeEvent(event); } diff --git a/src/mainview.h b/src/mainview.h index dc0393fa..3ddd9e24 100644 --- a/src/mainview.h +++ b/src/mainview.h @@ -36,6 +36,7 @@ #include "webpage.h" #include "application.h" #include "history.h" +#include "mainwindow.h" // KDE Includes #include @@ -54,8 +55,8 @@ class UrlBar; /** - * This class represent rekonq Main View. It contains all WebViews and a stack widget - * of associated line edits. + * This class represent rekonq Main View. + * It contains all WebViews and the url bar. * */ @@ -64,7 +65,7 @@ class REKONQ_TESTS_EXPORT MainView : public KTabWidget Q_OBJECT public: - MainView(QWidget *parent = 0); + MainView(MainWindow *parent); ~MainView(); public: @@ -174,6 +175,8 @@ private: int m_currentTabIndex; QList m_recentlyClosedTabs; + + MainWindow *m_parentWindow; }; #endif // MAINVIEW_H diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 194b141a..4d9cc89d 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -276,7 +276,7 @@ void MainWindow::setupActions() shortcutFullScreenList << KStandardShortcut::fullScreen() << QKeySequence( Qt::Key_F11 ); a->setShortcuts( shortcutFullScreenList ); - KStandardAction::home(this, SLOT(slotHome()), actionCollection()); + KStandardAction::home(this, SLOT(homePage()), actionCollection()); KStandardAction::preferences(this, SLOT(slotPreferences()), actionCollection()); a = KStandardAction::redisplay(m_view, SLOT(slotWebReload()), actionCollection()); @@ -462,6 +462,7 @@ void MainWindow::setupSidePanel() void MainWindow::slotUpdateConfiguration() { // ============== General ================== + kDebug() << "update conf"; m_view->updateTabBar(); // =========== Fonts ============== @@ -782,7 +783,7 @@ void MainWindow::slotViewPageSource() } -void MainWindow::slotHome() +void MainWindow::homePage() { currentTab()->load( QUrl(ReKonfig::homePage()) ); } @@ -1116,7 +1117,7 @@ void MainWindow::slotOpenActionUrl(QAction *action) } -bool MainWindow::homePage(const KUrl &url) +bool MainWindow::newTabPage(const KUrl &url) { if ( url == KUrl("rekonq:closedTabs") || url == KUrl("rekonq:history") @@ -1127,8 +1128,9 @@ bool MainWindow::homePage(const KUrl &url) { kDebug() << "loading home: " << url; WebView *w = currentTab(); - HomePage p(w); - w->setHtml( p.rekonqHomePage(url), url); + HomePage p; + QString html = p.rekonqHomePage(url); + w->setHtml(html, url); return true; } return false; diff --git a/src/mainwindow.h b/src/mainwindow.h index 50c3e7dc..02302aca 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -32,7 +32,7 @@ // Local Includes #include "bookmarks.h" -#include "mainview.h" +// #include "mainview.h" #include "webview.h" // KDE Includes @@ -49,6 +49,7 @@ class KPassivePopup; class FindBar; class SidePanel; class WebView; +class MainView; /** @@ -70,7 +71,7 @@ public: virtual QSize sizeHint() const; virtual KActionCollection *actionCollection () const; - bool homePage(const KUrl &url = KUrl("rekonq:home")); + bool newTabPage(const KUrl &url = KUrl("rekonq:home")); private: void setupActions(); @@ -82,7 +83,7 @@ private: public slots: void slotUpdateBrowser(); - void slotHome(); + void homePage(); /** * Notifies a message in a popup diff --git a/src/tabbar.h b/src/tabbar.h index fcb04d28..e70c7914 100644 --- a/src/tabbar.h +++ b/src/tabbar.h @@ -59,7 +59,7 @@ class REKONQ_TESTS_EXPORT TabBar : public KTabBar Q_OBJECT public: - TabBar(MainView *parent = 0); + TabBar(MainView *parent); ~TabBar(); void showTabPreview(int tab); -- cgit v1.2.1