From b5383bc76798284dc928dd1d63b5f95d1a00f6b6 Mon Sep 17 00:00:00 2001 From: Kyle Edwards Date: Thu, 9 Feb 2023 11:31:04 -0500 Subject: cmake-gui: Add optional filename argument to --browse-manual --- Help/manual/cmake-gui.1.rst | 8 +++++--- Source/QtDialog/CMakeSetup.cxx | 11 ++++++++--- Source/QtDialog/CMakeSetupDialog.cxx | 7 ++++--- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/Help/manual/cmake-gui.1.rst b/Help/manual/cmake-gui.1.rst index cdb860f..367b0a7 100644 --- a/Help/manual/cmake-gui.1.rst +++ b/Help/manual/cmake-gui.1.rst @@ -11,7 +11,7 @@ Synopsis cmake-gui [] cmake-gui [] cmake-gui [] -S -B - cmake-gui [] --browse-manual + cmake-gui [] --browse-manual [] Description =========== @@ -46,9 +46,11 @@ Options Name of the preset to use from the project's :manual:`presets ` files, if it has them. -.. option:: --browse-manual +.. option:: --browse-manual [] - Open the CMake reference manual in a browser and immediately exit. + Open the CMake reference manual in a browser and immediately exit. If + ```` is specified, open that file within the reference manual + instead of ``index.html``. .. include:: OPTIONS_HELP.txt diff --git a/Source/QtDialog/CMakeSetup.cxx b/Source/QtDialog/CMakeSetup.cxx index 50e8e3a..21ed8c8 100644 --- a/Source/QtDialog/CMakeSetup.cxx +++ b/Source/QtDialog/CMakeSetup.cxx @@ -34,7 +34,7 @@ const cmDocumentationEntry cmDocumentationUsage = { " cmake-gui [options] \n" " cmake-gui [options] \n" " cmake-gui [options] -S -B \n" - " cmake-gui [options] --browse-manual" + " cmake-gui [options] --browse-manual []" }; const cmDocumentationEntry cmDocumentationOptions[3] = { @@ -62,7 +62,7 @@ Q_IMPORT_PLUGIN(QWindowsVistaStylePlugin); int CMakeGUIExec(CMakeSetupDialog* window); void SetupDefaultQSettings(); -void OpenReferenceManual(); +void OpenReferenceManual(const QString& filename); int main(int argc, char** argv) { @@ -199,7 +199,12 @@ int main(int argc, char** argv) } presetName = preset.toStdString(); } else if (arg == "--browse-manual") { - OpenReferenceManual(); + ++i; + if (i >= args.size()) { + OpenReferenceManual("index.html"); + } else { + OpenReferenceManual(args[i]); + } return 0; } } diff --git a/Source/QtDialog/CMakeSetupDialog.cxx b/Source/QtDialog/CMakeSetupDialog.cxx index 3d4d726..8641407 100644 --- a/Source/QtDialog/CMakeSetupDialog.cxx +++ b/Source/QtDialog/CMakeSetupDialog.cxx @@ -42,7 +42,7 @@ #include "RegexExplorer.h" #include "WarningMessagesDialog.h" -void OpenReferenceManual() +void OpenReferenceManual(const QString& filename) { QString urlFormat("https://cmake.org/cmake/help/v%1.%2/"); QUrl url(urlFormat.arg(QString::number(cmVersion::GetMajorVersion()), @@ -51,7 +51,7 @@ void OpenReferenceManual() if (!cmSystemTools::GetHTMLDoc().empty()) { url = QUrl::fromLocalFile( QDir(QString::fromStdString(cmSystemTools::GetHTMLDoc())) - .filePath("index.html")); + .filePath(filename)); } QDesktopServices::openUrl(url); @@ -212,7 +212,8 @@ CMakeSetupDialog::CMakeSetupDialog() QObject::connect(a, &QAction::triggered, this, &CMakeSetupDialog::doHelp); a->setShortcut(QKeySequence::HelpContents); a = HelpMenu->addAction(tr("CMake Reference Manual")); - QObject::connect(a, &QAction::triggered, this, OpenReferenceManual); + QObject::connect(a, &QAction::triggered, this, + [] { OpenReferenceManual("index.html"); }); a = HelpMenu->addAction(tr("About")); QObject::connect(a, &QAction::triggered, this, &CMakeSetupDialog::doAbout); -- cgit v0.12