Fix xcb plugin compilation for -qconfig large
authorTasuku Suzuki <tasuku.suzuki@nokia.com>
Wed, 16 May 2012 20:16:10 +0000 (05:16 +0900)
committerQt by Nokia <qt-info@nokia.com>
Fri, 25 May 2012 22:34:40 +0000 (00:34 +0200)
Change-Id: I1ee1fb9c140396e83272d607ee4dd63ce2c50b8d
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
src/plugins/platforms/xcb/qxcbclipboard.cpp
src/plugins/platforms/xcb/qxcbclipboard.h
src/plugins/platforms/xcb/qxcbconnection.cpp
src/plugins/platforms/xcb/qxcbconnection.h
src/plugins/platforms/xcb/qxcbdrag.cpp
src/plugins/platforms/xcb/qxcbdrag.h
src/plugins/platforms/xcb/qxcbintegration.cpp
src/plugins/platforms/xcb/qxcbintegration.h
src/plugins/platforms/xcb/qxcbmime.cpp
src/plugins/platforms/xcb/qxcbmime.h
src/plugins/platforms/xcb/qxcbwindow.cpp

index 63ce739..6852d96 100644 (file)
@@ -56,6 +56,8 @@
 
 QT_BEGIN_NAMESPACE
 
+#ifndef QT_NO_CLIPBOARD
+
 class QXcbClipboardMime : public QXcbMime
 {
     Q_OBJECT
@@ -862,6 +864,8 @@ QByteArray QXcbClipboard::getSelection(xcb_atom_t selection, xcb_atom_t target,
     return buf;
 }
 
+#endif // QT_NO_CLIPBOARD
+
 QT_END_NAMESPACE
 
 #include "qxcbclipboard.moc"
index 1b3f12b..d279355 100644 (file)
@@ -49,6 +49,8 @@
 
 QT_BEGIN_NAMESPACE
 
+#ifndef QT_NO_CLIPBOARD
+
 class QXcbConnection;
 class QXcbScreen;
 class QXcbClipboardMime;
@@ -107,6 +109,8 @@ private:
 
 };
 
+#endif // QT_NO_CLIPBOARD
+
 QT_END_NAMESPACE
 
 #endif // QXCBCLIPBOARD_H
index 3d17e38..d9c3352 100644 (file)
@@ -186,8 +186,12 @@ QXcbConnection::QXcbConnection(QXcbNativeInterface *nativeInterface, const char
 
     m_wmSupport.reset(new QXcbWMSupport(this));
     m_keyboard = new QXcbKeyboard(this);
+#ifndef QT_NO_CLIPBOARD
     m_clipboard = new QXcbClipboard(this);
+#endif
+#ifndef QT_NO_DRAGANDDROP
     m_drag = new QXcbDrag(this);
+#endif
 
 #ifdef XCB_USE_DRI2
     initializeDri2();
@@ -197,8 +201,12 @@ QXcbConnection::QXcbConnection(QXcbNativeInterface *nativeInterface, const char
 
 QXcbConnection::~QXcbConnection()
 {
+#ifndef QT_NO_CLIPBOARD
     delete m_clipboard;
-
+#endif
+#ifndef QT_NO_DRAGANDDROP
+    delete m_drag;
+#endif
     // Delete screens in reverse order to avoid crash in case of multiple screens
     while (!m_screens.isEmpty())
         delete m_screens.takeLast();
@@ -562,15 +570,23 @@ void QXcbConnection::handleXcbEvent(xcb_generic_event_t *event)
         case XCB_SELECTION_REQUEST:
         {
             xcb_selection_request_event_t *sr = (xcb_selection_request_event_t *)event;
+#ifndef QT_NO_DRAGANDDROP
             if (sr->selection == atom(QXcbAtom::XdndSelection))
                 m_drag->handleSelectionRequest(sr);
             else
+#endif
+            {
+#ifndef QT_NO_CLIPBOARD
                 m_clipboard->handleSelectionRequest(sr);
+#endif
+            }
             break;
         }
         case XCB_SELECTION_CLEAR:
             setTime(((xcb_selection_clear_event_t *)event)->time);
+#ifndef QT_NO_CLIPBOARD
             m_clipboard->handleSelectionClearRequest((xcb_selection_clear_event_t *)event);
+#endif
             handled = true;
             break;
         case XCB_SELECTION_NOTIFY:
@@ -594,7 +610,9 @@ void QXcbConnection::handleXcbEvent(xcb_generic_event_t *event)
     if (!handled) {
         if (response_type == xfixes_first_event + XCB_XFIXES_SELECTION_NOTIFY) {
             setTime(((xcb_xfixes_selection_notify_event_t *)event)->timestamp);
+#ifndef QT_NO_CLIPBOARD
             m_clipboard->handleXFixesSelectionRequest((xcb_xfixes_selection_notify_event_t *)event);
+#endif
             handled = true;
         } else if (has_randr_extension && response_type == xrandr_first_event + XCB_RANDR_SCREEN_CHANGE_NOTIFY) {
             xcb_randr_screen_change_notify_event_t *change_event = (xcb_randr_screen_change_notify_event_t *)event;
@@ -744,11 +762,13 @@ void QXcbConnection::handleClientMessageEvent(const xcb_client_message_event_t *
     if (event->format != 32)
         return;
 
+#ifndef QT_NO_DRAGANDDROP
     if (event->type == atom(QXcbAtom::XdndStatus)) {
         drag()->handleStatus(event);
     } else if (event->type == atom(QXcbAtom::XdndFinished)) {
         drag()->handleFinished(event);
     }
+#endif
 
     QXcbWindow *window = platformWindowFromId(event->window);
     if (!window)
index 86eaf5d..9fbeb9f 100644 (file)
@@ -310,8 +310,12 @@ public:
 
     QXcbKeyboard *keyboard() const { return m_keyboard; }
 
+#ifndef QT_NO_CLIPBOARD
     QXcbClipboard *clipboard() const { return m_clipboard; }
+#endif
+#ifndef QT_NO_DRAGANDDROP
     QXcbDrag *drag() const { return m_drag; }
+#endif
 
     QXcbWMSupport *wmSupport() const { return m_wmSupport.data(); }
 
@@ -393,8 +397,12 @@ private:
     xcb_window_t m_connectionEventListener;
 
     QXcbKeyboard *m_keyboard;
+#ifndef QT_NO_CLIPBOARD
     QXcbClipboard *m_clipboard;
+#endif
+#ifndef QT_NO_DRAGANDDROP
     QXcbDrag *m_drag;
+#endif
     QScopedPointer<QXcbWMSupport> m_wmSupport;
     QXcbNativeInterface *m_nativeInterface;
 
index 42c240e..3299180 100644 (file)
@@ -61,6 +61,8 @@
 
 QT_BEGIN_NAMESPACE
 
+#ifndef QT_NO_DRAGANDDROP
+
 //#define DND_DEBUG
 #ifdef DND_DEBUG
 #define DEBUG qDebug
@@ -1261,4 +1263,6 @@ QStringList QXcbDropData::formats_sys() const
     return formats;
 }
 
+#endif // QT_NO_DRAGANDDROP
+
 QT_END_NAMESPACE
index 5950184..b404d26 100644 (file)
@@ -59,6 +59,8 @@
 
 QT_BEGIN_NAMESPACE
 
+#ifndef QT_NO_DRAGANDDROP
+
 class QMouseEvent;
 class QWindow;
 class QXcbConnection;
@@ -161,6 +163,8 @@ private:
     xcb_window_t findRealWindow(const QPoint & pos, xcb_window_t w, int md, bool ignoreNonXdndAwareWindows);
 };
 
+#endif // QT_NO_DRAGANDDROP
+
 QT_END_NAMESPACE
 
 #endif
index 8dba6e1..9fbf21a 100644 (file)
@@ -226,15 +226,19 @@ QPlatformNativeInterface * QXcbIntegration::nativeInterface() const
     return m_nativeInterface.data();
 }
 
+#ifndef QT_NO_CLIPBOARD
 QPlatformClipboard *QXcbIntegration::clipboard() const
 {
     return m_connections.at(0)->clipboard();
 }
+#endif
 
+#ifndef QT_NO_DRAGANDDROP
 QPlatformDrag *QXcbIntegration::drag() const
 {
     return m_connections.at(0)->drag();
 }
+#endif
 
 QPlatformInputContext *QXcbIntegration::inputContext() const
 {
index b2245e4..1eeaa6e 100644 (file)
@@ -72,8 +72,12 @@ public:
 
     QPlatformNativeInterface *nativeInterface()const;
 
+#ifndef QT_NO_CLIPBOARD
     QPlatformClipboard *clipboard() const;
+#endif
+#ifndef QT_NO_DRAGANDDROP
     QPlatformDrag *drag() const;
+#endif
 
     QPlatformInputContext *inputContext() const;
 
index bcc94ba..6676af0 100644 (file)
@@ -54,6 +54,8 @@
 
 QT_BEGIN_NAMESPACE
 
+#ifndef QT_NO_DRAGANDDROP
+
 QXcbMime::QXcbMime()
     : QInternalMimeData()
 { }
@@ -289,4 +291,6 @@ xcb_atom_t QXcbMime::mimeAtomForFormat(QXcbConnection *connection, const QString
     return 0;
 }
 
+#endif // QT_NO_DRAGANDDROP
+
 QT_END_NAMESPACE
index e6a7ccc..c7bbc2c 100644 (file)
@@ -51,6 +51,8 @@
 
 QT_BEGIN_NAMESPACE
 
+#ifndef QT_NO_DRAGANDDROP
+
 class QXcbMime : public QInternalMimeData {
     Q_OBJECT
 public:
@@ -67,6 +69,8 @@ public:
                                         const QList<xcb_atom_t> &atoms, QByteArray *requestedEncoding);
 };
 
+#endif // QT_NO_DRAGANDDROP
+
 QT_END_NAMESPACE
 
 #endif // QXCBMIME_H
index b319c35..168a441 100644 (file)
@@ -376,7 +376,9 @@ void QXcbWindow::create()
     if (window()->windowFlags() & Qt::WindowTransparentForInput)
         setTransparentForMouseEvents(true);
 
+#ifndef QT_NO_DRAGANDDROP
     connection()->drag()->dndEnable(this, true);
+#endif
 }
 
 QXcbWindow::~QXcbWindow()
@@ -1298,6 +1300,7 @@ void QXcbWindow::handleClientMessageEvent(const xcb_client_message_event_t *even
         } else {
             qWarning() << "QXcbWindow: Unhandled WM_PROTOCOLS message:" << connection()->atomName(event->data.data32[0]);
         }
+#ifndef QT_NO_DRAGANDDROP
     } else if (event->type == atom(QXcbAtom::XdndEnter)) {
         connection()->drag()->handleEnter(window(), event);
     } else if (event->type == atom(QXcbAtom::XdndPosition)) {
@@ -1306,6 +1309,7 @@ void QXcbWindow::handleClientMessageEvent(const xcb_client_message_event_t *even
         connection()->drag()->handleLeave(window(), event);
     } else if (event->type == atom(QXcbAtom::XdndDrop)) {
         connection()->drag()->handleDrop(window(), event);
+#endif
     } else if (event->type == atom(QXcbAtom::_XEMBED)) { // QSystemTrayIcon
     } else {
         qWarning() << "QXcbWindow: Unhandled client message:" << connection()->atomName(event->type);