Hi,

On 13.03.2014 14:46, Sandeep wrote:

Hello,

I went through the Qt-IF documentation may be 3 to 4 times, went through all the examples, did some trial and error but still not able to get hold of few things, in fact many things. Hoping to get some answers from the experts.

Question1: I want to get rid of the Header part of the Introduction Page, how do I do it?

The documentation at this link http://doc-snapshot.qt-project.org/qtifw-1.3/noninteractive.html talks about only selected widgets, for example, the Introduction Page has only access to 2 widgets, "Next", "Cancel" buttons, but what if I decide to not have the Header section (which has the title and the logo). Is there a way to disable? I am not talking about empty Title, I am talking about the getting rid of the whole Header part.

Question2: What is the difference between "function Component" and "function Controller" in the installer.qs scripts used in examples? Basically what are they? I tried registering for the IntroductionPageCallback but never got called.

function Component()

{

}

Component.prototype.IntroductionPageCallback=function()

{

}

Or?

function Controller()

{

}

Controller.prototype.IntroductionPageCallback = function()

{

}

Neither of them worked for me, Callbacks are not even called. what is the correct way to get a callback?

Just as an short explanation, once we put "your" script inside the script engine, we wrap it inside a closure, so it will look like this:

(function()
var component = installer.componentByName("your.component.name");
function Component()
{
};

// other stuff goes here

return new Component;
)();

Same goes for the Controller stuff. The Controller stuff is supposed to work with a script you pass as argument to the the installer binary, basically to support headless automated installations. I will come back to you ASAP on how to use that.

Question3: If I choose to run my application after the installation using the "<RunProgram>my app binary</RunProgram> , I get a checkbox with a tick mark after my installation, asking if I want to run my application, I can either check or uncheck the checkbox and say Next. This makes sense during installation flow. But this checkbox also appears after my uninstallation (last screen during uninstallation), asking "Do you want to run my app binary", which does not makes sense. How do I make sure the checkbox (run my app binary)does not come in the uninstallation flow.

This shouldn't happen, after looking at the code it will only show up if the binary is not running as installer and the run program is not empty. So i would recommend to open a bug report on https://bugreports.qt-project.org/secure/Dashboard.jspa and attach a sample script to show the broken behavior.

Question 4: When I register for the signals "installationFinished" my functions in the installscript.qs gets called, but surprisingly the signals "uninstallationStarted and uninstallationFinished" never gets called if I register some functions.

Same here, please open an issue and attach a script that shows the broken behavior.

Not sure why? Also in qinstaller.h we have the below code for identifying different state/stages of installation, but how can I get similar information for un-installation?

You can ask the installer about its run mode, like this:

function Component()
{
    component.loaded.connect(this, Component.prototype.loaded);
installer.installationFinished.connect(this, Component.prototype.installationFinishedPageIsShown);

/*
    NOTE: you have access to the following global variables:
        component    // like: component.userInterface(...)
        QInstaller   // like: QInstaller.Success
        installer    // like installer.isInstaller()
        QFileDialog, buttons, QMessageBox, QDesktopServices
*/
}

Component.prototype.loaded = function()
{
    var foo = installer.isInstaller();
    var bar = installer.isUninstaller();
}

Component.prototype.installationFinishedPageIsShown = function()
{
    if (installer.isInstaller() && installer.status == QInstaller.Success)
installer.addWizardPageItem( component, "YourCheckBoxToStartAnApp", QInstaller.InstallationFinished);
}

enum Status {

    InstallerUnfinished,

    InstallerCanceledByUser,

    InstallerRunning,

    InstallerFailed,

    InstallerSucceeded,

};

int status() const;

enum WizardPage {

    Introduction = 0x1000,

    TargetDirectory = 0x2000,

    ComponentSelection = 0x3000,

    LicenseCheck = 0x4000,

    StartMenuSelection = 0x5000,

    ReadyForInstallation = 0x6000,

    PerformInstallation = 0x7000,

    InstallationFinished = 0x8000,

    End = 0xffff

};

Thanks,

-Sandeep



_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

-- Karsten
_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to