I am using QtInstallerFramework and I am trying to add custom page when uninstalling the app.
I have custompage.ui file(simple text) and I am adding it in my package.xml:
<UserInterfaces>
<UserInterface>custompage.ui</UserInterface>
</UserInterfaces>
And this is how I am using it in my componentscript.js:
Component.prototype.componentLoaded = function ()
{
installer.addWizardPage(component, "CustomPage", QInstaller.ReadyForInstallation)
}
The problem is that the page is displayed only when I install the application. When I uninstall it, CustomPage is not displayed.
Also, with another approach, if I try to add the customized page in my controlscript.js like this:
Controller.prototype.ReadyForInstallationPageCallback = function ()
{
try {
installer.addWizardPage(component, "CustomPage", QInstaller.ReadyForInstallation);
}
catch (e) {
QMessageBox.warning("QMessageBox", "", e, QMessageBox.Ok);
}
}
I am getting this error:
ReferenceError: component is not defined
So, it looks like the component is not loaded at all when the application is uninstalled.
And from Qt documentation we can add custom pages only in components xml file with <UserInterfaces> tag.
Does this mean that we can not use custom gui pages in the uninstaller or I am missing something?
During installation,
package.xmlandcomponentscript.jsare in full effect, allowing for dynamic addition of wizard pages.However, during uninstallation, the framework does not process component scripts in the same manner, which is why you see that custom pages do not appear.
You should use
installscript.qsto inject custom logic that runs during both installation and uninstallation (as in this example).Since this script is executed in both contexts, it is the ideal place to conditionally apply modifications for the uninstallation process.
It can distinguish between installation and uninstallation through conditional checks, enabling specific actions during the uninstallation phase.
Use
installer.isUninstaller()to determine if the uninstallation process is underway, and then proceed with custom logic for adding or modifying wizard pages.You can add custom pages through
installer.addWizardPagefor the installation process.For uninstallation, consider modifying existing pages or using available hooks in
installscript.qsto interact with the uninstallation process.In
installscript.qs:Yes, something like: