Ref T157, add context for help calls and call dispatcher

This commit is contained in:
Klaus Basan
2017-09-21 20:46:16 +02:00
committed by Mathew Sutcliffe
parent 0a4accc809
commit ad32d33aa1
6 changed files with 32 additions and 20 deletions

View File

@@ -19,7 +19,7 @@
}, },
"onlineHelpUrls": { "onlineHelpUrls": {
"containerbase": [{ "containerbase": [{
"url": "http://help.swift-project.org" "url": "https://datastore.swift-project.org/page/swifthelpdispatcher.html"
}] }]
}, },
"mapUrls": { "mapUrls": {

View File

@@ -100,15 +100,23 @@ namespace BlackCore
return getDbRootDirectoryUrl().withAppendedPath("/page/index.php"); return getDbRootDirectoryUrl().withAppendedPath("/page/index.php");
} }
CUrl CGlobalSetup::getHelpPageUrl() const CUrl CGlobalSetup::getHelpPageUrl(const QString &context) const
{ {
const CUrlList urls(this->m_onlineHelpUrls); const CUrlList urls(this->m_onlineHelpUrls);
CUrl url = urls.getRandomWorkingUrl();
if (sApp) // we display in the standard browser, so the user will realize if the URL
// does not work
CUrl url = (urls.size() < 2) ? urls.frontOrDefault() : urls.getRandomUrl();
if (url.isEmpty()) { return url; }
// context string something like "application.moreSpecific.evenMoreSpecific"
QString c = "client";
if (QCoreApplication::instance())
{ {
const QString a = sApp->getApplicationNameVersionBetaDev(); c = QCoreApplication::instance()->applicationName();
url.appendQuery("swift", a);
} }
if (!context.isEmpty()) { c += "." + context; }
url.appendQuery("context", c);
return url; return url;
} }
@@ -208,11 +216,6 @@ namespace BlackCore
return m_newsUrls; return m_newsUrls;
} }
const CUrlList &CGlobalSetup::getOnlineHelpUrls() const
{
return m_onlineHelpUrls;
}
const CUrlList &CGlobalSetup::getSwiftMapUrls() const const CUrlList &CGlobalSetup::getSwiftMapUrls() const
{ {
return m_mapUrls; return m_mapUrls;
@@ -255,7 +258,7 @@ namespace BlackCore
% getSwiftLatestNewsUrls().toQString(i18n) % getSwiftLatestNewsUrls().toQString(i18n)
% separator % separator
% "Help URLs: " % "Help URLs: "
% getOnlineHelpUrls().toQString(i18n) % m_onlineHelpUrls.toQString(i18n)
% separator % separator
% "swift map URLs: " % "swift map URLs: "
% getSwiftMapUrls().toQString(i18n) % getSwiftMapUrls().toQString(i18n)

View File

@@ -153,12 +153,9 @@ namespace BlackCore
//! Locations of swift DB news //! Locations of swift DB news
const BlackMisc::Network::CUrlList &getSwiftLatestNewsUrls() const; const BlackMisc::Network::CUrlList &getSwiftLatestNewsUrls() const;
//! Online help URLs
const BlackMisc::Network::CUrlList &getOnlineHelpUrls() const;
//! Help page URL //! Help page URL
//! \remark working URL evaluated at runtime, based on getOnlineHelpUrls //! \remark working URL evaluated at runtime, based on getOnlineHelpUrls
BlackMisc::Network::CUrl getHelpPageUrl() const; BlackMisc::Network::CUrl getHelpPageUrl(const QString &context = {}) const;
//! swift map URLs //! swift map URLs
const BlackMisc::Network::CUrlList &getSwiftMapUrls() const; const BlackMisc::Network::CUrlList &getSwiftMapUrls() const;

View File

@@ -46,7 +46,10 @@ namespace BlackGui
connect(this, &QWizard::accepted, this, &CConfigurationWizard::ended); connect(this, &QWizard::accepted, this, &CConfigurationWizard::ended);
Q_ASSERT_X(sGui, Q_FUNC_INFO, "missing sGui"); Q_ASSERT_X(sGui, Q_FUNC_INFO, "missing sGui");
connect(this, &QWizard::helpRequested, sGui, &CGuiApplication::showHelp); connect(this, &QWizard::helpRequested, sGui, [ = ]
{
sGui->showHelp(this);
});
} }
CConfigurationWizard::~CConfigurationWizard() CConfigurationWizard::~CConfigurationWizard()

View File

@@ -556,10 +556,10 @@ namespace BlackGui
Q_UNUSED(c); Q_UNUSED(c);
} }
void CGuiApplication::showHelp() void CGuiApplication::showHelp(const QString &context) const
{ {
const CGlobalSetup gs = this->getGlobalSetup(); const CGlobalSetup gs = this->getGlobalSetup();
const CUrl helpPage = gs.getHelpPageUrl(); const CUrl helpPage = gs.getHelpPageUrl(context);
if (helpPage.isEmpty()) if (helpPage.isEmpty())
{ {
CLogMessage(this).warning("No help page"); CLogMessage(this).warning("No help page");
@@ -568,6 +568,12 @@ namespace BlackGui
QDesktopServices::openUrl(helpPage); QDesktopServices::openUrl(helpPage);
} }
void CGuiApplication::showHelp(const QObject *qObject) const
{
if (!qObject || qObject->objectName().isEmpty()) { return this->showHelp(); }
return this->showHelp(qObject->objectName());
}
const CStyleSheetUtility &CGuiApplication::getStyleSheetUtility() const const CStyleSheetUtility &CGuiApplication::getStyleSheetUtility() const
{ {
return this->m_styleSheetUtility; return this->m_styleSheetUtility;

View File

@@ -143,7 +143,10 @@ namespace BlackGui
void addMenuHelp(QMenu &menu); void addMenuHelp(QMenu &menu);
//! Show help page (online help) //! Show help page (online help)
void showHelp(); void showHelp(const QString &context = {}) const;
//! Show help page (online help), use QObject::objectName as 2nd level context
void showHelp(const QObject *qObject) const;
//! Style sheet handling //! Style sheet handling
const CStyleSheetUtility &getStyleSheetUtility() const; const CStyleSheetUtility &getStyleSheetUtility() const;