From 8b5a0e0fef106fb62cad4a0268438c00e05a4b04 Mon Sep 17 00:00:00 2001 From: Konstantin Podsvirov Date: Fri, 27 Nov 2020 22:15:18 +0300 Subject: CPackIFW: Add CPACK_IFW_PACKAGE_WIZARD_SHOW_PAGE_LIST variable Add CPACK_IFW_PACKAGE_WIZARD_SHOW_PAGE_LIST variable to control visibility of the widget listing installer pages on the left side of the wizard. This feature available only since QtIFW 4.0. --- Help/cpack_gen/ifw.rst | 6 ++++++ .../dev/cpackifw-package-wizard-show-page-list.rst | 7 ++++++ Source/CPack/IFW/cmCPackIFWInstaller.cxx | 25 ++++++++++++++++++++++ Source/CPack/IFW/cmCPackIFWInstaller.h | 4 ++++ 4 files changed, 42 insertions(+) create mode 100644 Help/release/dev/cpackifw-package-wizard-show-page-list.rst diff --git a/Help/cpack_gen/ifw.rst b/Help/cpack_gen/ifw.rst index 3315411..0dd2816 100644 --- a/Help/cpack_gen/ifw.rst +++ b/Help/cpack_gen/ifw.rst @@ -109,6 +109,12 @@ Package Default height of the wizard in pixels. Setting a watermark image will override this. +.. variable:: CPACK_IFW_PACKAGE_WIZARD_SHOW_PAGE_LIST + + Set to ``OFF`` if the widget listing installer pages on the left side of the wizard should not be shown. + + Is ``ON`` by default. + .. variable:: CPACK_IFW_PACKAGE_TITLE_COLOR .. versionadded:: 3.8 diff --git a/Help/release/dev/cpackifw-package-wizard-show-page-list.rst b/Help/release/dev/cpackifw-package-wizard-show-page-list.rst new file mode 100644 index 0000000..ede69f5 --- /dev/null +++ b/Help/release/dev/cpackifw-package-wizard-show-page-list.rst @@ -0,0 +1,7 @@ +cpackifw-package-wizard-show-page-list +-------------------------------------- + +* The :cpack_gen:`CPack IFW Generator` gained new + :variable:`CPACK_IFW_PACKAGE_WIZARD_SHOW_PAGE_LIST` variable to + control visibility of the widget listing installer pages on the left side + of the wizard. This feature available only since QtIFW 4.0. diff --git a/Source/CPack/IFW/cmCPackIFWInstaller.cxx b/Source/CPack/IFW/cmCPackIFWInstaller.cxx index 4bad598..8e00ad6 100644 --- a/Source/CPack/IFW/cmCPackIFWInstaller.cxx +++ b/Source/CPack/IFW/cmCPackIFWInstaller.cxx @@ -174,6 +174,26 @@ void cmCPackIFWInstaller::ConfigureFromOptions() this->WizardDefaultHeight = option; } + // WizardShowPageList + if (const char* option = + this->GetOption("CPACK_IFW_PACKAGE_WIZARD_SHOW_PAGE_LIST")) { + if (!this->IsVersionLess("4.0")) { + if (this->IsSetToOff("CPACK_IFW_PACKAGE_WIZARD_SHOW_PAGE_LIST")) { + this->WizardShowPageList = "false"; + } else if (this->IsOn("CPACK_IFW_PACKAGE_WIZARD_SHOW_PAGE_LIST")) { + this->WizardShowPageList = "true"; + } else { + this->WizardShowPageList.clear(); + } + } else { + cmCPackIFWLogger( + WARNING, + "Option CPACK_IFW_PACKAGE_WIZARD_SHOW_PAGE_LIST is set to value \"" + << option << "\". But has no any effect for QtIFW less than 4.0 " + << "and will be skipped." << std::endl); + } + } + // TitleColor if (const char* option = this->GetOption("CPACK_IFW_PACKAGE_TITLE_COLOR")) { this->TitleColor = option; @@ -408,6 +428,11 @@ void cmCPackIFWInstaller::GenerateInstallerFile() xout.Element("WizardDefaultHeight", this->WizardDefaultHeight); } + // WizardShowPageList + if (!this->IsVersionLess("4.0") && !this->WizardShowPageList.empty()) { + xout.Element("WizardShowPageList", this->WizardShowPageList); + } + // TitleColor if (!this->TitleColor.empty()) { xout.Element("TitleColor", this->TitleColor); diff --git a/Source/CPack/IFW/cmCPackIFWInstaller.h b/Source/CPack/IFW/cmCPackIFWInstaller.h index 6f398e3..a031fc2 100644 --- a/Source/CPack/IFW/cmCPackIFWInstaller.h +++ b/Source/CPack/IFW/cmCPackIFWInstaller.h @@ -80,6 +80,10 @@ public: /// Wizard height std::string WizardDefaultHeight; + /// Set to false if the widget listing installer pages on the left side + /// of the wizard should not be shown + std::string WizardShowPageList; + /// Title color std::string TitleColor; -- cgit v0.12