summaryrefslogtreecommitdiffstats
path: root/src/libs/installer
Commit message (Collapse)AuthorAgeFilesLines
* Merge "commit 29ed7cb3ca2e1caeb56eabba327442ce0ccadbf6 1616145450 -t--sp"Katja Marttila2021-03-222-0/+9
|\
| * Merge remote-tracking branch 'origin/4.1' into masterKatja Marttila2021-03-192-0/+9
| |\ | | | | | | | | | Change-Id: I2b2ec3606eb50d390da6e59391c0e17a31e08c54
| | * Emit signal when components are recalculatedKatja Marttila2021-03-122-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | This signal is needed in QtInstaller when we want to track components which are unstable. Task-number: QTIFW-2172 Change-Id: I464d7ad9373089d5001f442ad69a076579ee3228 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* | | CLI: improvements to 'search' and 'install' command outputArttu Tarkiainen2021-03-116-17/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously subcomponents of a virtual component were shown on search results, and trying to install these would print a bit vague message: 'Component not found'. As the sub-branches of virtual component nodes are hidden on GUI, we should also hide them when using CLI search, and give a more appropriate error message why the component cannot be explicitly selected for installation, if the user still tries to do so. Also some minor refactoring to the handling of supplemental information about binary type of the running installer/mt. This change does not fix the possible case of an install script changing the 'virtual'-state of a component, as it would require downloading and evaluating the full metadata for repositories (or components), which would impose a performance penalty to search. Task-number: QTIFW-2168 Change-Id: Ibacaca23c38f5ea98967955d91849cefc1f11f61 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* | | Fix styling of QMessageBoxesArttu Tarkiainen2021-03-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MessageBoxHandler will decide an appropriate parent widget for new QMessageBox objects just before they are shown. This is not quaranteed to be a PackageManagerGui instance, for example when the installer wizard does not have focus, which means the style properties do not get inherited. Rather set the used style sheet for the whole application using QApplication::setStyleSheet(). Task-number: QTIFW-2121 Change-Id: I6f2131279d6f6d3dd41b9eacab8404770aad09a3 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* | | Cppcheck: Fix local variable shadowing outer variableKatja Marttila2021-03-093-12/+12
| | | | | | | | | | | | | | | Change-Id: Idff9a40c5089b4de7b8afd1c280603601317beda Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* | | Cppcheck: Move member initialization from constructor body to initialization ↵Katja Marttila2021-03-091-2/+2
| | | | | | | | | | | | | | | | | | | | | list Change-Id: I5bb8c8f81a391abc5cdfdf5a0c7a68bb5edcec89 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* | | Cppcheck: Remove unused variablesKatja Marttila2021-03-091-1/+1
| | | | | | | | | | | | | | | Change-Id: Ibf92b3e93ca11428f92e60031a5c8c3c5f60b402 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* | | Cppcheck: Misc fixesKatja Marttila2021-03-093-4/+8
|/ / | | | | | | | | Change-Id: I77acdecaf5660f2d7aa723c56d53a97e5687a8b8 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* | Cppcheck: Initialize uninitialized member variablesKatja Marttila2021-03-032-0/+2
| | | | | | | | | | Change-Id: I38c52e2412f50e0aba41876112a66956b9de2920 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* | Add alternative way to update components from repositoryKatja Marttila2021-03-035-7/+25
|/ | | | | | | | | | | | | | Components can be updated from online repository using version number. Sometimes there is a need to update to an older version which is now possible by using content sha. Content sha can be added to repository with repogen --sha-update <component_id>. If there is a new content sha available in the repository, component is updated although it version number might be smaller. After the content sha is removed from online repository, the normal update with version number is performed. Task-number: QTIFW-1798 Change-Id: Id9e32b0345af5101cccaf6e30c81bd39691d9590 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Update side widget with the binary marker changes in introduction pageArttu Tarkiainen2021-02-191-0/+6
| | | | | | Task-number: QTIFW-2150 Change-Id: I8a216ed99aaa68347558cb90a712d2afd1147268 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Documentation fixesKatja Marttila2021-02-191-0/+10
| | | | | | Change-Id: Ibb8da857319eff6119b0296375b6c38578729559 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* Add unit tests for offline generationArttu Tarkiainen2021-02-163-3/+9
| | | | | | | | | | | | This also changes some of the return values in our CLI-related functions in PackageManagerCore class to better catch cases where we exit without failing but also without doing anything. Also adapt existing tests. Task-number: QTIFW-2028 Change-Id: I73c4ca1b20d439773d0e290195f137d0d7369d17 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Fix value overwrite from command lineKatja Marttila2021-02-163-43/+56
| | | | | | | | | Key-value pairs given from command line should overwrite all common variables and custom variables saved to maintenancetool.ini Task-number: QTIFW-2021 Change-Id: I1abd8b67e6ae76051a2887965099e00344bc5cc0 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Reduce windows frame size from maximum sizeKatja Marttila2021-02-161-1/+6
| | | | | | | | | Windows frame is calculated to availableGeometry(). If wizard default height is set higher than that, the buttons remains partly unvisible under the taskbar. Change-Id: Ia0610e72fc84356e6c18d6f332a84947179d714a Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Fix DesktopDir value for AllUsersKatja Marttila2021-02-161-1/+1
| | | | | | | | | Correct value is 'Common Desktop' for AllUsers instead of 'Desktop'. Change-Id: Ice375f56401600e50d126694bbb0a7cc1bb61ad9 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io> Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* CLI: Add warning when cli-only options are used without command keywordArttu Tarkiainen2021-02-154-55/+86
| | | | | | Task-number: QTIFW-2046 Change-Id: Id1c3d24e8c385bdfbe0a7837be774f885a192aa4 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Emit signal after loading default translationsArttu Tarkiainen2021-02-111-0/+1
| | | | | | | | | This makes it easier to get the load order correct, if there are translations to be loaded for additional pages from vendor extensions to the internal C++ API. Change-Id: I9e10cfa7e1cbf25f87d998157436c44425403cac Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Add possibility to move component in component treeKatja Marttila2021-02-117-35/+87
| | | | | | | | | | | | Setting <TreeName> -tag to component.xml will overwrite the default location of component in installer's tree view. This way we can define the component location without a complete repo build. Updates.xml can be directly modified by adding <TreeName> -tag for easy relocation of components. TreeName must be an unique name - it cannot conflict with existing tree name or name. Task-number: QTIFW-594 Change-Id: Ie69f90f1303d932369d566d0d7b4bc0e354505c6 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Try rerunning execute operationKatja Marttila2021-02-059-51/+112
| | | | | | | | | | | | | Execute operation can have hard coded paths to program which is executed. In case the program is relocated, UNDO operation will fail as it will not find the program. Implemented new XXXX_OLD value which can be used for overwriting the hardcoded value. In case the program execution fails, program is tried to launch again with the replaced value. Task-number: QTIFW-2125 Change-Id: I446a4c423e53cc4ffc6e5e25617d2400945ac3d9 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* CLI: Exit when expecting user input and the output device is not a TTYArttu Tarkiainen2021-02-044-3/+21
| | | | | | | | | | - For arbitrary text input queries, fail and exit. - For file/directory queries, fail and exit. - For message boxes, default to negative option and exit if necessary. Task-number: QTIFW-1949 Change-Id: Iaf8a07247a0e358d4544a856788e48447c6720d9 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Provide missing documentation for functionsKatja Marttila2021-02-043-0/+18
| | | | | | Change-Id: I2fe4f6bfc6a31291900d0005550c419cf6582fac Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Restructure logging utilitiesArttu Tarkiainen2021-02-0413-543/+661
| | | | | | | | | | | | | | Create a singleton-pattern class as an encapsulation unit for holding and altering the state of debug printing attributes. Move related code from various places under a single umbrella header file for logging utilities, with some minor stylistic changes & cleanup. This acts as a preparatory change for providing non-blocking headless CLI runs when there is no TTY attached - that will be fixed in a follow-up change. Change-Id: Ib7f72cf75362c3ea6713058e92eda997d6df55c3 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Doc: Misc fixes for Lib7z namespace documentationArttu Tarkiainen2021-02-041-5/+71
| | | | | | | | | | We are still missing quite a bit documentation for this namespace. Add documentation for symbols that could be easily documented and mark the rest as internal, at least for the time being. Otherwise the generated html docs contain stub sections for these symbols. Change-Id: I471873c8da5050f9fb3a4f033da71dcb0aff7b3c Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* Doc: Show documentation for Lib7z namespace and PercentPrinter classLeena Miettinen2021-02-041-0/+6
| | | | | | | The docs were already there, just not displayed in the Manual Change-Id: I3bbc0718150ff792a0657140d1d8999f47667450 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Add support for setting minimum wizard dimensions in config.xmlArttu Tarkiainen2021-02-044-2/+26
| | | | | | | Task-number: QTIFW-1903 Change-Id: I4d8eaf71a1a63dfbfa75ea61af728fa1f5e3e9f3 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io> Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Save Execute operation with predefined variableKatja Marttila2021-02-033-6/+24
| | | | | | | | | | | When operations are saved to dat file, the variables are resolved making it impossible to change it afterwards. This change allows saving the Execute -operation variables unresolved. Variables are resolved runtime so those can be changed using e.g. script. Task-number: QTIFW-2124 Change-Id: I22a0502a5760234fc331aa931b8c66864e855e34 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Make LicenseAgreementPage license list & details browser user-resizableArttu Tarkiainen2021-01-261-7/+10
| | | | | | Task-number: QTIFW-1987 Change-Id: Ide5a8b6912f96981de2fa79e02013d13bb17b43f Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Set "FrameworkVersion" in a place consistent with other variablesArttu Tarkiainen2021-01-211-0/+2
| | | | | | | | Also document the predefined variable. Change-Id: I733bd4dfd245d300994e85c9ebb4b34a7c51de45 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io> Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Fix wizard page addition before ComponentSelectionPageKatja Marttila2021-01-201-3/+0
| | | | | | | | | | | | Wizard page was not able to be added in front of ComponentSelectionPage from script as ComponentSelectionPage was forced to be shown after IntroductionPage in maintenancetool. Removed the forced value so that installer can decide the next page according to nextId. Task-number: QTIFW-1168 Change-Id: I8c13b7f49f0364f777b1fcabf35796bb71fd7016 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io> Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Remove double calculation of uninstall componentsKatja Marttila2021-01-202-0/+6
| | | | | | | | | | This speeds up selecting/unselecting items in updater view around 25 procent. Task-number: QTIFW-1021 Change-Id: Ia50f7f1d47da0f03fbd6d66b6e78482225545230 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io> Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Replace usage of derived LazyPlainTextEdit class with QTextEditKatja Marttila2021-01-156-173/+3
| | | | | | | | | | | | | | | | | | Remove LazyPlainTextEdit class and replace usage in PerformInstallationForm details browser to QTextEdit. This adds support for RTL text alignment as the base class of the removed class, QPlainTextEdit does not fully support RTL and automatic alignment. Text will now be automatically aligned based on the direction of the characters. This also improves the usability of the details browser, as it does not force scrolling to bottom if the user has scrolled the widget contents to inspect previous lines. Task-number: QTIFW-1994 Change-Id: If01eaea121000edc0b5039edfede88ffb7bacd6f Reviewed-by: Katja Marttila <katja.marttila@qt.io> Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* Fix InstallIcons and CreateDesktopEntry operations usage as rootArttu Tarkiainen2021-01-152-2/+12
| | | | | | | | | | | | | | | | | | | | The operations write the output files to a valid, writable directory value of XDG_DATA_HOME variable if set, otherwise defaulting to "$HOME/.local/share". This follows the XDG Base Directory Specification but misses the use case of system-wide installation: the XDG_DATA_HOME should only contain base directory relative to which user specific data files should be stored. Prefer a predefined value "/usr/local/share" when launced as root or the internal elevated admin rights handling is active. This should be a sane and well known value for applications installed system-wide, and should not conflict with files extracted by distribution's package management system. Task-number: QTIFW-2093 Change-Id: I96fab3367122e7df783697e07baeb71dfd9b3f0e Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Add support for generating offline installer from onlineArttu Tarkiainen2021-01-1511-33/+516
| | | | | | Task-number: QTIFW-1945 Change-Id: Ic8a076a28385e99ad09cfbccd07c7012d6570639 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Provide tooltip texts for buttonsArttu Tarkiainen2021-01-152-0/+13
| | | | | | | | | | | The standard buttons in WizardButton enum (Back, Next, Cancel...) were omitted as they are quite self explanatory. Task-number: QTIFW-2073 Change-Id: I4a6257d2f772c781f4bbc505c03ed289cbf4f36c Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Tino Pyssysalo <tino.pyssysalo@qt.io> Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Allow disabling undo in CreateLocalRepository operation during uninstallKatja Marttila2021-01-141-1/+5
| | | | | | | Task-number: QTIFW-2094 Change-Id: I1c5d86e084eac9760ac734ae62d6d7706e57dff2 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io> Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Change 'license agreement' -radiobutton to checkboxKatja Marttila2021-01-142-8/+8
| | | | | | Change-Id: I0884b9351030e3b50a6fb2bdd6234101002e5ca6 Reviewed-by: Niels Weber <niels.weber@qt.io> Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Add highdpi support for watermark, banner, background and pagelistpixmapsKatja Marttila2021-01-145-52/+37
| | | | | | Task-number: QTIFW-2084 Change-Id: I4047457aae9709819f1a19ec9c74c5a88e9b7e7c Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Fix translating from component scriptKatja Marttila2021-01-142-27/+1
| | | | | | | | | Translate using QCoreApplication::translate instead of QObject::tr. Removed the use of obsolete installTranslatorFunctions() function. Task-number: QTIFW-392 Change-Id: Icdd67efb6889acd26d63297fb89945c3431c881c Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Allow disabling undo in RegisterFileType operation during uninstallKatja Marttila2020-12-301-2/+4
| | | | | | Task-number: QTIFW-2089 Change-Id: I8cccd471718eaaa6dc167a852b8854dc424f994e Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Allow disabling undo in SimpleMoveFile operation during uninstallKatja Marttila2020-12-301-0/+2
| | | | | | Task-number: QTIFW-2090 Change-Id: If0c2d4901ee1fb634e1e436ab14a507d06dd99ab Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Allow disabling undo in CopyDirectory during uninstallKatja Marttila2020-12-301-2/+6
| | | | | | Task-number: QTIFW-2088 Change-Id: Ic5e781b89b1c74fc8f65575bd46c073610545523 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Allow disabling undo of GlobalSettings during uninstallKatja Marttila2020-12-301-2/+7
| | | | | | Task-number: QTIFW-1973 Change-Id: I89f15c8ed7d56c3e1bc72d3c740e9054363f9390 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Introduce ForcedUpdate element for componentKatja Marttila2020-12-226-12/+41
| | | | | | | | | | | Setting ForcedUpdate for component will cause a mandatory update for component if it is installed. Component must be updated before any other component can be updated/installed/removed. Essential components are updated at the same time with ForcedUpdate. Task-number: QTIFW-1565 Change-Id: I6af07fba222371e8cd161d1fec65301450077d86 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Add high dpi image support for Logo and ProductImagesKatja Marttila2020-12-215-5/+30
| | | | | | | Task-number: QTIFW-2061 Task-number: QTIFW-2060 Change-Id: Idaabb6a08f5e52aa7808de4b3ad541ae47dc4dd8 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Merge remote-tracking branch 'origin/4.0' into masterKatja Marttila2020-12-072-2/+2
|\ | | | | | | Change-Id: I3d61fa9873ef3f2258fd03091dea94e9e4961c0a
| * Fix wrong color in sidewidget text4.0.1Arttu Tarkiainen2020-12-021-1/+1
| | | | | | | | | | | | | | | | | | | | Do not remove Qt::ItemIsEnabled flag from all unvisited pages as we may have skipped some. Instead do this for all pages which's id is greater than the current one. Task-number: QTIFW-2059 Change-Id: Ia66de5e1a376d33179cfee3eb7395248407aa4f1 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
| * Shorten display name of 'Select package categories'Katja Marttila2020-12-011-1/+1
| | | | | | | | | | | | Task-number: QTIFW-2056 Change-Id: I119d2e7f8f943c3df19f4c0df58123f7bb0d0b6c Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* | Add option to define operations in component.xmlKatja Marttila2020-12-073-7/+61
| | | | | | | | | | | | | | | | | | | | | | Operations can from now on be declared also in component.xml. The operations are performed, backuped and rollbacked the same way as they would be when defined from scripting api. Task-number: QTIFW-507 Change-Id: Ia509219b94737136c3de25db0cb0c72076b48380 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>