... like qt_tool does. otherwise we get linker errors with debug builds
on windows.
Change-Id: I583f277ff3fb75c9fe5f305a6f1b5d066b840c07
Reviewed-by: Debao Zhang <hello@debao.me>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Jonathan Liu <net147@gmail.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Since there already is a one-to-one relationship
between QObject and QAccessibleInterface it makes
little sense to create and destroy the interfaces
on each call to queryAccessibleInterface.
Add a cache and keep created interfaces around for
the lifetime of the corresponding QObject.
This changes the memory management rules: accessible
interfaces must no longer be deleted. If you get an
QAccessibleIntrface pointer that pointer will stay
valid as long as the corresponding QObject is not
deleted.
This also re-enables accessibility for Mac.
We limit the range of the IDs so that they are
useable for Windows directly.
That means we can get rid of the event cache there.
This is based on: Iebf2f374916fc70a9dd29e95f45a6444b85f6cee
Change-Id: I9fe6531812c0dbc5b41101ac05830a6dd75e13a3
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
The Qt psql driver has its own implementation of fieldSerial() it uses
when it invokes positionalToNamedBinding() to generate a query using
its native naming style. Now that QPSQLResultPrivate is derived from
QSqlResultPrivate this can be implemented more conventionally using
a virtual function instead of pointers to static functions.
Note that this change preserves the current behavior of
executedQuery() which will continue to return the query with
positional syntax that is presented to virtual prepare() by
QSqlResult::savePrepare(). Since the driver does not have the
NamedPlaceholders feature, QSqlResult::savePrepare() will not use
positionaltoNamedBinding() to set executedQuery. Although
QPSQLResult::prepare() calls positionaltoNamedBinding(),
it does not put the result into executedQuery.
Change-Id: I7740f386cbfec9eadd9e4d6a7df3e590294655a5
Reviewed-by: Israel Lins Albuquerque <israelins85@yahoo.com.br>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
Follow the usual pattern that a subclass's private class inherits
its base classes's private class. This will allow the private class
to use virtual functions.
Change-Id: Iafdf1cb5db672d973ad1f60bdd7e37b9072fbb1b
Reviewed-by: Israel Lins Albuquerque <israelins85@yahoo.com.br>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
The "private driver" is already known, so don't keep an extra reference
to it.
Change-Id: I34ec4108694bfbc3da3107f79598ae50a699911c
Reviewed-by: Israel Lins Albuquerque <israelins85@yahoo.com.br>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
As indicated in the discussion of the bug report, this
does not address the real problem but only reduces the
frequency it occurs.
Task-number: QTBUG-26453
Change-Id: I20ac3f41f52effb674bee6924ccdfd2f641576ef
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Since 34a3b63dc7 (Qt 5.0), moc expands
macros to their defined values. This broke the example of tagging a
method: in Qt 4, it never expanded anything, so the tag was always
visible and extracted. Now it's necessary to avoid defining it to empty
when moc is run.
Change-Id: I89967f7f993cf8e14119b086f4dd5573b348646d
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Changelog: http://pcre.org/changelog.txt
Amongst other things, the Unicode tables were upgraded to 6.2.0
and case folding support was added, which also fixes a QString
autotest (marked as XFAIL).
Qt still requires 8.30, not 8.32.
Change-Id: I4056c1dc1d949d33443bb8ca280de4c8c363ac74
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
According to EnumFontFamExProc docs:
> The ENUMLOGFONTEX structure includes the localized name
> of the script (character set).
lfCharSet ENUMLOGFONT's member must be used instead of comparing
these names to non-localized ones.
Also, when the font supports more than a single charset,
EnumFontFamExProc callback is called for it once per charset; thus,
we shouldn't "unsupport" writing systems in a subsequent call.
Task-number: QTBUG-30448
Change-Id: I58fcf32958490cf5a3e873db8335e71a39a9c518
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Previously it was only mentioned in properties.qdoc
Task-number: QTBUG-18802
Change-Id: Iab23128c1567974154cdcce7412b2e1468bb846a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Most important changes:
* SFNT cmap 13 table format support;
* fixed glitches when rasterizing stretched TTF (xsize!=ysize);
* various fixes in Type1, CFF, and PCF drivers
Change-Id: Ib9e2210ffbd0daa2fdbf518ea87f4be502de6b48
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
For Han Unicode script, the language couldn't be determined algorithmically,
the only way is guessing based on the user's locale.
The is a regression introduced in 9b0fab6b62
Change-Id: I84645885a825fdfb6c268edaf10185bf5e447eb5
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Say hello to Interlingua and Mongolian once again.
Change-Id: I735fbc5793f34620be1f6932a251224b9ded02e3
Reviewed-by: Denis Dzyubenko <denis@ddenis.info>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
The problem seems to be that Fusion assumed that tickmarckoffset was
a fixed size, which probably changed when we moved the inheritance
from Windows to CommonStyle. I also had to modify the paint order
Task-number: QTBUG-30294
Change-Id: Ie7320c39fd572d39b641b6bd5a9db05f494f6b74
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
As Thomas Senyk found out, the compose input context
plugin had a redundant include for the X11 keysym header file.
Change-Id: Iad603b545803867d02d915acffe27991bb0b7ee4
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Also, removed an "magic color" form the style implementation.
Change-Id: Iefd3ddc0d9d651d2b87f20eb1f9990a214b651df
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
The application delegate code from Qt 4 implements
a non-working qt_setDockMenu. Correct the signature
of the applicationDockMenu method.
Change-Id: I6f531a78f91e0550b0e66cc4f2fa072006a030f4
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
- Organize the test images into different sizes.
- Add a button and icon drawing test.
- Don't show all tests by default.
Change-Id: I95eff846b8c5159085f53b413dea7212c1ea5071
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
This change makes the function reference more
relevant to the example being discussed.
Task-number: QTBUG-28204
Change-Id: I50bea45f1e11d7e1eef4bc6726ebb329151fbc3d
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
So far, type-name strings for class template instantiations were constructed
in QMetaTypeId::qt_metatype_id() by concatenating various bits and pieces
into a QVarLengthArray<char>, presumably to avoid the dynamic memory
allocation for small strings.
Yet, when passing the result to qRegisterNormalisedMetaType, which takes
a QByteArray, the QVarLengthArray was copied from, not by
QByteArray::fromRawData(), but by QByteArray(const char*,int), which
unconditionally results in a dynamic memory allocation after all.
What's worse: the characters are copied twice: First into the QVarLengthArray,
and then into the QByteArray.
Remove the first of these copies by using QByteArray+reserve() to copy
directly into the final QByteArray.
Change-Id: Id915798a318fe97279a7cc0aca176544f99c7e86
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Check for the existence of a "@2x" file when adding
an image to QIcon. For example, adding "foo.png" will
also add "foo@2x.png" if that file exists.
Change-Id: If32a3446cf56ca0828de17f6a361091e4c874f26
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
QTreeViewPrivate has a private function hasVisibleChildren that
returns if an index has visual children. This can (and should)
check the ItemNeverHasChildren flag.
That will likely be an performance improvement and it will ensure
consistent behavior in error-situations. (The flag will then always
overrule even if the model is inconsistent)
Change-Id: Ied37daf56c39daccea1cb4f5cc555d5cdbc7d971
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
When Qt::AA_UseHighDPIImages is set images and pixmaps
may be of the high-dpi type.
Account for this when calculating layout sizes by
dividing by devicePixelRatio() to go from device pixels
to device-independent pixels.
Change-Id: I977a86789f9097ebc3c3704ae76e9706f2cb79d8
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
When Qt::AA_UseHighDPIImages is set images and pixmaps
may be of the high-dpi type.
Account for this when calculating layout sizes dividing
by devicePixelRatio() to go from device pixels to
device-independent pixels.
Change-Id: I8aa3d2ee947635ce2a49fff9e0029c9f55ae6c09
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
REDUCE_EXPORTS -> QT_VISIBILITY_AVAILABLE
REDUCE_RELOCATIONS -> QT_REDUCE_RELOCATIONS
!QT_GETIFADDRS -> QT_NO_GETIFADDRS
These will be used for Android build on Windows.
Change-Id: I2cde989e41dc5b7f9bef1345e935cc7e19aba983
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
491dcbfac8 accidentally removed the y-axis inversion
for the widget case. Move it back to the common
code path.
Change-Id: Ie6bbe6f442ca342347af77071da3a743b5655159
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Change-Id: If2ad1af096787e3e1dc424c096566f382ba7a3b5
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Replace all tabs with proper space characters and consistently align
the '=' characters. The default alignment for the '=' of 25 characters
has been left as is to get a minimal diff. Lines with the '=' further
to the right and those belonging to 'proper code (TM)' have not been
touched.
The work was mostly done using the following python script (might
come in handy again...):
import sys, re
indent_eq = 25 + 0*4 # 25 characters was the most widely used indentation for the '=' character
p = re.compile(r'(\w+)[ \t]*([\-\+]?)(=$|= )[ \t]*(.*$)')
for fn in sys.argv[1:]:
with open(fn, 'r+') as f:
lines = []
nl_count = 0
continuity_indent = None
for l in f:
m = p.match(l)
nl = l
if m:
n_spaces = max(m.start(3), indent_eq - 1) - len(m.group(2)) - len(m.group(1))
if m.group(2) and m.start(2) >= indent_eq-1 and m.start(2) % 4 == 0:
n_spaces -= 1 # left-shift '+=' by one if the '+' is aligned to a multiple of 4
n_spaces = max(1, n_spaces) # we want at least one space before '='/'+='
nl = m.group(1) + ' '*n_spaces + ''.join(m.group(2,3,4)) + '\n'
continuity_indent = nl.find('= ') + 2 if l[-2] == '\\' else None # remember indent on '\\$'
elif continuity_indent:
nl = ' '*continuity_indent + l.lstrip()
if l[-2] != '\\': # check when to stop the continuation
continuity_indent = None
elif l.startswith('#'):
nl = l.expandtabs(2)
if l != nl:
nl_count += 1
lines.append(nl)
if nl_count > 0:
print fn, nl_count, len(lines)
f.seek(0)
f.writelines(lines)
f.truncate()
Change-Id: I1d2870d0a2fe2e30d398c140fe523e69dd20c81b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
When using different resolution screens, one can arrange them around
the primary screen. However, the vertical offset has to take into account
the fact that NSScreen origin is bottom-left, whereas QScreen origin is
top-left. This usualy impacts the geometry's y coordinate, and can result
in popups showing in the wrong screen.
Task-number: QTBUG-30348
Change-Id: I159e6be2b590bd2d9a31f3f36c3785afcc62123e
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Used by features in CMake 2.8.11.
This matches the features in FindQt4 in that version of CMake,
namely that the IMPORTED targets contain the appropriate
INTERFACE_INCLUDE_DIRECTORIES and INTERFACE_COMPILE_DEFINITIONS
and that the qtmain.lib static library is automatically linked to
on Windows by executables. Additionally, the
INTERFACE_POSITION_INDEPENDENT_CODE property is set appropriately
if Qt requires users to use position independent code.
Change-Id: Ide341f43fcaf7d722a7bdf1a12b1071c7e548ccc
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>