From 99ae7ef46bb43e8523a0079130c8a83d13c67217 Mon Sep 17 00:00:00 2001 From: kh <qtc-committer@nokia.com> Date: Mon, 27 Jul 2009 14:35:00 +0200 Subject: [PATCH] Sync with Assistant source, fixes empty tab title. --- src/plugins/help/centralwidget.cpp | 28 ++++++++++++++-------------- src/shared/help/helpviewer.cpp | 9 +++++++++ src/shared/help/helpviewer.h | 4 ++++ 3 files changed, 27 insertions(+), 14 deletions(-) diff --git a/src/plugins/help/centralwidget.cpp b/src/plugins/help/centralwidget.cpp index 89d711722bb..787d0475359 100644 --- a/src/plugins/help/centralwidget.cpp +++ b/src/plugins/help/centralwidget.cpp @@ -153,7 +153,11 @@ CentralWidget *CentralWidget::instance() void CentralWidget::newTab() { HelpViewer* viewer = currentHelpViewer(); +#if !defined(QT_NO_WEBKIT) + if (viewer && viewer->hasLoadFinished()) +#else if (viewer) +#endif setSourceInNewTab(viewer->source()); } @@ -500,26 +504,22 @@ void CentralWidget::activateTab(bool onlyHelpViewer) void CentralWidget::setTabTitle(const QUrl& url) { - int tab = lastTabPage; - HelpViewer* viewer = currentHelpViewer(); - + Q_UNUSED(url) #if !defined(QT_NO_WEBKIT) - if (!viewer || viewer->source() != url) { QTabBar *tabBar = qFindChild<QTabBar*>(tabWidget); - for (tab = 0; tab < tabBar->count(); ++tab) { - viewer = qobject_cast<HelpViewer*>(tabWidget->widget(tab)); - if (viewer && viewer->source() == url) - break; + for (int i = 0; i < tabBar->count(); ++i) { + HelpViewer* view = qobject_cast<HelpViewer*>(tabWidget->widget(i)); + if (view) { + tabWidget->setTabText(i, + quoteTabTitle(view->documentTitle().trimmed())); + } } - } #else - Q_UNUSED(url) -#endif - - if (viewer) { - tabWidget->setTabText(tab, + if (HelpViewer* viewer = currentHelpViewer()) { + tabWidget->setTabText(lastTabPage, quoteTabTitle(viewer->documentTitle().trimmed())); } +#endif } void CentralWidget::currentPageChanged(int index) diff --git a/src/shared/help/helpviewer.cpp b/src/shared/help/helpviewer.cpp index 5d0a43166d5..701c632b23f 100644 --- a/src/shared/help/helpviewer.cpp +++ b/src/shared/help/helpviewer.cpp @@ -235,6 +235,7 @@ HelpViewer::HelpViewer(QHelpEngine *engine, Help::Internal::CentralWidget *paren , helpEngine(engine) , parentWidget(parent) , multiTabsAllowed(true) + , loadFinished(false) { setPage(new HelpPage(parent, helpEngine, this)); settings()->setAttribute(QWebSettings::PluginsEnabled, false); @@ -262,11 +263,13 @@ HelpViewer::HelpViewer(QHelpEngine *engine, Help::Internal::CentralWidget *paren connect(page(), SIGNAL(linkHovered(QString, QString, QString)), this, SIGNAL(highlighted(QString))); connect(this, SIGNAL(urlChanged(QUrl)), this, SIGNAL(sourceChanged(QUrl))); + connect(this, SIGNAL(loadFinished(bool)), this, SLOT(setLoadFinished(bool))); setAcceptDrops(false); } void HelpViewer::setSource(const QUrl &url) { + loadFinished = false; if (!homeUrl.isValid()) homeUrl = url; load(url); @@ -356,6 +359,12 @@ void HelpViewer::mousePressEvent(QMouseEvent *event) QWebView::mousePressEvent(event); } +void HelpViewer::setLoadFinished(bool ok) +{ + loadFinished = ok; + emit sourceChanged(url()); +} + #else // !defined(QT_NO_WEBKIT) HelpViewer::HelpViewer(QHelpEngine *engine, Help::Internal::CentralWidget *parent) diff --git a/src/shared/help/helpviewer.h b/src/shared/help/helpviewer.h index cd6f699feb2..fea0b2dd4bf 100644 --- a/src/shared/help/helpviewer.h +++ b/src/shared/help/helpviewer.h @@ -90,6 +90,8 @@ public: { return pageAction(QWebPage::Forward)->isEnabled(); } inline bool isBackwardAvailable() const { return pageAction(QWebPage::Back)->isEnabled(); } + inline bool hasLoadFinished() const + { return loadFinished; } public Q_SLOTS: void home(); @@ -109,12 +111,14 @@ protected: private Q_SLOTS: void actionChanged(); + void setLoadFinished(bool ok); private: QHelpEngine *helpEngine; Help::Internal::CentralWidget* parentWidget; QUrl homeUrl; bool multiTabsAllowed; + bool loadFinished; }; #else -- GitLab