| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
HAL::Get(HALData::EPen, TInt& result) may set 'result' to 1
on some 3.1 systems (e.g. N95). But we know that S60 systems
below 5.0 did not support touch. Let's use tahth knowledge
and work-around that N95 HAL bug.
Rev-By: Jani Hautakangas
|
|
|
|
| |
Not sure why the migration classes should be are \obsolete.
|
|\
| |
| |
| |
| | |
Conflicts:
src/gui/kernel/qwidget_s60.cpp
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This gives the system font the default font family name, which is
appropriate for S60, "Series 60 Sans". Without this, the system font
has a requested family name of "Helvetica".
Upside of this fix is that it makes tst_qFontComboBox pass on S60
Reviewed-by: Alessandro Portale
|
| |\
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/gui/kernel/qwidget_p.h
src/gui/kernel/qwidget_s60.cpp
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
There are really two bugs that are fixed in this commit:
- SetFocus() in Symbian does not automatically clear focus on the
previously focused control, so we have to remember that control and
clear it ourselves.
- Symbian assumes that it is always the control at the top of the
control stack that should have focus, and if this isn't the case,
focus may or may not work depending on whether Symbian has had a
chance to reset the focus or not. Therefore, whenever we change
focus on a control, we have to also readd that control to the top
of the stack, to ensure that it stays focused.
RevBy: Janne Anttila
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This reverts commit b6377f43410b14125a66ffd02acde69cfb6e455e.
The asynchronous handling caused too many headaches with input
methods, which expect the focus status to be updated immediately.
This may break the test case that was originally fixed by this patch
(I cannot find out which one at the moment), but that will have to be
solved in a different way.
Conflicts:
src/corelib/kernel/qcoreevent.cpp
src/corelib/kernel/qcoreevent.h
src/gui/kernel/qwidget.cpp
src/gui/kernel/qwidget_p.h
src/gui/kernel/qwidget_s60.cpp
|
|\ \ \
| |/ /
| | |
| | | |
mmfphonon
|
| |\ \
| | |/ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Increase the loop level counter here because this is a system event
entry point. Previously, posting a deferred delete event from this
function (or triggering an action that posted this event) would end up
with the event not being processed on time. The reason is that these
events are only processed when the event loop that posted the event
returns. Since the loop counter was not previously incremented, this
"nested loop" was not detected so the event would only be processed
when the main event loop returned which is typically at the end of the
application.
Reviewed-by: axis
|
|/ /
| |
| |
| |
| |
| | |
child widgets
The implementation of QSymbianControl::Draw previously assumed that the co-ordinate system of the control always matched that of the backing store - in other words, that the only widget for which a QSymbianControl was created would be the top-level widget. Now that create_sys has been modified to create a native window (and therefore a QSymbianControl) for child widgets on which winId() is called, this assumption is no longer valid. This function has therefore been modified to map the redraw rectangle into the coordinate system of the backing store.
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously both EEikCmdExit and EAknSoftkeyExit were hard coded to call
exit() which promptly exited the event loop without the chance to do
any UI operations. With this patch, we handle the two cases
differently and allow people to essentially make the right soft key
a hide instead of an exit simply by reimplementing closeEvent() and
ignoring the event.
EAknSoftkeyExit is now a soft exit since this does not seem to be a
mandatory exit in S60. By sending a QCloseEvent to QApplication this
has the effect that all windows are closed (sent another QCloseEvent)
and if one of them chooses to ignore this event, the application and
UI are both kept alive. This is similar to how Qt behaves on other
platforms. If all windows accept the close event (default), then the
application will quit() as normal. This command is sent from the
right soft key.
EEikCmdExit is mapped similarly as before, but calls quit() instead of
exit() to be aligned with other platforms. This will cause the
aboutToQuit signal to be emitted which maps very well to Qt because UI
interaction is not permitted from this signal and wouldn't work in S60
anyway because in the case of EEikCmdExit, the UI has already been torn
down by the UI framework. This command is sent by the End key.
We could take this one step further and intercept the key event and
prevent it from going to the UI framework and tearing down the UI,
but this is a little too evil IMHO. If people really want to
intercept that event, they can do it by reimplementing the platform
specific event filter. This is equivalent to how it would be done in
S60 (reimplementing HandleWsEvent).
Reviewed-by: axis
Reviewed-by: mread
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
On S60, the widget backing store is dropped when app window is hidden
in order to save memory. This has a side effect that the widgets are not
redrawn when the backing store is recreated if they have static content.
Fix is to invalidate the backing buffer after recreating it, and repaint
the widget.
Reviewed-by: Jason Barron
|
| | |
|
| | |
|
|/
|
|
| |
This reverts commit 9345d47c3945b61a27724508e8b3d0aaf7b57bcf.
|
|
|
|
|
|
|
|
|
| |
The advanced pointer events are only available on Symbian^3 and higher
so we need to make sure these are protected by an #ifdef. We might have
to re-factor this later into a plugin in order to get this running on
older versions.
Reviewed-by: axis
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
With this patch, the application developer can use his own
CEikApplication, CEikDocument and CEikAppUi classes with Qt, by
deriving from QS60MainApplication, QSMainDocument and QS60MainAppUi,
respectively. He can then register a factory function in the
QApplication constructor to have his own objects created during the
framework initialization.
This patch also fixes some Qt code style issues.
RevBy: Jason Barron
RevBy: mread
RevBy: Sami Merila
RevBy: Shane Kearns
|
|/
|
|
|
|
|
|
|
|
|
|
|
| |
Since we only get one pointer event at a time, we need to keep a list of
all known touch points in QApplicationPrivate (otherwise the QTouchEvent
won't contain enough points). The QApplication machinery can handle
having inactive touch-points in the list, so at the moment we don't
clear the list.
We treat PointerNumber zero as the primary touch point, and only send
regular mouse events for that pointer, never for the others.
Reviewed-by: Jason Barron
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
Removed UID that wasn't used.
Reviewed-by: Jason Barron
|
|
|
|
|
|
|
| |
Added some missing #ifdef QT_NO_CURSOR, so the symbian port still
compiles if this feature is configured out.
Reviewed-by: Jason Barron
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Reviewed-by: Trust Me
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This way we avoid having a lot of code in a static (and
unmaintainable) library. The s60main static library now currently has
only one task: to call main().
To move the initialization into QtGui also meant a change in how the
S60 framework is created, because we can no longer use the trick
where we create and start the the S60 event loop and then have the
framework call us back to start main(). The initialization now
follows the creation and destruction of QApplication, which is a lot
more in line with how other platforms do it.
Since S60 doesn't support creating the environment, and *then*
starting it (both are executed by the same call), we had to open up
the S60 framework construction classes and just mirror what they do.
This means that after QApplication construction is done, the S60
framework is initialized, but nothing will run yet and control will
return to main(), where the user can start the event loop himself.
One of the quirks of this approach is that the construction of the
S60 framework makes a new cleanup stack. This means that any active
traps will not be active anymore, and leaving without setting a new
trap will most likely panic. This shouldn't be a problem for us,
since Qt is never supposed to leave, but it means that if anyone uses
the cleanup stack without setting a new trap, they will receive a
panic.
It was considered to add a trap mark in QApplication construction and
then removing it on destruction, but it was dropped because leaving
from main() is still undefined (even if the old cleanup stack would
be restored in the destructor, we wouldn't be able to stop the
exception from unwinding the stack, and the cleanup stack would then
be unbalanced).
RevBy: Jason Barron
RevBy: Janne Anttila
AutoTest: QWidget passed with same failure count
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This commit also adds initial support for fading behind modal dialogs.
Avoid unnecessary local/global capturing since when having global
capture enabled we cannot for example tap icons on statusbar.
The logic how pointer events for popups and modal dialogs shall work:
- Modal dialogs:
* Shall not close when outside dlg is clicked
* Shall not allow usage or underlying control with mouse
* Achieved with SetGloballyCapturing and SetPointerCapture
in enterModal_sys / leaveModal_sys
- Popups
* Shall close when the outside popup is clicked
* Achieved with enabling the SetPointerCapture only for topmost
popup and canceling it for all underlyuing ones.
* In addition long tap timer needs to be canceled for underlying
widgets when opening a pop-up. Otherwise theu get longtap event
whcih causes unexpected behaviour.
TODOs:
- Fading does not work correctly when more than two levels of modal
dialogs are opened.
- Fading does not work correctly when switching away from app and
back to it with fast swap window (using menu works)
- Check if fading should be implemented with MAknFadedComponent and
TAknPopupFader, in order to support cross-application fading
- Should popups closes when application loses the focus?
Reviewed-by: Janne Koskinen
|
| |
| |
| |
| | |
Reviewed-by: Trust Me
|
| | |
|
|/
|
|
|
|
|
|
|
| |
The event construction without sending does nothing, sending constructed
event possibly dissappeared due to bad merge or something. So here it
comes again...
Task-number: 260222
Reviewed-by: TrustMe
|
|\ |
|
| |
| |
| |
| | |
RevBy: Trust me
|
|/
|
|
|
|
| |
In Symbian the context menu event is triggered after long press event is
detected. This is equivalent to right mouse click on desktop
environments.
|
|
|
|
|
|
|
|
|
|
|
| |
The implementation is likely not complete, but makes autotests using
QApplication::activeModalWidget to pass. At least the following test now
pass successfully:
qcolordialog
qmessagebox
Might have positive impact to other autotests as well.
|
|
|
|
|
|
|
| |
Moved handleDynamicLayoutVariantSwitch and handleSkinChange from
QS60Style to QS60StylePrivate. QApplication (the only one calling
those functions) is now a friend, thus has access to the private
class.
|
|\
| |
| |
| |
| | |
Conflicts fixed:
src/corelib/io/qdiriterator.cpp
|
| |
| |
| |
| | |
RevBy: Trust me
|
| |
| |
| |
| | |
RevBy: Trust me
|
|/ |
|
| |
|
|
|
|
|
| |
Contains some smaller fixes and renaming of macros. Looks big,
but isn't scary at all ;)
|
|
|
|
|
|
|
|
|
|
| |
This code was inialy added before we had s60main. Since that time we
did not had S60 application framework classes constructed we had to
associate application UID to wserv manually to get fast swap window (FSW)
working correctly.
Now application frameworks take care of associating the UID to wserv
window group.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is more a cleanup of the usage of Q_WS_S60 vs. Q_OS_SYMBIAN than
anything else. One of the side effects of this work was that it was
relatively little work to get QtGui compiling when Q_WS_S60 is not
defined.
Based on this we introduce two new configure options that control S60
integration. Currently the -no-s60 option will not work entirely
because the 's60main' module has not yet been refactored and still has
a dependancy on the S60 libraries.
Reviewed-by: axis <qt-info@nokia.com>
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/corelib/kernel/qcoreevent.cpp
src/corelib/tools/qdumper.cpp
src/gui/kernel/qwidget.cpp
src/gui/kernel/qwidget_p.h
src/gui/kernel/qwidget_s60.cpp
src/gui/text/qfontdatabase.cpp
src/network/access/qnetworkreplyimpl.cpp
src/sql/drivers/ibase/qsql_ibase.cpp
src/testlib/qtestcase.cpp
src/testlib/testlib.pro
tests/auto/network-settings.h
tests/auto/q3sqlcursor/tst_q3sqlcursor.cpp
tests/auto/qobjectrace/tst_qobjectrace.cpp
tests/auto/qsqldatabase/tst_qsqldatabase.cpp
tools/configure/configureapp.cpp
translations/qt_ru.ts
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This was done in order to be more in line with what other platforms
(at least X11) do. In addition, it prevents show() from entering
event handlers in Qt. That should only happen in processEvents().
This required the introduction of a new event,
SymbianDeferredFocusChanged, which we post whenever there is a focus
change.
RevBy: Jason Barron
AutoTest: Passed
|