summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/cocoa
Commit message (Collapse)AuthorAgeFilesLines
* Implement isSharing() and isValid() methods for QCocoaGLContextTeemu Katajisto2012-02-252-3/+22
| | | | | | | | | | | | | | Shared resources may have been used when initializing NSOpenGLContext but QCocoaGLContext did not implement isSharing(). This caused default implementation to return false always and therefore shared resource test case failed. Implemented also another missing method, isValid(). Task-number: QTBUG-23061 Change-Id: Ia912450035b584ea90a02a7d88d6ae531c3cbadf Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* QWheelEvent high-resolution delta support.Morten Johan Sorvig2012-02-241-23/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Support pixel-based deltas as well as sending dx and dy values in the same event. Keep source and behavior compatibility with Qt 4. New API: QPoint pixelDelta() const QPoint angleDelta() const Deprecate delta() and orientation(). Both pixel-based deltas and combined updates are necessary for smooth trackpad-based scrolling on OS X. Qt 4 compatible behavior is achieved by sending an extra wheel event in cases where the initial event has a combined dx and dy update. This extra event sends dx in delta() and orientation(), with pixelDelta() and angleDelta() set to null. Modify the Cocoa implementation to provide pixel deltas. It is expected that not all platforms can provide these. Angle deltas will always be available. Change-Id: I20c10f0df338ddcd6a3f7a4d40949ed5ae3b4795 Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Add further theme hints to QPlatformTheme.Friedemann Kleint2012-02-221-5/+8
| | | | | | | | | | | | | | | | - Add hints for QDialog/QDialogButtonBox. - Add hint for available popup-menu area. - Add keyboard scheme hint replacing QGuiApplicationPrivate::currentKeyPlatform() Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com> Task-number: QTBUG-24204 Task-number: QTBUG-24315 Change-Id: I6653786b0dcb49a6fc264d3b9891dbfee502bd3e Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Remove QPlatformIntegration/QPlatformTheme from QGuiAppPrivate.Friedemann Kleint2012-02-201-0/+1
| | | | | | | Forward-declare instead. Change-Id: I3851994e8bc05b389e94e948478339ba33d521c1 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Remove unused config.tests from config.tests/mac/*Bradley T. Hughes2012-02-171-10/+0
| | | | | | | | | | | | | The xarch.test and crc.test are not run by configure, so remove them along with the related CFG_MACH_XARCH and QT_NAMESPACE_MAC_CRC configure variables. The kEventClassQt variable in qt_mac_p.h is also unused now, so remove it as well. Change-Id: I596ab9b493ce3164b6a4d40e8942479efc91b60d Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Add palette() and further hints to QtGui/QPlatformTheme.Friedemann Kleint2012-02-172-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | - Move palette() from deprecated QtWidgets/QGuiPlatformPlugin to QtGui/QPlatformTheme, Make it return a const * since QPalette does not have isNull(). - Initialize QGuiApplication::palette() and QApplication::systemPalette() from it. - Do not initialize QPalette from QGuiApplication::palette() unless app_pal is non-null (default to Qt::black if it is 0). This avoids initialization order crashes/recursions in the QPA plugin. Streamline initialization function. - Remove styleName(), systemIconThemeName() and iconSearchPaths() from QGuiPlatformPlugin and re-add them as QPlatformTheme::themeHint(). - Remove styleHint() from QGuiPlatformPlugin, add it to QPlatformTheme::themeHint(). - Add UNIX themes with factory function (Generic, KDE, Gnome), taking it from Qt 4.8 code (stripping the KDE 3 code). - Implement Windows palettes. Task-number: QTBUG-24204 Change-Id: Ie27ec035df4f84c42deaffc4816b2e53ce705462 Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Fix naming of plugins for QPA plugins and use new plugin system.Friedemann Kleint2012-02-173-2/+8
| | | | | | | | | - Fix naming "com.nokia" -> "org.qt-project" in platform integration & platform theme. - Adapt Windows, XCB, Cocoa, Minimal. Change-Id: I7834f5c3d94473b6f06c1bffee074a70ee25f426 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* CompileBradley T. Hughes2012-02-142-2/+0
| | | | | | | mHackedPanel is not declared anywhere in the Cocoa dialog helpers. Change-Id: I3ba5dd429aa9fe5833b19c1e081425ec4020658d Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
* Add QCocoaColor- and FontDialogHelperChristoph Schleifenbaum2012-02-146-3/+1139
| | | | | Change-Id: Ie6e648e9e1f4ffbb34d73f9afdd6cc77e86bc3d1 Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Ensure that posted events are sent by Q*Application::processEvents()Bradley T. Hughes2012-02-071-0/+9
| | | | | | | | | | | | Commit b7ca6a81dbf6a2b96c8f04b856372050618e60c0 removed a call to sendPostedEvents() that deemed unnecessary. Unfortunately, it is necessary, as shown by the tst_QScriptEngine::processEventsWhileRunning() test in the QtScript module. Re-add the call, but only when not waiting for more events. Change-Id: I648d66dd3ba484ad9e9a93fc03a9792cca5035c6 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@nokia.com>
* processEvents(WaitForMoreEvents) should return after delivering eventsBradley T. Hughes2012-02-032-11/+28
| | | | | | | | | | | | | | | | | | | | | | The Cocoa event dispatcher sends timer, socket, and posted events correctly, but they are not NSEvents, and as such, they do not cause [NSApp nextEventMatchingMask] to return. When calling processEvents() with WaitForMoreEvents, but the EventLoopExec flag isn't set, we want to interrupt the WaitForMoreEvents. As a result, We should not call wakeUp() at the top of processEvents(), otherwise we end up shortcutting other event sources. We also do not need to call QCoreApplication::sendPostedEvents() directly either in processEvents(), it's the postedEventsSource job to do that. The interruptLater mechanism is always run when calling processEvents() directly (not via exec()), which causes problems when testing processEvents(). Don't use interruptLater unless the modal sessions change (which is indicated by the cached session pointer being reset to zero). Change-Id: Iec2b49a4f306b2702c979522f12a28d0b5fbd0b4 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@nokia.com>
* Move QString <-> NSString conversion to QtCoreMorten Johan Sorvig2012-02-027-47/+41
| | | | | | | | | | | | | | | | Add (private) API to QCFString: static QString toQString(NSString *) static NSString *toNSString(const QString &) Add implementation to qcore_mac_objc.mm. Keep the mac_cpp since it's used for building qmake as well as bootstrapping. Replace usage of NSString conversion functions in the cocoa and corewlan plugin with QCFString. Change-Id: I9f34edd5231255aef9d8d6e9a60306174bb279b3 Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
* Remove duplicated function from QCocoaEventDispatcherBradley T. Hughes2012-02-021-23/+7
| | | | | | | | | | | | | | The qt_mac_waitForMoreModalSessionEvents() is identical to qt_mac_waitForMoreEvents(), except that it passes a different inMode parameter to [NSApp nextEventMatchingMask]. Change the latter function to take the mode as a parameter itself, defaulting to the default mode. Change the dequeue parameter to [NSApp nextEventMatchingMask] from YES to NO. Having the function dequeue the event, and then immediately reposting the event is not necessary. Change-Id: Iba45d41ad3ff4d5721d1068e6d5c78585cb15810 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@nokia.com>
* Introduced BufferQueueingOpenGL capability in platofrm integrationGunnar Sletta2012-02-011-0/+1
| | | | | Change-Id: Iedb7255862fd3a11aceae0e06e90a5539febc7e7 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Mac: Fix compilation with -qtnamespace setKai Koehne2012-01-311-0/+3
| | | | | | Change-Id: Id3b9f4e3edf2caeac32c8a44278cdf05a1fc70fb Reviewed-by: hjk <qthjk@ovi.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Avoid non-standard indentation of license headers.Jason McDonald2012-01-304-156/+156
| | | | | | | | The strange indentation has made maintenance of license headers difficult on several occasions. Change-Id: Ib29a7e5275e2c7a2c13a3f32fd2479f34d3353ca Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Remove "All rights reserved" line from license headers.Jason McDonald2012-01-3046-46/+46
| | | | | | | | | | As in the past, to avoid rewriting various autotests that contain line-number information, an extra blank line has been inserted at the end of the license text to ensure that this commit does not change the total number of lines in the license header. Change-Id: I311e001373776812699d6efc045b5f742890c689 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Decouple QPlatformTheme from QDialog.Friedemann Kleint2012-01-274-29/+13
| | | | | | | | | | - Use an enumeration for the dialog type. - Implemented on Windows and Mac Reviewed-by: Morten Johan Sorvig <morten.sorvig@nokia.com> Change-Id: I213748a08168efbabc2ac0106308e97ff19d19c0 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Remove use of QT_MODULE from libraryGunnar Sletta2012-01-251-1/+0
| | | | | | | | | | These defines were there to aid in the commercial licensing scheme we used long ago, and are no longer needed. Keep a QT_MODULE(x) define so other modules continue compiling. Change-Id: I8fd76cd5270df8f14aee746b6cf32ebf7c23fec7 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Use QObject pointer as QCocoaAccessibleElement id.Morten Johan Sorvig2012-01-233-23/+14
| | | | | | | | | | | | | | | Each QCocoaAccessibleElement needs to provide a unique stable id through the -(NSUnterger)hash method. The previous approach of basing the hash on the parent hash plus the child index is unpractical now that childAt() can return distant descendants instead of immediate children only. Use the QObject pointer, which is set for all accessible interfaces today. Change-Id: I5868e3a81c1b4da7233504f30003ab8060e9fa3f Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Update contact information in license headers.Jason McDonald2012-01-2346-46/+46
| | | | | | | Replace Nokia contact email address with Qt Project website. Change-Id: I431bbbf76d7c27d8b502f87947675c116994c415 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Add "nswindow" resource to the Cocoa native interface implementationBradley T. Hughes2012-01-191-0/+2
| | | | | | | | | This will return the NSWindow* for the given QWindow*. Port the QWidget autotest helper to use the native interface and the "nswindow" resource. Change-Id: I754b7e9288690ac3c99c3ec65c5526d5fe121234 Reviewed-by: João Abecasis <joao.abecasis@nokia.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Prevent menubar related crashesBradley T. Hughes2012-01-191-8/+8
| | | | | | | | | | | | | | | The native menubar interface does not communicate menubar destruction down to the implementation, so we cannot keep naked pointers (otherwise they become dangling). This happens often while running autotests as windows, menus, widgets, etc. are quickly created, tested, and then destroyed. Work-around the crashes for now by using QWeakPointer. A proper fix will need to be investigated to prevent the menubars hash from holding dangling key pointers. Change-Id: Ie8e50cbc52f9510e844fc3c0c5ae6a0865320282 Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Improve accessibility actions descriptions on MacMorten Johan Sorvig2012-01-171-4/+5
| | | | | | | Use built-in descriptions for built-in actions Change-Id: Ic5581e89e4568abcc6c3add126d492345d26d87d Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Delete src/widgets/platforms/macMorten Johan Sorvig2012-01-175-5/+446
| | | | | | | | This looks like the mac port but isn't any more, remove it to prevent confusion. Change-Id: I498f536d77d1a3c53e687f696ca6992539a1a90b Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Cleanup properly when destroying QCocoaWindowBradley T. Hughes2012-01-161-0/+2
| | | | | | | | | | [NSNotificationCenter addObserver]'s documentation clearly states that removeObserver needs to be called before releasing the object being observed. The m_contentView we create was never released either, so be sure to release that as well. Change-Id: Ia54eb1c5c751f4cb0edb21ad559b261cb8f24208 Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Clean up QCocoaIntegration destruction.Morten Johan Sorvig2012-01-142-9/+12
| | | | | | | | Fix memory leak - delete the font database. Remove the NAApplication delegate. Change-Id: I7c69eb4df01c8450c0abde360f77fbb318b20c83 Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
* Added application flags to translate between touch and mouse events.Samuel Rødal2012-01-131-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current way we do it of having the platform or touch plugin send both mouse and touch events is not ideal. There's no good way to write an application that works sanely both on a touch-only device and on a desktop except by restricting yourself to only handling mouse events. If you try to handle touch events you don't get any events at all on desktop, and if you try to handle both, you end up getting duplicate events on touch devices. Instead, we should get rid of the code in the plugins that automatically sends mouse events translated from touch events. This change enables that by making the behaviour fully configurable in QtGui. Two new application attributes are added to explicitly say whether unhandled touch events should be sent as synthesized mouse events and vice versa, and no duplicates are automatically sent as the current situation. Synthesized mouse events are enabled by default. We also get rid of the QTouchEvent::TouchPoint::Primary flag, which was only used to signal that the windowing system automatically generated mouse events for that touch point. Now we only generate mouse events from the first touch point in the list. Change-Id: I8e20f3480407ca8c31b42de0a4d2b319e1346b65 Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com> Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@nokia.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@nokia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Denis Dzyubenko <denis.dzyubenko@nokia.com>
* Cocoa: Send window activation events.Morten Johan Sorvig2012-01-133-0/+22
| | | | | | Change-Id: I599b4316f1535bf4855b205bfb2117bbcee63bf0 Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
* Don't crash during QApplication constructionBradley T. Hughes2012-01-121-1/+2
| | | | | | | | | | | | The QCoreApplication::init() function calls the virtual QCoreApplicationPrivate::createEventDispatcher(), which for QApplication, also creates the plaform integration. Unfortunately, the Cocoa menubar integration uses qApp before QApplication is constructed, causing a crash. Circumvent this by using QGuiApplicationPrivate directly. Change-Id: Ib36f628641761e70f9e9e39dd23e70e7537a165b Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Ignore uninteresting accessibile interfaces.Morten Johan Sorvig2012-01-124-2/+54
| | | | | | | | | Certain interface roles should be ignored and not be a part of the user-visible accessibility interface tree. Change-Id: I264fef909052c528ee505875e3a211a33114d881 Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Make QAccessibleInterface::indexOfChild() 0-based.Frederik Gladhorn2012-01-111-1/+1
| | | | | | | Makes the code nicer and more consistent with the rest of the world. Change-Id: I5ba0ee39f5b0afd1a079a3cea9990d123955ed3f Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Add support for accessibility actions.Morten Johan Sorvig2012-01-114-6/+95
| | | | | | | | Match Cocoa and Qt actions manually. Some have no corresponding action on the other side. Change-Id: I775cb8987ab843bd88d57d856ef7c0403290db00 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Fix key codes on mac.Zeno Albisser2012-01-101-1/+1
| | | | | | | Qt key codes match the unicode character in upper case format. Change-Id: I92b43463921e71f2607e569ba7ee23d6f844c50a Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Change QCocoaEventDispatcher timer handling to use QTimerInfoListBradley T. Hughes2012-01-092-106/+100
| | | | | | | | | | | | | | | | This gives us support for the various Qt::TimerTypes. We only use one CFRunLoopTimer to drive all of the Qt timers. We update the time-to-fire for this timer as we add/remove/fire Qt timers. The documentation for the CFRunLoopTimerSetNextFireDate() function says that this is a valid use case, and is more performant than constantly adding and removing CFRunLoopTimers. The documentation recommends using a large interval for this use case (the docs say "several decades", but we use 1 year). Change-Id: Ie7fd7a845f4254699a5b6a5720e7626f2c5e787f Reviewed-by: Robin Burchell <robin+qt@viroteck.net> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@nokia.com>
* QCocoaEventDispatcherPrivate members should not be staticBradley T. Hughes2012-01-052-70/+60
| | | | | | | | | | | | | | | Keep the Cocoa event dispatcher's private data as normal members of QCocoaEventDispatcherPrivate. This removes the global initializers for the macTimerHash and cocoaModalSessionStask as well. To keep timers working, we pass a pointer to the timer's MacTimerInfo struct to the callback, instead of just the timer id. The MacTimerInfo needs to keep a pointer back to the QCocoaEventDispatcherPrivate to get access to the private's members. Change-Id: Ic3a61e5e1d1d82030735de73cf0b0c70a13c21a4 Reviewed-by: Robin Burchell <robin+qt@viroteck.net> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@nokia.com>
* Update copyright year in license headers.Jason McDonald2012-01-0544-44/+44
| | | | | Change-Id: I02f2c620296fcd91d4967d58767ea33fc4e1e7dc Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Don't release timer ids in event dispatcher codeBradley T. Hughes2012-01-041-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3rdparty event dispatchers are impossible to write without using the internal API QAbstractEventDispatcherPrivate::releaseTimerId(). Fix this by having each QObject keep track of its own timer ids, and release them when they are no longer used. As a side effect, this makes the QObjectData::pendTimer bit unnecessary. This also removes the QObjectData::inThreadChangeEvent hack that the event dispatchers used to avoid releasing timer ids when moving timers to a new thread. QBasicTimer becomes even more low-level. It cannot use QObject::startTimer() anymore, since we do not have a way to call QObject::killTimer() from QBasicTimer::stop(). QBasicTimer uses the QAbstractEventDispatcher interface directly, and releases the timer id explicitly as well when stopping the timer. This change also fixes some rare timer id "leaks" when destroying or stopping timers after a thread has exited and destroyed its event dispatcher (the timer ids would never be released when no dispatcher exists). Globally destructed QObjects that have running timers may try to release their timer ids after the timer id freelist has been destroyed. This commit accomodates such objects by avoiding the null dereference in QAbstractEventDispatcherPrivate::releaseTimerId(). Change-Id: I2d7cd8221fae441f3cf02b6c0b4bc16063834d00 Reviewed-by: David Faure <faure@kde.org> Reviewed-by: Denis Dzyubenko <denis.dzyubenko@nokia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* Make QCocoaEventDispatcher inherit from QAbstractEventDispatcherBradley T. Hughes2012-01-032-4/+9
| | | | | | | | | | | ... instead of QEventDispatcherUNIX. The Cocoa dispatcher does not use any of the facilities of the UNIX dispatcher, and it reimplements every virtual method already (with the exception of flush(), which just needs an empty implementation). Change-Id: I24aefd169888946afac7800192a0f96770787718 Reviewed-by: Robin Burchell <robin+qt@viroteck.net> Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Add Qt::TimerType argument to QAbstractEventDispatcher::registerTimer()Bradley T. Hughes2012-01-022-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | ... and deprecate the old registerTimer() functions. The new pure- virtual registerTimer() breaks source-compatibility. Subclasses cannot be instantiated anymore, since the pure virtual function signature has changed. QAbstractEventDispatcher::TimerInfo is no longer a QPair. It is now a struct with timerId, interval, and timerType members. This is a source incompatibility that should only affect subclasses of QAbstractEventDispatcher, which will need to pass 3 arguments to the TimerInfo constructor instead of 2. If the subclass used QPair<int,int> instead of the TimerInfo typedef, the QPair<int,int> declarations will need to be replaced with TimerInfo. Call the new registerTimer() function with the type from QObject::startTimer(). Change all subclasses of QAbstractEventDispatcher to reimplement the new virtual function. The type argument is unused at the momemnt, except to ensure that registeredTimers() returns the type each timer was registered with. Implementations for the various dispatchers will be done in separate commits. Author: Thiago Macieira <thiago.macieira@nokia.com> Change-Id: Ia22697e0ab0847810c5d162ef473e0e5a17a904b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Accessibility: childAt returns interfaceFrederik Gladhorn2011-12-192-32/+15
| | | | | | | | | | | | | | | | | | childAt used to return an integer. Return an interface instead. Not requiring a direct child to be returned allows optimizing by bypassing iterating through the hierarchy of accessibles. For QtQuick this is the only sensible way of implementing this. The bridges are still responsible for finding the top-most element. The default implementation in QAccessibleObject is sufficient to return direct children. The implementation in QAccessibleApplication is therfore no longer needed. Change-Id: Id7100dd5bcc3a98de516a7f4a12eaaa41cb46d26 Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Enable option to see filename extension in Mac save dialogChris Meyer2011-12-191-0/+1
| | | | | | | | | Many Mac OS users expect to have the option to see the file extension of the file being saved in the save dialog. This patch enables that option. Change-Id: I7713bcef16b6f43135b382c7107f306009c7a0a1 Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Add check to make sure qApp exists before usingChris Meyer2011-12-191-1/+1
| | | | | | | | | | Check for qApp before using. I'm aware that this is in commented out code right now; but I wanted to make sure it doesn't accidently slip back in without this check so I'm submitting this patch. It caused problems at shutdown in 4.8. Change-Id: I1c2358ab94f8b698e5519b3e0f988fb5cdd653fa Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Cocoa: Accept mouse clicks that activates windows.Morten Johan Sorvig2011-12-161-0/+5
| | | | | | | | | | | | | Events for mouse clicks that active windows are by default suppressed. Qt needs to see all events in order to properly close popup windows. Wether or not the event should be sent to the target needs to be implemented later on - in the QWidget world this is controlled by WA_MacNoClickThrough Change-Id: I4b96d33978ed2b3cb793f52bb5b6fef234190a00 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@nokia.com>
* Cocoa: Update geometry on window move.Morten Johan Sorvig2011-12-153-7/+9
| | | | | | | | | | | | | Call [QNSView updateGeometry] directly. We can't got through the frameDidChange notification since we are not actually changing the QNSView frame. Rename frameDidChangeNotification -> updateGeometry sine it now handles updates from two different sources. Change-Id: I848e558294093cd51d97778734b5cf872435266a Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Cocoa: Don't set window size in propagateSizeHintsMorten Johan Sorvig2011-12-151-7/+1
| | | | | | | | | | Unless QWindow:baseSize returns a valid value. Setting the size caused lots of window geometry instability in Creator. Change-Id: Iab45e88b47207db900c7655c217959391d84a1bb Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Cocoa: Add version check for convertRectToScreen.Morten Johan Sorvig2011-12-151-7/+12
| | | | | | | | convertRectToScreen was added in 10.7, use convertBaseToScreen on 10.6 Change-Id: Ica1ee0f62e1fc9b0d5ccf463419496684da779b7 Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Make QCocoaWindow independent of NSWindow.Morten Sorvig2011-12-145-16/+68
| | | | | | | | | | | QCocoaWindow now gets resize events from QNSViev and does not require a NSWindow. QWindow instances can now be inserted in NSView hierarchies. This is useful for Qt-as-a-plugin use cases and is needed to implement QMacNativeWidget for Qt 5. Change-Id: Ia95ea9c22a15a3e62d1e6543466cff07390c70a2 Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Cocoa: Add window debug outputMorten Johan Sorvig2011-12-142-0/+16
| | | | | | | Add logging for setGeometry/setVisible/propagateSizeHints. Change-Id: I3590caed586d36f789dd67b1951e8152f923a407 Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
* QPlatformDialogHelpers: Reduce dependency on QDialog.Friedemann Kleint2011-12-142-90/+71
| | | | | | | | | | For each QDialog-derived class, introduce a Q[X]Options class containing the options of the dialog. An instance is shared between the QDialog (or dialog desktop component) and the helper. Change-Id: Ibabf508a4b9eaea25615638a47a4c1b8f93c019e Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>