summaryrefslogtreecommitdiffstats
path: root/src/libs/installer
Commit message (Collapse)AuthorAgeFilesLines
* 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>
* | Remove 'Reject Licenses' radio buttonKatja Marttila2020-12-022-23/+0
| | | | | | | | | | | | | | | | | | One radio button is enough, by selecting 'Accept Licenses' the 'Next' button is enabled. Task-number: QTIFW-2057 Change-Id: I0db0fb2e85644528b4a2b4304903549d0a91ecbf Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* | Tools: refactor to move general purpose functionality to installer libArttu Tarkiainen2020-12-021-0/+1
| | | | | | | | | | | | | | | | | | This makes it possible to utilize parts of our existing tooling in the offline installer from online installer generation process. Task-number: QTIFW-2048 Change-Id: I7ee605be75541cc83a3b6909089bda45f0835bcf Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* | Print package information in xml formatKatja Marttila2020-11-259-269/+193
| | | | | | | | | | | | | | | | | | Also removed logging categories for package information, the full package information can be printed by increasing the verbosity level. Task-number: QTIFW-1950 Change-Id: I4bce019a63ba1fbf48e3bb0ca45511e42d4974c9 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* | Merge remote-tracking branch 'origin/4.0' into masterKatja Marttila2020-11-247-15/+35
|\| | | | | | | Change-Id: If5205ff6ef2c8989520e24d41595c04d5920d207
| * Fix permissions in 'Licenses' and 'installerResources' directoriesArttu Tarkiainen2020-11-182-3/+9
| | | | | | | | | | | | | | | | | | Both directories are created by IFW so they should follow the same file permissions practice we use whenever possible. This fix also applies to subdirectories inside 'installerResources'. Change-Id: I747a7638028fb0b9ff406143a97b5100eacc2566 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
| * CLI: Tidy up progress message printArttu Tarkiainen2020-11-051-1/+1
| | | | | | | | | | | | | | | | The debug print does not look very nice when the string contains escape characters for quotes or extra spaces. Change-Id: I9428d3aef4e3ebd693f66083447430e4e2600098 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
| * Fix loading controller script with comment on last lineMartin Kampas2020-11-041-1/+1
| | | | | | | | | | | | | | Task-number: QTIFW-1062 Change-Id: I3deb46cae74d1e5851d4ddd4b58c0ba19375ddbd Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io> Reviewed-by: Katja Marttila <katja.marttila@qt.io>
| * CLI: Minor cleanup for commands help textArttu Tarkiainen2020-11-031-7/+8
| | | | | | | | | | | | | | | | | | | | Instead of using tabs for indentation, use the same two whitespaces as with options. Use the same format for package list arguments as in documentation. Change-Id: Id5a7d1e6bdbea6a49c560cdadb2fe3ef5793d04a Reviewed-by: Katja Marttila <katja.marttila@qt.io> Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
| * Add missing members to PackageManagerCorePrivate member initializer listArttu Tarkiainen2020-11-031-0/+8
| | | | | | | | | | | | | | | | | | | | The lesser called class constructor function was missing initialization for some of the fundamental data type member variables. This could cause weird behavior in autotests, where a PackageManagerCore object for "fake" installers is instantiated on multiple occasions. Change-Id: I4e65453e3125cb5b4b662314a593bb0232907478 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
| * CLI: Fix wrong warning text in command 'purge' for running processesArttu Tarkiainen2020-11-032-3/+8
| | | | | | | | | | | | Task-number: QTIFW-1996 Change-Id: Iaf9aa6bfd39d266ed052838e969881c168b4b2ed Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* | Arrange licenses and filter duplicatesJarkko Lehtoranta2020-11-069-23/+91
| | | | | | | | | | | | | | | | | | | | | | - Add a "priority" attribute to the "License" element used in "package.xml" for arranging licenses by priority in the LicenseAgreementPage and in CLI. Priority >0 shows the license on top of others. - Arrange the licenses with the same priority alphabetically - Filter duplicate licenses from the LicenseAgreementPage and from CLI Change-Id: I1dcacdd417d2383b8dc18149e4de329fbf11cfe8 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* | CLI: Print extra archive information with higher verbosity levelArttu Tarkiainen2020-11-055-10/+64
| | | | | | | | | | | | | | | | | | | | Also rework verbosity level handling to use predefined and range constrained enumeration list values. Task-number: QTIFW-1998 Change-Id: Iaf15ca638411e6842d3d502c4d7ff11d28d06658 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* | Allow to set ForcedInstallation from component scriptMartin Kampas2020-11-041-8/+6
| | | | | | | | | | | | Change-Id: I7bba68f5159737971de9801012daef8aaff09216 Task-number: QTIFW-675 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* | Automatically uninstall unneeded virtual componentsMartin Kampas2020-11-041-0/+26
| | | | | | | | | | | | Change-Id: Ifbbfec4449a9f5b0a79269fc7ddfcc1780e762e5 Task-number: QTBUG-76210 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* | CLI: Add possibility to filter installed packages with regexpArttu Tarkiainen2020-11-043-5/+12
| | | | | | | | | | | | Task-number: QTIFW-1953 Change-Id: Ie291e8ae96d46082e342e9bcb152258862813afd Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* | Replace obsolete qrand() with QRandomGeneratorKatja Marttila2020-11-043-4/+6
| | | | | | | | | | Change-Id: Ie61b192bcf047cc70f728ea15370ff50e7a41769 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>