aboutsummaryrefslogtreecommitdiffstats
path: root/src/app
Commit message (Collapse)AuthorAgeFilesLines
* ExtensionSystem: Introduce alias PluginSpecsAlessandro Portale2024-05-131-3/+1
| | | | | | Change-Id: Ic7b87246cf91328c4291bbce5760a45dfa0b14e5 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* ExtensionSystem: FilePath'ifyMarcus Tillmanns2024-05-081-1/+1
| | | | | | | | Change IPlugin::fileName() and IPlugin::location to use FilePath instead of QString. Change-Id: If473ab1e258951735f93221cbd62c505f0727eb2 Reviewed-by: hjk <hjk@qt.io>
* App: Use 'fusion' style only on fractional dpi on WindowsCristian Adam2024-05-061-3/+5
| | | | | | | | | | | On 200% on 4k screens there is no reason to use the 'fusion' style since the 'vista' native one works perfectly fine. Task-number: QTCREATORBUG-16095 Change-Id: I1ffd02891aa5ef30c0172edd949d63d4270400c4 Reviewed-by: Alessandro Portale <alessandro.portale@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Cristian Adam <cristian.adam@qt.io>
* Themes: Prevent Qt from changing the app palette behind our backAlessandro Portale2024-04-261-5/+0
| | | | | | | | | | | | | | | | | | | | And remove the "GTK_THEME" hack Even though Qt Creator now looked fine when started with a light/mixed theme on a dark system theme, we still had to force a light default palette on the application at startup. The issue is that when the user switches the system theme to dark during Qt Creator's runtime, Qt notices that and changes the default application palette to dark. Prevent that by setting a detached default palette on the application on startup, even if we do not intend to apply custom colors to it. Task-number: QTCREATORBUG-28497 Change-Id: I7a43f108c2299967a14f382e52b62c31491e673d Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* main: Fix leaking of a QtcSettings objectEike Ziller2024-03-051-2/+1
| | | | | | | | Amends b619f24396ab5d446f39d2d53904829254c19a80 Change-Id: Ic93d33a09eb2b49dd899470ba88f3a7d71f5400d Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: hjk <hjk@qt.io>
* Remove unused qt-breakpadMarcus Tillmanns2024-02-071-9/+3
| | | | | Change-Id: I33937cc3e50d5dd03d38c64675dc3883c816290a Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
* Merge remote-tracking branch 'origin/12.0'Eike Ziller2023-12-061-0/+51
|\ | | | | | | | | | | | | | | | | Conflicts: src/plugins/clangcodemodel/clangdfollowsymbol.cpp src/plugins/debugger/debuggerruncontrol.cpp src/plugins/projectexplorer/miniprojecttargetselector.cpp Change-Id: I45b7fee1a1d784c44f2139fb1ede69190d23d6fd
| * Main: Show a GUI message if platform plugin fails to loadEike Ziller2023-12-051-0/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the Qt platform plugin fails to load, most famously xcb on systems that do not have libxcb-cursor0 installed, the interesting messages are only written to a terminal, and not visible when running Qt Creator from e.g. the installer or dock. Temporarily install a special Qt message handler that scribbles along the qWarnings and qFatals while creating the QGuiApplication, and make it output the messages via xmessage in case a qFatal is received (and xmessage is available). On macOS show a dialog with osascript. Windows already gets a dialog from Qt proper. Also add the explicit message about (lib)xcb-cursor0 for Qt versions that do not have it yet. Fixes: QTCREATORBUG-30004 Task-number: QTBUG-108796 Task-number: QTCREATORBUG-29873 Change-Id: I5e5dafb398db6a72178413c8b883325c56d9a016 Reviewed-by: Cristian Adam <cristian.adam@qt.io>
* | Merge remote-tracking branch 'origin/qds/dev'Tim Jenssen2023-11-161-0/+10
|\ \ | | | | | | | | | Change-Id: Ic852bc9977d0292fb6cd93a319f4bfdebb22a1b0
| * | Use OpenGL core profile for macOSMiikka Heikkinen2023-11-141-0/+10
| |/ | | | | | | | | | | | | | | | | | | Some of the shader features we use in Effect Maker plugin require newer OpenGL than the macOS default. Task-number: QDS-11194 Change-Id: Iad166a9f99b2a8fc37b0f9912947cf63ef4b3328 Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io> Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
* | Core: Inform about active UI scaling related environment variablesAlessandro Portale2023-11-131-1/+1
| | | | | | | | | | | | | | | | | | There are a couple of environment variables which can influence the UI scaling behavior. If any of those is set, now show an info label next to the policy combo box in the Environment/Interface settings. Change-Id: I91619d73bf53761f9cd4d7ae8bbf9b49b2010012 Reviewed-by: Cristian Adam <cristian.adam@qt.io>
* | Fix running tests if system language is not englishEike Ziller2023-11-031-1/+3
|/ | | | | | | | | Force built-in tr strings when running tests. Some tests rely on these, e.g. the JSON wizard tests in ProjectExplorer. Change-Id: I27836adce0bd2f8c6919a8b1948e41f719c08b3e Reviewed-by: Christian Stenger <christian.stenger@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
* App/Core: Only set DPI rounding options if default not "Unset"Alessandro Portale2023-10-051-1/+3
| | | | | | | | | | Instead of making the OS specific decision whether to set DPI rounding options or not in several places, leave the OS specific check to StyleHelper::defaultHighDpiScaleFactorRoundingPolicy() and test for "Unset". Change-Id: I37ab4a0c643d1b1597e5f45496510f2f36f1a386 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* Utils: Move defaultHighDpiScaleFactorRoundingPolicy() to StyleHelperAlessandro Portale2023-10-051-1/+2
| | | | | | | | | | ... from HostOSInfo. A better suited place. Amends: 3726f0d6c1d05452f070b911683c51fe95df65c4 Change-Id: I5ba052603ae438b9347f1091088f0d105d19f587 Reviewed-by: Eike Ziller <eike.ziller@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Core: Add a setting for HighDpiScaleFactorRoundingPolicyAlessandro Portale2023-10-041-7/+5
| | | | | | | | | | | | | | | | | | | | | | | In Qt 6, the API and environment variables intended to influence the HighDPI behavior changed quite a bit. Until recently, (see "Amends" change), Qt Creator still supported the Qt 5 options instead of the Qt 6 options. With Qt 6, HighDpi support is always enabled. Just the DPI rounding policy should be set by user or application. This change adds a ComboBox in the General settings, which allows to select a DPI rounding policy: https://doc.qt.io/qt-6/qt.html#HighDpiScaleFactorRoundingPolicy-enum The default setting is "PassThrough", which is the default policy for Qt 6, and which is also the default in Qt Creator since version 11.0.2. Amends: d1deeb2c0d2c3f22be7d970e5e0f166f5101667b Fixes: QTCREATORBUG-29501 Change-Id: Ib19b40cb3945cecc71b7c10f42fa2b06b3cc6153 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* Utils, all: Standardize on QtcSettingshjk2023-09-271-2/+2
| | | | | Change-Id: Id222016f15b1c3bfe6710fe5d0297666d4565ef1 Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* main: Warn if -installsettings points to a path without settingsEike Ziller2023-09-251-0/+9
| | | | | | | | | | Especially confusing is that the "QtProject" part must be omitted, so include that information in the warning. Change-Id: I4214502fd045b0e13a55c50fa036194dec6dab35 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: hjk <hjk@qt.io>
* ExtensionSystem: Always generate profiling dataEike Ziller2023-08-301-0/+1
| | | | | | | | | | | | The overhead is minimal and can be shown at a later point even when not printing profiling data to the terminal. Move the data to the plugin spec for later retrieval. Task-number: QTCREATORBUG-29540 Change-Id: I392ff85a8a8b5c01ecba07fefd06e5029f692bf6 Reviewed-by: Cristian Adam <cristian.adam@qt.io> Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Utils: Use Key more widely in QtcSettingshjk2023-08-301-1/+1
| | | | | | | And adapt user code. Change-Id: I6efe4ebe6823de4cc862f304a57e041b02c40eac Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* App: Replace QtLockedFile usage with QLockFileCristian Adam2023-08-241-18/+0
| | | | | | | | | | | | | | | | | | | | | We had an import of QtLockedFile from 2008. On Windows we could see a lot of QtLockedFile cycles for qtcreator.exe. The 2008 version was using a semaphore. I've tried the latest QtSolutions version from 2016, which was using only mutexes. qtcreator.exe would still show up lots of cycles for QtLockedFile. Then switched to QLockFile (added in Qt 5.1), and I couldn't see any more CPU usage! Task-number: QTCREATORBUG-29416 Change-Id: Ibfd102f3e90de39c807ff1140e597b79a7b6ca8e Reviewed-by: Orgad Shaneh <orgads@gmail.com> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io> (cherry picked from commit 1fca05959f0a321943d803941c2fcdb7f6f0258d)
* Merge remote-tracking branch 'origin/11.0'hjk2023-08-101-14/+4
|\ | | | | | | Change-Id: Ib67c8ecb1865ee31ca6485c9287039ba877c68cd
| * App: Use PassThrough high DPI rounding policyAaron Barany2023-08-091-14/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When high DPI is enabled, use PassThrough rounding policy to allow for fractional scaling without having to manually set an environment variable. The high DPI setting is now respected even if various Qt scale/ratio environment variables are set, which is the case in valid default situations such as setting the global scaling factor for KDE Plasma. Task-number: QTCREATORBUG-29461 Change-Id: Ife2820d205b3440646255dc997744b2b8867bc70 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Cristian Adam <cristian.adam@qt.io>
* | Utils: Base AspectContainer on BaseAspecthjk2023-08-091-1/+1
| | | | | | | | | | | | Change-Id: I78b11727af6e465da5731ba36bbae476d11d11ee Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* | Fix that aspects read&wrote install settingsEike Ziller2023-07-181-3/+3
| | | | | | | | | | | | | | | | | | | | Do not give them the QSettings object that has SystemScope. Also rename the "globalSettings" term to "installSettings" locally and in PluginManager, and the one for aspects to just "setSettings" (like e.g. for TerminalCommand). Change-Id: Iad051f6e507373042014db73b83d0b16944b7374 Reviewed-by: hjk <hjk@qt.io>
* | Utils: Make aspect settings access implicithjk2023-07-071-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | Generally, aspects should use fromMap/toMap, but some older pages use {from,to}Settings with always the same ICore::settings(). To make that less intrusive on the user code side, make that globally implicit. Task-number: QTCREATORBUG-29167 Change-Id: I29a8e23a31eb8061bb143e93931a07c6741eb7f9 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* | qbs build: Consider IDE_SETTINGSVARIANT in app_version_headerChristian Kandeler2023-06-261-0/+1
| | | | | | | | | | | | | | Amends ac32f790f38eb91412183d5ced8caebdfd721a23. Change-Id: Ifeb571daeb3006d6bea7c46a52e3f9526f33c3d0 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* | Qbs build: Fix app_version generationEike Ziller2023-06-262-79/+21
| | | | | | | | | | | | | | | | | | | | | | | | Amends 6836caa14c247829bfd4edf47d31c87310d56211 which added a variable to app_version.h.cmake, but not to app_version.h.in. Fix by porting qbs to use app_version.h.cmake, which is the truth nowadays, instead of the app_version.h.in which originated from the qmake build. Change-Id: Ia9be53377a0bfded91ccd6ea1637eeda7fe9d5c8 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* | Move app logo to main executableEike Ziller2023-06-2613-0/+91
| | | | | | | | | | | | | | | | Moves more branding information out of the plugins. Change-Id: I71575f268dd8f2860f4da56101b0e3d9442df367 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* | Do not compile PROJECT_USER_FILE_EXTENSION into pluginsEike Ziller2023-06-263-0/+6
| | | | | | | | | | | | | | | | | | Set it in the app info in the main application and read it from there. Moves more branding information out of the plugins. Change-Id: I2f2e9fc96900793be15ac1907df70dda31c1b9c1 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* | Reduce usage of app_version headerEike Ziller2023-06-262-6/+11
| | | | | | | | | | | | | | | | | | | | | | | | Most information is available via Q(Core|Gui)Application. Add an AppInfo structure for the things that are not. This avoids that the information ends up duplicated and hardcoded in the plugins, which is not needed or desired. Change-Id: I4d565e75c42a7b8facafa90c27096ea49359215d Reviewed-by: Alessandro Portale <alessandro.portale@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* | App: Fix a warninghjk2023-06-231-1/+1
|/ | | | | | | | | | "QGuiApplication::setDesktopFileName: the specified desktop file name ends with .desktop. For compatibility reasons, the .desktop suffix will be removed. Please specify a desktop file name without .desktop suffix" Change-Id: I84fa4d6dbed9ab95f9f90b452915bdce290743f3 Reviewed-by: Eike Ziller <eike.ziller@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
* Do not let Squish's DYLD_* paths interfere with QCChristian Stenger2023-06-211-0/+15
| | | | | | | | | | | | | | | | Add some crude hack to make QC work correctly when started from Squish. Squish explicitly sets DYLD_* paths but preserves the original content in separate variables. The modification is necessary from Squish's side to be able to hook into QC, but these modifications interfere e.g. when executing qmake from a different Qt version. Use the preserved values and set them internally if needed to get a corrected run environment. Change-Id: I2c1c8aa79ad37463e0b974ec3ce18ff32d8e12a9 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* App: Allow usage of "windows" style if enforcedCristian Adam2023-06-161-4/+6
| | | | | | | | | | | Currently the code checks if qFuzzyCompare(qApp->devicePixelRatio(), 1.0) and if the condition is true it will always set the "fusion" style. If the user sets a "-style" option we shouldn't override it. Change-Id: If9a20a1b38f4a5aa3c2ccaf53cb01aafb45077f9 Reviewed-by: Alessandro Portale <alessandro.portale@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
* App: Allow overriding of QT_SCALE_FACTOR_ROUNDING_POLICYCristian Adam2023-06-141-3/+4
| | | | | | | | The current code sets Qt::HighDpiScaleFactorRoundingPolicy::Floor with no option to override the value to something else. Change-Id: Id08a1cf8165f44a759c9ce8016a1173eb38f5a8d Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* QScopeGuard: Make all usages of QScopeGuard consistentJarek Kobus2023-06-071-1/+1
| | | | | | | Change-Id: Icfc35ecbdbdee8dadbb1b17789694093427c3ed9 Reviewed-by: Marco Bubke <marco.bubke@qt.io> Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* All: Replace deprecated QLibraryInfo::locationhjk2023-06-061-1/+1
| | | | | | | | ... by QLibraryInfo::path() which exists since 6.0 Change-Id: I0e1e071e0d279ddaf1f1027a0e6ce350ab21739a Reviewed-by: Eike Ziller <eike.ziller@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
* App: Remove workaround for crash in regexp jitting in Rosettahjk2023-05-161-5/+0
| | | | | | | | | | The relevant Qt bug was fixed upstream. This effectively reverts ab16f2984b6661ea172d345 Task-number: QTBUG-97085 Change-Id: I2ccf50f83b42111bbeaa26dfd95b1eb69a62c3bf Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* QtSingleApplication: Introduce QTC_FREEZE_DETECTOR env varJarek Kobus2023-05-041-20/+12
| | | | | | | | | | | | | | This may help with tracking the freezes in main thread. By default, when QTC_FREEZE_DETECTOR is set, it detects freezes above the 100 ms and prints the receiver object and event type that triggered the freeze. Change the default 100 ms threshold by setting the QTC_FREEZE_DETECTOR to some different numeric value. Change-Id: Ifb68c7648c09a5329f1f2aa39cd7e29e69a76052 Reviewed-by: Eike Ziller <eike.ziller@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Merge remote-tracking branch 'origin/10.0' into qds/devTim Jenßen2023-03-265-6/+6
|\ | | | | | | | | | | | | | | bigger conflicts resolved at: src/plugins/qmldesigner/CMakeLists.txt src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp Change-Id: I08e2a109d8e37cbd77225129854e9e633725bfc7
| * CMake build: Remove usages of Qt5_VERSIONEike Ziller2023-01-241-1/+1
| | | | | | | | | | | | | | | | | | | | and remove checks for Qt < 6.2, since that is our minimum version. Except for sdktool and qml2puppet. Change-Id: Id36cd1a15a5a6e5480e4ae5d0a8ffaea4b2a1864 Reviewed-by: Cristian Adam <cristian.adam@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
| * Replace GPL-3.0 with GPL-3.0-onlyKai Köhne2023-01-104-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | GPL-3.0 is deprecated by SPDX. Change done by find . -type f -exec perl -pi -e 's/LicenseRef-Qt-Commercial OR GPL-3.0(?!-)/LicenseRef-Qt-Commercial OR GPL-3.0-only/g' {} \; Change-Id: If316a498e3f27d2030b86d4e7743b3237ce09939 Reviewed-by: Lucie Gerard <lucie.gerard@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Eike Ziller <eike.ziller@qt.io>
| * CMake build: Use version-less Qt targetsEike Ziller2023-01-051-1/+1
| | | | | | | | | | | | | | | | | | Since we do not support Qt < 5.15 anymore, and as a first step for getting rid of our special FindQt5.cmake. Change-Id: Icc5dbaf9b0a3a622b1f609ff114b9decb6d2856c Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Cristian Adam <cristian.adam@qt.io>
* | crashpad: add sha to sentry annotationsTim Jenssen2023-03-061-0/+3
| | | | | | | | | | Change-Id: I7142da6d8fc61643512ff2ae6f581bf6795ab802 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
* | crashpad: change chrashpad dumps location to user directory on macOSTim Jenssen2023-03-061-1/+14
|/ | | | | | | | | This is necessary to not pollute the signed and notarized .app bundle. Task-number: QDS-9113 Change-Id: I74e0bced5679faac94b27d2a31ea10a7949fb21f Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
* Add support for plugin paths set by the installerEike Ziller2023-01-031-8/+37
| | | | | | | | | | | | This is important on macOS, where we cannot install optional plugins into the app bundle, because that would break code signing. Instead the install settings in the signed bundle sets a custom plugin path outside the bundle, and the installer puts optional plugins there. Task-number: QTCREATORBUG-26705 Change-Id: I8b36752471d16dfc5828e87e20254f39ab985ca2 Reviewed-by: David Schulz <david.schulz@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* main: Prevent GTK3 platform theme plugin from enforcing a dark paletteAlessandro Portale2022-12-021-0/+5
| | | | | | Fixes: QTCREATORBUG-28497 Change-Id: Ib49b57aafe044d711940db3ea0e0778206221111 Reviewed-by: Cristian Adam <cristian.adam@qt.io>
* Add -language command line option for overriding UI languageEike Ziller2022-11-071-12/+22
| | | | | | | | | | | | | I run Qt Creator in german, but for responding to questions and generally looking things up I regularly want to run it temporarily in english. A command line option makes that easier than having to start Qt Creator, navigate to the settings, and restarting it, and doing the same again to revert back to german. Change-Id: I7c0d84375ffc97e5c7607307fd3f785f2c315c3d Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Christian Stenger <christian.stenger@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* App: Also accept --version with two dashshjk2022-10-191-1/+4
| | | | | | | That more common on Linux. Change-Id: Id724932565a6d5292012e446914ef4fac1b4f652 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* App: Make -version output go to stdouthjk2022-10-191-1/+1
| | | | | | Fixes: QTCREATORBUG-28327 Change-Id: I0a263ec79ab49a4d1d0816fe798d8a0403e6fce0 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* Merge remote-tracking branch 'origin/8.0' into 9.0Eike Ziller2022-10-181-12/+25
|\ | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/mcusupport/mcusupportsdk.cpp src/plugins/qmldesigner/components/edit3d/edit3dwidget.cpp src/plugins/qmldesigner/components/materialbrowser/bundleimporter.cpp src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp Change-Id: I9317da0fc1243b9ce6d87f577aa843c51f132ad7