summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* [optimization] QVariants comparisonJędrzej Nowacki2011-11-091-2/+2
| | | | | | | | | | | QMetaType::isRegistered and QMetaType::typeName are quite expensive. To compare two custom objects we need to have their type name (for dereferenced comparison). If the name exist we know for sure that the type is registered and we do not have to call QMetaType::isRegistered anymore. Change-Id: Iba631e012504c8633868a902880fa30d38afb917 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Add QPolygonF to metatype system.Jędrzej Nowacki2011-11-094-4/+12
| | | | | | | | That was strange that QPolygon was know to QMetaType class but QPolygonF not. Change-Id: I67bb99644b8b1d0fe1aec730619d8048cb78219b Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Make usage of internal QVariant space.Jędrzej Nowacki2011-11-095-718/+491
| | | | | | | | | | | | | | | | | | | | | | Each QVariant instance has internal storage which may be used for well-know basic types. This patch changes the behavior by delegating type dependent operation to QMetaType class which knows more types than QVariant itself. The patch significantly reduce amount of code in QVariant implementation. There are few side effects of this patch: - better performance: * for Core types when using Gui (QGuiVariant is able to construct Core types) * for small custom types (QVariant::Private::Data is used for all types that has size small enough) - comparing two QVariants can give different result for small custom types (binary comparison instead of pointer comparison) Change-Id: Ic17fa500d6a882110bfba896fd456c8e6c7a63a9 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Implement QMetaTypeSwitcher.Jędrzej Nowacki2011-11-092-1/+103
| | | | | | | | | | | | | | | | | | | Currently one of the most common coding pattern, when working with QMetaType types, is to switch over all types ids to convert a given type id to a real c++ type. The pattern is not perfect, because of: - code duplication - to convert type id to a real type a user has to write own switch case - maintenance - adding new type to QMetaType::Types doesn't propagate to other parts of code. Proposed type switcher can solve the issue by switching type id and delegating found c++ type. The class is created for internal use only and was created to simplify common problems in QtDeclarative, QtScript and QVariant. Change-Id: I0567ef908024b3b05ee18126f98a73a74748fbd2 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Add QTypeModuleInfo template classJędrzej Nowacki2011-11-092-1/+118
| | | | | | | | | | | From time to time it is necessary to know from which module a type comes from. This information couldn't be part of QTypeInfo as id doesn't work for forward declared types. QTypeModuleInfo should stay for Qt internal usage only. Change-Id: Ia53747c88293fc0cdaffef919b94c653412779d3 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Refactor QMetaType types.Jędrzej Nowacki2011-11-093-163/+155
| | | | | | | | | | | | | | | | QMetaType::Type enum is the main source of type ids. Currently there are many tasks that can be replaced by a smart macro that can iterate over all types. The patch introduces series of FOR_EACH_ macros that may be used for code generation. As the first step the macro was used for Q_DECLARE_BUILTIN_METATYPE to make sure that no type was forgotten. Second step was to use created macros in autotest to improve tests coverage. Change-Id: I34e9ad7bacf02b44b028bc1aad20b1241aacebd3 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Widgets: Remove remains of Windows file dialog.Friedemann Kleint2011-11-084-1225/+2
| | | | | | | Also remove Windows-specific binary compatility hack from Qt4. Change-Id: I4b6914b357f21737e392745f907c770db9f7a641 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* QGlobal: Define a default message handlerAurindam Jana2011-11-081-16/+26
| | | | | | | | | | | | | Currently, qInstallMsgHandler() does not return the handle to the default message handler. This patch defines a default message handler. This is returned by qInstallMsgHandler() when called for the first time. A call to qInstallMsgHandler(0) will restore the default message handler as was the case previously. Change-Id: I42f06654d45fb0e633f3c6d912fc8f05c23249aa Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QNAM: Fix authentication cache when the password is in the URLOlivier Goffart2011-11-083-3/+8
| | | | | | | | | | | | | | | Two problems: - The signal cacheCredidentials was not connected in the synchronous case while it must be connected. (Regression when the threaded http was merged) - We cannot cache the credidentials when we proceed the url because at that point, we do not know the realm (this basically reverts 9bc5a32b875b812c3a706034c8c27614f86bd138) Task-number: QTBUG-18411 Change-Id: I8ea11fa23db4314c3f17ed06d2d7f9ee934ccdba Reviewed-by: Peter Hartmann <peter.hartmann@nokia.com>
* Avoid double initialize of platform font databaseJiang Jiang2011-11-081-1/+0
| | | | | | | | | | | Since platform font database will be populated in QFontDatabase::load, no need to do it here in QFont::initialize. The change was in cd781b732ed29b41b5ac18e39cbbba2815fc8f8b but lost in previous merge. Change-Id: Iaa56fea5765d94e4f7b58409654bc218808086cd Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* SSL: blacklist intermediate certificates that issued weak certsPeter Hartmann2011-11-081-0/+3
| | | | | | | | | | | ... as did browser vendors. Tested manually with affected CA certificates. Reviewed-by: Richard J. Moore <rich@kde.org> (cherry picked from commit e1d6df4e5931ee49b4b68dd5a33146f5639268b7) Change-Id: I5bf6c147abf6d2de0f313d65faa2d9a1e9684cea Reviewed-by: Peter Hartmann <peter.hartmann@nokia.com>
* Cocoa cursor support: Add QCocoaCursor.Morten Sorvig2011-11-086-523/+375
| | | | | | | Port the Qt 4 mac implementation. Change-Id: I3bc6fd0b5a0398dcf43a5aaa3b498bb74b42c105 Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Widgets: Use QPlatformDialogHelper in QColorDialog/QFontDialog.Friedemann Kleint2011-11-085-25/+26
| | | | | Change-Id: Ib9a2f19679c2d4c8583742a918d61c1a98403843 Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Add Q_DECLARE_PRIVATE equivalent for QDir, to be able to subclass itDavid Faure2011-11-084-15/+33
| | | | | | | | Apply the same solution to QFileInfo (no public detach(), but a non-inline d_func instead). Change-Id: I31c4c759f44a0649b97f7884b078b174c9c00f22 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QPainterPath: Fix copy constructor again.Charles Yin2011-11-081-1/+1
| | | | | | | | | | | | The previous fix a05270f435483937e76d18fa6e512dc0394507d1 is not correct, QPainterPathPrivate(other) should be QPainterPathPrivate(), as there is only a default ctor for QPainterPathPrivate and ref is initialized there, use copy ctor just copies the ref value which makes all detach() calls broken. Add an unit test for this as well. Change-Id: I658f0a977664d5ec523af3f8a48c1a866eda6ab0 Reviewed-by: Martin Jones <martin.jones@nokia.com>
* Fix subpixel positioning supportJiang Jiang2011-11-089-42/+27
| | | | | | | | | | | | Move subpixelPositionForX from QTextureGlyphCache to QFontEngine, since some font engines like QFontEngineFT may need a custom implementation or tweak it a little bit. In QRasterPaintEngine::drawCachedGlyphs, do not add aliasedCoodinate to x offset as that will break subpixel positioning. Change-Id: Idbcec617509459b80965220ceb07b17737649bbf Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* Implement QRegion::isNullJędrzej Nowacki2011-11-082-0/+16
| | | | | | | | The method was missing from QVariant perspective (QVariant::isNull supposed to call isNull not isEmpty). Change-Id: Ic1ac9f662e275ac73908809f2c4ac59679b40b00 Reviewed-by: Olivier Goffart <ogoffart@kde.org>
* QPainterPath: Fix copy constructor.Friedemann Kleint2011-11-071-1/+1
| | | | | | | | | | Re-add base class initialization accidentally removed by e277575987657aa07444eea9bee99769f039d3b0. Fix warning: 'base class 'class QPainterPathPrivate' should be explicitly initialized in the copy constructor. Change-Id: Ie94fa82eeeb3a8ddc69aef447f73ce36da616916 Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
* Bump QCoreApplicationPrivate::app_compile_version to 0x050000Bradley T. Hughes2011-11-072-7/+6
| | | | | | | | | The minimum compile version is 0x050000 now, it cannot be less. Remove checks for 0x040200 in the widget code, which provided compatibility in the 4.x series for binaries compiled with 4.0 and 4.1. Change-Id: Ia01da90de26dca6aeeb79d29c754cbeeecf809af Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
* symbian epoc root code removedJoerg Bornemann2011-11-072-18/+0
| | | | | | | Change-Id: Ibc9f5e42c534a09a8a44a0c95789f467970d38a2 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Fix QQuickTextInput implicit width.Andrew den Exter2011-11-071-1/+2
| | | | | | | | | | QQuickTextInput tries to set the UseDesignMetrics text option on its QLineControl but this is overridden by the options set in updateDisplayText(). Apply the new options in updateDisplayText to the existing options. Change-Id: I6789c3c2d6e496c1594d586bd075473983978f77 Reviewed-by: Martin Jones <martin.jones@nokia.com>
* SSL certificates: add functionality to read extensionsRichard Moore2011-11-069-12/+628
| | | | | | | | | | ... by adding a new class QSslCertificateExtension and methods in QSslCertificate to support extensions. This is needed e.g. for OCSP (checking revocation status of a certificate) or Extended Validation certificates. Change-Id: I5c5d9513fa640cd487786bb9a5af734afebd0828 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Reinstate and deprecate the two argument QMetaType::constructKevin Simons2011-11-051-0/+4
| | | | | | Change-Id: Id291f00ba13a39b4af022b75fd428b876d6dd9b0 Reviewed-by: Kent Hansen <kent.hansen@nokia.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* QLineEdit - made mouse interactions commit preeditPekka Vuorela2011-11-055-16/+83
| | | | | | | | | | | | | | | | Simplifying input context mouse handling rules by making the editor in charge when text gets committed and selected. This includes: - Allowing selection to start on top of preedit. Commits once a single character gets selected - Double click to commit preedit before selecting a word. - Only sending events to input context that happen on top of preedit. - Committing preedit when a mouse press happens outside of it, allowing to move cursor to click position. Change-Id: I9dab00ea3445055ffd0d7cae540a1197c5748509 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Fix broken indendation with hard tabsPekka Vuorela2011-11-051-4/+4
| | | | | | Change-Id: I1aa161ddab55f11683b2eee3c205505a829013c4 Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Joona Petrell <joona.t.petrell@nokia.com>
* Support tentative commit string with input method.Pekka Vuorela2011-11-055-5/+60
| | | | | | | | | Tentative commit string allows input method to notify editor what is expected to be committed in the place of preedit. This commit adds such support in QLineEdit. Change-Id: If855619bc6843652db0d6254f7e7063bb8ad0936 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* QTextEdit - mouse events to override input contextPekka Vuorela2011-11-052-100/+121
| | | | | | | | | | - Selection can start on top of preedit - Mouse press outside preedit commits - Double click to commit on top of preedit Change-Id: Ia2698d97d354a677d935de1a8fd9ed53a161ca5e Reviewed-by: Joona Petrell <joona.t.petrell@nokia.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Allow disabling FreeType internal cacheJiang Jiang2011-11-052-155/+112
| | | | | | | To disable it, set QT_NO_FT_CACHE environment variable to 1. Change-Id: I086aa93c71cbdf86858a41a2bbad5d2db247cdfb Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* Fix a warning in QGlyphRun compilationJiang Jiang2011-11-051-0/+1
| | | | | Change-Id: Ic072240193fc8eb5e7fdcd0dada79383398b224b Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* Restore subpixel rendering support with fontconfig and FreeTypeJiang Jiang2011-11-052-7/+35
| | | | | Change-Id: I45cf83374ba5a8b1ae88415950c1e5ab72991598 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* Prevent timestamps in widgets' touch events from disappearingLaszlo Agocs2011-11-044-8/+13
| | | | | Change-Id: I096914eb2b02ad9c4a5c0462a1f4b76ef17c3957 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Added -datatags option to QTestLibJo Asplin2011-11-043-0/+92
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (Note: This feature is ported from Qt 4.8. See the following commits: 01575deafb7d26ca2431374e92c6d71de96547c7 4866d1ba8afbab61e102942d1ea93b81fea053d6 ) Passing the -datatags option to a QTestLib program prints the available data tags to standard output. For completeness, the test case name is also printed at the start of each output line. (Although the file name is supposed to match the lower-case version of the test case name, this is currently not true in all cases (particularly not under tests/benchmarks/). Even if there was a script to enforce this convention, the -datatags option provides this information in a reliable way.) Data tags for each test function (f() in this case) are printed in four different ways depending on the presence of local and global data tags: Case 1: No tags: tst_MyTestCasetst_MyTestCase f Case 2: Local tags only: tst_MyTestCase f local tag 1 tst_MyTestCase f local tag 2 ... Case 3: Global tags only: tst_MyTestCase f __global__ global tag 1 tst_MyTestCase f __global__ global tag 2 ... Case 4: Local and global tags: tst_MyTestCase f local tag 1 __global__ global tag 1 tst_MyTestCase f local tag 2 __global__ global tag 1 ... tst_MyTestCase f local tag 1 __global__ global tag 2 tst_MyTestCase f local tag 2 __global__ global tag 2 ... ... Note that the string __global__ is assumed to be highly unlikely to occur in a data tag (if it does, an ambiguity results). Change-Id: Ib51aa0c3c32ad52e52ce519729292cf8f0ec5d50 Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@nokia.com>
* Fix usage of QtConcurrent headers with -Wshadow -WerrorDavid Faure2011-11-041-2/+2
| | | | | Change-Id: I172888518a3db01f89e61061eccf85f7f3387d07 Reviewed-by: Olivier Goffart <ogoffart@kde.org>
* Windows: Add dialog helpers for native dialogs.Friedemann Kleint2011-11-049-0/+1506
| | | | | | | | Implement QPlatformDialogHelper for file dialogs based on IFileDialog. Add prototypical implementation of color dialogs. Change-Id: If3c7470be6c0b8fbf8cfea1b6638bda43afafea7 Reviewed-by: Oliver Wolff <oliver.wolff@nokia.com>
* Revert "Avoid fontconfig access in fontEngine creation"Jiang Jiang2011-11-042-25/+43
| | | | | | | | | | | This reverts commit 8dcb52df8e2e949232ccded9fad5a4f25ba6dda2. Turns out that hint style is retrieved from font match instead of pattern match, which shouldn't be retreived until font engine creation. Change-Id: I90e779a3823e6a6604cdadb52586fcd5e22c295b Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* Improve QtGui start-up time and memory use.Samuel Rødal2011-11-043-61/+98
| | | | | | | | The gamma lookup tables can be allocated and computed on demand, as they're not always needed, depending on the platform and the use case. Change-Id: I2d4c2860746366a0e46edb53bd4ecd2778de2464 Reviewed-by: Olivier Goffart <ogoffart@kde.org>
* Revert "Use standard spelling for two languages"Lars Knoll2011-11-042-49/+49
| | | | | | | | | | | This reverts commit 9358f7eaa4b773bdbfa45b08ab92a89096954881. The change is source incompatible and hasn't been agreed upon. Revert it even though it's correct in principle. It's simple to keep the old enums around for compatibility. Change-Id: I8d9d33868e44d0299a3f081833b06cedf0ed4345 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QStandardPaths: add DownloadLocation.David Faure2011-11-045-3/+13
| | | | | | | | | Only properly implemented on unix (XDG), falls back to Document location on Mac and Windows, because not easily available with the current API being used by either one. Change-Id: Id269f0e3c4e3a68e19205de96c0b39980fde80ff Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Do not put cursor at non-stop character positionsJiang Jiang2011-11-041-0/+3
| | | | | | | | | | | When moving cursors, non-stop positions are skipped, however certain input sequences can still lead us there. In such cases we should simply ignore those positions in cursorToX. Task-number: QTBUG-7076 Change-Id: Ia0a25931f4043359f72a6c0c14a74b905e40b93e Reviewed-by: Eskil Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* Release font engine refcount when done using it in QTextEngineJiang Jiang2011-11-043-5/+12
| | | | | | | | | | | | | 5f2b6dd2a50275bc05ae5d7e9dd8902d6d49d9df increased refcounts for font engines in QTextEngine cache, we need to decrease them when the QTextEngine is deallocated. Task-number: QTBUG-21222 Reviewed-by: Eskil (cherry picked from commit 8935a84e18804c7ff4b7336e3cfdf1cd558eaf1c) Change-Id: I079c903d60e1bbcf78f555f8044dde69af82cf0e Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* Use standard spelling for two languagesJiang Jiang2011-11-042-49/+49
| | | | | | | | Singhalese -> Sinhalese Divehi -> Dhivehi Change-Id: I3faa7163202a4a9be14e3cf857da60aa4dd3196f Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* QWidgets: Delayed creation of the QPlatformDialogHelper.Friedemann Kleint2011-11-044-41/+52
| | | | | | | | | - Create helper only once and ensure deletion - Move nativeDialogInUse into QDialogPrivate, ensuring the native modal helper is called from QDialog::exec() only if it is true Change-Id: Id92b278bb051ce254458f276fbf7075689a7d491 Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Add QT_MODULE(Gui) macroSergio Ahumada2011-11-031-0/+2
| | | | | | | | | Fixing `macros' function test of `tst_headers' Task-number: QTQAINFRA-324 Change-Id: Ib6fcf276108bbb5515a72f3f17b373de82a599fc Reviewed-by: Olivier Goffart <ogoffart@kde.org> Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* QtGui: Fix compilation with gcc 4.4Friedemann Kleint2011-11-036-52/+101
| | | | | | | | | | | | - Do not mix QStringLiteral and Q_TR_NOOP. - Replace static QString member variables by - static member functions to return the strings. - Use tr() since QAccessibleActionInterface declares it. Acked-by: Frederik Gladhorn <frederik.gladhorn@nokia.com> Change-Id: Iabbee8ef61a5d7bfd35978a3f1cce1866329d065 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Fixed returned geometry of toplevel child widgetsOliver Wolff2011-11-031-11/+9
| | | | | | | | | | | If a widget has got a parent widget but also is a toplevel widget it should not return its geometry relative to its parent. In addition to that, child widgets which are not toplevel should not change their left and top values according to their parent but also keep their width and height intact. Change-Id: I5e641abf5ddc0b8d056ba023f8de52af1d2ccc9f Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* QThread::isFinished should return true from finished()Olivier Goffart2011-11-031-2/+2
| | | | | | | | | | | | | | | | | | | and isRunning() should return false. This restore the Qt 4.7 behaviour In Qt 4.7, the finished() was called with the thread's intenal mutex locked. Which mean that: - Call to isRunning or isFinished called from a slot connected to finish within the thread would deadlock. (Hence no compatibility to keep here) - Call to isRunning or isFinished from a slot connected with QueuedConnection in another thread would lock the mutex until the destructors are finished. and then return as if the thread have finished. Change-Id: I963eccae8f7634aff90cc4bbab6ca886a78e35eb Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Enable deprecated feature for nowOlivier Goffart2011-11-031-2/+3
| | | | | | | | | | | | | | | Rationale is that it makes it possible to deprecate functions without breaking other modules. After the feature freeze, this should be reset to 5 Notice that QT_DEPRECATED is not defined while bootstrapping Qt (QT_NO_DEPRECATED defined) This also means that compilation is tested Change-Id: I85f0e65ac3a160e9aba3833787ded3f94304cb90 Reviewed-by: David Faure <faure@kde.org>
* Renamed QTextLayout member variable for readabilityPekka Vuorela2011-11-032-39/+39
| | | | | | | | | Class complex enough already without int i as member variable. Furthermore, some methods use loop variable with same name, shadowing the member one. Change-Id: Idf2f5e34f130a60eb6121480e596e443f23641dd Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* Documented side-effect of QTextLayout::setPreeditArea()Pekka Vuorela2011-11-031-1/+2
| | | | | | | Invalidates layout and requires layouting again. Change-Id: I1cb954f155e4fc1df4b217478998ac903cc18323 Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* Fix getting of enviroment strings in testlibJason McDonald2011-11-031-5/+5
| | | | | | | | | | | | | | | | | | | The standard C getenv() returns NULL if the requested environment variable is not found. In Qt4 and later, qgetenv() does not return a null pointer if the requested environment string is not defined. Instead it returns a QByteArray containing an empty string. If using qgetenv(), there is no way to tell the difference between an undefined environment variable and one which is defined to be the empty string. In testlib, all calls to qgetenv() were checking whether the returned QByteArray's constData() returned a null pointer, but that would never happen. These calls must instead check whether the QByteArray contains a non-empty string. Change-Id: I342f0e8b196896c26cccce3ff169fa1b9669b5ff Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>