From 62946c410dbc6796ea7d3c2e05f9145c162a548f Mon Sep 17 00:00:00 2001 From: Max Wilfinger <6246609+maxwxyz@users.noreply.github.com> Date: Tue, 8 Jul 2025 23:23:01 +0200 Subject: [PATCH] Update Help menu. Remove outdated links; add Developers handbook (#22283) * Update Help menu. Remove outdated links; add Developers handbook * Apply suggestions from code review * Update src/Gui/CommandStd.cpp * Update Shortcuts.cfg --- src/Gui/CommandStd.cpp | 125 ++++++------------ src/Gui/PreferencePackTemplates/Shortcuts.cfg | 4 +- src/Gui/Workbench.cpp | 6 +- 3 files changed, 42 insertions(+), 93 deletions(-) diff --git a/src/Gui/CommandStd.cpp b/src/Gui/CommandStd.cpp index d6e0087af7..cc93595e84 100644 --- a/src/Gui/CommandStd.cpp +++ b/src/Gui/CommandStd.cpp @@ -574,8 +574,8 @@ StdCmdFreeCADDonation::StdCmdFreeCADDonation() :Command("Std_FreeCADDonation") { sGroup = "Help"; - sMenuText = QT_TR_NOOP("Support FreeCA&D"); - sToolTipText = QT_TR_NOOP("Support FreeCAD development"); + sMenuText = QT_TR_NOOP("Donate to FreeCA&D"); + sToolTipText = QT_TR_NOOP("Support the FreeCAD development"); sWhatsThis = "Std_FreeCADDonation"; sStatusTip = sToolTipText; sPixmap = "internet-web-browser"; @@ -586,11 +586,45 @@ void StdCmdFreeCADDonation::activated(int iMsg) { Q_UNUSED(iMsg); ParameterGrp::handle hURLGrp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/Websites"); - std::string url = hURLGrp->GetASCII("DonatePage", "https://wiki.freecad.org/Donate"); + std::string url = hURLGrp->GetASCII("DonatePage", "https://www.freecad.org/sponsor"); hURLGrp->SetASCII("DonatePage", url.c_str()); OpenURLInBrowser(url.c_str()); } +//=========================================================================== +// Std_FreeDevHandbook + +//=========================================================================== + +DEF_STD_CMD(StdCmdDevHandbook) + +StdCmdDevHandbook::StdCmdDevHandbook() + + : Command("Std_DevHandbook") +{ + sGroup = "Help"; + sMenuText = QT_TR_NOOP("Developers Handbook"); + + sToolTipText = QT_TR_NOOP("Handbook about FreeCAD development"); + + sWhatsThis = "Std_DevHandbook"; + sStatusTip = sToolTipText; + sPixmap = "internet-web-browser"; + eType = 0; +} + +void StdCmdDevHandbook::activated(int iMsg) + +{ + Q_UNUSED(iMsg); + ParameterGrp::handle hURLGrp = App::GetApplication().GetParameterGroupByPath( + "User parameter:BaseApp/Preferences/Websites"); + std::string url = hURLGrp->GetASCII("DevHandbook", "https://freecad.github.io/DevelopersHandbook/"); + + hURLGrp->SetASCII("DevHandbook", url.c_str()); + OpenURLInBrowser(url.c_str()); +} + //=========================================================================== // Std_FreeCADWebsite //=========================================================================== @@ -647,34 +681,6 @@ void StdCmdFreeCADUserHub::activated(int iMsg) OpenURLInBrowser(url.c_str()); } -//=========================================================================== -// Std_FreeCADPowerUserHub -//=========================================================================== - -DEF_STD_CMD(StdCmdFreeCADPowerUserHub) - -StdCmdFreeCADPowerUserHub::StdCmdFreeCADPowerUserHub() - :Command("Std_FreeCADPowerUserHub") -{ - sGroup = "Help"; - sMenuText = QT_TR_NOOP("&Python Scripting Documentation"); - sToolTipText = QT_TR_NOOP("Opens the Python Scripting documentation"); - sWhatsThis = "Std_FreeCADPowerUserHub"; - sStatusTip = sToolTipText; - sPixmap = "applications-python"; - eType = 0; -} - -void StdCmdFreeCADPowerUserHub::activated(int iMsg) -{ - Q_UNUSED(iMsg); - std::string defaulturl = QCoreApplication::translate(this->className(),"https://wiki.freecad.org/Power_users_hub").toStdString(); - ParameterGrp::handle hURLGrp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/Websites"); - std::string url = hURLGrp->GetASCII("PowerUsers", defaulturl.c_str()); - hURLGrp->SetASCII("PowerUsers", url.c_str()); - OpenURLInBrowser(url.c_str()); -} - //=========================================================================== // Std_FreeCADForum //=========================================================================== @@ -703,59 +709,6 @@ void StdCmdFreeCADForum::activated(int iMsg) OpenURLInBrowser(url.c_str()); } -//=========================================================================== -// Std_FreeCADFAQ -//=========================================================================== - -DEF_STD_CMD(StdCmdFreeCADFAQ) - -StdCmdFreeCADFAQ::StdCmdFreeCADFAQ() - :Command("Std_FreeCADFAQ") -{ - sGroup = "Help"; - sMenuText = QT_TR_NOOP("FreeCAD FA&Q"); - sToolTipText = QT_TR_NOOP("Opens the Frequently Asked Questions"); - sWhatsThis = "Std_FreeCADFAQ"; - sStatusTip = sToolTipText; - sPixmap = "internet-web-browser"; - eType = 0; -} - -void StdCmdFreeCADFAQ::activated(int iMsg) -{ - Q_UNUSED(iMsg); - std::string defaulturl = QCoreApplication::translate(this->className(),"https://wiki.freecad.org/Frequently_asked_questions").toStdString(); - ParameterGrp::handle hURLGrp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/Websites"); - std::string url = hURLGrp->GetASCII("FAQ", defaulturl.c_str()); - hURLGrp->SetASCII("FAQ", url.c_str()); - OpenURLInBrowser(url.c_str()); -} - -//=========================================================================== -// Std_PythonWebsite -//=========================================================================== - -DEF_STD_CMD(StdCmdPythonWebsite) - -StdCmdPythonWebsite::StdCmdPythonWebsite() - :Command("Std_PythonWebsite") -{ - sGroup = "Help"; - sMenuText = QT_TR_NOOP("Python Website"); - sToolTipText = QT_TR_NOOP("The official Python website"); - sWhatsThis = "Std_PythonWebsite"; - sStatusTip = QT_TR_NOOP("Python Website"); - sPixmap = "applications-python"; - eType = 0; -} - -void StdCmdPythonWebsite::activated(int iMsg) -{ - Q_UNUSED(iMsg); - OpenURLInBrowser("https://www.python.org"); -} - - //=========================================================================== // Std_ReportBug //=========================================================================== @@ -991,15 +944,13 @@ void CreateStdCommands() rcCmdMgr.addCommand(new StdCmdFreeCADWebsite()); rcCmdMgr.addCommand(new StdCmdFreeCADDonation()); rcCmdMgr.addCommand(new StdCmdFreeCADUserHub()); - rcCmdMgr.addCommand(new StdCmdFreeCADPowerUserHub()); rcCmdMgr.addCommand(new StdCmdFreeCADForum()); - rcCmdMgr.addCommand(new StdCmdFreeCADFAQ()); - rcCmdMgr.addCommand(new StdCmdPythonWebsite()); rcCmdMgr.addCommand(new StdCmdReportBug()); rcCmdMgr.addCommand(new StdCmdTextDocument()); rcCmdMgr.addCommand(new StdCmdUnitsCalculator()); rcCmdMgr.addCommand(new StdCmdUserEditMode()); rcCmdMgr.addCommand(new StdCmdReloadStyleSheet()); + rcCmdMgr.addCommand(new StdCmdDevHandbook()); //rcCmdMgr.addCommand(new StdCmdDownloadOnlineHelp()); //rcCmdMgr.addCommand(new StdCmdDescription()); } diff --git a/src/Gui/PreferencePackTemplates/Shortcuts.cfg b/src/Gui/PreferencePackTemplates/Shortcuts.cfg index 63db87461b..1ef9b11b24 100644 --- a/src/Gui/PreferencePackTemplates/Shortcuts.cfg +++ b/src/Gui/PreferencePackTemplates/Shortcuts.cfg @@ -627,6 +627,7 @@ Del + Ctrl+F6 @@ -642,9 +643,7 @@ - - @@ -690,7 +689,6 @@ - Ctrl+Q End diff --git a/src/Gui/Workbench.cpp b/src/Gui/Workbench.cpp index 5acad2bc8f..5adecc1ce0 100644 --- a/src/Gui/Workbench.cpp +++ b/src/Gui/Workbench.cpp @@ -767,11 +767,11 @@ MenuItem* StdWorkbench::setupMenuBar() const // Help auto help = new MenuItem( menuBar ); help->setCommand("&Help"); - *help << "Std_OnlineHelp" << "Std_WhatsThis" << "Separator" + *help << "Std_WhatsThis" << "Separator" // Start page and additional separator are dynamically inserted here - << "Std_FreeCADUserHub" << "Std_FreeCADForum" << "Std_FreeCADFAQ" << "Std_ReportBug" << "Separator" + << "Std_FreeCADUserHub" << "Std_FreeCADForum" << "Std_ReportBug" << "Separator" << "Std_RestartInSafeMode" << "Separator" - << "Std_FreeCADPowerUserHub" << "Std_PythonHelp" << "Separator" + << "Std_DevHandbook" << "Std_PythonHelp" << "Separator" << "Std_FreeCADWebsite" << "Std_FreeCADDonation" << "Std_About"; return menuBar;