Commit Graph

534 Commits

Author SHA1 Message Date
hjk
e5f74d217b Core: Merge mainwindow and icore file pairs
So far the main window acted a bit like ICore's pimpl.
Aim at making that a bit more similar to other places.

The files are kept for now to not have to adjust #includes
all over the place and there's some hope to move code back there.

Change-Id: I150e2dd0971bfab44cba89e0c51bb3f37062b8d3
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2023-09-26 09:41:45 +00:00
hjk
080cb86761 Core: Pimpl MainWindow
I'd like to disentangle things a bit, and there's quite a bit
non-window-ish stuff here.

Change-Id: Iad1e1d17ccd10b3ffff14251039ae2a5d6bfb675
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2023-09-25 08:47:45 +00:00
hjk
41856dd254 Core: Disentangle SettingsDatabase access
There's nothing inherently tied to the main window here.

Change-Id: I48ae09777a4408fc4c955d23fdee3483d8a97dd0
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2023-09-21 13:50:02 +00:00
Marcus Tillmanns
5da1f14903 Core: Revert unintended change
Amends: e34762c844

Change-Id: I024b6ae5b65dffe45bacc1f44bba5e8ce41fe49d
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2023-09-19 11:39:24 +00:00
hjk
de42485b8f Core: Cosmetics and unused #includes
Change-Id: I5838b7340b9f5fca6d43a49026c8fc82f0d0a494
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2023-09-15 10:32:57 +00:00
hjk
4ecf769293 Core: Remove SettingsDatabase QObject base
Was not really needed except for the ownership.

Change-Id: I88e32123cbb85a8217ade9450b5b578845736311
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2023-09-15 10:32:44 +00:00
Eike Ziller
e76ec76c0f Remove unused variable
Amends 7f908d737b

Change-Id: I5e28f850c6a4d836ba7c48bd117a91aab64f478c
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: hjk <hjk@qt.io>
2023-09-14 14:35:25 +00:00
Eike Ziller
dab19c4a8c Use Nanotrace to generate startup performance report
Add various trace points to the code, including the plugin
initialization methods (centrally in plugin manager), code that is
scheduled on the event loop with QTimer::singleShot or
QMetaObject::invokeMethod during initialization, and code that is
triggered from ICore::coreOpened

Can be turned on by configuring with `BUILD_LIBRARY_NANOTRACE=ON`
Run with `-trace <file>` to write trace file. If Nanotrace is not built,
the added code expands to nothing.

Changes in Nanotrace:
- turned generated data to microseconds instead of nanoseconds, because
  that is what Chrome tracing expects
- fixed serialization of duration (needs to be an item of the event, not
  in a "arg" subitem)
- fixed shutdown() to reset the initEvent

Change-Id: I994de82023b820d771e1be0a859ebd8da0b73d4d
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2023-09-12 07:32:07 +00:00
Eike Ziller
2adebd0eb4 Core: Never call QMainWindow::menuBar()
It replaces the global menu bar on macOS (that is a QMenuBar(nullptr))
with a window specific menu bar, resulting in an empty menu bar for Qt
Creator.

Amends a6e779606d

Change-Id: Id6e2c0b9b2dfe4ade88af0f9a6d3b008fed790be
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2023-09-08 12:39:05 +00:00
Cristian Adam
a6e779606d Core: Add action to hide the menu bar
This will only affect the platforms that do not have a native menu bar
e.g. Windows and Linux excepting Unity.

Fixes: QTCREATORBUG-29498
Change-Id: I17a654cfa50342f3e506bf0a2b14225c4d3a6bee
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2023-09-08 07:59:50 +00:00
Artem Sokolovskii
f4e50126b1 Core: Add clearAboutInformation function
Change-Id: Ib6dcc3b963917c096756cbff09541f4e13c8184b
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2023-09-07 12:12:26 +00:00
Marcus Tillmanns
c14c021e45 Utils: Use QtcSettings
Fixes compile errors with Qt 6.2.4.

Change-Id: Ia97d5fcbeb80ee1242fd4c2425bc7f325dad8953
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
2023-09-05 08:24:31 +00:00
hjk
67212a31ee Utils: Cache theme icon access
These trigger over 120k file exist check on my machine on startup,
just for a handful icons.

Change-Id: Ic73f0783142ed329c2f8c8b852f622e69fc306da
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2023-09-01 14:03:33 +00:00
Marcus Tillmanns
e34762c844 Add CompilerExplorer plugin
Change-Id: I534dea195a0b74f177fc227483752777485be177
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: hjk <hjk@qt.io>
2023-08-17 07:11:45 +00:00
hjk
7f908d737b Core: Move SystemSettings page closer to current setup
Also align items a bit and use BaseAspect::setEnabler() where
appropriate.

Change-Id: I7497e3ce82f3685582a84b1bf383e65892d76f96
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2023-07-28 13:27:10 +00:00
hjk
fa2124f037 Core: Move GeneralSettings setup structure closer to new normal
Change-Id: I3ffbe1b28971912510582a174bf37a0e3f9d4ff4
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2023-07-27 11:31:01 +00:00
Eike Ziller
835201060d Merge remote-tracking branch 'origin/11.0'
Change-Id: I2e0e8dd5f9b42533c665255f8539e837938846de
2023-07-13 08:28:42 +02:00
Eike Ziller
9e8bdc9836 Fix order of session vs recent files/projects menu
Got mixed up when moving the session manager to Core

Change-Id: I729dd505c0b58bbbe46ddee423c76ab21c6f1b25
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2023-07-12 08:59:09 +00:00
Eike Ziller
dff9e1463b Reduce usage of app_version header
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>
2023-06-26 06:57:46 +00:00
Eike Ziller
fafd24a616 Change log: Add links to the bugreports
And prevent that the internal log viewer replaces the bug items with
links if they are already within a link.

Change-Id: I115fd9be59d0394a91b3bcd3157083e30d44c6b5
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2023-06-12 06:10:03 +00:00
Eike Ziller
b6c452d59d Terminal: Clean up settings
Qt Creator <= 10 accidentally wrote the default terminal into the
settings on macOS instead of leaving the values empty. So the change
from "openTerminal.py" to just "Terminal.app" might not be correctly
reflected in the settings.

Make sure that the terminal setting is removed in all cases, if it is
set to the default.

Amends f003234510

Change-Id: I9d099999f55b4003ac6e7f4a4b679b893eaffc90
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
2023-06-08 11:33:20 +00:00
Eike Ziller
a353e9fde1 Markdown: Reuse Markdown highlighter from change log viewer
Change-Id: Ief1b0c135a34bfd5e9b5220e9fbf93f281d8e95a
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2023-04-19 11:48:15 +00:00
Tim Jenßen
feabda3aa7 Merge remote-tracking branch 'origin/10.0' into qds/dev
bigger conflicts resolved at:
  src/plugins/qmldesigner/CMakeLists.txt
  src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp

Change-Id: I08e2a109d8e37cbd77225129854e9e633725bfc7
2023-03-26 16:26:18 +02:00
Thomas Hartmann
39434062a2 Add option to hide tools
This allows hiding the tools menu by default.
Power users can enable it again.

Change-Id: I5465f0c525bb5b4954e13cb42a941ac8b6b7cf37
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2023-01-27 12:34:29 +00:00
hjk
015b1ee53c Core: Tr::tr
Change-Id: I0064814b0689f0f65072d2b0f60e26162587fd54
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2023-01-17 14:34:16 +00:00
hjk
f939f968ea Utils: Consolidate Link::from{FilePath,String}
The input is more unparsed-string-ish in nature, so FilePath is not
appropriate.

Change-Id: I85efb5813b8f5fbbc4127be1c936d5487637b75c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2023-01-17 09:46:58 +00:00
Kai Köhne
56baf8c058 Remove GPL-3.0+ from license identifiers
Since we also license under GPL-3.0 WITH Qt-GPL-exception-1.0,
this applies only to a hypothetical newer version of GPL, that doesn't
exist yet. If such a version emerges, we can still decide to relicense...

While at it, replace (deprecated) GPL-3.0 with more explicit GPL-3.0-only

Change was done by running

  find . -type f -exec perl -pi -e "s/LicenseRef-Qt-Commercial OR GPL-3.0\+ OR GPL-3.0 WITH Qt-GPL-exception-1.0/LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0/g" {} \;

Change-Id: I5097e6ce8d10233993ee30d7e25120e2659eb10b
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2023-01-06 11:15:13 +00:00
Marcus Tillmanns
26f07c62a0 Core: Remove unused Key
Change-Id: Ic3e9e7b994e010fe1b65b8273e74124dc957bdef
Reviewed-by: hjk <hjk@qt.io>
2022-12-09 11:15:39 +00:00
Jarek Kobus
5769fd82d3 CorePlugin: Pass context object to lambda connections
Remove some unneeded lambda () brackets.

Change-Id: Id664cfc3b46685f63fb205beaf16a7c271ad95d9
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-12-08 08:50:07 +00:00
Orgad Shaneh
157f2bcd39 Merge remote-tracking branch 'origin/9.0'
Change-Id: I231d35f492713f317773b79478b5f7fb97a4fe50
2022-11-28 17:29:19 +02:00
Eike Ziller
2ff5f18bff Transform doc.qt.io/qt-creator links to internal qthelp links, for links
that are found locally in the documentation. That opens such links in Qt
Creator, instead of in the web, if possible.

Change-Id: I2270c6947db22f4aeb4968bf5b7245de57521c92
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2022-11-24 15:10:05 +00:00
hjk
722312f62f Core: Combine two code paths creating absolute paths
Remote and local can use the same nowadays.

Change-Id: I218aafb0293dadbbf75f248f4076cabfa4a0f3da
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-11-21 13:25:26 +00:00
hjk
e567cb313b Core: Use FilePath for working dir in MainWindow::openFiles()
Change-Id: Ifc8e167a1734115fa7a23f7aefa45fc52e4a70cc
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-11-21 12:46:11 +00:00
Marcus Tillmanns
7e0d545e64 Utils: Allow mimetype deep-scan for remote files
Text editors need to know the actual mimetype of a file to be able to
open the correct editor view. Just checking the extension is not
enough. Especially on linux there are many text files without
an extension.

Change-Id: I7e5c935b0619f5d86e97f10bfd7ff9b65da62f4b
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-11-04 09:52:15 +00:00
Eike Ziller
6e8087a1b1 macOS: Fix missing "Search" item in help menu
Define the menu as the help menu directly in the the NSApplication,
since the OS built-in heuristics based on the menu name easily fails.

Fixes: QTCREATORBUG-24751
Change-Id: I9aa50a46099e295ec0c38ee8a9e88d75d41c74ad
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-11-01 07:28:26 +00:00
Eike Ziller
06402e0dc6 Re-add "Toogle Bookmark" icon into touch bar
Instead of "Edit Bookmark" which was not intended to be there.
Also move it behind the "navigation" items, since these are probably
used more often.

Amends ac47d51bfb

Fixes: QTCREATORBUG-28108
Change-Id: I47c443772488b7f9e29c8fadf01011d4ddfd5686
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: David Schulz <david.schulz@qt.io>
2022-10-17 11:14:05 +00:00
Marcus Tillmanns
35de9566b6 MainWindow: Use FileUtils::get... functions
Changes the MainWindow to use FileUtils::getFilePaths function
to access files on devices instead of QFileDialog.

Change-Id: I0981c960b643edd69510cfed1cce16346962d75a
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-10-13 05:17:15 +00:00
Marc Mutz
8eb4d52342 Port from qAsConst() to std::as_const()
We've been requiring C++17 since Qt 6.0, and our qAsConst use finally
starts to bother us (QTBUG-99313), so time to port away from it
now.

Since qAsConst has exactly the same semantics as std::as_const (down
to rvalue treatment, constexpr'ness and noexcept'ness), there's really
nothing more to it than a global search-and-replace.

Task-number: QTBUG-99313
Change-Id: I88edd91395849574436299b8badda21bb93bea39
Reviewed-by: hjk <hjk@qt.io>
2022-10-07 13:47:53 +00:00
Jarek Kobus
3885b936b6 CorePlugin: Limit the usage of qMakePair and std::make_pair
Change-Id: Ibf96ca29d2570841955366371f1bab11198b3e67
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-09-30 11:23:54 +00:00
Marcus Tillmanns
5d4bbd38d4 MainWindow: Disable TrimTimer on non Linux Host
Timers showed up a lot during cpu profiling on macOS.
This is one of them. Since its only used on Linux,
this patch makes sure that its only started there as well.

Change-Id: I0da35473b622c92e39a7e45677441f1cd8aa3344
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2022-09-27 08:24:43 +00:00
Eike Ziller
2c51e4bc17 FilePath: Return optional bytearray for file contents
For differentiating between "error" and "empty file".

Change-Id: I2c019ceac625e7be3180afa4d47ae3a24df91c1d
Reviewed-by: hjk <hjk@qt.io>
2022-09-12 11:57:04 +00:00
Lucie Gérard
a7956df3ca Use SPDX license identifiers
Replace the current license disclaimer in files by
a SPDX-License-Identifier.

Task-number: QTBUG-67283
Change-Id: I708fd1f9f2b73d60f57cc3568646929117825813
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-08-26 12:27:18 +00:00
hjk
df4155f617 App: Use more local methods to trigger memory trim timer
The global event filter function is executed often, for events
originating deep in the widget hierarchy even multiple times.

Triggering the timer only by mouse and key presses on the main
application and on texteditor is less intrusive and still happens
often enough (TM).

Change-Id: I848d55a347bd62d12e8523965d1750c59da33116
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2022-08-02 11:18:12 +00:00
Jarek Kobus
3daec60eb3 Drop Qt5: CorePlugin: Remove code below Qt 6.0.0
Change-Id: Ib00643f43ae1dfa42ae7ce6b4275fd50dd572765
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-07-25 13:57:57 +00:00
Alessandro Portale
afe0b5a42d Utils: Use FilePaths alias instead of QList<FilePath>
Change-Id: I2eb0956377e46a34e73208b301eb662704a25e8b
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-07-21 16:05:38 +00:00
Marcus Tillmanns
3462bc67be filesystem: Add QFSEngine for filepaths
Change-Id: Ibd0c88c69863c0877138d8cc45541530c359bd9c
Reviewed-by: hjk <hjk@qt.io>
2022-07-21 13:14:01 +00:00
Jarek Kobus
0dae822ca3 Drop Qt5: Core: Get rid of QOverload
Change-Id: Ibaebd83304680156e13a9ebc473075ad2a4bfed4
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2022-07-20 10:30:34 +00:00
Christian Stenger
b9ceefe918 Core: Fix build with Qt5
Amends 5b683c53c3.

Change-Id: I80b8b6d1b508e42f81e022fee19117285a4c9687
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2022-07-07 14:07:09 +00:00
Cristian Adam
5b683c53c3 Change log browser: Use the markdown renderer for the .md files
Change-Id: I8a419b746b4b88a89ea77de8bd160acebd595655
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-07-07 12:52:11 +00:00
Eike Ziller
ae0032dfd5 CorePlugin: Use Tr::tr instead of QCoreApplication::translate("Core"...
Change-Id: Idf0b8e9effedbacda7a4eedb5bf0f78918fce631
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-07-06 06:41:24 +00:00