summaryrefslogtreecommitdiffstats
path: root/src/widgets
Commit message (Collapse)AuthorAgeFilesLines
* Enforce focus policy in item delegate's editorGabriel de Dietrich2013-04-231-1/+4
| | | | | | | | | | | | Focus policy can be wider in this case given the limited scope of the editor widget. This helps workaround platform specific focus policies, like on Mac, were focus can be restricted depending on the widget type. Task-number: QTBUG-30715 Change-Id: I69acf8ebff4ba16d473964c91680a1cb0235e3cf Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Don't set WA_AcceptTouchEvents on Mac OS X.Morten Johan Sørvig2013-04-231-2/+2
| | | | | | | | | | | Setting this flag causes scroll event lag, so we want to keep it off for all widgets that do not need touch events. QPanGestureRecognizer is installed on all QAbstractScrollAreas. Prevent it from setting the flag. Change-Id: Idd4fcc545ff26377607b56f75db75c2865a5fc82 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Fix QTableView::doItemsLayout()J-P Nurmi2013-04-221-3/+8
| | | | | | | | | | | Keep the content aligned to the bottom when the view has been scrolled to the bottom and the content is relayouted (for example due to sorting). Task-number: QTBUG-30653 Change-Id: I9513e295e276d25ff2068036cd80dbf91314fe84 Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Ensure the QLineEdit::returnPressed() signal is still emittedAndy Shaw2013-04-211-0/+1
| | | | | | | | | The signal needs to be emitted directly as the event is not passed to the QLineEdit if the QSpinBox gets the Key_Return. Since this signal may be relied upon then we ensure it is emitted directly. Change-Id: I17cdec62c9f995bacfd7d3cc66d6324f26c84c67 Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Implement QApplication::beep().Friedemann Kleint2013-04-191-0/+1
| | | | | | | | | | Invoke slot "beep" on QPlatformNativeInterface. Implement for Windows and X11. Task-number: QTBUG-30416 Change-Id: I2be651165b899e5147818a012001d354827bb090 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Implement alertion state for windows.Friedemann Kleint2013-04-191-1/+11
| | | | | | | | | | | | | | Add QWindow::alert() and QPlatformWindow::setAlertState(). Add logic to clear alertion state when the window becomes active. The platform plugins then only need to implement a setter and a cheap getter and need not handle activation. Prototypically implement X11 and Windows. Task-number: QTBUG-30416 Change-Id: Ia70c4722d812462a21f4034b7d52735c9f2bc49c Reviewed-by: Jerome Pasion <jerome.pasion@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* QMessageBox/Win: Include detailed text using Ctrl+C to copyJonathan Liu2013-04-191-1/+4
| | | | | | | Task-number: QTBUG-21150 Change-Id: I14c214e9f96892f0da4369e7253e363b7313c252 Reviewed-by: Kai Koehne <kai.koehne@digia.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Make password mask characters themeable.Mitch Curtis2013-04-194-36/+11
| | | | | | | | Task-number: QTBUG-29871 Change-Id: I3cf739a321d7917f8f8431992e29bba0871b1934 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Allow using Ctrl+C to copy selected text from DetailedText in QMessageBoxKai Koehne2013-04-191-2/+38
| | | | | | | Task-number: QTBUG-21895 Change-Id: Ib28f064295493595263945bc72907bf95d2cb909 Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Mac: Fix warnings about non-existing native Windows on startup.Friedemann Kleint2013-04-181-5/+5
| | | | | | | Shown for example by Qt Designer. Change-Id: Ia866a93a781a027aa3703f44314954888d75d436 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* Mac: Fix various memory leaksGabriel de Dietrich2013-04-181-0/+1
| | | | | Change-Id: Id554be11ffcf9a506c217b0dc5b96cb37c4dd57c Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Cocoa Menu: Remove unnecessary retain, release/retain in the right orderGabriel de Dietrich2013-04-181-0/+1
| | | | | | | Also, make sure platform menu item is deleted on ActionRemoved event. Change-Id: Ic07a81cb77833bdffd1464abf1c81ebdee4d16e9 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Convert the new filename to native separators before checking itAndy Shaw2013-04-181-1/+1
| | | | | | | | | | If a native separator was put in the new name when renaming a file name via the file dialog then it would correctly fail. But if a non-native one was used on Windows then it would cause the file to be moved instead if the directory existed. Change-Id: If01760b8c54a69b600c9a44c7509017be70d33e3 Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Android: Don't crash when displaying multiple top-levelsEskil Abrahamsen Blomfeldt2013-04-181-1/+12
| | | | | | | | | | | | | | | | | | | | | | While the raster platform plugin supports multiple top level windows, this is not supported on the GL plugin, so if you use GL or QtQuick2 in your app and use several top levels, the app would crash with an error message. A problem is that the top-level SurfaceView is a special overlay View and does not support being stacked in a layout. So instead, we let all windows share the same GL surface and draw on top of each other. This works fine for simple use cases. We implement a new platform capability to make sure no top level windows (even combobox popups and dialogs) get non-fullscreen geometries. That has never worked properly with the eglfs plugin. Task-number: QTBUG-30473 Change-Id: Ia1438019638fc739cc93ffe79b46b81631254df2 Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* Fix GroupBox painting on Windows when not using widgetsJens Bache-Wiig2013-04-182-48/+3
| | | | | | | | | | | | | | This is simply removing some slow and rather ugly hacks that tried to reconstruct broken data from the windows xp theme. After testing without these hacks on both XP and Windows 7, I believe we can conclude that these workarounds are no longer required and even breaks our look and feel in several places. Task-number: QTBUG-29888 Change-Id: Ifaffd660e8d9ed6dfd43657745c3fa1606d33a7c Reviewed-by: J-P Nurmi <jpnurmi@digia.com> Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Fusion & GTK styles need to check direction from style option not qappShawn Rutledge2013-04-182-3/+3
| | | | | | | | | | An RTL menu containing a menu item which opens a submenu was showing the wrong arrow if the application's direction was not also RTL. So now the test for QTBUG-30595 can be simplified: no need to set the application direction, and therefore less chance of failure. Change-Id: Id140656206c6fefea3649289477dc54c77e2dd5e Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
* An RTL submenu should be right-alignedShawn Rutledge2013-04-181-2/+2
| | | | | | Task-number: QTBUG-30595 Change-Id: Iac54cae70b5a2ac6be5a750279fb390bb158776a Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Move Fusion styles palette into QtGuiJørgen Lind2013-04-171-39/+3
| | | | | | | | So that it can be used as the standard palette for QtGui applications instead of the absolutely useless black palette. Change-Id: Ie001439fcd8840a66275009c9f42cbf8bab4864a Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Prevent recursions when triggering menus in QToolButtonFrederik Gladhorn2013-04-161-0/+4
| | | | | | | | | | With a global shortcut set it would be possible to let the button re-open the menu again and again, each time spinning an event loop. Task-number: QTBUG-30399 Change-Id: If7eddc115c77fef3df3e751fd72e7414cedaf272 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* QGtkStyle: Remove widget dependency from GroupBoxJens Bache-Wiig2013-04-161-18/+20
| | | | | | | | | | This patch makes it possible to draw a checkable groupbox without passing a widget pointer. Task-number: QTBUG-29867 Change-Id: I9b74bcffa0401c88f9dcbcd9816081b7f03a5173 Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
* Add devicePixelRatio metric to QPaintDevice.Morten Johan Sørvig2013-04-152-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | Previously QPainter computed the devicePixelRatio based on the physical and logical dpi, and expected that the ratio between them would be either 1x or 2x. This was problematic for paint devices like printers where the physical dpi can be much higher than the logical dpi, and also for QScreen where the physical dpi would have to be defined as a multiple of the logical dpi. Add QPaintDevice::PdmDevicePixelRatio and QPaintDevice:: devicePixelRatio() getter and implement it for the QPaintDevice subclasses. Use it when calculating the highdpi scale transform in qpainter.cpp and when scaling the clip rect in qwidget.cpp. Remove physical dpi scaling for QImage, QPixmap and QOpenGLPaintDevice, reverting to the old behavior. Change-Id: I6c97510613196d4536ff39d08e9750b8782283d4 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Widgets: Propagate 'accepted'-state of touch begin events.Friedemann Kleint2013-04-123-9/+16
| | | | | | | Task-number: QTBUG-29946 Change-Id: Ia9ac54251f52b6ae4b3d667e49b96441def72a57 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Fix the check if mouse events should be synthesized from touch eventsFabian Bumberger2013-04-111-6/+2
| | | | | | | | | | | | | | | | In QGuiApplication only Qt::AA_SynthesizeMouseForUnhandledTouchEvents is taken into account when synthesizing mouse from touch events, in QApplication only the PlatformIntegration syle hint QPlatformIntegration::SynthesizeMouseFromTouchEvents. With this patch both attributes are checked. Furthermore the check was moved out of translateTouchToMouse in QApplication in order not to influence the result which is returned to the user, when mouse events are not be synthesized. Change-Id: I87ac7299f0a9fbf0a083eff9c547f0dbfab75dfb Reviewed-by: Fabian Bumberger <fbumberger@rim.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Doc: Fix minor typoSze Howe Koh2013-04-101-1/+1
| | | | | Change-Id: Id99a1ea0be841cf7cfaf3c671d36dbddc290fcad Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* QWizard/Win: Support RTL layout in Aero styleAhmed Saidi2013-04-082-3/+25
| | | | | | | | Task-number: QTBUG-30462 Change-Id: Ie6b3ba4975542a9d92611eb9a8547215e41d3c2c Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Ahmed Saidi <justroftest@gmail.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* QGtkStyle: Try to get the theme name from GtkSettingsDmitry Shachnev2013-04-051-32/+6
| | | | | | | | Note that GtkSettings is already used for retrieving the icon theme name. Change-Id: I935d903c703f7d832b0350d3cfd3a638f22d1391 Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
* Mark widget framestrut as dirty when window flags change.Friedemann Kleint2013-04-051-0/+3
| | | | | | | | | | | | | When undocking a dock using the undock button on a main window with native children, the dock widget goes to 0,0 (content position) causing the window frame to be off-screen since the frame is still 0,0. This change causes the frame to be recalculated such that the frame position is 0,0. Task-number: QTBUG-28872 Change-Id: I32896107cd7b982811f45de43dbad82e7407ea7a Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
* QGtkStyle: remove obsolete themeName != "Qt" checksDmitry Shachnev2013-04-051-12/+0
| | | | | Change-Id: Ibb6d952f6abc398ac5deb94d3bdfd8560777aa44 Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
* Cache QAccessibleInterfaces.Frederik Gladhorn2013-04-022-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Fix tickmark painting on Fusion styleJens Bache-Wiig2013-04-011-47/+49
| | | | | | | | | | 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>
* Mac style: Fix disabled menu item palette entryGabriel de Dietrich2013-03-291-1/+1
| | | | | | | Also, removed an "magic color" form the style implementation. Change-Id: Iefd3ddc0d9d651d2b87f20eb1f9990a214b651df Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
* QWidget: micro-optimisationMarc Mutz2013-03-291-1/+1
| | | | | | | Compare string size before content. Change-Id: I00f9c6c6cf31148af4807455fa6f6b9254dda9d7 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* QTreeView - improve ItemNeverHasChildren slightlyThorbjørn Martsum2013-03-281-0/+2
| | | | | | | | | | | | | 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>
* Support high-dpi pixmaps.Morten Johan Sørvig2013-03-281-10/+13
| | | | | | | | | | | | 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>
* Support high-dpi pixmaps and images.Morten Johan Sørvig2013-03-281-8/+13
| | | | | | | | | | | | 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>
* Mac style: Fix scaled clipping regions on retina displaysGabriel de Dietrich2013-03-281-1/+1
| | | | | | | Task-number: QTBUG-30311 Change-Id: Ic91fc6b2787a035292917c39d26b578dde0a6346 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Make QMacStyle paint right side up again.Morten Johan Sørvig2013-03-281-4/+4
| | | | | | | | | 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>
* FileDialogs: Set shortcuts for navigation buttons.Frederik Gladhorn2013-03-271-0/+9
| | | | | | | 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>
* Mac style: Remove suspicious assignmentGabriel de Dietrich2013-03-271-1/+0
| | | | | Change-Id: I070eeb27b1630331afd7f4f02aadf97f6ea2bf97 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* Support high-dpi images.Morten Johan Sørvig2013-03-261-3/+6
| | | | | | | | | | | | When Qt::AA_UseHighDPIImages is set images and pixmaps may be of the high-dpi type. Account for this when calculating layout sizes by clamping the size or dividing by devicePixelRatio() to go from device pixels to device-independent pixels. Change-Id: I7b7f4c36ebd83d72ecdf6fbe0ae20e20ed6540bb Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Cocoa: Make retina desktop components work.Morten Johan Sørvig2013-03-261-4/+8
| | | | | | | Scale non-widget paint devices as well. Change-Id: Ic68fb166058e9b162f8baeab81196ee254f30b2e Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Cocoa: Make touch events work again.Morten Johan Sørvig2013-03-261-0/+28
| | | | | | | | | | | | | | Bring back the ref-counted enable on enter/leave workaround we had in Qt 4: If any widget in a window sets WA_AcceptTouchEvents then that window will start processing touch events. Enabling touch events has implications for delivery of other events, for example by causing scrolling event lag. Change-Id: I307488937f417612eff624bf9892b82a7f69c1b7 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Fix documentation of QFileSystemModel::resolveSymlinks().Sérgio Martins2013-03-261-2/+2
| | | | | | | It's Windows only, and it defaults to true. Change-Id: I82badbcae0fdba589b57a7dfe627b99ec6cc92c5 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Make QGraphicsScene::touchEventhandler ignore unhandled touch eventsMorten Johan Sørvig2013-03-261-1/+1
| | | | | | | | | This was not done in Qt 4 to play well with the QGesture implementation, and may need to be revisited if/when we bring back QGesture for Qt 5. Change-Id: I4f5f6c8a67387039e838d1ef42ecc70c455ed8a3 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Set screen position when generating synthetic mouse events from touchMorten Johan Sørvig2013-03-261-1/+1
| | | | | | | | QGraphicsView uses QMouseEvent::globalPos(), so we need to set it when synthesizing mouse events in QApplication. Change-Id: I8341e09fdd41400c5c5e1d0ee17c7323efdafaeb Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* QMdi: Don't emit subWindowActivated during StyleChange handling.David Faure2013-03-251-1/+7
| | | | | | | | | | | | | | The handling of StyleChange de-maximizes the child window temporarily, which was emitting subWindowActivated. This would crash lokalize, because deactivating a window means deleting the widgets associated with it, and style-change handling is done in QApplication by looping over QApplication::allWidgets, which would then contain dangling pointers. Full valgrind log at https://bugs.kde.org/show_bug.cgi?id=271494#c7 Change-Id: Ifb24032cde2cd470dcae7cd553ec5ab45a919dd6 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* OSX: WindowTransparentForInput QNSView pass events to next responderShawn Rutledge2013-03-241-1/+2
| | | | | | | | | | | | | | | | | | | The default implementation (in the super class) passes the event to the next responder. This seems to be one valid way to handle the Qt::WindowTransparentForInput flag. So if a non-alien widget for which a native NSView is created has the flag WA_TransparentForMouseEvents, that means the window will have Qt::WindowTransparentForInput, and the NSView which is created on its behalf will pass on each event so that other NSViews have a chance to handle it. (It will also try to reject becoming first responder, but that doesn't seem to be enough for the following events to be passed on.) This is a followup to I979be9f72f7d225d7b960fc5db4c3956d2749982 which purported to obey the WindowTransparentForInput flag, but actually doesn't. Change-Id: Ia72a3573c2e3cbfa7ede70bee41ac36df6924598 Task-number: QTBUG-28816 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Fusion Style: draw toolbar lines for non-widget apps.Frederik Gladhorn2013-03-231-1/+1
| | | | | Change-Id: If9415cfc05f80ba4e67d9ba6a8ebb1caaa738b84 Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
* Accessibility: Fix crash when updating in dtorFrederik Gladhorn2013-03-233-0/+12
| | | | | | | | | | | | | | This happens for example when running several tests. Widgets in destructor should be treated as invalid since their window pointer and other properties are no longer valid. When deleting a window containing only a table view there would be a table model reset update comming from the window being destroyed. Change-Id: Ia387c814333ce373fe132b189fc180787e36cdd5 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Do not update accessibility for invalid interfacesFrederik Gladhorn2013-03-231-0/+3
| | | | | Change-Id: I8dc29ea51393406e529c76f25bf2f8cf426e26cf Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>