summaryrefslogtreecommitdiffstats
path: root/src/gui
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/dialogs/qfilesystemmodel.cpp6
-rw-r--r--src/gui/inputmethod/qinputcontext.h9
-rw-r--r--src/gui/kernel/qapplication.cpp14
-rw-r--r--src/gui/kernel/qapplication.h16
-rw-r--r--src/gui/kernel/qapplication_p.h2
-rw-r--r--src/gui/kernel/qclipboard_s60.cpp7
-rw-r--r--src/gui/kernel/qcursor.cpp3
-rw-r--r--src/gui/kernel/qcursor_s60.cpp1
-rw-r--r--src/gui/kernel/qdnd_s60.cpp7
-rw-r--r--src/gui/kernel/qkeymapper_s60.cpp3
-rw-r--r--src/gui/kernel/qsound_s60.cpp2
-rw-r--r--src/gui/kernel/qwidget_p.h13
-rw-r--r--src/gui/kernel/qwidget_s60.cpp2
-rw-r--r--src/gui/painting/qwindowsurface_s60_p.h3
-rw-r--r--src/gui/text/qfontengine_s60.cpp2
-rw-r--r--src/gui/text/qfontengine_s60_p.h4
-rw-r--r--src/gui/widgets/qlineedit.cpp4
-rw-r--r--src/gui/widgets/qmenu.h4
-rw-r--r--src/gui/widgets/qmenu_p.h4
-rw-r--r--src/gui/widgets/qmenu_symbian.cpp59
-rw-r--r--src/gui/widgets/qmenubar_p.h9
21 files changed, 97 insertions, 77 deletions
diff --git a/src/gui/dialogs/qfilesystemmodel.cpp b/src/gui/dialogs/qfilesystemmodel.cpp
index b202629..49a3f2e 100644
--- a/src/gui/dialogs/qfilesystemmodel.cpp
+++ b/src/gui/dialogs/qfilesystemmodel.cpp
@@ -1938,8 +1938,8 @@ bool QFileSystemModelPrivate::passNameFilters(const QFileSystemNode *node) const
return true;
}
-#include "moc_qfilesystemmodel.cpp"
+QT_END_NAMESPACE
-#endif // QT_NO_FILESYSTEMMODEL
+#include "moc_qfilesystemmodel.cpp"
-QT_END_NAMESPACE
+#endif // QT_NO_FILESYSTEMMODEL \ No newline at end of file
diff --git a/src/gui/inputmethod/qinputcontext.h b/src/gui/inputmethod/qinputcontext.h
index b84c52b..bc4c63c 100644
--- a/src/gui/inputmethod/qinputcontext.h
+++ b/src/gui/inputmethod/qinputcontext.h
@@ -67,6 +67,10 @@
QT_BEGIN_HEADER
+#ifdef Q_WS_S60
+class TWsEvent;
+#endif
+
QT_BEGIN_NAMESPACE
QT_MODULE(Gui)
@@ -76,11 +80,6 @@ class QFont;
class QPopupMenu;
class QInputContextPrivate;
-#ifdef Q_WS_S60
-class TWsEvent;
-#endif
-
-
class Q_GUI_EXPORT QInputContext : public QObject
{
Q_OBJECT
diff --git a/src/gui/kernel/qapplication.cpp b/src/gui/kernel/qapplication.cpp
index 56a65be..1b6bdea 100644
--- a/src/gui/kernel/qapplication.cpp
+++ b/src/gui/kernel/qapplication.cpp
@@ -135,8 +135,8 @@ bool QApplicationPrivate::quitOnLastWindowClosed = true;
#ifdef Q_OS_WINCE
int QApplicationPrivate::autoMaximizeThreshold = -1;
-bool QApplicationPrivate::autoSipEnabled = false;
#endif
+bool QApplicationPrivate::autoSipEnabled = false;
QApplicationPrivate::QApplicationPrivate(int &argc, char **argv, QApplication::Type type)
: QCoreApplicationPrivate(argc, argv)
@@ -1234,11 +1234,13 @@ bool QApplication::compressEvent(QEvent *event, QObject *receiver, QPostEventLis
\since 4.5
\brief toggles automatic SIP (software input panel) visibility
- The auto SIP property is only available as part of Qt for Windows CE.
-
Set this property to true to automatically display the SIP when entering
widgets that accept keyboard input. This property only affects widgets with
- the WA_InputMethodEnabled attribute set.
+ the WA_InputMethodEnabled attribute set, and is typically used to launch
+ a virtual keyboard on devices which have very few or no keys.
+
+ The property only has an effect on platforms which use software input
+ panels, such as Windows CE and Symbian.
*/
#ifdef Q_OS_WINCE
@@ -1251,6 +1253,7 @@ int QApplication::autoMaximizeThreshold() const
{
return QApplicationPrivate::autoMaximizeThreshold;
}
+#endif
void QApplication::setAutoSipEnabled(const bool enabled)
{
@@ -1261,7 +1264,6 @@ bool QApplication::autoSipEnabled() const
{
return QApplicationPrivate::autoSipEnabled;
}
-#endif
#ifndef QT_NO_STYLE_STYLESHEET
@@ -3461,6 +3463,8 @@ Qt::LayoutDirection QApplication::layoutDirection()
/*!
\property autoSipOnMouseFocus
+ \since 4.6
+ \brief toggles SIP (software input panel) launch policy
This property holds whether widgets should request a software input
panel when it is focused with the mouse. This is typically used to
diff --git a/src/gui/kernel/qapplication.h b/src/gui/kernel/qapplication.h
index ce8792d..ca0eb98 100644
--- a/src/gui/kernel/qapplication.h
+++ b/src/gui/kernel/qapplication.h
@@ -61,6 +61,10 @@
QT_BEGIN_HEADER
+#if defined(Q_WS_S60)
+class TWsEvent;
+#endif
+
QT_BEGIN_NAMESPACE
QT_MODULE(Gui)
@@ -84,9 +88,6 @@ class QApplicationPrivate;
#endif
#define qApp (static_cast<QApplication *>(QCoreApplication::instance()))
-#if defined(Q_WS_S60)
-class TWsEvent;
-#endif
class Q_GUI_EXPORT QApplication : public QCoreApplication
{
@@ -110,8 +111,8 @@ class Q_GUI_EXPORT QApplication : public QCoreApplication
#endif
#ifdef Q_OS_WINCE
Q_PROPERTY(int autoMaximizeThreshold READ autoMaximizeThreshold WRITE setAutoMaximizeThreshold)
- Q_PROPERTY(bool autoSipEnabled READ autoSipEnabled WRITE setAutoSipEnabled)
#endif
+ Q_PROPERTY(bool autoSipEnabled READ autoSipEnabled WRITE setAutoSipEnabled)
public:
enum Type { Tty, GuiClient, GuiServer };
@@ -200,9 +201,6 @@ public:
static void setKeyboardInputInterval(int);
static int keyboardInputInterval();
- static void setAutoSipOnMouseFocus(bool);
- static bool autoSipOnMouseFocus();
-
#ifndef QT_NO_WHEELEVENT
static void setWheelScrollLines(int);
static int wheelScrollLines();
@@ -297,9 +295,11 @@ public Q_SLOTS:
#ifdef Q_OS_WINCE
void setAutoMaximizeThreshold(const int threshold);
int autoMaximizeThreshold() const;
+#endif
void setAutoSipEnabled(const bool enabled);
bool autoSipEnabled() const;
-#endif
+ void setAutoSipOnMouseFocus(bool);
+ bool autoSipOnMouseFocus();
static void closeAllWindows();
static void aboutQt();
diff --git a/src/gui/kernel/qapplication_p.h b/src/gui/kernel/qapplication_p.h
index bfc5652..a6fc602 100644
--- a/src/gui/kernel/qapplication_p.h
+++ b/src/gui/kernel/qapplication_p.h
@@ -221,8 +221,8 @@ public:
static void emitLastWindowClosed();
#ifdef Q_OS_WINCE
static int autoMaximizeThreshold;
- static bool autoSipEnabled;
#endif
+ static bool autoSipEnabled;
static QGraphicsSystem *graphicsSystem()
#if !defined(Q_WS_QWS)
diff --git a/src/gui/kernel/qclipboard_s60.cpp b/src/gui/kernel/qclipboard_s60.cpp
index 1ba1dfe..ec595b5 100644
--- a/src/gui/kernel/qclipboard_s60.cpp
+++ b/src/gui/kernel/qclipboard_s60.cpp
@@ -25,9 +25,6 @@
#include <baclipb.h>
QT_BEGIN_NAMESPACE
-QT_USE_NAMESPACE
-
-
//### Mime Type mapping to UIDs
const TUid KQtCbDataStream = {0x666777};
@@ -246,7 +243,5 @@ void QClipboard::connectNotify( const char * )
void QClipboard::ownerDestroyed()
{
}
-
-#endif // QT_NO_CLIPBOARD
-
QT_END_NAMESPACE
+#endif // QT_NO_CLIPBOARD \ No newline at end of file
diff --git a/src/gui/kernel/qcursor.cpp b/src/gui/kernel/qcursor.cpp
index ed7e020..c24abc4 100644
--- a/src/gui/kernel/qcursor.cpp
+++ b/src/gui/kernel/qcursor.cpp
@@ -559,7 +559,6 @@ QCursor::operator QVariant() const
{
return QVariant(QVariant::Cursor, this);
}
-
+QT_END_NAMESPACE
#endif // QT_NO_CURSOR
-QT_END_NAMESPACE
diff --git a/src/gui/kernel/qcursor_s60.cpp b/src/gui/kernel/qcursor_s60.cpp
index 0670b6f..4d3f067 100644
--- a/src/gui/kernel/qcursor_s60.cpp
+++ b/src/gui/kernel/qcursor_s60.cpp
@@ -14,6 +14,7 @@
#include <qt_s60_p.h>
#ifdef QT_NO_CURSOR
+QT_BEGIN_NAMESPACE
QPoint QCursor::pos()
{
diff --git a/src/gui/kernel/qdnd_s60.cpp b/src/gui/kernel/qdnd_s60.cpp
index 5b888f7..09605be 100644
--- a/src/gui/kernel/qdnd_s60.cpp
+++ b/src/gui/kernel/qdnd_s60.cpp
@@ -26,8 +26,6 @@
#include <w32std.h>
#include <gdi.h>
QT_BEGIN_NAMESPACE
-
-QT_USE_NAMESPACE
//### artistic impression of Symbians default DnD cursor ?
static QPixmap *defaultPm = 0;
@@ -363,8 +361,5 @@ QStringList QDropData::formats_sys() const
return QStringList();
}
-
-#endif // QT_NO_DRAGANDDROP
-
-
QT_END_NAMESPACE
+#endif // QT_NO_DRAGANDDROP
diff --git a/src/gui/kernel/qkeymapper_s60.cpp b/src/gui/kernel/qkeymapper_s60.cpp
index 96dfa03..2919551 100644
--- a/src/gui/kernel/qkeymapper_s60.cpp
+++ b/src/gui/kernel/qkeymapper_s60.cpp
@@ -14,9 +14,6 @@
QT_BEGIN_NAMESPACE
-QT_USE_NAMESPACE
-
-
QKeyMapperPrivate::QKeyMapperPrivate()
{
fillKeyMap();
diff --git a/src/gui/kernel/qsound_s60.cpp b/src/gui/kernel/qsound_s60.cpp
index 3ab5230..2ac7e26 100644
--- a/src/gui/kernel/qsound_s60.cpp
+++ b/src/gui/kernel/qsound_s60.cpp
@@ -25,8 +25,6 @@
QT_BEGIN_NAMESPACE
-QT_USE_NAMESPACE
-
class QAuServerS60;
class QAuBucketS60 : public QAuBucket, public MMdaAudioPlayerCallback
diff --git a/src/gui/kernel/qwidget_p.h b/src/gui/kernel/qwidget_p.h
index 734e0bd..d5f1b98 100644
--- a/src/gui/kernel/qwidget_p.h
+++ b/src/gui/kernel/qwidget_p.h
@@ -79,6 +79,13 @@
#include "QtGui/qscreen_qws.h"
#endif
+#if defined(Q_WS_S60)
+class RDrawableWindow;
+class CCoeControl;
+class CAknTitlePane;
+class CAknContextPane;
+#endif
+
QT_BEGIN_NAMESPACE
// Extra QWidget data
@@ -90,12 +97,6 @@ class QWSManager;
#if defined(Q_WS_MAC)
class QCoreGraphicsPaintEnginePrivate;
#endif
-#if defined(Q_WS_S60)
-class RDrawableWindow;
-class CCoeControl;
-class CAknTitlePane;
-class CAknContextPane;
-#endif
class QPaintEngine;
class QPixmap;
class QWidgetBackingStore;
diff --git a/src/gui/kernel/qwidget_s60.cpp b/src/gui/kernel/qwidget_s60.cpp
index f424e93..5c3055d 100644
--- a/src/gui/kernel/qwidget_s60.cpp
+++ b/src/gui/kernel/qwidget_s60.cpp
@@ -973,3 +973,5 @@ void QWidget::activateWindow()
rw->SetOrdinalPosition(0);
}
}
+
+QT_END_NAMESPACE
diff --git a/src/gui/painting/qwindowsurface_s60_p.h b/src/gui/painting/qwindowsurface_s60_p.h
index a238f5b..7b70fd5 100644
--- a/src/gui/painting/qwindowsurface_s60_p.h
+++ b/src/gui/painting/qwindowsurface_s60_p.h
@@ -26,10 +26,11 @@
#include <qglobal.h>
#include "private/qwindowsurface_p.h"
+class CFbsBitmap;
+
QT_BEGIN_NAMESPACE
struct QS60WindowSurfacePrivate;
-class CFbsBitmap;
class QS60WindowSurface : public QWindowSurface
{
diff --git a/src/gui/text/qfontengine_s60.cpp b/src/gui/text/qfontengine_s60.cpp
index 0c6d5b9..580291a 100644
--- a/src/gui/text/qfontengine_s60.cpp
+++ b/src/gui/text/qfontengine_s60.cpp
@@ -22,6 +22,8 @@
#include <EIKENV.H>
#include <GDI.H>
+QT_BEGIN_NAMESPACE
+
static const int maxFontSizeInPixels = 60;
QFontEngineS60Extensions::QFontEngineS60Extensions(COpenFont *font)
diff --git a/src/gui/text/qfontengine_s60_p.h b/src/gui/text/qfontengine_s60_p.h
index 0b20c74..ef4a508 100644
--- a/src/gui/text/qfontengine_s60_p.h
+++ b/src/gui/text/qfontengine_s60_p.h
@@ -28,13 +28,13 @@
#include "qsize.h"
#include <OPENFONT.H>
-QT_BEGIN_NAMESPACE
-
class CFbsBitmap;
class CFbsBitmapDevice;
class CFbsBitGc;
class CFont;
+QT_BEGIN_NAMESPACE
+
// ..gives us access to truetype tables, UTF-16<->GlyphID mapping, and glyph outlines
class QFontEngineS60Extensions
{
diff --git a/src/gui/widgets/qlineedit.cpp b/src/gui/widgets/qlineedit.cpp
index fa337af..116d000 100644
--- a/src/gui/widgets/qlineedit.cpp
+++ b/src/gui/widgets/qlineedit.cpp
@@ -1774,8 +1774,8 @@ void QLineEdit::mouseReleaseEvent(QMouseEvent* e)
}
#endif
- if (e->button() == Qt::LeftButton && (!d->clickCausedFocus
- || QApplication::autoSipOnMouseFocus())) {
+ if (e->button() == Qt::LeftButton && qApp->autoSipEnabled()
+ && (!d->clickCausedFocus || qApp->autoSipOnMouseFocus())) {
QEvent event(QEvent::RequestSoftwareInputPanel);
QApplication::sendEvent(this, &event);
}
diff --git a/src/gui/widgets/qmenu.h b/src/gui/widgets/qmenu.h
index 1e544f7..1676eb8 100644
--- a/src/gui/widgets/qmenu.h
+++ b/src/gui/widgets/qmenu.h
@@ -52,13 +52,15 @@
#endif
QT_BEGIN_HEADER
+#ifdef Q_OS_SYMBIAN
+ class CEikMenuPane;
+#endif
QT_BEGIN_NAMESPACE
QT_MODULE(Gui)
#ifdef Q_OS_SYMBIAN
- class CEikMenuPane;
IMPORT_C void qt_symbian_show_toplevel(CEikMenuPane* menuPane);
IMPORT_C void qt_symbian_show_submenu(CEikMenuPane* menuPane, int id);
#endif
diff --git a/src/gui/widgets/qmenu_p.h b/src/gui/widgets/qmenu_p.h
index 61cc3db..d47749f 100644
--- a/src/gui/widgets/qmenu_p.h
+++ b/src/gui/widgets/qmenu_p.h
@@ -61,6 +61,9 @@
#include "QtCore/qbasictimer.h"
#include "private/qwidget_p.h"
+#ifdef Q_OS_SYMBIAN
+class CEikMenuPane;
+#endif
QT_BEGIN_NAMESPACE
#ifndef QT_NO_MENU
@@ -121,7 +124,6 @@ struct QWceMenuAction {
};
#endif
#ifdef Q_OS_SYMBIAN
-class CEikMenuPane;
struct QSymbianMenuAction {
uint command;
int parent;
diff --git a/src/gui/widgets/qmenu_symbian.cpp b/src/gui/widgets/qmenu_symbian.cpp
index 9e53df5..86affe3 100644
--- a/src/gui/widgets/qmenu_symbian.cpp
+++ b/src/gui/widgets/qmenu_symbian.cpp
@@ -32,8 +32,10 @@
QT_BEGIN_NAMESPACE
// ### FIX/Document this, we need some safe range of menu id's for Qt that don't clash with AIW ones
+typedef QMultiHash<QWidget *, QMenuBarPrivate *> MenuBarHash;
+Q_GLOBAL_STATIC(MenuBarHash, menubars)
+
#define QT_FIRST_MENU_ITEM 32000
-static QList<QMenuBarPrivate *> s60_menubars;
struct SymbianMenuItem
{
@@ -47,6 +49,15 @@ static QList<SymbianMenuItem*> symbianMenus;
static QList<QMenuBar*> nativeMenuBars;
static uint qt_symbian_menu_static_cmd_id = QT_FIRST_MENU_ITEM;
+bool menuExists()
+{
+ QWidget *w = qApp->activeWindow();
+ QMenuBarPrivate *mb = menubars()->value(w);
+ if ((!mb) && !menubars()->count())
+ return false;
+ return true;
+}
+
// ### FIX THIS, copy/paste of original (faulty) stripped text implementation.
// Implementation should be removed from QAction implementation to some generic place
static QString qt_strippedText_copy_from_qaction(QString s)
@@ -167,7 +178,7 @@ static void setSoftkeys()
{
CEikButtonGroupContainer* cba = CEikonEnv::Static()->AppUiFactory()->Cba();
if (cba){
- if (s60_menubars.count()>0)
+ if (menuExists())
cba->SetCommandSetL(R_AVKON_SOFTKEYS_OPTIONS_EXIT);
else
cba->SetCommandSetL(R_AVKON_SOFTKEYS_EXIT);
@@ -176,24 +187,23 @@ static void setSoftkeys()
static void rebuildMenu()
{
- qt_symbian_menu_static_cmd_id = QT_FIRST_MENU_ITEM;
- deleteAll( &symbianMenus );
- if (s60_menubars.count()==0)
- return;
- for (int i = 0; i < s60_menubars.last()->actions.size(); ++i) {
- QSymbianMenuAction *symbianActionTopLevel = new QSymbianMenuAction;
- symbianActionTopLevel->action = s60_menubars.last()->actions.at(i);
- symbianActionTopLevel->parent = 0;
- symbianActionTopLevel->command = qt_symbian_menu_static_cmd_id++;
- qt_symbian_insert_action(symbianActionTopLevel, &symbianMenus);
+ QMenuBarPrivate *mb = 0;
+ setSoftkeys();
+ QWidget *w = qApp->activeWindow();
+ if (w)
+ {
+ mb = menubars()->value(w);
+ qt_symbian_menu_static_cmd_id = QT_FIRST_MENU_ITEM;
+ deleteAll( &symbianMenus );
+ if (!mb)
+ return;
+ mb->symbian_menubar->rebuild();
}
-
- return;
}
Q_GUI_EXPORT void qt_symbian_show_toplevel( CEikMenuPane* menuPane)
{
- if (s60_menubars.count()==0)
+ if (!menuExists())
return;
rebuildMenu();
for (int i = 0; i < symbianMenus.count(); ++i)
@@ -251,6 +261,7 @@ void QMenuBarPrivate::symbianCreateMenuBar(QWidget *parent)
{
Q_Q(QMenuBar);
if (parent && parent->isWindow()){
+ menubars()->insert(q->window(), this);
symbian_menubar = new QSymbianMenuBarPrivate(this);
nativeMenuBars.append(q);
}
@@ -261,7 +272,7 @@ void QMenuBarPrivate::symbianDestroyMenuBar()
Q_Q(QMenuBar);
int index = nativeMenuBars.indexOf(q);
nativeMenuBars.removeAt(index);
- s60_menubars.removeLast();
+ menubars()->remove(q->window(), this);
rebuildMenu();
if (symbian_menubar)
delete symbian_menubar;
@@ -271,7 +282,6 @@ void QMenuBarPrivate::symbianDestroyMenuBar()
QMenuBarPrivate::QSymbianMenuBarPrivate::QSymbianMenuBarPrivate(QMenuBarPrivate *menubar)
{
d = menubar;
- s60_menubars.append(menubar);
}
QMenuBarPrivate::QSymbianMenuBarPrivate::~QSymbianMenuBarPrivate()
@@ -364,10 +374,19 @@ void QMenuBarPrivate::QSymbianMenuBarPrivate::removeAction(QSymbianMenuAction *a
void QMenuBarPrivate::QSymbianMenuBarPrivate::rebuild()
{
setSoftkeys();
- if (s60_menubars.count()==0)
+ qt_symbian_menu_static_cmd_id = QT_FIRST_MENU_ITEM;
+ deleteAll( &symbianMenus );
+ if (!d)
return;
+ for (int i = 0; i < d->actions.size(); ++i) {
+ QSymbianMenuAction *symbianActionTopLevel = new QSymbianMenuAction;
+ symbianActionTopLevel->action = d->actions.at(i);
+ symbianActionTopLevel->parent = 0;
+ symbianActionTopLevel->command = qt_symbian_menu_static_cmd_id++;
+ qt_symbian_insert_action(symbianActionTopLevel, &symbianMenus);
+ }
+}
- rebuildMenu();
- }
+QT_END_NAMESPACE
#endif //QT_NO_MENUBAR
diff --git a/src/gui/widgets/qmenubar_p.h b/src/gui/widgets/qmenubar_p.h
index f617d80..d562cd9 100644
--- a/src/gui/widgets/qmenubar_p.h
+++ b/src/gui/widgets/qmenubar_p.h
@@ -61,14 +61,17 @@
#include "qguifunctions_wince.h"
#endif
-QT_BEGIN_NAMESPACE
-
#ifndef QT_NO_MENUBAR
-class QMenuBarExtension;
#ifdef Q_OS_SYMBIAN
class CCoeControl;
class CEikMenuBar;
#endif
+#endif
+
+QT_BEGIN_NAMESPACE
+
+#ifndef QT_NO_MENUBAR
+class QMenuBarExtension;
class QMenuBarPrivate : public QWidgetPrivate
{
Q_DECLARE_PUBLIC(QMenuBar)