This adds support for inheritance to the existing experimental
implementation in tests/manual/layoutbuilder/experimental
and gets rid of the tight coupling and qobject_casts in the
setter implementations. Plan is to use this (minus "bindings"
via *::Id / id()) for utils/layoutbuilder.{h,cpp} later.
The "binding" support via id() is still experimental, and in
its current version not really useful. A possible idea would
be to re-use the Tasking::Storage idea, but it's not quite
clear how to expose that "long distance" (i.e. across multiple,
unrelated top-level builders). However, this is not used in
in current uses of the "old" layoutbuilder, so this is not
blocking anything.
Some notes:
The *Interface hierarchy is not strictly needed, it could directly
act on things in the QObject hierarchy but would then need #includes
of all "buildable" classes, which can be avoided in the current
implementation. Besides, the indirection allows us to tweak and/or
add functionailty to the Qt classes in the indirecting code, that
does not necessarily have to match 1:1 to the underlyings Qt classes.
The std::function based callbacks are quite fat and not functionally
needed and could be dropped by "inlining" the relevant bits from
typical std::function implementations. However, these invariably seem
to end up calling functions through pointers to (ABI-compatible, but)
different types, which is for /user/ code formally undefined behavior
according to C++11 §5.2.10/6. To avoid a discussion whether doing
the same ourselves is tolerable or not, this uses std::function
and pays the price of the overhead.
Change-Id: I6d40c1bd48cf065fcf211eaff8d9a2298bca20eb
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
The default for the reload behavior has changed, so explicitly
set the setting when necessary.
Change-Id: Ibcc3e8d2decf3f50dd3d1288c38ec3d027fbc23e
Reviewed-by: Robert Löhning <robert.loehning@qt.io>
Introduce ParsedAvdList struct and return it from the parseAvdList().
This eliminates passing the errorPaths result by reference.
Simplify listVirtualDevices() implementation by removing some local
variables.
Adapt the tst_AvdManagerOutputParser test accordingly.
Change-Id: If4670bcc81ce36416c1fe35e8ee57e822f82516f
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Before calling clickOnTab we used explicit waitForObject calls
sometimes.
Move these waitForObject calls into clickOnTab as the workaround
inside clickOnTab lets assume that the call of waitForObject
beforehand could fail.
Change-Id: Iba3bd952bfeec3738417ab6e2ea735665acb504d
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Robert Löhning <robert.loehning@qt.io>
Change IPlugin::fileName() and IPlugin::location to use
FilePath instead of QString.
Change-Id: If473ab1e258951735f93221cbd62c505f0727eb2
Reviewed-by: hjk <hjk@qt.io>
Extend the solution from
commit d86cf5e235
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Thu Sep 24 12:02:06 2020 +0200
Debugger: Retrieve and remember int from native GDB value
to also retrieve the int representation for numeric values
from the corresponding native gdb.Value if a typedef to
an integer or bool type is used, not only when an integer
type is used directly.
This makes expressions for bifield members in the
debugger's expression view show the correct value
when the type of those bitfield members is a typedef
to an integer type.
Extend the "Bitfields" dumper test accordingly.
One real world example where incorrect values were
previously shown is GtkWidgetPrivate from the
GTK library [1].
[1] ebc84a6185/gtk/gtkwidgetprivate.h (L39-76)
Change-Id: Ib39e00ebbfc8d7d9ab10dc89af61f37ec41fb4ee
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
The type cache has been split into smaller caches for individual
aspects. Type ids are now integral, not strings.
In addition, there is new supporting code for logging, timing and
profiling
Change-Id: I6db72a149650d42aecf8b899869c542b1303d43b
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
So far the defaults were false but some of the are true.
Task-number: QDS-12663
Change-Id: I710913ed371d6e094cf68c154bb9353c21ee0c16
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Type annotaions are now saving the type name and dropInFormEditor is by
default true.
Task-number: QDS-12450
Change-Id: I757f59b296de321c4d0190a36ec581379f646735
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This misused typeLines() to close the dialog by pressing "Return".
Although the entire name of the button should be selected at first,
I witnessed the new name being appended to the old one.
The new code uses replaceEditorContent() to explicit select the old
name and replace it with the new name. After that, it explicitly
presses "Return" to close the dialog.
Change-Id: I5ec946f57000396b70428e08ab795a1ee3eba91a
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
The occurrence count can't be understood without looking at
the running application and can even change at runtime.
Change-Id: I34677fd2fe2a0a8a7f2cdcd9f37ec938efe1a5ea
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
There are now other ways to prevent locking bugs. So we don't need the
template parameter anymore. That makes it possible to move much of the
code to a cpp file. Maybe later we have to move some functions back for
performance reasons.
Change-Id: I01269912618d7cf5e070219e7edaa3a00623b7cf
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
On systems where some ui features may be using animations
the animation could interfere with the test.
Explicitly wait a short amount of time as there is no
easy way to achieve this.
This fixes a couple of tests on macOS.
Change-Id: Ib79b43955ebf218342db108a43979093994fba02
Reviewed-by: Robert Löhning <robert.loehning@qt.io>
Since we now have multiple classes inheriting from PluginSpec it makes sense
to rename PluginSpecImpl to the more accurate CppPluginSpec as it deals with
compiled plugins only.
Amends b39b192518
Change-Id: Icae9daed2be5a258a9918731a881c72cbe4f0fa4
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
PluginSpecImpl::read is used outside of tests, but PluginSpecImpl itself
is only exported when WITH_TESTS is on. So compilation without
WITH_TESTS would fail. To circumvent this the ::read functions are moved
outside of the PluginSpecImpl and friend'd to it.
Amends b39b192518
Change-Id: I4bd8ce087267ab4e059cff2470ff882c7db6fd78
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Squish allows passing wait conditions as strings containing python code.
The only advantage I see is that the notation is a little shorter than
using a lambda. On the other hand, the strings can't get proper syntax
highlighting and cause false positive warnings about unused variables.
Change-Id: I226840fa26dc75d07d89f20647d069e2e866bbc9
Reviewed-by: Christian Stenger <christian.stenger@qt.io>