Quit Installer Example

Using a component script to quit an installer.

Quit Installer illustrates how to use the Component() function to display a message box to end users for quitting the installation if some requirements for the installation are not met.

Configuring the Example Installer

The installer configuration file, config.xml, in the config directory specifies the text and default values used in the installer:

  • The <Name> element sets the application name and adds it to the page name and introduction text.
  • The <Version> element sets the application version number.
  • The <Title> element sets the installer name and displays it on the title bar.
  • The <Publisher> element sets the publisher of the software (as shown in the Windows Control Panel, for example).
  • The <StartMenuDir> element sets the name of the default program group for the product in the Windows Start menu.
  • The <TargetDir> element sets the default target directory location to be within the IfwExamples directory in the home directory of the current user (because it uses the pre-existing variable , @HomeDir@, as part of the value). For more information, see Predefined Variables.
<?xml version="1.0" encoding="UTF-8"?>
<Installer>
    <Name>Quit Installer Example</Name>
    <Version>1.0.0</Version>
    <Title>Quit Installer Example</Title>
    <Publisher>Qt-Project</Publisher>
    <StartMenuDir>Qt IFW Examples</StartMenuDir>
    <TargetDir>@HomeDir@/IfwExamples/quitinstaller</TargetDir>
</Installer>

Creating the Example Package Information File

The installer package information file, package.xml, in the meta directory specifies the components that are available for installation:

  • The <DisplayName> element sets the human-readable name of the component.
  • The <Description> element sets the human-readable description of the component.
  • The <Version> element sets the version number of the component.
  • The <ReleaseDate> element sets the date of release for this component version.
  • The <Default> element is set to true to preselect the component in the installer.
  • The <Script> element specifies the file name of the JavaScript file that is loaded to perform operations.
<?xml version="1.0"?>
<Package>
    <DisplayName>Quit an installer</DisplayName>
    <Description>Quits the installer in a nice way, if there is something missing</Description>
    <Version>1.0.1</Version>
    <ReleaseDate>2013-02-27</ReleaseDate>
    <Default>true</Default>
    <Script>installscript.js</Script>
</Package>

Quitting the Installation

In installscript.js, we use the Component() function to display a message box for quitting the installer to end users:

function Component()
{
    var result = QMessageBox["question"]("test.quit", "Installer", "Do you want to quit the installer?<br>" +
        "This message box was created using JavaScript.", QMessageBox.Ok | QMessageBox.Cancel);

If end users select OK, we use the installer::setValue() function to display a message and the installer.setDefaultPageVisible() function to hide the subsequent installer pages:

    if (result == QMessageBox.Ok) {
        installer.setValue("FinishedText", "<font color='red' size=3>The installer was quit.</font>");
        installer.setDefaultPageVisible(QInstaller.TargetDirectory, false);
        installer.setDefaultPageVisible(QInstaller.ReadyForInstallation, false);
        installer.setDefaultPageVisible(QInstaller.ComponentSelection, false);
        installer.setDefaultPageVisible(QInstaller.StartMenuSelection, false);
        installer.setDefaultPageVisible(QInstaller.PerformInstallation, false);
        installer.setDefaultPageVisible(QInstaller.LicenseCheck, false);
        gui.clickButton(buttons.NextButton);

If end users select Cancel, we display the default installer pages and use the installer::setValue() function to display another message on the last installer page:

    } else {
        installer.setValue("FinishedText",
            "<font color='green' size=3>The installer was not quit by JavaScript.</font>");
    }
}

Generating the Example Installer

To create the example installer, switch to the example source directory on the command line and enter the following command:

  • On Windows:
    ..\..\bin\binarycreator.exe -c config\config.xml -p packages installer.exe
  • On Linux or macOS:
    ../../bin/binarycreator -c config/config.xml -p packages installer

This creates the installer to the current directory.

Files:

© 2021 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. The Qt Company, Qt and their respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.