Change-Id: I1f81be1394455715c5dfcd2d426758c4c7cd91fc
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
#ifndef QT_NO_COMBOBOX
#include <qstylepainter.h>
#ifndef QT_NO_COMBOBOX
#include <qstylepainter.h>
+#include <qplatformtheme_qpa.h>
#include <qlineedit.h>
#include <qapplication.h>
#include <qdesktopwidget.h>
#include <qlineedit.h>
#include <qapplication.h>
#include <qdesktopwidget.h>
#include <qtreeview.h>
#include <qheaderview.h>
#include <qmath.h>
#include <qtreeview.h>
#include <qheaderview.h>
#include <qmath.h>
+#include <private/qguiapplication_p.h>
#include <private/qapplication_p.h>
#include <private/qcombobox_p.h>
#include <private/qabstractitemmodel_p.h>
#include <private/qabstractscrollarea_p.h>
#include <private/qsoftkeymanager_p.h>
#include <qdebug.h>
#include <private/qapplication_p.h>
#include <private/qcombobox_p.h>
#include <private/qabstractitemmodel_p.h>
#include <private/qabstractscrollarea_p.h>
#include <private/qsoftkeymanager_p.h>
#include <qdebug.h>
-#ifdef Q_WS_X11
-#include <private/qt_x11_p.h>
-#endif
#if defined(Q_WS_MAC) && !defined(QT_NO_EFFECTS) && !defined(QT_NO_STYLE_MAC)
#include <private/qcore_mac_p.h>
#include <QMacStyle>
#if defined(Q_WS_MAC) && !defined(QT_NO_EFFECTS) && !defined(QT_NO_STYLE_MAC)
#include <private/qcore_mac_p.h>
#include <QMacStyle>
//Windows and KDE allows menus to cover the taskbar, while GNOME and Mac don't
QRect QComboBoxPrivate::popupGeometry(int screen) const
{
//Windows and KDE allows menus to cover the taskbar, while GNOME and Mac don't
QRect QComboBoxPrivate::popupGeometry(int screen) const
{
-#ifdef Q_WS_WIN
- return QApplication::desktop()->screenGeometry(screen);
-#elif defined Q_WS_X11
- if (X11->desktopEnvironment == DE_KDE)
- return QApplication::desktop()->screenGeometry(screen);
- else
- return QApplication::desktop()->availableGeometry(screen);
-#else
- return QApplication::desktop()->availableGeometry(screen);
-#endif
+ bool useFullScreenForPopupMenu = false;
+ if (const QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme())
+ useFullScreenForPopupMenu = theme->themeHint(QPlatformTheme::UseFullScreenForPopupMenu).toBool();
+ return useFullScreenForPopupMenu ?
+ QApplication::desktop()->screenGeometry(screen) :
+ QApplication::desktop()->availableGeometry(screen);
}
bool QComboBoxPrivate::updateHoverControl(const QPoint &pos)
}
bool QComboBoxPrivate::updateHoverControl(const QPoint &pos)
#include "qcombobox.h"
#include <private/qcombobox_p.h>
#include "qcombobox.h"
#include <private/qcombobox_p.h>
+#include <private/qguiapplication_p.h>
+#include <qplatformtheme_qpa.h>
#include <qfontcombobox.h>
#include <qdesktopwidget.h>
#include <qfontcombobox.h>
#include <qdesktopwidget.h>
QWidget topLevel;
QFontComboBox combo(&topLevel);
QWidget topLevel;
QFontComboBox combo(&topLevel);
- //the code to get the avaialbe screen space is copied from QComboBox code
+ //the code to get the available screen space is copied from QComboBox code
const int scrNumber = QApplication::desktop()->screenNumber(&combo);
const int scrNumber = QApplication::desktop()->screenNumber(&combo);
- QRect screen;
-#ifdef Q_WS_WIN
- screen = QApplication::desktop()->screenGeometry(scrNumber);
-#elif defined Q_WS_X11
- if (X11->desktopEnvironment == DE_KDE)
- screen = QApplication::desktop()->screenGeometry(scrNumber);
- else
- screen = QApplication::desktop()->availableGeometry(scrNumber);
-#else
- screen = QApplication::desktop()->availableGeometry(scrNumber);
-#endif
+
+ bool useFullScreenForPopupMenu = false;
+ if (const QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme())
+ useFullScreenForPopupMenu = theme->themeHint(QPlatformTheme::UseFullScreenForPopupMenu).toBool();
+ const QRect screen = useFullScreenForPopupMenu ?
+ QApplication::desktop()->screenGeometry(scrNumber) :
+ QApplication::desktop()->availableGeometry(scrNumber);
combo.move(screen.width()-combo.sizeHint().width(), 0); //puts the combo to the top-right corner
combo.move(screen.width()-combo.sizeHint().width(), 0); //puts the combo to the top-right corner