We don't know what it might be used for. The RFC for URI says it's an
HEXDIG, and since we uppercase all other HEXDIGs already (in
percent-encodings...).
Change-Id: I56d0a81315576dd98eaa2657c0307d79332543a5
Reviewed-by: David Faure (KDE) <faure@kde.org>
So far, this function hasn't been used for input coming in from the
user, so it wasn't necessary. But we may want to do it, or we may
already be doing it accidentally somewhere that isn't triggering the
failed assertions during unit testing.
So let's be on the safe side and allow it. And test it too.
Change-Id: Ib63addd8da468ad6908278d07a4829f1bdc26a07
Reviewed-by: David Faure (KDE) <faure@kde.org>
We have no idea what it might contain, but test it anyway to make sure
it works. Turns out there were a few bugs the unit tests have now
caught.
Change-Id: I0a6c868365feec31c2360b3c341c8ca6944f4352
Reviewed-by: David Faure (KDE) <faure@kde.org>
Registered names and IP addresses can only contain unreserved
characters (letters, digits, dots, hyphens, underscores) and the
colon, which is a gen-delim. For registered names and IPv4 addresses,
we can simply use the default config -- if anything that remains
percent-encoded, it means it's not a valid hostname anyway.
For IPv6, we just need to decode the colon.
Change-Id: If8083d47f6e5375f760e7a6c59631c89e4da8378
Reviewed-by: David Faure (KDE) <faure@kde.org>
Will be needed in a future commit.
Change-Id: Ia5f384442d25d277e7582a20d1c37da4303c64c3
Reviewed-by: David Faure (KDE) <faure@kde.org>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
It's not necessary to check at every point if we know the minimum file
size: it must contain at least the header, one segment (__TEXT) and one
section (qtmetadata). Most files have more than one segment and more
than one loader command, so this check does not mean we can eliminate
the checks further down.
Also be more resilient against corruptions in the header data: check not
only the additions, but the values themselves. For example, an offset +
size addition could be smaller than the file size when the addition
overflows in 32-bit. Another thing is that the cmdsize fields could be
corrupt too.
Change-Id: I7968a769c1cbe9150270c91823cafc4f8f833876
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
The reason why the scanning of files was restricted to Unix is lost in
history. My guess is that it was added *because* on Unix you couldn't
do the LoadLibrary trick to load without dependencies. That is, it
makes no comparison to whether scanning is faster than LoadLibrary.
So assume that scanning is faster, especially now that we have memory
mapping in QFile (it wasn't there in Qt 4.0).
This simplifies greatly the codebase because we no longer need to try
to load and later unload the library to check whether it is a Qt
plugin or not, nor deal with Windows non-C++ exceptions. Just scan on
all platforms.
Change-Id: If269e009bfb9920805ca1aa6c2b66aacdd5b26e9
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
We already had an ELF decoder, which helped us greatly to find the
metadata and that catches most Unix systems (Solaris, QNX, HP-UXi, and
all of the free Unixes). On other Unix systems, aside from Mac OS X,
we simply scanned the entire file for the signature. On Windows, even
without a COFF-PE decoder, we use a LoadLibrary trick to load the
plugin without loading the dependent libraries. In most cases, that
works.
Unfortunately, on Mac OS X we didn't have a decoder and nor could we
do the file scan: because Mac OS X binaries could be fat binaries, we
wouldn't know which architecture's signature we had found.
No more. This adds a full Mach-O decoder to QtCore. It is also capable
of finding the boundaries of the architecture's binary, but that
functionality is disabled since all Qt 5 plugins have plugin metadata
sections.
Change-Id: I2d5c04c5ecf024864b8a43f31ab6b7e6c5eae9ce
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
it's not necessary to immediately re-calculate the roots after assigning
QMAKE_PLATFORM - it's sufficient to do it on-demand, so merely
invalidate them. this avoids that we re-calculate them multiple times
without ever using them in between while processing specs with
distributed platform assignments.
Change-Id: If508594764811b96a577fc81c5ded34ab0453148
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
(cherry picked from qtcreator/28df27d924bb407791a76de8159c9ffa6efde283)
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
looking up the same files in the same locations over and over again
is a rather significant waste. in particular, looking up the CONFIG
flags that don't correspond with features has a measurable impact on qt
creator's project loading time.
Task-number: QTCREATORBUG-9154
Change-Id: Ibae3d8b7797e706a6416a7d45c77734ab1281b51
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
(cherry picked from qtcreator/fa27cd79e05aed4ebd16d5648480cc7d48fefd43)
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
just directly use the filename we constructed it from.
Change-Id: Ia428a2cb4b192fea6bde62dfbf35361bcfc4b21e
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
(cherry picked from qtcreator/571234786a3ff7e8e3a9220f12d22a9f74f7a53c)
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
When using the native dialog and through the helper, we use QUrl in
QFileDialog. It is preparatory work for having QUrl based methods on
QFileDialog interface itself.
Done-with: sean.harmer@kdab.com
Done-with: faure@kde.org
Change-Id: I61e99d498252241f38ec05724702a90ba050c4bb
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Allow for parsing of X11-specific arguments like -display,
-geometry. Introduce overload of
QPlatformIntegration::create() with argc and argv
and provide default implementation that calls the old version
(for platforms that do not have argc, argv). Provide default
implementation for the old version returning 0 so that platforms
using the new API compile.
Prototypically implement -display in XCB.
Task-number: QTBUG-29396
Change-Id: I6a0e9271fad6e2d10f11b80393025ae3a3e36623
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Unexport free function qt_registerAliasToFontFamily() and
Make it a static member of QPlatformFontDatabase instead.
Change-Id: I1df49a8e37a24b3961f92288d67b6f1108a7d520
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
The error dialog is sometimes desired when trying to attach a
debugger. Use the -nocrashhandler option for it, which already
exists on UNIX.
Change-Id: I42c9311242cdeaa81a148af9bf61875e1bc6f32c
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
We only control the application delegate in the wrapped case anyways,
so QIOSApplicationDelegate is good enough for our use.
Change-Id: Ib738592dc306c5b6652632b9ae4dab431639a89a
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Should not be needed anymore (as of 3d0a60aaa4), as we now use libc++
automatically when C++11 support is enabled.
The specs were deprecated in Qt 5.1 (commit f7a7859a7).
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Change-Id: I6653f191b99f7c51c3f02a62c6ef68591b2dfa70
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
On QNX propagateSizeHints is ignored. Default base class implementation
is overridden to silence warning.
Change-Id: I6c2df5e1943fdc1170c772b9bb4feb091726790f
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
In order to avoid problems in 2038 with time_t dates in 32-bit machines,
add reminders to change uint to quint64 in Qt6, in time_t-related methods
of QDateTime.
Change-Id: I1596a64fe1806df17c28c7586bb1ce6283b9ae02
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
qmlvisitor.cpp:248:13: warning: variable 'pgc_idx' set but not used
[-Wunused-but-set-variable].
Change-Id: Ia8ec15add69771ad7b71d2e17c68204c5bffb360
Reviewed-by: Martin Smith <martin.smith@digia.com>
This is a bit like QDir::cleanPath(), but for URL paths.
The code is shared with QDir::cleanPath(), by extracting the common parts
it into a helper, qt_normalizePathSegments().
Change-Id: I7133c5e4aa2bf17fba98af13eb5371afba64197a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
We don't have 4-edge window resizing, so we need QSizeGrip to
be functional again in this case.
Task-number: QTBUG-32228
Change-Id: Ib66bc662f8bf0b521427755570bc1cd65fb28446
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
This add checks on iterators on insert and erase.
Change-Id: I41d96e038d74668cc1df10b6d42cde4b82f8a696
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This adds a check on erase that the iterator is from the set.
Change-Id: I9f4e127d53a5b1f5f8c70652604f1f5574c73688
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This checks if the iterator argument in erase is valid in debug mode.
Change-Id: I8768f4263d1464ff78986a1a30702e210e561dc1
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This adds a check of the iterator values in erase and insert.
Change-Id: I78403dcbd24fd7c6beb86d3c827a8e233963e770
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This adds a check of the iterator values in erase and insert.
Change-Id: I28e660153dbfc5f0054a5b25cba2c5725c678a81
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This patch adds a debug-tests in erase, insert (with hint)
and insertMulti (with hint) that ensures the iterator-argument
is valid (and e.g not from another map)
Change-Id: I7920131bc9712543183cabf13c7603bd0e12880d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
QCoreApplication::argv() method was obsolete in Qt4.8
and removed in Qt5.0.
Change-Id: I217402f774f5509c8ca317a35c831ffa5ac2af06
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
If the connection failed, the DBusConnection object is null, but we
still add our QDBusConnectionPrivate to the global hash (maybe we
shouldn't). Both disconnectFromXXX functions check that they are
disconnecting a connection of the right type, but we never initialized
the type if the connection failed.
So simply make sure we initialize before handling the error state.
Task-number: QTBUG-27973
Change-Id: I96f4825ab1b71adf1b72caf4f72db41742b44a55
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
The play_pause key was mapped incorrectly to direct pause. This one
maps it to togglePlayPause.
The two keys fast-forward and rewind have been mapped to
Key_AudioForward
and Key_AudioRewind, matching XCB and Android mappings.
Change-Id: I481bafab2fdfe1824b49e268e9d0754eef348cbf
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>