From 83d0234d3c46a39a75bc54a0765163112b6738c3 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Tue, 21 Jun 2016 02:29:28 +0200 Subject: [PATCH] refs #680, call help URL from menu * added central functionality in CGuiApplication * function in global setup for URL --- src/blackcore/data/globalsetup.cpp | 5 +++++ src/blackcore/data/globalsetup.h | 3 +++ src/blackgui/guiapplication.cpp | 17 +++++++++++++++++ src/blackgui/guiapplication.h | 3 +++ src/swiftdata/swiftdata.cpp | 1 + src/swiftguistandard/swiftguistdmenus.cpp | 1 + 6 files changed, 30 insertions(+) diff --git a/src/blackcore/data/globalsetup.cpp b/src/blackcore/data/globalsetup.cpp index 67bfc3347..b91bae16b 100644 --- a/src/blackcore/data/globalsetup.cpp +++ b/src/blackcore/data/globalsetup.cpp @@ -57,6 +57,11 @@ namespace BlackCore return getDbRootDirectoryUrl().withAppendedPath("/page/index.php"); } + CUrl CGlobalSetup::getHelpPageUrl() const + { + return getDbRootDirectoryUrl().withAppendedPath("/page/index.php"); + } + CUrl CGlobalSetup::getDbLoginServiceUrl() const { return getDbRootDirectoryUrl(). diff --git a/src/blackcore/data/globalsetup.h b/src/blackcore/data/globalsetup.h index 45f58ca03..cdd999ceb 100644 --- a/src/blackcore/data/globalsetup.h +++ b/src/blackcore/data/globalsetup.h @@ -84,6 +84,9 @@ namespace BlackCore //! Home page url BlackMisc::Network::CUrl getDbHomePageUrl() const; + //! Help page URL + BlackMisc::Network::CUrl getHelpPageUrl() const; + //! Login service BlackMisc::Network::CUrl getDbLoginServiceUrl() const; diff --git a/src/blackgui/guiapplication.cpp b/src/blackgui/guiapplication.cpp index 143e21c32..2f4c75fc7 100644 --- a/src/blackgui/guiapplication.cpp +++ b/src/blackgui/guiapplication.cpp @@ -44,6 +44,8 @@ using namespace BlackConfig; using namespace BlackMisc; +using namespace BlackMisc::Network; +using namespace BlackCore::Data; BlackGui::CGuiApplication *sGui = nullptr; // set by constructor @@ -454,6 +456,21 @@ namespace BlackGui Q_ASSERT_X(c, Q_FUNC_INFO, "Connect failed"); } + void CGuiApplication::addMenuHelp(QMenu &menu) + { + QWidget *w = mainApplicationWindow(); + if (!w) { return; } + + const CGlobalSetup gs = this->getGlobalSetup(); + const CUrl helpPage = gs.getHelpPageUrl(); + QAction *a = menu.addAction(w->style()->standardIcon(QStyle::SP_TitleBarContextHelpButton), "Online help"); + bool c = connect(a, &QAction::triggered, this, [helpPage]() + { + QDesktopServices::openUrl(helpPage); + }); + Q_ASSERT_X(c, Q_FUNC_INFO, "Connect failed"); + } + const CStyleSheetUtility &CGuiApplication::getStyleSheetUtility() const { return this->m_styleSheetUtility; diff --git a/src/blackgui/guiapplication.h b/src/blackgui/guiapplication.h index b7ff3e0bd..513f784b6 100644 --- a/src/blackgui/guiapplication.h +++ b/src/blackgui/guiapplication.h @@ -126,6 +126,9 @@ namespace BlackGui //! Window operations void addMenuWindow(QMenu &menu); + //! Help operations + void addMenuHelp(QMenu &menu); + //! Style sheet handling const CStyleSheetUtility &getStyleSheetUtility() const; diff --git a/src/swiftdata/swiftdata.cpp b/src/swiftdata/swiftdata.cpp index 8a8e1fb36..82836d3b9 100644 --- a/src/swiftdata/swiftdata.cpp +++ b/src/swiftdata/swiftdata.cpp @@ -123,6 +123,7 @@ void CSwiftData::initMenu() sGui->addMenuFile(*this->ui->menu_File); sGui->addMenuInternals(*this->ui->menu_Internals); sGui->addMenuWindow(*this->ui->menu_Window); + sGui->addMenuHelp(*this->ui->menu_Help); } void CSwiftData::performGracefulShutdown() diff --git a/src/swiftguistandard/swiftguistdmenus.cpp b/src/swiftguistandard/swiftguistdmenus.cpp index f96968cad..b1a61b1f3 100644 --- a/src/swiftguistandard/swiftguistdmenus.cpp +++ b/src/swiftguistandard/swiftguistdmenus.cpp @@ -72,5 +72,6 @@ void SwiftGuiStd::initMenus() sGui->addMenuFile(*this->ui->menu_File); sGui->addMenuInternals(*this->ui->menu_Internals); sGui->addMenuWindow(*this->ui->menu_Window); + sGui->addMenuHelp(*this->ui->menu_Help); this->ui->menu_InfoAreas->addActions(this->ui->comp_MainInfoArea->getInfoAreaSelectActions(this->ui->menu_InfoAreas)); }