Unbundled TUIO messages were being ignored. TUIO protocol
defaults to bundled but states it should work with any
Open Sound Control (OSC) implementation. Unbundled handling
was already in place, just fixed the logic to make it work.
Change-Id: I6d91449bd2069ac891e493fb7f50c010bcc3e8be
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
- Don't iterate over QMap::keys(), but directly
over the map, saving a temporary QList and
double lookups.
- Always append the item separator, and chop
it off once at the end, which allows to
fold the separator into the existing string
builder expression.
Change-Id: Ibd20ea292695098e0fc575025b1827a75aabfd1e
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
The user-defined copy assignment and (on QMatrix) copy
constructors inhibit the move special member functions.
We cannot do something about it in Qt 5, because these
classes are exported (which they shouldn't be), and
because making them trivially copyable might change
how they are passed to functions by value, so we need
to supply all the missing member functions manually.
Change-Id: I59e480d7ba02cac7e3d654cb3345f541e0701f4c
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
... by replacing them with C++11 range-for loops.
This is the simplest of the patch series: Q_FOREACH took a
copy, so we do, too. Except we don't, since we're just
catching the return value that comes out of the function
(RVO). We can't feed the rvalues into range-for, because
they are non-const and would thus detach.
Change-Id: I457942159015ff153bdfc6d5f031a3f0a0f6e9ac
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Optimize the string splitting by using splitRef(),
avoiding the creation of lots of substrings. Twice.
While touching the for loop, port to C++11 range-for.
Change-Id: Ia666896bc5b96c4b6973498cc4a9eeb24cadba6d
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Q_FOREACH over a QVarLengthArray is a partcularly
bad idea.
Use C++11 range-for (without qAsConst(), because
QVLA isn't CoW).
Change-Id: I5ee55557577f183151d3871e4518382c4adf0237
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
QPainterClipInfo is larger than a void*, so holding it in QLists
is needlessly inefficient. Worse, the code could come to depend
on the fragile property of (inefficient) QLists that references
to elements therein never are invalidated.
Fix by marking it movable and holding it in a QVector instead.
Port from op<< to append() to reap rvalue push_back().
Change-Id: I3af17eca2443d26a795381635510b8b9a5795e5f
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
Buddy is larger than a void*, so holding it in QLists is
needlessly inefficient. Worse, the code could come to depend
on the fragile property of (inefficient) QLists that references
to elements therein never are invalidated.
Fix by marking it movable, and holding it in a QVector instead.
Since QVector requires a default ctor, drop the pointless
existing ctor and use aggregate initialization instead.
Use QVector's rvalue append.
Change-Id: I696ca4f03dbe362a5438be209debbcd966fe8130
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
The only place such headers can live is qtbase. Exporting headers
under QtPlatformHeaders from other modules would conflict.
Change-Id: I13d78fe54b50c5eaccc29bb166efdaafba70e6e2
Reviewed-by: Giulio Camuffo <giuliocamuffo@gmail.com>
This adds the functionality to build Qt with clang under Windows against
the Microsoft Visual Studio 2015 runtime.
In order to replicate this, a Clang 3.8 build with Visual Studio 2015
Update 1 is needed.
Adds compiler detection to Qt to distinguish correctly the clang compiler
and Windows with Visual Studio.
Clang has some built-in numeric functions, there is no need to use the
Microsoft versions, which also conflict here.
Task-number: QTBUG-50804
Change-Id: Ia4b267a298310ac7d73edf473b12792991249d8a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Blacklisting all tests, which were failing locally.
Task-number: QTQAINFRA-949
Change-Id: I40c25ab0155b8977596d61297ab252a546515f87
Reviewed-by: Tony Sarajärvi <tony.sarajarvi@theqtcompany.com>
On OS X, the default scrolling mode of item views should be
per pixel instead of per item. We enforce this through a new
style hint. On all other platforms, the behavior remains the
same.
It's still possible to override the style hint by using the
regular scroll mode setters. Any subsequent style change will
result in a no-op once the setters have been called and until
the properties are reset.
Some auto-tests had to be update to to take the new behavior
into account.
[ChangeLog][QtWidgets][Styles] Added SH_ItemView_ScrollMode
style hint.
[ChangeLog][QtWidgets][Item Views] Item views scroll per pixel
on OS X now.
[ChangeLog][QtWidgets][Item Views] QAbstractItemView::verticalScrollMode
and QAbstractItemView::horizontalScrollMode are now resettable.
Change-Id: I3f923275c99aa4389323b52fc1c5455fe71f8d73
Task-number: QTBUG-50102
Reviewed-by: Jake Petroules <jake.petroules@theqtcompany.com>
These types are larger than a void*, so holding them in QLists
is needlessly inefficient. Worse, the code could come to depend
on the fragile property of (inefficient) QLists that references
to elements therein never are invalidated.
Fix by marking them movable, and holding them in a QVector instead.
Change-Id: I42f494ed87854eadc33d78db4479203ff5e0370f
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Introduce utility function to check using
QWindowsXPStylePrivate::isLineEditBaseColorSet().
Task-number: QTBUG-40634
Change-Id: Iaa6962a17217352aa59d0c54421b764ad47d3bf8
Reviewed-by: Andy Shaw <andy.shaw@theqtcompany.com>
Introduce QWindowsXPStylePrivate::isLineEditBaseColorSet() checking
whether the base color has been set in the widget's palette taking
into account the QSpinBox special case and simplify the code
accordingly.
Task-number: QTBUG-40634
Change-Id: I0e7527031b333d71727fbd30db6dd80aa715c9ab
Reviewed-by: Andy Shaw <andy.shaw@theqtcompany.com>
Labels would use a statically defined font for <pre> blocks.
Use the one defined by the QPlatformTheme instead, through
QFontDatabase::systemFont(FixedFont)
Task-number: QTBUG-50564
Change-Id: I5491bd0defce651bdf809bcbc6a529a900f4959b
Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
They were forgotten from the movable containers for Qt 5.0.
Make sure we don't forget for 6.0, either.
Until then, mark with new Q_RELOCATABLE_TYPE.
Change-Id: I279a96c02a718a1432040303bb0d001739f59a17
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
We would ignore the vertical hinting when calculating the
bounding box, giving an off-by-one error in the base line of
some characters when rendering with PreferVerticalHinting,
which is the default when doing High-DPI on Windows.
Task-number: QTBUG-50940
Change-Id: I2846765ec044eaf317026ee8c7bb9588257bf05c
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Alessandro Portale <alessandro.portale@theqtcompany.com>
Introduce a special scaling function fromNativeLocalExposedRegion()
for exposed regions that uses the floor of the top left point
and the ceiling of the bottom right point similarly to how it
was done in the XCB plugin in 5.5.
Task-number: QTBUG-46615
Task-number: QTBUG-50463
Change-Id: I95e4a571b814357c014605ed79e374a821fa155b
Reviewed-by: Błażej Szczygieł <spaz16@wp.pl>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
To achieve that, add a new virtual setHasExclusiveGroup() method to
QPlatformMenuItem class (optional because we don't want to break existing
platform themes), call it when converting QActions into platform menu items,
and use it when exporting the menu items over D-Bus.
Also, send ActionChanged event for actions when their group is changed, so
that the platform menus are updated too.
Change-Id: I8d951ace8c4097decec2a0154163e3672214effb
Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
The layout and phrasing of these two QFileSystemEntry methods was such
as to obscure what they actually test. (Overlong lines, extraneous
parentheses, spurious conditions and poor line-breaking.) Rewrote to
make both clearer; and, in particular, to make it obvious that they
are *not* mutually complementary. Behavior is not changed.
Change-Id: If748e48d41fe3a76bab3a1f840c7b7ca62442f8f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Move code from QWidget::setMask() and reimplement QWidget::setMask()
using QWindow::setMask().
Task-number: QTBUG-50938
Change-Id: I040688d6b18df91368fa6ab6392a3b4cd80f2683
Reviewed-by: Błażej Szczygieł <spaz16@wp.pl>
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
It does not work as expected since the QLineEdits do not expand.
Amends b880b7e1ac.
Change-Id: I0b3b3822cca7fc6442a7155eecd46bd3d134d069
Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
In the gray antialiasing code path for text on Windows, we
check whether Cleartype is enabled in the system and,
if it is, we forcibly enable gray antialiasing instead. But in
this logic we did not consider the case where antialiasing
is turned off entirely, i.e. when the style strategy is
QFont::NoAntialias. We should never override
no-antialias with antialias.
[ChangeLog][Windows][Text] Made it possible to disable
antialiasing for text when drawing into images.
Task-number: QTBUG-47141
Change-Id: Ieb2beba8c2d02295abe6d9a98d2e63a2d39c9e6a
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
If a menu is added to the tray icon after the icon itself has been registered,
we need to register the menu properly.
Change-Id: I19a6d78848142d66c2cd882746d8d55c0b9a2818
Reviewed-by: Błażej Szczygieł <spaz16@wp.pl>
Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
This method can be called for a submenu after it's called for the top-level
menu, and we should not replace it with a submenu.
Change-Id: I8e180ee074287cfcdc76dfe77c6c7aa7d5891741
Reviewed-by: Błażej Szczygieł <spaz16@wp.pl>
Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
QShortcutEntry is larger than a void*, so holding it in QLists
is needlessly inefficient. Worse, the code could come to depend
on the fragile property of (inefficient) QLists that references
to elements therein never are invalidated.
Fix by marking it movable, and holding it in a QVector instead.
Change-Id: I4ab3399a8036827631b7fbdfdc60b4206305e1c9
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
- Lowercase 'peerName' only once instead of each
time though the loop
- Use C++11 range-for instead of Q_FOREACH
- Use QMap::equal_range instead of values(Key),
saving the creation of a QList.
Change-Id: I1229f62d706d1478960b08bb63ee9fb894364f87
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
It's only read from.
Avoids detach attempts in the many uses of front()/back().
Change-Id: I0fd5df77a6d3a9a37872e0ce28f5a2354aa8f957
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
QToolBarAreaLayout{Item,Line} are larger than a void*, so holding
them in QLists is needlessly inefficient. Worse, the code could
come to depend on the fragile property of (inefficient) QLists
that references to elements therein never are invalidated.
Fix by marking the types primitive and movable, resp., and
holding them in QVector instead.
Change-Id: I4e68d4bee41040bf84302b8ce8295a11debded70
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Transfer propertiesUpdated and updated signals from submenus to parent
menus. Without this, the adaptor only receives this signal from top-level
menu items, and doesn't receive it from items of submenus. Connect to
these signals when a menu item is added or synced, and disconnect when it
is removed.
* Make QDBusPlatformMenus use IDs of items containing them, not their own
IDs (own IDs do not make any sense since they are not exported over D-Bus).
* Store toplevel menus per-adaptor, to make it possible to export multiple
menus (for example a menubar and a tray icon menu).
* Adjust the QDBusMenuLayoutItem::populate methods to always get the menu
via its containing item and to populate the menus recursively.
* Map D-Bus menu AboutToShow method to platform menu aboutToShow method,
and map hovered and closed events to hovered and aboutToHide signals.
(QTBUG-46293)
* Always set the visible property on item. Otherwise, when an item becomes
visible, the D-Bus menu still thinks it's invisible because that property
was not changed back to true. (QTBUG-48647)
* Call emitUpdated from insertMenuItem and removeMenuItem methods, as they
really update layout. Do not call it from syncMenuItem, it changes only
properties but not the layout.
* Start revision numbering with 1, because libdbusmenu-based hosts ignore
updated signal with revision=1.
Task-number: QTBUG-46293
Task-number: QTBUG-48647
Change-Id: Icf713405db0443e25462c1a19046df7689fe5e78
Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
Reviewed-by: Błażej Szczygieł <spaz16@wp.pl>
As we can load plugins without QLibrary now, we don't have to #ifdef
out the code that does so anymore.
Change-Id: I1dc20216830a882dbd5a1b431183407e6b19c837
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This makes implementing class methods that enable or disable a feature
stored in a QFlags<> member easier.
[ChangeLog][QtCore][QFlags] Added setFlag method to set or unset a flag
Task-number: QTBUG-27100
Change-Id: Ic602abbbf3100df78f21b7918573744d1bbd18c1
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Move instead of copy the bezierCurves and tcbPoints
containers when updating 'config' in setType_helper().
In Qt 5, we still have the unsharable container
issue which causes code for deep copies to be
emitted for most copy operations.
A move is always just re-seating a pointer.
Change-Id: Icff7415dd0ce44df0602273ff42370b26d831b85
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
- don't re-evaluate QMap::end() all the time
- don't copy QVariant more than needed
- pass temporary to QVector::append (enabling moves)
- swap instead of copy-assign a vector into place
Change-Id: I7549812dfbb2dbc9a919fa9565397d50141fc2ca
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
... by replacing them with C++11 range-for loops, or, in one case,
qDeleteAll().
Change-Id: If6980f6c12ac1d359a1f0e062dcc2a86e9685d1e
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>