[Interest] Qt Installer Framework 2.0.0 [ OS X ] - How to launch my.app on finish?

Eddie Sutton edsutton at gmail.com
Thu Apr 9 21:33:58 CEST 2015


Thank you.  Solved.

It works great.

Component.prototype.installationFinished = function()
{
    try {

        if (installer.isInstaller() && installer.status == QInstaller.Success) {

            /* http://doc.qt.io/qtinstallerframework/scripting-installer.html#execute-method */
            var argList = ["-a", "@TargetDir@/my.app"];
            installer.execute("open", argList);
        }
    } catch(e) {
        console.log(e);
    }
}


-Ed


> On Apr 9, 2015, at 10:08 AM, Koehne Kai <Kai.Koehne at theqtcompany.com> wrote:
> 
> 
> 
>> -----Original Message-----
>> From: Eddie Sutton [mailto:edsutton at gmail.com]
>> Sent: Thursday, April 09, 2015 3:45 PM
>> To: Koehne Kai
>> Cc: Kalinowski Maurice; Qt Project
>> Subject: Re: [Interest] Qt Installer Framework 2.0.0 [ OS X ] - How to launch
>> my.app on finish?
>> 
>> Kai,
>> 
>> The open openreadme example was what got me started down this path.
>> 
>> 1 - QDesktopServices can not launch an app.
>> 2 - I understand I must add an “Execute” operation in the createOperations()
>> function.
>> 3 - Can execution of an operation be deferred until installationFinished?
> 
> No, but you can also directly call installer.execute() or installer.executeDetached():
> 
> 
> https://doc.qt.io/qtinstallerframework/scripting-installer.html#execute-method
> 
> 
>> Component.prototype.createOperations = function() {
>>    component.createOperations();
>>    /* \todo Can execution of this operation be deferred until
>> installationFinished()? */
>>    component.addOperation("Execute", "open", "-a",
>> "@TargetDir@/TSR.app"); }
>> 
>> 
>> Just in case, I tried moving the addOperation() to installationFinished().
>> However it does not execute and has no effect.
> 
> Right, that's too late to queue an operation.
> 
> 
> Regards
> 
> Kai
> 




More information about the Interest mailing list