From c1e001a541bf7b971c0f296279c11852a27b9c26 Mon Sep 17 00:00:00 2001 From: Mike Kremer Date: Wed, 22 Apr 2009 09:22:38 +0000 Subject: [PATCH] Refactored namespace handling within help system such that each help module (identified by a .qch file) is registered under a unique namespace under the overall common virtual folder "doc". git-svn-id: http://www.openflipper.org/svnrepo/OpenFlipper/branches/Free@5741 383ad7c9-94d9-4d36-a494-682f7c89f535 --- widgets/coreWidget/Help.cc | 5 +---- widgets/helpWidget/helpBrowser.cc | 25 +++++++++++++++++++------ widgets/helpWidget/helpBrowser.hh | 6 +++--- widgets/helpWidget/helpWidget.cc | 4 ++-- widgets/helpWidget/helpWidget.hh | 2 +- 5 files changed, 26 insertions(+), 16 deletions(-) diff --git a/widgets/coreWidget/Help.cc b/widgets/coreWidget/Help.cc index d34a21cb..35f1f203 100644 --- a/widgets/coreWidget/Help.cc +++ b/widgets/coreWidget/Help.cc @@ -45,8 +45,6 @@ #include -#include - //== IMPLEMENTATION ========================================================== @@ -57,8 +55,7 @@ void CoreWidget::showHelpBrowser( ) { return; if(helpWidget_ == 0) - helpWidget_ = new HelpWidget(this, "qthelp://doc.openflipper.dev/openflipper-1.0-dev/main.html", - "qthelp://doc.openflipper.dev/openflipper-1.0-dev/"); + helpWidget_ = new HelpWidget(this, "qthelp://org.openflipper.dev/doc/main.html"); helpWidget_->show(); diff --git a/widgets/helpWidget/helpBrowser.cc b/widgets/helpWidget/helpBrowser.cc index 7700e9a7..15366583 100644 --- a/widgets/helpWidget/helpBrowser.cc +++ b/widgets/helpWidget/helpBrowser.cc @@ -10,11 +10,10 @@ #include -HelpBrowser::HelpBrowser(QHelpEngine* _helpEngine, const QUrl& _basePath, QWidget* parent) : +HelpBrowser::HelpBrowser(QHelpEngine* _helpEngine, QWidget* parent) : QTextBrowser(parent), - helpEngine_(_helpEngine), - basePath_(_basePath) { + helpEngine_(_helpEngine) { currentPage_ = 0; @@ -35,10 +34,24 @@ QVariant HelpBrowser::loadResource (int /*_type*/, const QUrl& _url) { } else { - // Set basePath_ as prefix of resource file - QUrl newUrl = QUrl(basePath_.toString() + _url.toString()); + QUrl newUrl; - return QVariant(helpEngine_->fileData(newUrl)); + QStringList docDomains = helpEngine_->registeredDocumentations(); + + // Search in all namespaces for requested file + for(int i = 0; i < docDomains.size(); i++) { + + QString sNewUrl = "qthelp://" + docDomains[i] + "/" + VIRTUAL_FOLDER + + "/" + _url.toString(); + + newUrl = helpEngine_->findFile(QUrl(sNewUrl)); + + if(newUrl.isValid()) return QVariant(helpEngine_->fileData(newUrl)); + } + + // If file has not been found in any of the namespaces + // return an empty QVariant + return QVariant(); } } diff --git a/widgets/helpWidget/helpBrowser.hh b/widgets/helpWidget/helpBrowser.hh index 9189c91e..89e3e87e 100644 --- a/widgets/helpWidget/helpBrowser.hh +++ b/widgets/helpWidget/helpBrowser.hh @@ -8,6 +8,8 @@ #ifndef HELPBROWSER_HH_ #define HELPBROWSER_HH_ +#define VIRTUAL_FOLDER "doc" + #include #include #include @@ -16,7 +18,7 @@ class HelpBrowser : public QTextBrowser { Q_OBJECT public: - HelpBrowser(QHelpEngine* _helpEngine, const QUrl& _basePath, QWidget* parent = 0); + HelpBrowser(QHelpEngine* _helpEngine, QWidget* parent = 0); virtual ~HelpBrowser(); @@ -52,8 +54,6 @@ private: QStringList visitedPages_; int currentPage_; - QUrl basePath_; - }; diff --git a/widgets/helpWidget/helpWidget.cc b/widgets/helpWidget/helpWidget.cc index b5d60a67..54234a18 100644 --- a/widgets/helpWidget/helpWidget.cc +++ b/widgets/helpWidget/helpWidget.cc @@ -13,7 +13,7 @@ #include -HelpWidget::HelpWidget(QWidget* parent, const QString& _homeSite, const QString& _baseURL) +HelpWidget::HelpWidget(QWidget* parent, const QString& _homeSite) : QMainWindow(parent), searchWidget_(0), tabWidget_(0), @@ -52,7 +52,7 @@ HelpWidget::HelpWidget(QWidget* parent, const QString& _homeSite, const QString& searchEngine_ = new QHelpSearchEngine(helpEngine_, this); - textWindow_ = new HelpBrowser(helpEngine_, _baseURL, this); + textWindow_ = new HelpBrowser(helpEngine_, this); homeIndex_ = tabWidget_->addTab(textWindow_, "Home"); diff --git a/widgets/helpWidget/helpWidget.hh b/widgets/helpWidget/helpWidget.hh index 25500e41..ffafd8b1 100644 --- a/widgets/helpWidget/helpWidget.hh +++ b/widgets/helpWidget/helpWidget.hh @@ -27,7 +27,7 @@ class HelpWidget : public QMainWindow, public Ui::HelpWidget public: - HelpWidget(QWidget* parent = 0, const QString& _homeSite = "", const QString& _baseURL = ""); + HelpWidget(QWidget* parent = 0, const QString& _homeSite = ""); virtual ~HelpWidget(); -- GitLab