92 lines
3.4 KiB
JavaScript
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:
|