mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-04 00:16:51 +08:00
Ref T157, add context for help calls and call dispatcher
This commit is contained in:
committed by
Mathew Sutcliffe
parent
0a4accc809
commit
ad32d33aa1
@@ -100,15 +100,23 @@ namespace BlackCore
|
||||
return getDbRootDirectoryUrl().withAppendedPath("/page/index.php");
|
||||
}
|
||||
|
||||
CUrl CGlobalSetup::getHelpPageUrl() const
|
||||
CUrl CGlobalSetup::getHelpPageUrl(const QString &context) const
|
||||
{
|
||||
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();
|
||||
url.appendQuery("swift", a);
|
||||
c = QCoreApplication::instance()->applicationName();
|
||||
}
|
||||
if (!context.isEmpty()) { c += "." + context; }
|
||||
url.appendQuery("context", c);
|
||||
return url;
|
||||
}
|
||||
|
||||
@@ -208,11 +216,6 @@ namespace BlackCore
|
||||
return m_newsUrls;
|
||||
}
|
||||
|
||||
const CUrlList &CGlobalSetup::getOnlineHelpUrls() const
|
||||
{
|
||||
return m_onlineHelpUrls;
|
||||
}
|
||||
|
||||
const CUrlList &CGlobalSetup::getSwiftMapUrls() const
|
||||
{
|
||||
return m_mapUrls;
|
||||
@@ -255,7 +258,7 @@ namespace BlackCore
|
||||
% getSwiftLatestNewsUrls().toQString(i18n)
|
||||
% separator
|
||||
% "Help URLs: "
|
||||
% getOnlineHelpUrls().toQString(i18n)
|
||||
% m_onlineHelpUrls.toQString(i18n)
|
||||
% separator
|
||||
% "swift map URLs: "
|
||||
% getSwiftMapUrls().toQString(i18n)
|
||||
|
||||
@@ -153,12 +153,9 @@ namespace BlackCore
|
||||
//! Locations of swift DB news
|
||||
const BlackMisc::Network::CUrlList &getSwiftLatestNewsUrls() const;
|
||||
|
||||
//! Online help URLs
|
||||
const BlackMisc::Network::CUrlList &getOnlineHelpUrls() const;
|
||||
|
||||
//! Help page URL
|
||||
//! \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
|
||||
const BlackMisc::Network::CUrlList &getSwiftMapUrls() const;
|
||||
|
||||
@@ -46,7 +46,10 @@ namespace BlackGui
|
||||
connect(this, &QWizard::accepted, this, &CConfigurationWizard::ended);
|
||||
|
||||
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()
|
||||
|
||||
@@ -556,10 +556,10 @@ namespace BlackGui
|
||||
Q_UNUSED(c);
|
||||
}
|
||||
|
||||
void CGuiApplication::showHelp()
|
||||
void CGuiApplication::showHelp(const QString &context) const
|
||||
{
|
||||
const CGlobalSetup gs = this->getGlobalSetup();
|
||||
const CUrl helpPage = gs.getHelpPageUrl();
|
||||
const CUrl helpPage = gs.getHelpPageUrl(context);
|
||||
if (helpPage.isEmpty())
|
||||
{
|
||||
CLogMessage(this).warning("No help page");
|
||||
@@ -568,6 +568,12 @@ namespace BlackGui
|
||||
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
|
||||
{
|
||||
return this->m_styleSheetUtility;
|
||||
|
||||
@@ -143,7 +143,10 @@ namespace BlackGui
|
||||
void addMenuHelp(QMenu &menu);
|
||||
|
||||
//! 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
|
||||
const CStyleSheetUtility &getStyleSheetUtility() const;
|
||||
|
||||
Reference in New Issue
Block a user