jamulus/qt-installer-windows.qs
2019-07-21 19:17:53 +02:00

92 lines
3.4 KiB
JavaScript

/*
* Qt Installer script for a non-interactive installation of Qt5 on Windows.
* Installs the 64-bit package if environment variable PLATFORM="x64".
*/
// jshint strict:false
/* globals QInstaller, QMessageBox, buttons, gui, installer, console */
// Run with:
// .\qt-unified-windows-x86-3.0.4-online.exe --verbose --script tools\qt-installer-windows.qs
// Look for Name elements in
// https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/qt5_5123/Updates.xml
// Unfortunately it is not possible to disable deps like qt.tools.qtcreator
var INSTALL_COMPONENTS = [
installer.environmentVariable("PLATFORM") == "x64" ?
"qt.qt5.5123.win64_msvc2017_64" :
"qt.qt5.5123.win32_msvc2017",
];
function Controller() {
// Continue on installing to an existing (possibly empty) directory.
installer.setMessageBoxAutomaticAnswer("OverwriteTargetDirectory", QMessageBox.Yes);
// Continue at "SHOW FINISHED PAGE"
installer.installationFinished.connect(function() {
console.log("installationFinished");
gui.clickButton(buttons.NextButton);
});
}
Controller.prototype.WelcomePageCallback = function() {
console.log("Step: " + gui.currentPageWidget());
// At least for 3.0.4 immediately clicking Next fails, so wait a bit.
// https://github.com/benlau/qtci/commit/85cb986b66af4807a928c70e13d82d00dc26ebf0
gui.clickButton(buttons.NextButton, 1000);
};
Controller.prototype.CredentialsPageCallback = function() {
console.log("Step: " + gui.currentPageWidget());
gui.clickButton(buttons.NextButton);
};
Controller.prototype.IntroductionPageCallback = function() {
console.log("Step: " + gui.currentPageWidget());
gui.clickButton(buttons.NextButton);
};
Controller.prototype.TargetDirectoryPageCallback = function() {
console.log("Step: " + gui.currentPageWidget());
// Keep default at "C:\Qt".
//gui.currentPageWidget().TargetDirectoryLineEdit.setText("E:\\Qt");
gui.clickButton(buttons.NextButton);
};
Controller.prototype.ComponentSelectionPageCallback = function() {
console.log("Step: " + gui.currentPageWidget());
var page = gui.currentPageWidget();
page.deselectAll();
for (var i = 0; i < INSTALL_COMPONENTS.length; i++) {
page.selectComponent(INSTALL_COMPONENTS[i]);
}
gui.clickButton(buttons.NextButton);
};
Controller.prototype.LicenseAgreementPageCallback = function() {
console.log("Step: " + gui.currentPageWidget());
gui.currentPageWidget().AcceptLicenseRadioButton.setChecked(true);
gui.clickButton(buttons.NextButton);
};
Controller.prototype.StartMenuDirectoryPageCallback = function() {
console.log("Step: " + gui.currentPageWidget());
gui.clickButton(buttons.NextButton);
};
Controller.prototype.ReadyForInstallationPageCallback = function() {
console.log("Step: " + gui.currentPageWidget());
gui.clickButton(buttons.NextButton);
};
Controller.prototype.FinishedPageCallback = function() {
console.log("Step: " + gui.currentPageWidget());
// TODO somehow the installer crashes after this step.
// https://stackoverflow.com/questions/25105269/silent-install-qt-run-installer-on-ubuntu-server
var checkBoxForm = gui.currentPageWidget().LaunchQtCreatorCheckBoxForm;
if (checkBoxForm && checkBoxForm.launchQtCreatorCheckBox) {
checkBoxForm.launchQtCreatorCheckBox.checked = false;
}
gui.clickButton(buttons.FinishButton);
};
// vim: set ft=javascript: