Commit Graph

1631 Commits

Author SHA1 Message Date
Eike Ziller
b3a893e9b8 Merge remote-tracking branch 'origin/4.15'
Change-Id: I75ffc79eeb8d73296a2271a636fae48e35427947
2021-05-05 11:46:19 +02:00
Jarek Kobus
564d2666c3 Fix build with GCC 11: include <limits>
Task-number: QTBUG-90395
Change-Id: Ic6d3fde59bd44d364ca1c1fe48b094bb9768b43c
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2021-04-29 09:55:51 +00:00
hjk
38b4536090 Utils: Introduce a BaseAspect::setEnabler(BoolAspect *)
A convenience method to tie the enabled state of an aspect to some
other bool aspect, to be used e.g. when settings item availability
depends on some check box.

Makes it harder to miss one of the three necessary steps.

Change-Id: I8c120bb6846aea2a503614f7c73fa57a149cab41
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-04-13 09:59:58 +00:00
hjk
454e8a31e2 Analyzer: Base ISettingsAspect on Utils::AspectContainer
Change-Id: Ib4c19d0cb167911dc50d989771dd53f3569db087
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-04-12 13:15:13 +00:00
hjk
8eb74080ab QmlProfiler: Aspectify settings
Only four simple values.

Adapting qmlprofilerconfigwidget_test did not seem desirable,
as in the aspectified state this is hidden in the base aspects
implementations.

Change-Id: I933a8ca065169c61b7f25f109e0b7a0e6d21cb33
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-04-12 11:29:16 +00:00
Eike Ziller
30da5aafd7 CMake build/Qt6: Automatically disable build of profilers
Tracing library does not build with Qt 6. Disable that automatically
and also the plugins that depend on it. Add some feature info for
the Tracing library, though we usually do not add feature information
for libraries in general.

Change-Id: I51b6993e30ec69d63a031c7bf404ea3887e14d84
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2021-03-05 12:29:57 +00:00
Alessandro Portale
72d91dc94a Use qAsConst with non-const Qt containers in range-loops
... in various places

Change-Id: Ic6c0c1b9437a1ed402105c7a14a1f5f9454a68d4
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
2021-02-17 14:43:29 +00:00
Ulf Hermann
1455eae9ac QmlProfiler: Be more patient in FlameGraphViewTest
Apparently 5s are not enough to show a window on the screen ...

Change-Id: I8da65d0d8b8b9bbb7ba80396045551d46590ff61
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-01-15 13:53:39 +00:00
Eike Ziller
eaefcbd8f0 Use new, more evocative MessageManager API
At various places where semantics doesn't change.

Change-Id: Ib4d4a5c9f067e109126c6de88257f9e198a71447
Reviewed-by: hjk <hjk@qt.io>
2020-12-16 09:30:44 +00:00
Jarek Kobus
d42f38cc96 Use Q_ENUM instead of obsoleted Q_ENUMS
It fixes the following warning:
Use Q_ENUM instead of Q_ENUMS [clazy-qenums]

In addition, it amends 8588cf268f
where WidgetStyle got removed.

Change-Id: I4d72dd762a2f18ba8886360b3581b4ef19bf4c5e
Reviewed-by: hjk <hjk@qt.io>
2020-12-11 14:16:42 +00:00
Jarek Kobus
e9ef83f4c6 Don't call non-const method on temporary container
...as it may detach. Fix the following clazy warning:
Don't call QList::first() on temporary [clazy-detaching-temporary].

Change-Id: I667c122c42ccfc1344508154466d9c1dc6ae6166
Reviewed-by: hjk <hjk@qt.io>
2020-12-08 14:44:18 +00:00
Alessandro Portale
a3857a996a Don't access static functions/fields via instance
Courtesy of readability-static-accessed-through-instance

Amends: b2a766a79a

Round #2: This time done with Qt Creator's Analyzer, which
found other occurences than run-clang-tidy.py

Change-Id: I479e280c7abcf2d24baccbb0af69ae4bda05198e
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
2020-11-27 13:26:07 +00:00
Christian Stenger
1eb0b02ce9 QmlProfiler: Fix flamegraph test
Change-Id: I27d7067a844e614334a5faedcb2915b3a24ae5e0
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2020-11-16 05:29:50 +00:00
Jarek Kobus
2b414508b7 Remove unneeded includes
Change-Id: I67fee9303509b7080e123a2a5826e200ce498ce2
Reviewed-by: hjk <hjk@qt.io>
2020-11-12 12:14:11 +00:00
Eike Ziller
8add61b216 Merge remote-tracking branch 'origin/4.13' into 4.14
Conflicts:
	cmake/QtCreatorIDEBranding.cmake
	qbs/modules/qtc/qtc.qbs
	qtcreator_ide_branding.pri

Change-Id: Ia779a511d73d86d79dbcecd8cc3763cf3d605a87
2020-10-09 16:35:27 +02:00
Dominik Holland
db4b3641f5 qmlprofiler: Fix a crash in the rangeFilter
Always check the stack before popping an element.

Fixes: QTCREATORBUG-24730
Change-Id: I7dc6363137ef002219fbc49b7343cff8112a58c2
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2020-10-09 11:38:28 +00:00
Christian Stenger
ddc5afc4ec QmlProfiler: Replace QRegExp by QRegularExpression
Task-number: QTCREATORBUG-24098
Change-Id: I98bc7a6561c8e19da984d2efbf36d890b1f48ebf
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2020-07-14 11:30:54 +00:00
hjk
e1c88116b3 Core/Utils: Migrate further to Utils::Id
The coreplugin/id.h header is kept for downstream for now.

Change-Id: I8c44590f7b988b3770ecdc177c40783e12353e66
(cherry picked from commit 430a33dcd9)
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-07-06 11:15:18 +00:00
hjk
430a33dcd9 Core/Utils: Migrate further to Utils::Id
The coreplugin/id.h header is kept for downstream for now.

Change-Id: I8c44590f7b988b3770ecdc177c40783e12353e66
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2020-07-06 06:07:13 +00:00
Eike Ziller
1b431fe271 Move Id from Core to Utils
And add a compatibility wrapper for Core::Id, so we don't have to rename
all occurrences from Core::Id to Utils::Id.

This allows us to use Id also in Utils, which makes it possible to e.g.
move Core::InfoBar to Utils without work arounds.

Change-Id: I5555d05b4e52f09d501dbfe5d91252a982a97c61
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: André Hartmann <aha_1980@gmx.de>
2020-06-18 05:58:23 +00:00
Eike Ziller
5b364de168 Use dialogParent() instead of mainWindow()
There are very few reasons to use mainWindow() directly.
Especially for modal dialogs, using dialogParent() is important, since
that guarantees the stacking order in case of other dialogs currently
being open.

Change-Id: I7ad2c23c5034b43195eb35cfe405932a7ea003e6
Reviewed-by: hjk <hjk@qt.io>
2020-06-02 11:44:53 +00:00
Christian Stenger
5104798b8c Check for selection support of clipboard
Setting the data on a non-supported MIME data will fail
and get deleted.
Checking beforehand gets rid of a warning printed by
QClipboard.

Change-Id: I5b5a371ce5b904f61a1aed5ea21a98908155357b
Reviewed-by: hjk <hjk@qt.io>
2020-05-14 13:19:18 +00:00
Christian Kandeler
e915cde44b QmlProfiler: Fix warning about unused lambda capture
Change-Id: I029497edaac5695d47a8930a304713fba48ded15
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-04-23 14:37:19 +00:00
Eike Ziller
9e0009803c Fix lupdate issues
Change-Id: I26f08ae82354c178f6d26f9138796328b50bfba8
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2020-03-18 10:45:15 +00:00
Fawzi Mohamed
b09a48599e Update qmljs parser to Qt 5.15 parser
* parser side support for annotations, inline components, new UiVersion
  and all the things included in QT 5.15 parser
* SourceLocation moved from QmlJS:AST to QmlJS
* Visitors now need to handle throwRecursionDepthError
* BaseVisitor for visitors that want to override all visit

Task-number: QTCREATORBUG-23591
Change-Id: I682a30d0b08b6c929739fd0e339ef6fbde3eb630
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2020-03-03 15:31:10 +00:00
hjk
df7400b686 ProjectExplorer: Disentangle ProjectExplorer::updateRunActions
This enforces a linear pass through

  [static] ProjectExplorerPlugin::updateRunActions
  ProjectExplorerPluginPrivate::doUpdateRunAction
  [emit] ProjectExplorerPluginPrivate::runActionsUpdated

instead of the previous direct emission of the signal from
user code and connecting also the internal update to it.

This is meant to simplify reasoning about execution order and
maybe to help elimimating double executation.

Change-Id: Id8cc41a46d9dec06afb5514855f2ae80560f3695
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2020-02-26 14:32:58 +00:00
Kai Koehne
fda9955df0 Globally disable WindowContextHelpButtonHint
Do set the global application flag AA_DisableWindowContextHelpButton
to avoid having to unset the default WindowContextHelpButtonHint
in every single dialog.

AA_DisableWindowContextHelpButton was added in Qt 5.10.

Change-Id: I21fe8bc5ddfa4c01ec7a799b04bfb6ff1c9d6d86
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-02-25 13:26:44 +00:00
hjk
e5d1e9d274 Work around QHash::unite deprecation
Change-Id: Ibf199b5e3f2ca99b7e0cafe20893a509d9eab906
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-02-25 10:43:10 +00:00
hjk
c3f7ef5340 Several SettingsPages: Code cosmetics
De-Q_OBJECT-ify, remove unnecessary #includes, final-ize, etc.

Change-Id: I461d3e73400dacac90c22e7c84a40e3ea1718b6e
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-01-30 15:04:58 +00:00
Cristian Adam
08202b9110 CMake Build: rename target qmljs to QmlJS
This is in sync with what qmake and qbs project have.

Change-Id: Id82bbd933a8331c3e2032e5068323c183b2a1814
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2020-01-16 17:32:24 +00:00
hjk
d43b793dd8 Core: Introduce a IOptionsPage::setCategoryIconPath
Less noise on the user side.

Change-Id: I34dea09e8a3c8639f5a7db89b22f8b825b946395
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-01-16 09:53:45 +00:00
hjk
a971da3bfe ProjectExplorer: Replace BuildConfigurationFactory::availableBuilds
... by a function object.

Change-Id: I9953ba6915c0177e7c4067d36dd755fc2ba5cf84
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2020-01-09 15:42:21 +00:00
hjk
c8137bdcf9 ProjectExplorer: Consolidate some Session::active* accesses
Change-Id: I47b0f6c2c60b2f7c86b6ffd1ad3df393d1321c8b
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-11-29 08:39:07 +00:00
hjk
e9d8ff21b0 Remove unused QObject parent arguments on options pages
In the new plugin setup scheme they are data members of the
plugin pimpl and never use the parent.

Change-Id: I28fe150393e8159064dcfbd113ce0320af50fd58
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-09-11 06:03:40 +00:00
hjk
4028a41d2e ProjectExplorer: Use std::function for SimpleTargetRunner::start()
This spares us the typical r = runnable(); modify(r); setRunnable(r)
roundtrip and the m_runnable storage that might or might not
be the same as runControl->runnable. Similar for m_device.

Change-Id: I8300260dd8dd7cd395e40bcd3d2ae45089085008
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-09-04 11:08:34 +00:00
Sona Kurazyan
82bcf4e9f5 Remove usages of deprecated APIs
Replaced:
  QPalette::ColorRole::Background -> QPalette::ColorRole::Window
  QPalette::ColorRole::Foreground -> QPalette::ColorRole::WindowText
  Qt::ItemDataRole::TextColorRole -> Qt::ItemDataRole::ForegroundRole
  QFontMetrics::width() -> QFontMetrics::horizontalAdvance()

Task-number: QTBUG-76491
Change-Id: I1302e6b569e725daa6f7be1428ffe055657fc644
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-09-03 09:15:30 +00:00
hjk
524a1f431c QmlProfiler: Use standard setup for runner setup
Code-wise no immediate advantage, but removes the need for the
unusual 'started' signal.

Change-Id: Ie1d99127e8fe1561c35e035894ee5dd4639d3f12
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2019-09-03 07:09:05 +00:00
hjk
11badef44e QmlProfiler: Work around incomplete setup
Amends 3844f59806.

Some

    RunControl::registerWorkerCreator(ProjectExplorer::Constants::QML_PROFILER_RUN_MODE,
                                      [this](RunControl *runControl) {
        auto runner = new QmlProfilerRunner(runControl);
        connect(runner, &QmlProfilerRunner::starting,
                &d->m_profilerTool, &QmlProfilerTool::finalizeRunControl);
        return runner;
  });

hunk disappeared. This here has the same effect.

Change-Id: Ib81a78944145cc2075bfcb931691adf214f3560d
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2019-09-02 13:04:50 +00:00
hjk
2399e4476b QmlProfiler: Reduce code size for feature menu setup
Change-Id: Ied31be4c880f2e38935830e35afb20435d7f74b2
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2019-09-02 10:10:33 +00:00
hjk
edcd955aad QmlProfiler: Remove some dead code
Change-Id: I5f13797044e2c80d4a651bb91bf6e722552566f6
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2019-08-30 15:50:21 +00:00
hjk
cd3876fd1a ProjectExplorer: Use a ISettingsAspect::setConfigWidgetCreator() setter
Closer to the usual pattern elsewhere.

Change-Id: Ieaed483bc7f61b63e5bde87a721f43c3e3d737aa
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-08-30 11:13:51 +00:00
hjk
3844f59806 ProjectExplorer: Standardize RunWorker creation logic
This unifies the remaining paths of RunWorker creation to always
use RunWorkerFactories in the plugin pimpls.

There were, and are, still effectively three basic kinds of workers:
 - "toplevel" tools corresponding to the run modes, that are often all
    that's used for local runs and directly started via the fat buttons
    or e.g. entries in the analyze menu, with factories already previously
    located in the plugin pimpls
 -  core "tool helpers", providing tool specific functionality typically
    used in conjunction with a remote device specific run mechanism,
    set up via RunControl::registerWorkerCreator
 -  target/device specific runhelper like port gatherers contructed e.g.
    via *Device::workerCreator(Core::Id id)

Worse, these categories are partially overlapping, so it was not
clear how a "clean" setup would look like, instead some ad-hoc cobbling
"to make it work" happened.

In some cases, the runMode id was used throughout the whole ensemble
of run workers for a given run, and which worker exactly was created
depended on which of the mechanism above was used in which order.

With the new central setup, the top-level runmodes remain, but the
second kind gets new ids, so the implicit dependencies on order
of setup mechanism are avoided.

This also helps in the cases where there was previously unclarity of where
and how to set up worker factories: It's always and only the plugin
pimpl now.

Change-Id: Icd9a08e2d53e19abe8b21fe546f469fae353a69f
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2019-08-27 07:54:45 +00:00
Tobias Hunger
bc6628d037 QmlProfiler: Remove unnecessary parameter from test code
Change-Id: Ia1963e316f7c56357989440a13af5d73488ffece
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-08-15 10:38:51 +00:00
hjk
f9c221eb54 ProjectExplorer: Re-work setup runworker factories
This combines two of the previous three paths to create run workers,
and refers to RunConfigurations by id, not by type where possible
to decrease coupling between the classes.

Only allow "type of run configuration" and "type of device"
as the only possible kind of restriction and require a uniform
RunWorker constructor signature.

Adapt user code to fit that pattern.

Change-Id: I5a6d49c9a144785fd0235d7586f244b56f67b366
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-08-09 12:34:42 +00:00
hjk
09e5c167bd ProjectExplorer: Add convenience Project::addTargetFor{Default,}Kit
Less noise on the user side.

Change-Id: I5cdf4af4910a3cc1ee0af1b43fcbc7329a6d59db
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-08-01 16:16:29 +00:00
hjk
0a19b8e115 QmlProfiler: Avoid a deprecation warning
Change-Id: Ie30d30d304faf71dee36c8ae3a37e8974af99bf3
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-07-30 08:14:20 +00:00
Eike Ziller
3ab3e68a7b Merge remote-tracking branch 'origin/4.10'
Change-Id: I427280fdb207b878000697dfd37595ffdb26f4e7
2019-07-26 10:30:03 +02:00
Marc Mutz
2e556c96b6 QmlProfiler: avoid using Q_FOREACH over QVarLengthArray
The squeeze() function is called by clients for QVLA's, which means
it's copying 1-2KiB of data (depending on sizeof(value_type)) just
to iterate over a small part of it.

Use a C++11 ranged for loop.

Change-Id: I2c33ae0c5a3d9d941cd9e385fc6bbb4fb0fa3c2c
Reviewed-by: hjk <hjk@qt.io>
2019-07-25 14:40:11 +00:00
hjk
251287f0d3 Avoid warning on empty expressions
For some reason, Q_UNUSED includes already a semicolon, adding one
on the user side creates an additional empty statement.

Change-Id: I9c5e8fac381345a60792cb75e2938fd53958d3b0
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-07-23 11:55:59 +00:00
Ulf Hermann
e9d36fe9ef Tracing: Use Combobox for the modes menu
This is a better fit than a custom Button + Menu combination.

Fixes: QTCREATORBUG-22579
Change-Id: Ie6f8a7ef2ce0da67a16bc365d6f619a11bc56221
Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
2019-07-05 12:31:44 +00:00