summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel
Commit message (Collapse)AuthorAgeFilesLines
* Remove key accelerators from Softkeys and Menus in S60.Sami Merilä2009-09-221-2/+4
| | | | | | | | | In S60 softkeys and menu items do not support key accelerators (i.e. CTRL+X). Therefore, removing the accelerator characters from both softkey and menu item texts. Related to task QT-1505 "Make Qt dialogs look native" Reviewed by Jason Barron
* Resubmit support for subpixel antialiasing on text in the GL2 engine.Kim Motoyoshi Kalland2009-09-221-1/+1
| | | | | | | The antialiasing is currently not gamma corrected and is disabled on OpenGL ES 2.0. Reviewed-by: Samuel
* Revert "Resubmit support for subpixel antialiasing on text in the GL2 engine."Rhys Weatherley2009-09-211-1/+1
| | | | This reverts commit 1b34feacef7a2d3ac005449a7cfbcb08a6bbf947.
* The firstTimeObserver is not released if the event loop is never runBenjamin Poulain2009-09-212-8/+11
| | | | | | | Previously, the firstTimeObserver was released by the event loop. This do not work if the event loop is never run. This commit amend b0016ea9a6b225757e3ee06b50e8f7d05463ddf7.
* Resubmit support for subpixel antialiasing on text in the GL2 engine.Kim Motoyoshi Kalland2009-09-211-1/+1
| | | | | | | The antialiasing is currently not gamma corrected and is disabled on OpenGL ES 2.0. Reviewed-by: Samuel
* Doc: Indicated that press and release events occur with double clicks.David Boddie2009-09-211-5/+7
| | | | | Task-number: 255118 Reviewed-by: Trust Me
* Doc: Tidied up the QDesktopWidget documentation.David Boddie2009-09-211-28/+47
| | | | Reviewed-by: Trust Me
* qdoc: Added \brief texts to all the since 4.6 functions.Martin Smith2009-09-212-10/+20
|
* On Mac, the posted events are processed on the first time in the loopBenjamin Poulain2009-09-212-2/+32
| | | | | | | | | | | | | | | | On Mac OS X, we use a custom source for posted events. The first time the event loop is entered, the custom source is added to the native event dispatcher but the events are not processed. In Qt, we expect those events to be processed. To work around the problem, a new observer is added to the event loop. This observer is only triggered the first time the event loop is entered. When the observer is triggered, the posted events are sent. Task-number: QTBUG-4521 Reviewed-by: Richard Moe Gustavsen Reviewed-by: João Abecasis
* Compile fix for non-Symbian.Alessandro Portale2009-09-211-1/+1
| | | | | | updateSoftKeys_sys() is now a member of QSoftKeyManagerPrivate Reviewed-by: Jason Barron
* Get menubars working again with new softkey API.Jason Barron2009-09-211-1/+3
| | | | | | | | | | | | | | | | This is an unfortunate workaround to get the menu bars working again. Previously we used the soft key role to determine what action command we should use for the softkey. Now we only use the role to determine the position (as we should) and ideally the command would be determined by checking if the action has a menu() and then forcing the command to EAknSoftkeyOptions. This would have enabled any softkey with a menu to work, but unfortunately this would require considerable effort in the menu implementation and time is short. So the workaround is to abuse object name to tell the softkey system that this key is special and should get EAknSoftkeyOptions. Reviewed-by: Alessandro Portale
* Introduce MenuSoftKey as a standard key to the internal enum.Jason Barron2009-09-212-0/+5
| | | | | | | | QMainWindow was using the 'Done' standard softkey to represent the action for the menu bar, but that was obviously wrong and pointed out that one of hte needed standard softkeys was needed. Reviewed-by: Alessandro Portale
* Introduce a d-pointer to QSoftKeyManager.Jason Barron2009-09-212-18/+31
| | | | | | | | Originally this was supposed to be a mostly static API, but now it looks like some more non-static members will be needed so introduce a d-pointer to store them. Reviewed-by: Alessandro Portale
* Add a new compressable event QEvent::UpdateSoftKeys.Jason Barron2009-09-214-25/+39
| | | | | | | | | | | Now that the softkey framework triggers updates on focus changed, window activated, and action added/removed/changed the softkey bar was updating many times resulting in flicker. Solve that by introducing a new event type that is posted to the softkey framework. Since we only need to update the softkeys once per event loop iteration, the event is compressible in the event loop. Reviewed-by: Alessandro Portale
* Simplify the soft key roles of QAction.Jason Barron2009-09-214-78/+62
| | | | | | | | | | | | | | | | | | | | | | | Previously there were many options here that were inherited from the Qtopia implementation. It was not clear to developers which value they actually should use. A good example was the 'Next' value. In a typical wizard application, next would be on the right and 'Previous' would be on the left. However, it is also common to have 'Next' on the left and have 'Cancel' on the right. Basically what people really wanted was a way to explicitly set the right and left soft keys, but since this relies on form factor and is wrong if the screen is rotated, we choose positive and negative actions as the values for these such that they still make sense when the screen is rotated. Also this helps people who don't know if a particular action should be on the left or right, but they *do* know if their action has destructive characterisitics (negative). As a convenience for widgets in Qt that use softkeys, we create a standard softkey enumeration. That maps the actions to the correct role and has default text. Reviewed-by: Alessandro Portale
* Give the soft key functionality it's own macro.Jason Barron2009-09-211-3/+3
| | | | | | | | | Re-using QT_KEYPAD_NAVIGATION for soft keys is wrong since the two are independant concepts. This puts everything in a new macro called QT_SOFTKEYS_ENABLED. This will also insulate the embedded customers who use keypad navigation from the soft key changes. Reviewed-by: Alessandro Portale
* Refactor soft keys implementation.Jason Barron2009-09-2110-166/+380
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reviewed-by: Alessandro Portale Squashed commit of the following: commit dae5eda6996d48c12c4a5efd3f6042eb293bacbf Author: Jason Barron <jbarron@trolltech.com> Date: Fri Sep 18 10:32:26 2009 +0200 Only update soft keys when KEYPAD_NAVIGATION is enabled. For 4.6, let's just call these functions when keypad navigation is defined to minimize the impact on other platforms. They should probably get thier own define some day. commit 30a730553531f0f138de5eddb30413936a34fa36 Author: Jason Barron <jbarron@trolltech.com> Date: Fri Sep 18 10:30:23 2009 +0200 Add/remove the menu bar action when menu bar is added/removed. commit a83343a2870b34c228c8bc5e6274607b0e97baf6 Author: Jason Barron <jbarron@trolltech.com> Date: Fri Sep 18 10:28:55 2009 +0200 Compile fix for other platforms commit 39c9e3a0a1d3d62bf6ebd3212cfd2a81b86b9b2a Author: Jason Barron <jbarron@trolltech.com> Date: Thu Sep 17 21:37:59 2009 +0200 Fix 'softkeys' example after API re-factoring. Clean up this example and use the simplified soft key API. Now the actions are only allocated in the constructor and dynamically updated by calling addAction and removeAction. commit 314e45c33f40552db74e61755c2a3b0f8c77a41a Author: Jason Barron <jbarron@trolltech.com> Date: Thu Sep 17 21:30:32 2009 +0200 Re-factor and simplify the soft keys API. Several things here: - Move all the logic into QSoftKeyManager - Move the files into 'kernel' since it is not a widget - Remove QWidget::setSoftKey*(). Use addAction/removeAction instead - Made soft keys update on focus, window activation, and action changes. - Fixed several memory leaks where QAction's were created too often - QAction ownership pushed out to widget's - Added Select/Cancel soft keys for comboboxes and menus to be more consistent to platform look-and-feel. commit fb4c240d970262e9872dc5737df6808879143c75 Author: Jason Barron <jbarron@trolltech.com> Date: Mon Sep 7 15:49:31 2009 +0200 Merge the Symbian implementation with the other platforms nativeMenuBar It seems this has been refactored to share more code across the various platforms that support native menubars so the Symbian code can be mostly removed. commit aa55e4bcd1f009ab35c9519e18aa325fd212dd23 Author: Jason Barron <jbarron@trolltech.com> Date: Wed Aug 26 17:00:34 2009 +0200 Change filenames and move softkey stuff from 'widgets' to 'kernel'. This thing isn't a widget and therefore should not be in the 'widgets' subdirectory of gui. Also rename the files in preparation for refactoring and extending.
* Making Keypad Navigation more usableAlessandro Portale2009-09-193-13/+104
| | | | | | | | | | | | | | | | | | | | | | | | | | | | All changes of this commit are #ifdef'ed in QT_KEYPAD_NAVIGATION. Most desktop Qts won't notice any change. Navigating between QWidgets was not alwys a pleasure on keypad devices. This commit fixes the navigation behavior for some widgets, mostly itemviews. Furthermore, it adds a 'directional' navigation mode. Until now, the existing keypad navigation used the tab order do go back and forth between widgets. The new mode is supposed to provide a more intuitive navigation. It is the new default mode on Symbian. Screens (and their resolutions) become bigger, and also low resolution screens can be used in landscape mode. That's why the directional mode was requested. Another popular request was to put some more convenience into QSlider: If a (horizontal) slider has focus and the user presses left/right, the value of the slider may directing change without being selected (edit mode). This commit also adds the manual test 'keypadnavigation'. Reviewed-by: Shane Kearns
* Allow forcing an empty window title.Denis Dzyubenko2009-09-181-1/+1
| | | | | | | | | | | | | When a user sets a window title on a window to an empty string we will not check if the value was an empty string before. This handles a special case on X11 and Windows when we set the window title to the application executable name by default if the user didn't provide the title, so if the user explicitely wants to remove the windowtitle completely and make it empty, he will be able to set it to an empty string. Reviewed-by: Olivier Goffart Reviewed-by: Prasanth Ullattil
* Improved a qt_x11_wait_for_window_manager.Denis Dzyubenko2009-09-181-7/+30
| | | | | | | | | | | | | | In addition to waiting until the window manager maps and reparents the window, also wait until we get initial expose event. The window manager will most probably send us several ConfigureNotify events, so wait until all of them are handled in addition to the Expose event (as one might rely on another). Also, we shouldn't wait for the ReparentNotify event if the window has X11BypassWindowManagerHint. Reviewed-by: Olivier Goffart
* More robust implementation of qt_x11_wait_for_window_managerOlivier Goffart2009-09-181-4/+9
| | | | | | | Make sure we recieve both ReparentNotify and MapNotify events. Also change the timeout to 2 seconds to cope with slow machines Reviewed-by: Denis
* Introduce native Symbian bitmap support to QPixmapJani Hautakangas2009-09-181-2/+2
| | | | | | | | | This is done to reduce heap consumption and to give a possibility to share bitmaps across process. QPixmap maps to Symbian CFbsBitmap which is stored in Symbian font and bitmap server. Reviewed-by: Jason Barron
* Fixed a bug in QToolTip when internal tool tips where reused.Trond Kjernaasen2009-09-171-3/+3
| | | | | | | | | If a tool tip is to be reused, it *has* to be visible otherwise it *may* get destroyed by the expiration timer before the timer is reset. The tst_qtooltip::setPalette() test triggered this obscure bug under Windows. Reviewed-by: Kim
* Fix regression after code reviewShane Kearns2009-09-172-3/+7
| | | | | | | | | | | | | The branch maintained its own set of native windows. This was commented to be a duplication of the native window list kept by QWidgetPrivate, and changed. Unfortunately, the set maintained on the branch contained only window owning controls, while the list kept by QWidgetPrivate contains all widgets that have a CCoeControl. Added a check for whether the control is window owning before using its DrawableWindow() to avoid getting a null pointer. Reviewed-by: Jason Barron
* Fix unused variable compiler warningShane Kearns2009-09-171-1/+0
| | | | | | Removed UID that wasn't used. Reviewed-by: Jason Barron
* Enable compiling Symbian port with QT_NO_CURSORShane Kearns2009-09-175-5/+24
| | | | | | | Added some missing #ifdef QT_NO_CURSOR, so the symbian port still compiles if this feature is configured out. Reviewed-by: Jason Barron
* Revert "Added support for subpixel antialiasing on text in the GL2 engine."Rhys Weatherley2009-09-171-1/+1
| | | | | | Breaks the GL2 paint engine on X11 and OpenGL/ES 2.0. This reverts commit b8ff02a67ebd8246253823b53cfed98eef400547.
* Don't crash on exit if the X11 clipboard owner has not been created.Bradley T. Hughes2009-09-161-1/+2
| | | | Owner can be null, don't try to deref it if it is.
* doc: Fixed some qdoc errors.Martin Smith2009-09-161-1/+1
|
* Implemented the SAVE_TARGET in QClipboard on X11Denis Dzyubenko2009-09-163-1/+28
| | | | | | | | | | | | | | | Added support for the simpliest SAVE_TARGET mechanizm allowing us to work nicely with clipboard managers, so that when Qt application that owns the clipboard exits we delegate the content to the clipboard manager if there is one. The current implementation doesn't specify which targets to give to the manager, so it will try to fetch as much as possible. Also, right now we do not support the TARGET_SIZES target, meaning that the manager doesn't know how much data it is going to fetch, so it will try to fetch everything even if it can take a lot of time. Reviewed-by: Bradley T. Hughes
* Added support for subpixel antialiasing on text in the GL2 engine.Kim Motoyoshi Kalland2009-09-161-1/+1
| | | | | | The antialiasing is currently not gamma corrected. Reviewed-by: Samuel
* QCursor support for Symbian OSShane Kearns2009-09-1518-169/+1019
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reviewed-By: Jason Barron Reviewed-By: Alessandro Portale Summary: QT_NO_CURSOR is now not defined for symbian builds Existing QCursor APIs are all supported New public API, QApplication::setNavigationMode, to allow the navigation mode to be set. I.E. on an S60 3.2 phone, some applications will want a virtual mouse cursor (web browser), while others are designed for keypad navigation. Symbian HAL is used for detecting input capabilities. Fix DND, code cleanup & comment QCursor visibility now uses a refcount, and is called from DND and the setNavigationMode so they are both simpler and don't interfere with each other. QApplication::setNavigationMode New public API for configuring cursor/keypad navi style. This links in with ongoing work on the 4-way keypad navi branch, but 2-way and 4-way modes both act as 2-way mode until that is integrated Some of the demos/examples have cursor switched on (those that were not usable with keypad) Virtual mouse support for non touch, non mouse phones (tested on N78) add *.d and .metadata (carbide debug file / workspace dir) to .gitignore System pointers are unavailable when using sprite workaround, so the system cursor shapes are compiled into qtgui as resources. MAC port does this also for shapes that aren't standard on the MAC. Refactor Drag'n'Drop to use QCursor Add test case to check all system cursor shapes Simply a mainwindow containing a label widget for each cursor shape, with the cursor property set appropriately QCursor(QBitmap,QBitmap) supported Fixed problem with the image & mask being inverted when using the QCursor constructor that takes two mono bitmaps. add .make.cache files to .gitignore Correct implementation of QApplication::setOverrideCursor QApplication::restoreOverrideCursor and QApplication::setOverrideCursor are now working correctly on Symbian platform. Performance will be slower compared with other platforms, because the Symbian window server has a cursor associated with each native window. Add test case for custom cursors Create a pixmap cursor and associate it with a widget. No changes to production code, since test passed 1st time ;) Add manual test for QCursor Make cursor independent of construction order Updated to work around window server issue where contruction order affects what cursor is displayed in child windows. Also changed to effectiveWinId following review comments Also fixed a problem which would make qcursor not link if configured with QT_NO_CURSOR Moved some multiply declared extern functions from cpp to _p.h files Implemented Symbian versions of the cursor functions. Merged in work I'd done based on tower. Fill in bits of stub functions based on windows port Removed QT_NO_CURSOR from list of config options forced on symbian Recompiled configure.exe Added stub functions for the missing functions in s60 port
* Export again qt_set_sequence_auto_mnemonicOlivier Goffart2009-09-151-1/+1
| | | | | | Became unexported from commit bcd23411c8 Task-number: 261250
* Bauhaus widgetbox drag and drop not working in CocoaPrasanth Ullattil2009-09-151-0/+4
| | | | | | | | | Bauhaus uses grabMouse to implement their own Drag and Drop mechanism. Cocoa port never considered the grabber widget. All the mouse events will now be routed to the mouse grabber widget. Task-number: 261245 Reviewed-by: MortenS
* Merge branch '4.5' into 4.6Thiago Macieira2009-09-141-1/+1
|\
| * Fixed off-by-one error in call to XGetKeyboardMapping that meant that ↵Thomas Sondergaard2009-09-141-1/+1
| | | | | | | | | | | | | | max_keycode wasn't retrieved. Merge-request: 1308 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* | Implement synthetic enter/leave events for QWS.Paul Olav Tvete2009-09-144-9/+29
| | | | | | | | | | | | | | QWS uses alien widgets too, so we need the same logic as the other platforms. Reviewed-by: bnilsen
* | Fix -Wconversion warnings where possible.David Faure2009-09-131-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | In order to detect "int foo = myQReal" mistakes, one needs to compile with -Wconversion. However that flag triggers many warnings inside Qt. This commit fixes many of them, like qchar.h:295: warning: conversion to 'ushort' from 'unsigned int' may alter its value qglobal.h:1026: warning: conversion to 'qreal' from 'qint64' may alter its value qbytearray.h:441: warning: conversion to 'char' from 'int' may alter its value Other warnings remain (such as those coming from bitfields) Merge-request: 1460 Reviewed-by: Thiago Macieira <thiago.macieira@nokia.com>
* | Merge branch '4.5' into 4.6Thiago Macieira2009-09-122-2/+7
|\ \ | |/ | | | | | | | | Conflicts: tests/auto/qhttpnetworkconnection/qhttpnetworkconnection.pro tests/auto/qhttpnetworkreply/qhttpnetworkreply.pro
| * Fix memory leak when deleteLater is triggered via the main menu bar.Morten Sorvig2009-09-111-0/+2
| | | | | | | | | | | | | | | | | | | | The deleteLater was beeing created with loopLevel of 1, causing it to be defferd until QApplication::exec() returned. Add a QScopedLoopLevelCounter to increase the loopLevel while triggering the action. RevBy: Brad
| * Run on 10.3.Morten Sorvig2009-09-111-1/+1
| | | | | | | | | | _HIViewScrollRectWithOptions needs to be declared as a weak-linked symbol in order to make static linking work.
| * Run on 10.3 Panther.Morten Sorvig2009-09-111-1/+4
| | | | | | | | HIViewSetNeedsDisplayInRect was added in 10.4.
| * restoring a minimized window on Windows CE didn't workJoerg Bornemann2009-09-102-5/+12
| | | | | | | | | | | | | | | | | | | | After restoring a minimized window we only saw the window decoration. All content was missing. That's because we don't get a WM_SIZE message for restoring the window. We must react on WM_ACTIVATE in this case. This fixes the issue for Windows mobile too. Task-number: 260702 Reviewed-by: thartman
| * Update license headers again.Jason McDonald2009-09-08151-604/+604
| | | | | | | | Reviewed-by: Trust Me
* | Fixed QWidget::activateWindow for Symbian.Janne Anttila2009-09-111-6/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | activeWindow documentation says: "active window is a visible top-level window that has the keyboard input focus" and "If you want to ensure that the window is stacked on top as well you should also call raise(). Note that the window must be visible, otherwise activateWindow has no effect." What we were doing earlier was basically raise. Now we just set the keyboard focus to underlying native window. Task-number: 260685 Reviewed-by: Jason Barron
* | Fixed QWidget::setWindowState for Symbian.Janne Anttila2009-09-111-16/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before this commit calling setWindowState(Qt::WindowFullScreen) on a widget instance affected all new widget instances created after this method. This bug happened due to fact that window decorations i.e. statuspane and softkeys visibility was only changed when switching to or from fullscreen state. In the reported bug it happened that second widget was initially in Qt::WindowNoState and it was changed to Maximized. Since window decorations are global not window specific at the moment, the default decoration visibility for second window is the one to which previous window has set them. In this case previous window was in fullscreen and that's why the decorations were visible also for second maximized window. Probably the right fix would be to change the decoration to window specific but that is quite a big change and for now the bug is fixed with this commit. Autotest: Excluding new test case, same results before and after. Task-number: 261048 Reviewed-by: Jason Barron
* | restoring a minimized window on Windows CE didn't workJoerg Bornemann2009-09-102-7/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | After restoring a minimized window we only saw the window decoration. All content was missing. That's because we don't get a WM_SIZE message for restoring the window. We must react on WM_ACTIVATE in this case. This fixes the issue for Windows mobile too. Task-number: 260702 Reviewed-by: thartman Conflicts: src/gui/kernel/qguifunctions_wince.cpp
* | CompileAnders Bakken2009-09-091-1/+1
| | | | | | | | | | | | | | | | Partially revert 6715f2f29ae413b328243d8c3dbe15cfba51d33f struct QWSServerCleaner { ~QWSServerCleaner(); } is not a function. Reviewed-by: Noam Rosenthal <noam.rosenthal@nokia.com>
* | Removed some superfluous semicolonsAlessandro Portale2009-09-094-4/+4
| | | | | | | | Reviewed-by: TrustMe
* | Update license headers again.Jason McDonald2009-09-09174-696/+696
| | | | | | | | Reviewed-by: Trust Me