summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Add Mac type conversion functions to QtCoreMorten Johan Sørvig2013-09-2117-2/+458
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | New API: static QString QString::fromCFString(CFStringRef string); CFStringRef QString::toCFString() const; static QString QString::fromNSString(const NSString *string); NSString *QString::toNSString() const; static QUrl QUrl::fromCFURL(CFURLRef url); CFURLRef QUrl::toCFURL() const; static QUrl QUrl::fromNSURL(const NSURL *url); NSURL * QUrl::toNSURL() const; Add Q_OS_MAC-protected function declarations to header files, add implementation to _mm files. CF and NS types are forward-declared in the header files to avoid including the CoreFoundation and Foundation headers. This prevents accidental use of native types in application code. Add helper macros for forward- declaration to qglobal.h Add cf_returns_retained/ns_returns_autoreleased attributes to toCFString() and toNSURL(). These attributes assists the clang static analyzer. Add Q_DECL_ helper macros to qcompilerdetection.h. Add test functions (in _mac.mm files) to the QString and QUrl tests. Split out the test class declarations into a separate headers files. Change-Id: I60fd5e93f042316196284c3db0595835fe8c4ad4 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Add QMenu -> NSMenu conversion functions.Morten Johan Sørvig2013-09-214-0/+160
| | | | | | | | | | | Add QMenu::toNSMenu() and QMenuBar()::toNSMenu(). Add QMenu::setAsDockMenu and qt_mac_set_doc_menu(QMenu *menu) These are all API wrappers around implementation in the Cocoa platform plugin. Change-Id: I927ed4fb5dc42cc577a41a80b531a4a2f7b8812c Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Use the correct identifier for the OS X operating system.Jake Petroules2013-09-213-4/+4
| | | | | | | | This is consistent with other areas of Qt: qmake, Qt.platform.os (QML), qbs.targetOS (QBS), and #define Q_OS_OSX. Change-Id: Ibf98e6ba3556a14187dadae1b0235e9c907c9001 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Merge "Merge remote-tracking branch 'origin/stable' into dev" into ↵Sergio Ahumada2013-09-2120-273/+210
|\ | | | | | | refs/staging/dev
| * Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-09-1622-280/+213
| |\ | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/tools/qstring.cpp Change-Id: Ifc6cd3a0f1cf14cc0fe6cf30afb0c7f40cfdbc3e
| | * QtDBus: fix build on MSVC2008 Debug mode.Nicolás Alvarez2013-09-152-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Normally, searching for a V in a container of T using std::lower_bound only needs an operator<(T,V). But in MSVC2008 debug mode, STL algorithms perform some extra checks, such as ensuring the range passed to std::lower_bound is sorted. This adds a requirement for operator<(T,T) and operator<(V,T). QtDBus didn't compile on MSVC2008+Debug since 1e37d854 (Sept 2012!) because it missed those operator overloads for some private types. Task-number: QTBUG-33473 Change-Id: I18902d86e6c58349eb7ba3601dc383ad5431c460 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * tst_qurlinternal: fix a use of memcpy on overlapping memoryMarc Mutz2013-09-141-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The old code smply copied 100 shorts from the pointer passed into the ushortarray ctor, regardless of the actual bounds of the original array. Fix by making the ctor take the array by deference, deducing the size as a template parameter, and only copying that much. Fixes asan trace: ==18660==ERROR: AddressSanitizer: memcpy-param-overlap: memory ranges [0x7fff3c56de00,0x7fff3c56dec8) and [0x7fff3c56dd60, 0x7fff3c56de28) overlap #0 0x457161 in memcpy asan_interceptors.cc:330 #1 0x4c40fe in ushortarray::ushortarray(unsigned short*) qtbase/tests/auto/corelib/io/qurlinternal/tst_qurlinternal.cpp:62 #2 0x4b0437 in ushortarray::ushortarray(unsigned short*) qtbase/tests/auto/corelib/io/qurlinternal/tst_qurlinternal.cpp:63 #3 0x47b643 in tst_QUrlInternal::idna_testsuite_data() qtbase/tests/auto/corelib/io/qurlinternal/tst_qurlinternal.cpp:119 ... Change-Id: Ie497bc8d337bc680a562482ca71ace535797ffb3 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * tst_QSettings: add missing () around a macro argument useMarc Mutz2013-09-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 'val' was set to QList<...>() << ... << ... further down. Fixes a Clang warning. Change-Id: I5fe80d87dbe2c1d50652dfd7b6c5f4a9198cd467 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * examples: fix if (!foo == 0)Marc Mutz2013-09-141-1/+1
| | | | | | | | | | | | | | | | | | | | | Clang issues a warning for this. Change-Id: I1b9741d0260d43f864e404c693b5a459c5038b67 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
| | * examples: remove unused static const variablesMarc Mutz2013-09-144-7/+0
| | | | | | | | | | | | | | | | | | | | | They cause warnings on Clang. Change-Id: If599303f4a00c2a24f0a7c369299f3ea6fe7fc91 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
| | * Fix loss of valid dbus objects after unregisterObjectJohn Brooks2013-09-143-40/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Partial revert of 3c6bb0ed8bfc9a2c679f4154585a16e47275ad21 and 57aed703d21c3a360d95fd9f85396d1283d3fdd0. When registering an object that was previously unregistered but not yet garbage collected, the activeChildren count on the parent node was not incremented, which could result in other registered objects disappearing after a later unregisterObject. Copying objects in the tree is not free, but it's not expensive enough or used frequently enough to justify that error-prone logic. It's much safer to simply remove objects immediately. Change-Id: I3dc59c2ebd07b237518424fcd8ea7371a22d6d15 Reviewed-by: Robin Burchell <robin+qt@viroteck.net> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * Doc: Remove section about how to start threadsSze Howe Koh2013-09-144-44/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Incomplete: It doesn't talk about how to use a raw QThread, or QRunnable, or Qt Concurrent. - Redundant: Its contents are already presented in QThread's class ref, and the line before this section links to the "Multithreading Technologies in Qt" overview page which provides a more complete intro Also remove snippet markers that are no longer used. Change-Id: I89b7bd72f10c8ffdfd9b7772e2493050aafc9c88 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * Doc: Remove page about how to start QThreadsSze Howe Koh2013-09-143-114/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Multiple issues: - Incomplete: It doesn't talk about instantiating a raw QThread - Redundant: Its contents are already presented in QThread's class ref - Incorrect: It is legal to create a QThread before a QCoreApplication - Irrelevant: The bit about QCoreApplication::exec() and the etymology of "GUI thread" is unrelated to the topic of starting threads Also remove snippets that are no longer used Change-Id: Ice1819845b5b2cf843719edaa7b0f4bbb1e8bd97 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * Doc: Move multithreading guidelines to the overview pageSze Howe Koh2013-09-142-64/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's helpful to see how to choose among different solutions, right after seeing short descriptions of all the solutions. - Some minor rewording was done during the move - The example about polling ports in a new thread was removed because there are better ways to do that without threads. Change-Id: I2cb571a4dbf9be93fb0ec88c60fb7406996c345b Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * Doc: Add an overview page to compare multithreading techniquesSze Howe Koh2013-09-141-1/+121
| | | | | | | | | | | | | | | | | | Change-Id: I75e67ecb96423a3ebd82b32e6855378a73463fb7 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * Doc: Fix copy+paste errors in the QString class refSze Howe Koh2013-09-141-8/+4
| | | | | | | | | | | | | | | | | | | | | | | | Also bring text closer to the style guide at http://qt-project.org/wiki/CppDocumentationStyle Change-Id: I30b1c36ac125a10c002efeb36978ced0d7a8f8bf Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
| | * Xcode: Resolve extra compiler (e.g qrc) dependenciesTor Arne Vestbø2013-09-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Xcode generator relies on the generic makefile generator for extra compilers such as qrc and moc, by generating makefiles that are then executed as separate build steps in the Xcode build. These makefiles are generated by entering a special mode in the Xcode generator, in which case we _do_ want to resolve dependencies, so that e.g. the files referenced inside a qrc file are added as dependencies to the makefile rule that generates the qrc-cpp file. Change-Id: I96bdcb165e9774a6328ae1980986fa2c6b00c6d9 Reviewed-by: Andy Shaw <andy.shaw@digia.com>
| | * Revert recent attempt to fix Invalid Drawable error on Mac.Chris Meyer2013-09-132-7/+3
| | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 59fd36bb914cae248d3c5100dd734d6d90a58dca, which caused other drawing problems. Change-Id: I3bb75fd3ca1cd21ffbb9ef5474266f4cd615a64a Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* | | qatomic_cxx11: fix fetchAndAdd*()Marc Mutz2013-09-211-8/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In qatomic_cxx11, the 'Type' is std::atomic<T>, whose fetch_add method, used in fetchAndAdd*(), already does the right thing for T* with sizeof(T) > 1. The code, however, applied 'AddScale' to the 'valueToAdd', thus becoming incompatible with normal pointer arithmetics. This is very apparent when one goes to the length of actually testing qatomic_cxx11 with tst_QAtomicPointer (which is non-trivial, since the -c++11 configure option currently doesn't have an effect on tests/auto). To fix, remove the AddScale factor. Change-Id: I7507203af3b7df31d8322b31a6a1a33ca847d224 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | QMutex: fix race on 'owner' in the recursive caseMarc Mutz2013-09-211-4/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The read from 'owner' for comparison with 'self' in QRecursiveMutexPrivate::lock() is not synchronized with the write to 'owner' in the same function further down, and neither operation is atomic. Fix by making 'owner' an atomic pointer. Change-Id: I186b88575589da0dce5827a1e17ceb4ce599ed02 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* | | QAnimationGroup: avoid undefined behaviorMarc Mutz2013-09-211-5/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The existing code performed a downcast from QObject* to QAbstractAnimation* at a time when the former QAbstractAnimation only is a QObject anymore. The comment indicates that this was understood at the time of writing (or else a little later), but it drew the wrong conclusions. Statically downcasting a type whose dynamic type is (no longer) of the target type is undefined behavior. This change fixes the code to (implicitly) cast _up_ to QObject and compare at that level. Says Clang: src/corelib/animation/qanimationgroup.cpp:278:33: runtime error: downcast of address 0x000002966ab0 which does not point to an object of type 'QAbstractAnimation' 0x000002966ab0: note: object is of type 'QObject' 00 00 00 00 80 d7 e6 d7 88 2b 00 00 70 7b 96 02 00 00 00 00 61 00 6e 00 6e 00 6f 00 21 00 00 00 ^~~~~~~~~~~~~~~~~~~~~~~ vptr for 'QObject' Change-Id: I51d6277020d0ff32cd7b80a8cddcf2cda1a626a6 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* | | qmake: Expose ARGC to qmake functions to be able to check argument countTor Arne Vestbø2013-09-212-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | ARGS already exists, but is a flattened list of the arguments, so both foo(bar, baz) and foo(bar baz) will give count(ARGS, 2), making it unreliable for validating arguments to qmake functions. Change-Id: I0bcc16614c64000169431327da48fd1a26708e67 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | | qmake: Don't create OBJECTS_DIR and friends for TEMPLATE = subdirsTor Arne Vestbø2013-09-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | A bunch of empty and never-to-be-used directories makes the build tree noisy and harder to navigate. Change-Id: Iebef91c82d58a8d6a0047fb5439d50eb6806f557 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | | Sanitize QMAKE_EXTRA_COMPILERS paths in makefilesTor Arne Vestbø2013-09-211-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There was a mismatch of how we sanitized paths for dependencies of the target and how those dependencies were sanitized (or not sanitized), resulting in the target depending on 'some/path/foo.o' while the extra compiler target was named 'some/path//foo.o', with an extra slash. This confused 'make' enough to decide that it didn't know how to build the dependencies for the target. Change-Id: I181b86c291286cbbbb1f7b4c3b929a5f1dc163a3 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | | Strengthen check for combined QMAKE_EXTRA_COMPILER with variable outputTor Arne Vestbø2013-09-211-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The pattern ${QMAKE_ needs to be at the beginning of the line, or not start with a $ (which would make it a regular qmake variable). Also, it's fine that the variable is of the QMAKE_VAR_foo type, as these variables are resolved at generator time, but are constant and do not depend on the inputs. This means we have to replace extra variables in the output. Change-Id: I21ad24ae770f2137e2d5d92a20ee54e2f3f4ca06 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | | iOS: Compare similar types when setting up QPlatformScreenTor Arne Vestbø2013-09-211-1/+1
| | | | | | | | | | | | | | | | | | | | | [NSArray count] returns an NSUInteger (unsigned long). Change-Id: I3b1c6720e9503ed181f01a7e737de07a277f7bde Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* | | docs: QT_STATICPLUGIN is needed when building a plugin, not application.Stephen Kelly2013-09-211-1/+1
| | | | | | | | | | | | | | | Change-Id: Ifcdf2df6adad7511730af3f24d4d4c82aa78e61f Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* | | eglfs: Unify the native resource gettersLaszlo Agocs2013-09-213-18/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | Similarly to how it's done in xcb. And add support for eglwindow since the WId will soon once again cease to be an EGLNativeWindowType. Change-Id: I0e3b86a21179439821550c9423f0e747ccae5897 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com> Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* | | Remove qBinaryFind usages from bootstrapped filesGiuseppe D'Angelo2013-09-202-7/+11
| | | | | | | | | | | | | | | | | | | | | | | | This is done per the mailing list discussion at http://www.mail-archive.com/development@qt-project.org/msg01603.html Change-Id: I492b49553bc889892f5ca0c47aa13c75e11518e2 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* | | Added support for cover windows on BlackBerry platformBernd Weimer2013-09-2013-29/+274
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On the BlackBerry platform when an application is minimized an alternate cover window is shown. This patch allows Qt to render into those windows. A new window type "Qt::CoverWindow" has been introduced. Change-Id: If5e321f5cb00f6d3ed7a5dc0af425655d7a9253a Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com> Reviewed-by: Fabian Bumberger <fbumberger@rim.com> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
* | | QCompleter::setFilterMode() add property filterMode.Oto Magaldadze2013-09-204-16/+223
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QCompleter::setFilterMode(Qt::MatchContains) will enable filtering out entries that contain typed characters in any place, instead of the default behavior when only those entries that start with typed characters are displayed. Qt::MatchEndsWith is also possible. QCompleter::setFilterMode(Qt::MatchStartsWith) will bring the default behavior back. Task-number: QTBUG-3414 Change-Id: I3845704c59eb8fc401e9a650c54a9c934ed28c2e Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* | | QFutureInterface: remove unused member variable 'pendingResults'Marc Mutz2013-09-202-2/+1
| | | | | | | | | | | | | | | Change-Id: I059580831ed29a53186272283aa7695c57539eed Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* | | tst_QPainter: fix a Q_DECLARE_METATYPE coming too lateMarc Mutz2013-09-201-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The compiler complained that the specialization was required before it was issued. Fixed by moving it up to the others near the top of the file. Change-Id: I0ae162a5db5ef29f24cd1d32285a1870fdd24b9b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* | | QLinkedList: implement missing initializer_list ctorMarc Mutz2013-09-202-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | Found by tst_QLinkedList once compiled in C++11 mode. Change-Id: Idbf79d775c5271437dbb99c1c8cc7a2e8a7f08bf Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* | | Build X11 session management only if dependencies are foundTeo Mrnjavac2013-09-203-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes the build breakage caused by Change I50b33d05 when attempting to compile on Linux with session management enabled but libSM and/or libICE not present. Change-Id: I127f32e7041deb2ff968eae8458fee7d4e95d7a5 Reviewed-by: Samuel Gaist <samuel.gaist@edeltech.ch> Reviewed-by: Bernd Weimer <bweimer@blackberry.com> Reviewed-by: aavit <eirik.aavitsland@digia.com>
* | | Android: Never error out on literal-suffix warningEskil Abrahamsen Blomfeldt2013-09-201-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | When warnings are treated as errors, no Android code will compile, since one of the platform headers in the NDK triggers the literal-suffix warning. So we need to mark this as no-error. Change-Id: Icabf1c2f2d32f76ee157d04e62a28f83abeed8f1 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | Android: Let ANDROID_API_VERSION env var take precedenceEskil Abrahamsen Blomfeldt2013-09-201-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If you specify ANDROID_API_VERSION to override the default API versions used for building the jar files, this should take precedence even when the .pro files specify a different default API version (like QtAccessibility does when it sets the default to android-16.) Otherwise it's impossible to override these defaults. Change-Id: Idef98aaf3b51490bd7ced8c53770ee2f5680b1db Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com> Reviewed-by: Christian Stromme <christian.stromme@digia.com>
* | | Remove jniconvenience from platformsupport.Christian Strømme2013-09-206-3626/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | The jniconvenience api is replaces with private API's in core and public API's in the qtandroidextras module. Change-Id: Iaf4b4343f8022197e7ec3fdde2406eb3c881208d Reviewed-by: Yoann Lopes <yoann.lopes@digia.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* | | Android: Use the new QJNI api in our QLocale implementation.Christian Strømme2013-09-201-11/+9
| | | | | | | | | | | | | | | | | | | | | This change makes use of the private QJNI api that now exists in QtCore. Change-Id: Id03664942d6c6cbfec028a3b52729057153a8466 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* | | Import qlogger frameworkKai Koehne2013-09-2012-2/+1965
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Merge most parts of the qlogger framework from git://gitorious.org/qtplayground/qlogger.git The categorized logging feature is a replacement for qDebug, qWarning and friends. With logging statements in an app/library, a developer can turn on the statements they care about and turn off the ones they don't. Most work for this was done by Wolfgang Beck and Lincoln Ramsay. Task-number: QTBUG-25694 Change-Id: Ib0cdfbbf3694f86ad9ec553b2ea36f09a477cded Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | Offer Page Range option for apps that can't do it themselvesMartin Klapetek2013-09-203-12/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some apps may not support printing only a particular page range, but with CUPS we can do "server-side print range", ie. we can select the page range for the application. If CUPS is available, the Page Range widget is now displayed if app advertises no such capability and page range is selected on the server instead. [ChangeLog][QtPrintSupport][QPrintDialog] Added CUPS server-side print range support for apps that can't support print range option themselves Change-Id: Ia7784065ba5a8b53bb05ae46e982c718ef672fa5 Reviewed-by: John Layt <jlayt@kde.org>
* | | QDateTime - Move some code aroundJohn Layt2013-09-201-231/+229
| | | | | | | | | | | | | | | | | | | | | | | | Move some of the static helper and private functions to better organize the code. No code actually changed. Change-Id: I6d5dd6bcb9fc5af56d2dbe9e53bc9f0a000c4fa4 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | QDateTime - Add api for isDaylightTime()John Layt2013-09-203-0/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add new method to return if the current time is Daylight Time. [ChangeLog][QtCore][QDateTime] Added new method isDaylightTime() to return if the datetime is in Daylight Time or not. Change-Id: Icb93fd5dd0b2f7d83d2d4643eeb12922c1137e3e Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | QDateTime - Change serialise formatJohn Layt2013-09-201-28/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change the datetime serialisation from using QDateTimePrivate::Spec to using Qt::TimeSpec. Only public classes and enums are now used to serialise, making the format safer.. Clean up the code to make each version clearer, this duplicates some code but is easier to read and support. Change-Id: I3d8fc05f50f8e8acb9edbb992e5ce06063654b8e Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | QDateTime - Fix Daylight Transition for "missing" hourJohn Layt2013-09-203-37/+153
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When Daylight Time transtion goes from Standard Time to Daylight Time there is a "missing" hour, i.e. at 2am CET the clock goes forward to 3am. Currently QDateTime ignores this gap and considers the time to be valid and able to be manipulated. This change respects the transition, so any time set in the missing hour is considered invalid, and any date maths returns valid results. The validity in the current time zone needs to be checked every time isValid() is called in case the system time zone has changed since the last time it was checked. This is done by calling mktime to check the returned result matches the expected result. This could be very inefficient, but the returned offset value is cached each time so mktime is not required to be called again within each method call, effectively meaning mktime is called the same number of times by each method. Note that this means any new methods added must be careful to ensure either isValid() or refreshLocalTime() is called first by any method needing to use the UTC value. [ChangeLog][QtCore][QDateTime] The Standard Time to Daylight Time transition for Qt::LocalTime is now handled correctly. Any date set in the "missing" hour is now considered invalid. All date math results that fall into the missing hour will be automatically adjusted to a valid time in the following hour. Change-Id: Ia652c8511b45df15f4917acf12403ec01a7f08e7 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | QDateTime - Change date/time storage to msecsJohn Layt2013-09-204-393/+576
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change from storing the date and time as QDate and QTime to a serialised msecs format. This format is a direct translation of the QDate and QTime values, it is not the actual msecs since the Unix epoch. This msecs format ensures we are always able to recreate the original QDate and QTime values, but should still simplify the code and improve performance. Because we no longer store the explicit date and time we need to store their isNull()/isValid() status separately. The changes in storage results in the same memory footprint as before. Note that this change does not optimize the code nor set out to fix the known bugs, it only seeks to maintain the current behavior, although some bugs are fixed implicitly. More bug fixes and optimizations will follow. [ChangeLog][Important Behavior Changes] The supported date range in QDateTime has been reduced to about +/- 292 million years, the range supported by the number of msecs since the Unix epoch of 1 Jan 1970 as stored in a qint64, and as able to be used in the setMSecsSinceEpoch() and toMSecsSinceEpoch() methods. Change-Id: I98804d8781909555d3313a3a7080eb8e70cb46ad Reviewed-by: Sérgio Martins <sergio.martins@kdab.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | QDateTime - Add Benchmark TestsJohn Layt2013-09-203-0/+612
| | | | | | | | | | | | | | | | | | | | | Add benchmark tests for QDateTime. Change-Id: I839f8bc81e6cae56d93539c7c3f999d9eec10ad7 Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
* | | test: fix tst_QFont::defaultFamily on Mac OS X 10.8Liang Qi2013-09-202-38/+30
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-32834 Change-Id: Iac771eb0a544ae58d203717c39a13d2d21e3c3ed Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* | | Revert "test: Mark tst_QRawFont::fromFont() as XFAIL"Liang Qi2013-09-201-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The commit 3745b0ca126f46eadfeeb7e3d1d53360dbf800cd resolved this issue. This reverts commit 08d3b0165ae49a9ca019b7074423606492856b70. Task-number: QTBUG-32654 Change-Id: Ie8dba4bd2efb35d44b70c67e59b4fff855edec79 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
* | | QMessageBox - make it possible to have a checkbox on the dialogThorbjørn Martsum2013-09-204-3/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | | This (partly) solves Task-number: QTBUG-2450 Change-Id: Ie2280c87b96e72acc76e806a83c4e8cc0d4e4ee4 Reviewed-by: J-P Nurmi <jpnurmi@digia.com>