summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/packagemanagergui.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Fix showSettingsButton functionality4.5Katja Marttila2023-03-231-15/+32
| | | | | | | | | | | showSettingsButton() called from control script had no effect. Fixed it so that if showSettingsButton will overwrite the IFW decision to show the settings button. Change-Id: Ia08c03cc13db58168fd371f230517bcc83ee0e12 Task-number: QTIFW-810 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* Support detecting invalid dependency resolutions on component selectionArttu Tarkiainen2023-01-261-11/+9
| | | | | | | | | | | | | | | | | | | | | | IFW could already previously detect circular and missing dependencies by running a precheck calculation when building the component tree. However, there can be also cases of where the user selection results in unsolvable changes to components. One such case was the erroneous possibility to uninstall a component marked with ForcedInstallation, if any of its dependencies was checkable and the user unselected it for uninstallation. Add support for reacting to such errors in the component tree view, displaying a message box about the invalid dependency resolvation error, and blocking further navigation until the component selection passes the dependency calculations. Also attempt some refactoring the related code to simplify the different call sequences resulting in recalculation of the components. Change-Id: I9dc78f858bd4be7932f89f8e14bbfd97fbd3a0f6 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Fix user set binary marker not having any effect on maintenance toolArttu Tarkiainen2022-12-011-3/+12
| | | | | | | | | | | | | | | | | | | TabController would invoke IntroductionPage::onCoreNetworkSettings- Changed() slot, which would disable the UI controls for selecting the package manager or updater mode in case the maintenance tool is configured to use only temporary repositories that are set only later on. This would also update the internal magic marker indicating the binary type, overwriting the user selected one that was passed with one of the --start-* options. Fix by splitting the resetting of the "metadata fetched" state of the page to its own public method from IntroductionPage::onCoreNetwork- SettingsChanged(), and call that from the TabController initialization instead. Task-number: QTIFW-2884 Change-Id: I952b8fd1d14e6292bae1556a5f33dec537c8b1d6 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Adjust the 'ready to install' message to avoid repeating the app nameAndreas Pakulat2022-09-271-3/+3
| | | | | | | | | | | | | The text was using just the word 'Setup' which is inconsistent with other places which usually refer to the application as '<product> Setup'. Adding the product name would've been possible, but it seemed unnecessary to repeat the installer name again right at the last step. So instead replace that with a general message explaining that all needed information has been collected. Task-Name: SQUISH-9672 Change-Id: Ia253f4f921431f272bc1d69352a5fa7179e84d0c Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Disable package manager and updater for offline maintenance toolArttu Tarkiainen2022-09-071-8/+38
| | | | | | | | | | | | | | For a maintenance tool that has no configured repositories, we can disable the selection of package manager and updater options, that require at least one repository to be useful. Also show the settings button for offline maintenance tool that is run in uninstaller mode, because the user may want to add a new repository which then enables the disabled options. Task-number: QTIFW-2627 Change-Id: I4db7f6526c37bbadeaf680fe9cb6130058ca5ffd Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Replace 'Setup Wizard' and 'Wizard' with just 'Setup'Andreas Pakulat2022-08-301-4/+4
| | | | | | | | | | | | | | | In many other places the UI refers to the program as just '<Product> Setup' and the 'Wizard' suffix also seems to be somewhat out of date/'retro'. So get rid of the suffix to make the naming more consistent. I think this change also fixes a problem with translation. The ts-files contain just 'Completing the %1 Setup' for the Restart Page, while the actual text is 'Completing the %1 Setup Wizard'. So the translation here might not have worked properly - it certainly looked odd. Task-Name: SQUISH-9672 Change-Id: I65a56c6e927f01307868ad8319e301b84ab330be Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Add component list of components to be installed to installationlogKatja Marttila2022-06-131-0/+1
| | | | | | | | | | We print the component list to gui in 'ready to install' page and to console when using install/remove commands. Add the same print to installationlog.txt so that it easier to spot possible installation errors. Task-number: QTIFW-2666 Change-Id: Icea96695e3d3a4516d65c7b487ed5fced2701632 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Use fixed width font for the license text browserArttu Tarkiainen2022-04-281-0/+2
| | | | | | | | | Some licenses use ASCII art to display tables, etc. which requires that the font is of fixed width. Task-number: QTIFW-2613 Change-Id: I0f473e6320912702c5df01d99a573ee820da3c1b Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Speed up Next button click in tree viewKatja Marttila2022-04-211-0/+3
| | | | | | | | | | | | | Components were recalculated when leaving the tree view. This is unnecessary as we have just calculated the components. Moving the recalculation to Introduction page so alternate pressing of 'Add or remove components' and 'Update components' will cause the recalculation as we need that to keep the component install states in sync. Task-number: QTIFW-2598 Task-number: QTIFW-694 Change-Id: Ia84a01b4f1d0b39b4844c02470b764c4940e943c Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Add missing mnemonic for the "Settings" buttonArttu Tarkiainen2022-04-211-1/+1
| | | | | | | | | | The "Cancel" button on bottom of the wizard is also missing a shortcut. But this behavior is inherited from QWizard, where it appears to be intentional. Task-number: QTIFW-2206 Change-Id: I53e595591679f5d22b2b381f86974dfc963d2bd4 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Add click option for product imageKatja Marttila2022-03-211-6/+15
| | | | | | | | | | Product image can now be clicked. It opens either url in Web browser or if file reference is given, then it will be opened with the suitable application. Task-number: QTIFW-2361 Change-Id: I59ed1355e90c23c8d0a5124779725825ca1ee2c8 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Make 'override' specifier usage consistentArttu Tarkiainen2022-01-211-1/+1
| | | | | | | | | Add where missing. Replace occurrences of Q_DECL_OVERRIDE macro, building IFW requires a C++11 compatible compiler so the language specifier is preferred. Change-Id: Idb75e2813d26b9da85e03891f0ae9537c6524c56 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Enable 'Enter' to click Next -button in macOSKatja Marttila2022-01-201-0/+5
| | | | | | | | | | | | | Removing QWizard::NoDefaultButton will enable enter clicking in macos. This will also keep the Spacebar -key press to accept the Next -button. Adding also Qt::StrongFocus to Next -button, otherwise for example the radio buttons in Introduction -page will get the Spacebar -key press, even when those are set invisible, causing the installer to be converted to package manager. Task-number: QTIFW-2409 Change-Id: I2ad0e98b5be635c2f9e53ec1b6262bd37be22cae Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* MT: Disable package manager when forced updates are foundArttu Tarkiainen2022-01-181-0/+16
| | | | | | Task-number: QTIFW-2437 Change-Id: I3c0293550456f36e37e98e97042bf6bfae6ce96d Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Add "about application" menu and dialog on macOSArttu Tarkiainen2022-01-181-2/+15
| | | | | | | | | Also enable linking qtimageformats as a static plugin on macOS, it is required to read the .icns file to be shown on the dialog. Task-number: QTIFW-2453 Change-Id: Ib776635167a4c90ffa20a91ecc447d2d73f5aeb9 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Use Next as default buttonKatja Marttila2022-01-141-6/+2
| | | | | | | | | Next should be the default selection when use presses Enter. Sometimes the focus was in Settings button. Task-number: QTIFW-1046 Change-Id: Idae996bd5a0c511b9d2595a22b7ea0114f34ade1 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Fix wrong title text after succesfull updateKatja Marttila2021-12-311-1/+2
| | | | | | Task-number: QTIFW-2439 Change-Id: Ie8f7a35d73d847e8864b1f1f2dc5fb7bc8ed9092 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Fix selecting target directory when elevated server process is activeArttu Tarkiainen2021-12-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | There is a disparency in the return value of QFileInfo::isFile() on Windows whether QFileInfo uses QFileSystemEngine directly (for local files, returns false) or with another file engine (QFSFileEngine in this case, returns true), when the file does not exist on disk. Installer registers its own file engine handler that handles file engine creation. It creates custom RemoteFileEngine instances suitable for writing into more restrictive locations when the connection to the elevated installer server process is active. When calling RemoteFileEngine::fileFlags() with TypesMask parameter, the returned combination of enum values includes FileFlag::FileType when the given file does not exist, this can be reproduced with both the active remote server connection that forwards the file engine calls to the server process, and when the composed QFSFileEngine object is used directly without the remote connection. Fix by adding a check if the given target directory path exists, if it doesn't we can assume it is a directory to be created by the installer. Also rename function to better match what it does. Task-number: QTIFW-2383 Change-Id: I906b0676802d9d94e70abeb2dea1f71866cbbec8 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Fix size issues with page list widget when building with Qt 5.15.2Arttu Tarkiainen2021-12-131-1/+2
| | | | | | | | | | | | Prefer elided text to horizontal scrolling. Fix invalid size hint for side widget items, otherwise the item delegate will compute the size hint based on the item data. We want to include custom height to not make the list cramped. Task-number: QTIFW-2388 Change-Id: I490a12c04f921b8c9a01c3ac72c6bcd4d951f6d3 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io> Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Merge remote-tracking branch 'origin/4.1' into masterArttu Tarkiainen2021-09-101-1/+10
|\ | | | | | | Change-Id: I8e2864b3ec81cffa907fe02ff1f2019e155c54e3
| * MT: Install new <ForcedInstallation> components with default check stateArttu Tarkiainen2021-08-161-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | ComponentSelectionPage::isComplete() would return false if the state of the component model was "DefaultChecked" and user had not (de)selected any new components. This change adds a condition to check if there are any ForcedInstallation components that haven't been previously installed, and allows navigating forward and installing those without additional selections. Task-number: QTIFW-2286 Change-Id: I273cc7219df1eae4e11ff23e733d71a9c297bedd Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* | Translations: validate and update translatable user interface stringsArttu Tarkiainen2021-06-231-3/+3
| | | | | | | | | | | | | | Task-number: QTIFW-2245 Change-Id: Id9a79c7c572dc588c05ad37c67ae3f0431fa7cdb Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* | Clarify required user actions when there is an essential updateArttu Tarkiainen2021-06-161-0/+4
| | | | | | | | | | | | Task-number: QTIFW-2244 Change-Id: Ib3c717eb7fd76bdc928072630177c71933e8aef1 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>
* 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>
* 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>
* Restructure logging utilitiesArttu Tarkiainen2021-02-041-2/+3
| | | | | | | | | | | | | | 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>
* Add support for setting minimum wizard dimensions in config.xmlArttu Tarkiainen2021-02-041-1/+10
| | | | | | | Task-number: QTIFW-1903 Change-Id: I4d8eaf71a1a63dfbfa75ea61af728fa1f5e3e9f3 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io> Reviewed-by: Katja Marttila <katja.marttila@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>
* 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>
* Replace usage of derived LazyPlainTextEdit class with QTextEditKatja Marttila2021-01-151-1/+0
| | | | | | | | | | | | | | | | | | 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>
* Provide tooltip texts for buttonsArttu Tarkiainen2021-01-151-0/+3
| | | | | | | | | | | 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>
* Change 'license agreement' -radiobutton to checkboxKatja Marttila2021-01-141-7/+7
| | | | | | 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-141-39/+27
| | | | | | Task-number: QTIFW-2084 Change-Id: I4047457aae9709819f1a19ec9c74c5a88e9b7e7c Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Add high dpi image support for Logo and ProductImagesKatja Marttila2020-12-211-1/+4
| | | | | | | 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-071-1/+1
|\ | | | | | | 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>
* | Remove 'Reject Licenses' radio buttonKatja Marttila2020-12-021-20/+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>
* | Arrange licenses and filter duplicatesJarkko Lehtoranta2020-11-061-6/+20
| | | | | | | | | | | | | | | | | | | | | | - 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>
* | Remove unused code blocks and functionsKatja Marttila2020-11-041-1/+1
|/ | | | | | | | Results analyzed using cppcheck tools. Also add Q_DECL_OVERRIDE to overwrited functions. Change-Id: Iab5eb43206af0050c1dd84efb7ed860ab9594496 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* Enable scroll bars on side widgetArttu Tarkiainen2020-09-221-4/+4
| | | | | | | | | | If the dynamic page list becomes too long to fit the current window height, enable scrolling instead of forcing the user to resize the window. Task-number: QTIFW-1966 Change-Id: Ifc1f1424d3e626c5378a1ed65194489387ad0bed Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Doc: Fix documentation warningsTopi Reinio2020-09-161-36/+21
| | | | | | | | | These changes fix many of the documentation warnings when building with a recent version of (Clang-integrated) QDoc. Change-Id: I5714635a25707cd7ab7bec209fa043a95f0b9832 Reviewed-by: Katja Marttila <katja.marttila@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* Page list widget enhancementsArttu Tarkiainen2020-09-111-5/+11
| | | | | | | | | | | | - Add support for a configurable image shown on top of the page list. - Add missing object names for easier object reference, for example when using stylesheets. - Remove the vertical line separating side widget as this looks particularly ugly on custom styles. Task-number: QTIFW-1939 Change-Id: I16e17e72163068381f54491f7fbe965eb4c5295d Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Allow setting BackgroundPixmap shown on MacStyle regardless of platformArttu Tarkiainen2020-08-311-2/+1
| | | | | | | Task-number: QTIFW-1175 Change-Id: Ifa8af022741e8f38c0692845f6fd0cf08181f0b4 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io> Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Fix crash when fetching categoriesKatja Marttila2020-08-261-0/+18
| | | | | | | | | | Component scripts are re-evaluated when new categories are fetched. Remove refereces to already added custom widgets from pages as those are re-added when scripts are re-evaluated. Task-number: QTIFW-1928 Change-Id: Iad52232920eaf3859d710d6fe06e80eeee90797d Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Add support for vendor set image decorationArttu Tarkiainen2020-08-251-0/+31
| | | | | | | | | | | | Add possibility to show an arbitrary number of product related, or other images on PerformInstallationPage. These can be specified in the installer configuration file, using <ProductImages> element with one <Image> child element for each file name. Task-number: QTIFW-1900 Change-Id: I2be727d9189963ef1a79046150111dd8c91153c6 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io> Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Add verbose levels and cleanup log categoriesKatja Marttila2020-08-241-11/+11
| | | | | | | | | Setting several verbose switches enables more logging and performs component checking. Also cleanup some logging categories and unify the rules. Task-number: QTIFW-1914 Change-Id: I9195f4bb02affaa87e66cf9023a3512e65e0645b Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Documentation fixesKatja Marttila2020-07-031-0/+6
| | | | | | | | Added missing documentation and fixed warnings. KDUpdate documentation not added in this commit. Change-Id: Idc0b167bed95b7ae4a46a350290fdb241aa94448 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Add possibility to add custom widget from script to certain positionKatja Marttila2020-06-251-4/+21
| | | | | | | | | | | If several custom widgets are added to same page, the order of the widgets is arbitrary. Added a new member to addWizardPageItem which can define the position of the widget in the page, relative to another custom widgets. Non-custom widgets are always placed on top as before. Task-number: QTIFW-1847 Change-Id: Iadafef3a08e60a8b05b959cb06caea2a2042b419 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Add possibility to select/deselect component from script using coreKatja Marttila2020-06-251-6/+2
| | | | | | | | | We might not have componentselection page visible, so we need a possibility to select/deselect components also using core. Task-number: QTIFW-1847 Change-Id: I85ccf0602144f843c15ef7c0818ba435d36bdac5 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>