Compile with QT_NO_CURSOR.
authorVolker Krause <volker.krause@kdab.com>
Wed, 5 Dec 2012 10:42:58 +0000 (11:42 +0100)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Fri, 7 Dec 2012 07:46:15 +0000 (08:46 +0100)
Mostly straightforward, the a11y changes might look a bit drastic, but the
base class QAccessibleTextWidget was already disabled in this case, so we
have to obviously take out its sub-classes as well.

Change-Id: I682ace20d6938688ddb1da23c3463f3c025fab8e
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Tasuku Suzuki <stasuku@gmail.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
14 files changed:
src/gui/kernel/qplatformcursor.h
src/platformsupport/dnd/qsimpledrag.cpp
src/platformsupport/fbconvenience/qfbcursor.cpp
src/platformsupport/fbconvenience/qfbcursor_p.h
src/plugins/accessible/widgets/main.cpp
src/plugins/accessible/widgets/qaccessiblewidgets.cpp
src/plugins/accessible/widgets/qaccessiblewidgets.h
src/plugins/platforms/directfb/qdirectfbcursor.cpp
src/plugins/platforms/directfb/qdirectfbcursor.h
src/plugins/platforms/eglfs/qeglfscursor.cpp
src/plugins/platforms/eglfs/qeglfscursor.h
src/plugins/platforms/xcb/qxcbcursor.cpp
src/plugins/platforms/xcb/qxcbcursor.h
src/widgets/kernel/qwidget.cpp

index 138c5fd..babb91d 100644 (file)
@@ -92,7 +92,9 @@ public:
 
     // input methods
     virtual void pointerEvent(const QMouseEvent & event) { Q_UNUSED(event); }
+#ifndef QT_NO_CURSOR
     virtual void changeCursor(QCursor * windowCursor, QWindow * window) = 0;
+#endif
     virtual QPoint pos() const;
     virtual void setPos(const QPoint &pos);
 
index 18e6b97..efaede4 100644 (file)
@@ -237,6 +237,7 @@ void  QBasicDrag::exitDndEventLoop()
 
 void QBasicDrag::updateCursor(Qt::DropAction action)
 {
+#ifndef QT_NO_CURSOR
     Qt::CursorShape cursorShape = Qt::ForbiddenCursor;
     if (canDrop()) {
         switch (action) {
@@ -267,6 +268,7 @@ void QBasicDrag::updateCursor(Qt::DropAction action)
             }
         }
     }
+#endif
     updateAction(action);
 }
 
index f3b8ecb..bc44055 100644 (file)
@@ -116,6 +116,7 @@ void QFbCursor::setCursor(const uchar *data, const uchar *mask, int width, int h
     mGraphic->set(data, mask, width, height, hotX, hotY);
 }
 
+#ifndef QT_NO_CURSOR
 void QFbCursor::changeCursor(QCursor * widgetCursor, QWindow *window)
 {
     Q_UNUSED(window);
@@ -134,6 +135,7 @@ void QFbCursor::changeCursor(QCursor * widgetCursor, QWindow *window)
     if (mOnScreen || mScreen->geometry().intersects(mCurrentRect.translated(mScreenOffset)))
         setDirty();
 }
+#endif
 
 QT_END_NAMESPACE
 
index 9468e64..a56e352 100644 (file)
@@ -59,7 +59,9 @@ public:
 
     // input methods
     virtual void pointerEvent(const QMouseEvent &event);
+#ifndef QT_NO_CURSOR
     virtual void changeCursor(QCursor *widgetCursor, QWindow *window);
+#endif
 
     virtual void setDirty() { mDirty = true; /* screen->setDirty(QRect()); */ }
     virtual bool isDirty() const { return mDirty; }
index 55b1d37..8392ef3 100644 (file)
@@ -199,7 +199,7 @@ QAccessibleInterface *AccessibleFactory::create(const QString &classname, QObjec
     } else if (classname == QLatin1String("QSplitterHandle")) {
         iface = new QAccessibleWidget(widget, QAccessible::Grip);
 #endif
-#ifndef QT_NO_TEXTEDIT
+#if !defined(QT_NO_TEXTEDIT) && !defined(QT_NO_CURSOR)
     } else if (classname == QLatin1String("QTextEdit")) {
         iface = new QAccessibleTextEdit(widget);
     } else if (classname == QLatin1String("QPlainTextEdit")) {
@@ -233,7 +233,7 @@ QAccessibleInterface *AccessibleFactory::create(const QString &classname, QObjec
     } else if (classname == QLatin1String("QRubberBand")) {
         iface = new QAccessibleWidget(widget, QAccessible::Border);
 #endif
-#ifndef QT_NO_TEXTBROWSER
+#if !defined(QT_NO_TEXTBROWSER) && !defined(QT_NO_CURSOR)
     } else if (classname == QLatin1String("QTextBrowser")) {
         iface = new QAccessibleTextBrowser(widget);
 #endif
index 56e6166..e93a82c 100644 (file)
@@ -99,7 +99,7 @@ QList<QWidget*> childWidgets(const QWidget *widget, bool includeTopLevel)
     return widgets;
 }
 
-#ifndef QT_NO_TEXTEDIT
+#if !defined(QT_NO_TEXTEDIT) && !defined(QT_NO_CURSOR)
 
 QAccessiblePlainTextEdit::QAccessiblePlainTextEdit(QWidget* o)
   :QAccessibleTextWidget(o)
@@ -292,7 +292,7 @@ void QAccessibleTextEdit::scrollToSubstring(int startIndex, int endIndex)
         qWarning("AccessibleTextEdit::scrollToSubstring failed!");
 }
 
-#endif // QT_NO_TEXTEDIT
+#endif // QT_NO_TEXTEDIT && QT_NO_CURSOR
 
 #ifndef QT_NO_STACKEDWIDGET
 // ======================= QAccessibleStackedWidget ======================
@@ -488,7 +488,7 @@ QAccessibleDialogButtonBox::QAccessibleDialogButtonBox(QWidget *widget)
 
 #endif // QT_NO_DIALOGBUTTONBOX
 
-#ifndef QT_NO_TEXTBROWSER
+#if !defined(QT_NO_TEXTBROWSER) && !defined(QT_NO_CURSOR)
 QAccessibleTextBrowser::QAccessibleTextBrowser(QWidget *widget)
     : QAccessibleTextEdit(widget)
 {
@@ -499,7 +499,7 @@ QAccessible::Role QAccessibleTextBrowser::role() const
 {
     return QAccessible::StaticText;
 }
-#endif // QT_NO_TEXTBROWSER
+#endif // QT_NO_TEXTBROWSER && QT_NO_CURSOR
 
 #ifndef QT_NO_CALENDARWIDGET
 // ===================== QAccessibleCalendarWidget ========================
index e14b89a..fd76dbd 100644 (file)
@@ -122,7 +122,6 @@ protected:
     virtual QTextDocument *textDocument() const = 0;
     virtual QWidget *viewport() const = 0;
 };
-#endif  //QT_NO_CURSOR
 
 #ifndef QT_NO_TEXTEDIT
 class QAccessiblePlainTextEdit : public QAccessibleTextWidget
@@ -177,6 +176,7 @@ protected:
     QWidget *viewport() const;
 };
 #endif // QT_NO_TEXTEDIT
+#endif  //QT_NO_CURSOR
 
 class QAccessibleStackedWidget : public QAccessibleWidget
 {
@@ -245,7 +245,7 @@ public:
     explicit QAccessibleDialogButtonBox(QWidget *widget);
 };
 
-#ifndef QT_NO_TEXTBROWSER
+#if !defined(QT_NO_TEXTBROWSER) && !defined(QT_NO_CURSOR)
 class QAccessibleTextBrowser : public QAccessibleTextEdit
 {
 public:
@@ -253,7 +253,7 @@ public:
 
     QAccessible::Role role() const;
 };
-#endif // QT_NO_TEXTBROWSER
+#endif // QT_NO_TEXTBROWSER && QT_NO_CURSOR
 
 #ifndef QT_NO_CALENDARWIDGET
 class QAccessibleCalendarWidget : public QAccessibleWidget
index 1ff71f3..b04848e 100644 (file)
@@ -47,9 +47,12 @@ QT_BEGIN_NAMESPACE
 QDirectFBCursor::QDirectFBCursor(QPlatformScreen *screen)
     : m_screen(screen)
 {
+#ifndef QT_NO_CURSOR
     m_image.reset(new QPlatformCursorImage(0, 0, 0, 0, 0, 0));
+#endif
 }
 
+#ifndef QT_NO_CURSOR
 void QDirectFBCursor::changeCursor(QCursor *cursor, QWindow *)
 {
     int xSpot;
@@ -82,5 +85,6 @@ void QDirectFBCursor::changeCursor(QCursor *cursor, QWindow *)
     layer->SetCursorShape(layer, surface, xSpot, ySpot);
     layer->SetCooperativeLevel(layer, DLSCL_SHARED);
 }
+#endif
 
 QT_END_NAMESPACE
index bd11b97..21f205a 100644 (file)
@@ -56,10 +56,14 @@ class QDirectFBCursor : public QPlatformCursor
 {
 public:
     QDirectFBCursor(QPlatformScreen *screen);
+#ifndef QT_NO_CURSOR
     void changeCursor(QCursor *cursor, QWindow *window);
+#endif
 
 private:
+#ifndef QT_NO_CURSOR
     QScopedPointer<QPlatformCursorImage> m_image;
+#endif
     QPlatformScreen *m_screen;
 };
 
index 85bc867..b298492 100644 (file)
@@ -55,8 +55,10 @@ QEglFSCursor::QEglFSCursor(QEglFSScreen *screen)
     initCursorAtlas();
 
     // initialize the cursor
+#ifndef QT_NO_CURSOR
     QCursor cursor(Qt::ArrowCursor);
     setCurrentCursor(&cursor);
+#endif
 }
 
 QEglFSCursor::~QEglFSCursor()
@@ -183,6 +185,7 @@ void QEglFSCursor::initCursorAtlas()
     m_cursorAtlas.image = image;
 }
 
+#ifndef QT_NO_CURSOR
 void QEglFSCursor::changeCursor(QCursor *cursor, QWindow *window)
 {
     Q_UNUSED(window);
@@ -221,6 +224,7 @@ bool QEglFSCursor::setCurrentCursor(QCursor *cursor)
 
     return true;
 }
+#endif
 
 void QEglFSCursor::update(const QRegion &rgn)
 {
index 9a91b73..1c82abd 100644 (file)
@@ -57,7 +57,9 @@ public:
     QEglFSCursor(QEglFSScreen *screen);
     ~QEglFSCursor();
 
+#ifndef QT_NO_CURSOR
     void changeCursor(QCursor *cursor, QWindow *widget) Q_DECL_OVERRIDE;
+#endif
     void pointerEvent(const QMouseEvent &event) Q_DECL_OVERRIDE;
 
     QPoint pos() const Q_DECL_OVERRIDE;
@@ -68,7 +70,9 @@ public:
     virtual void paintOnScreen();
 
 protected:
+#ifndef QT_NO_CURSOR
     bool setCurrentCursor(QCursor *cursor);
+#endif
     void draw(const QRectF &rect);
     void update(const QRegion &region);
 
index c1cfbd0..e1dfe3d 100644 (file)
@@ -291,6 +291,7 @@ QXcbCursor::~QXcbCursor()
         xcb_close_font(xcb_connection(), cursorFont);
 }
 
+#ifndef QT_NO_CURSOR
 void QXcbCursor::changeCursor(QCursor *cursor, QWindow *widget)
 {
     QXcbWindow *w = 0;
@@ -507,6 +508,7 @@ xcb_cursor_t QXcbCursor::createBitmapCursor(QCursor *cursor)
     }
     return c;
 }
+#endif
 
 void QXcbCursor::queryPointer(QXcbConnection *c, xcb_window_t *rootWin, QPoint *pos, int *keybMask)
 {
index 4c74034..a4f3bf1 100644 (file)
@@ -52,20 +52,26 @@ class QXcbCursor : public QXcbObject, public QPlatformCursor
 public:
     QXcbCursor(QXcbConnection *conn, QXcbScreen *screen);
     ~QXcbCursor();
+#ifndef QT_NO_CURSOR
     void changeCursor(QCursor *cursor, QWindow *widget);
+#endif
     QPoint pos() const;
     void setPos(const QPoint &pos);
 
     static void queryPointer(QXcbConnection *c, xcb_window_t *rootWin, QPoint *pos, int *keybMask = 0);
 
 private:
+#ifndef QT_NO_CURSOR
     xcb_cursor_t createFontCursor(int cshape);
     xcb_cursor_t createBitmapCursor(QCursor *cursor);
     xcb_cursor_t createNonStandardCursor(int cshape);
+#endif
 
     QXcbScreen *m_screen;
+#ifndef QT_NO_CURSOR
     QMap<int, xcb_cursor_t> m_shapeCursorMap;
     QMap<qint64, xcb_cursor_t> m_bitmapCursorMap;
+#endif
 };
 
 QT_END_NAMESPACE
index ace25fa..232524b 100644 (file)
@@ -3069,11 +3069,13 @@ void QWidgetPrivate::setEnabled_helper(bool enable)
         qt_x11_enforce_cursor(q);
     }
 #endif
+#ifndef QT_NO_CURSOR
     if (q->testAttribute(Qt::WA_SetCursor) || q->isWindow()) {
         // enforce the windows behavior of clearing the cursor on
         // disabled widgets
         qt_qpa_set_cursor(q, false);
     }
+#endif
 #if defined(Q_WS_MAC)
     setEnabled_helper_sys(enable);
 #endif