diff options
Diffstat (limited to 'src/plugins')
17 files changed, 170 insertions, 50 deletions
diff --git a/src/plugins/platforms/cocoa/cocoa.pro b/src/plugins/platforms/cocoa/cocoa.pro index f48f9ccf30..1e6ea70161 100644 --- a/src/plugins/platforms/cocoa/cocoa.pro +++ b/src/plugins/platforms/cocoa/cocoa.pro @@ -21,7 +21,6 @@ OBJECTIVE_SOURCES += main.mm \ qmultitouch_mac.mm \ qcocoaaccessibilityelement.mm \ qcocoaaccessibility.mm \ - qcocoafontdialoghelper.mm \ qcocoacursor.mm \ qcocoaclipboard.mm \ qcocoadrag.mm \ @@ -55,7 +54,6 @@ HEADERS += qcocoaintegration.h \ qmultitouch_mac_p.h \ qcocoaaccessibilityelement.h \ qcocoaaccessibility.h \ - qcocoafontdialoghelper.h \ qcocoacursor.h \ qcocoaclipboard.h \ qcocoadrag.h \ @@ -111,6 +109,11 @@ qtHaveModule(widgets) { HEADERS += qcocoafiledialoghelper.h } + qtConfig(fontdialog) { + SOURCES += qcocoafontdialoghelper.mm + HEADERS += qcocoafontdialoghelper.h + } + QT += widgets-private printsupport-private } diff --git a/src/plugins/platforms/cocoa/qcocoafontdialoghelper.h b/src/plugins/platforms/cocoa/qcocoafontdialoghelper.h index 8b05cb7933..c3fad7cfd6 100644 --- a/src/plugins/platforms/cocoa/qcocoafontdialoghelper.h +++ b/src/plugins/platforms/cocoa/qcocoafontdialoghelper.h @@ -41,8 +41,11 @@ #define QCOCOAFONTDIALOGHELPER_H #include <QObject> +#include <QtWidgets/qtwidgetsglobal.h> #include <qpa/qplatformdialoghelper.h> +QT_REQUIRE_CONFIG(fontdialog); + QT_BEGIN_NAMESPACE class QCocoaFontDialogHelper : public QPlatformFontDialogHelper diff --git a/src/plugins/platforms/cocoa/qcocoafontdialoghelper.mm b/src/plugins/platforms/cocoa/qcocoafontdialoghelper.mm index e4b796dcde..dbd7e90dba 100644 --- a/src/plugins/platforms/cocoa/qcocoafontdialoghelper.mm +++ b/src/plugins/platforms/cocoa/qcocoafontdialoghelper.mm @@ -37,8 +37,6 @@ ** ****************************************************************************/ -#ifndef QT_NO_FONTDIALOG - #include <QtCore/qtimer.h> #include <QtGui/qfontdatabase.h> #include <qpa/qplatformtheme.h> @@ -402,5 +400,3 @@ QFont QCocoaFontDialogHelper::currentFont() const } QT_END_NAMESPACE - -#endif // QT_NO_FONTDIALOG diff --git a/src/plugins/platforms/cocoa/qcocoatheme.mm b/src/plugins/platforms/cocoa/qcocoatheme.mm index a6104d86cc..fd627e3796 100644 --- a/src/plugins/platforms/cocoa/qcocoatheme.mm +++ b/src/plugins/platforms/cocoa/qcocoatheme.mm @@ -44,8 +44,6 @@ #include <QtCore/QVariant> -#include "qcocoacolordialoghelper.h" -#include "qcocoafontdialoghelper.h" #include "qcocoasystemsettings.h" #include "qcocoasystemtrayicon.h" #include "qcocoamenuitem.h" @@ -64,9 +62,15 @@ #ifdef QT_WIDGETS_LIB #include <QtWidgets/qtwidgetsglobal.h> +#if QT_CONFIG(colordialog) +#include "qcocoacolordialoghelper.h" +#endif #if QT_CONFIG(filedialog) #include "qcocoafiledialoghelper.h" #endif +#if QT_CONFIG(fontdialog) +#include "qcocoafontdialoghelper.h" +#endif #endif #include <Carbon/Carbon.h> @@ -130,11 +134,11 @@ bool QCocoaTheme::usePlatformNativeDialog(DialogType dialogType) const { if (dialogType == QPlatformTheme::FileDialog) return true; -#if QT_CONFIG(colordialog) +#if defined(QT_WIDGETS_LIB) && QT_CONFIG(colordialog) if (dialogType == QPlatformTheme::ColorDialog) return true; #endif -#ifndef QT_NO_FONTDIALOG +#if defined(QT_WIDGETS_LIB) && QT_CONFIG(fontdialog) if (dialogType == QPlatformTheme::FontDialog) return true; #endif @@ -148,11 +152,11 @@ QPlatformDialogHelper * QCocoaTheme::createPlatformDialogHelper(DialogType dialo case QPlatformTheme::FileDialog: return new QCocoaFileDialogHelper(); #endif -#if QT_CONFIG(colordialog) +#if defined(QT_WIDGETS_LIB) && QT_CONFIG(colordialog) case QPlatformTheme::ColorDialog: return new QCocoaColorDialogHelper(); #endif -#ifndef QT_NO_FONTDIALOG +#if defined(QT_WIDGETS_LIB) && QT_CONFIG(fontdialog) case QPlatformTheme::FontDialog: return new QCocoaFontDialogHelper(); #endif diff --git a/src/plugins/platforms/cocoa/qnswindowdelegate.mm b/src/plugins/platforms/cocoa/qnswindowdelegate.mm index ce74aa9973..e5041fb863 100644 --- a/src/plugins/platforms/cocoa/qnswindowdelegate.mm +++ b/src/plugins/platforms/cocoa/qnswindowdelegate.mm @@ -78,6 +78,22 @@ return m_cocoaWindow->screen()->availableGeometry().toCGRect(); } +#if QT_MACOS_DEPLOYMENT_TARGET_BELOW(__MAC_10_11) +/* + AppKit on OS X 10.10 wrongly calls windowWillUseStandardFrame:defaultFrame + from -[NSWindow _frameForFullScreenMode] when going into fullscreen, resulting + in black bars on top and bottom of the window. By implementing the following + method, AppKit will choose that instead, and resolve the right fullscreen + geometry. +*/ +- (NSSize)window:(NSWindow *)window willUseFullScreenContentSize:(NSSize)proposedSize +{ + Q_UNUSED(window); + Q_ASSERT(NSEqualSizes(m_cocoaWindow->screen()->geometry().size().toCGSize(), proposedSize)); + return proposedSize; +} +#endif + - (BOOL)window:(NSWindow *)window shouldPopUpDocumentPathMenu:(NSMenu *)menu { Q_UNUSED(window); diff --git a/src/plugins/platforms/windows/openglblacklists/default.json b/src/plugins/platforms/windows/openglblacklists/default.json index 69f4a54d05..6515f02830 100644 --- a/src/plugins/platforms/windows/openglblacklists/default.json +++ b/src/plugins/platforms/windows/openglblacklists/default.json @@ -126,6 +126,18 @@ "features": [ "disable_desktopgl" ] + }, + { + "id": 11, + "description": "VMWare Workstation Player 12 has insufficient support for OpenGL", + "vendor_id": "0x15AD", + "device_id": [ "0x0405" ], + "os": { + "type": "win" + }, + "features": [ + "disable_desktopgl", "disable_d3d11" + ] } ] } diff --git a/src/plugins/platforms/windows/qwindowscontext.cpp b/src/plugins/platforms/windows/qwindowscontext.cpp index 49c11ba2b7..36481b8ed7 100644 --- a/src/plugins/platforms/windows/qwindowscontext.cpp +++ b/src/plugins/platforms/windows/qwindowscontext.cpp @@ -844,6 +844,27 @@ static inline QWindowsInputContext *windowsInputContext() return qobject_cast<QWindowsInputContext *>(QWindowsIntegration::instance()->inputContext()); } + +// Child windows, fixed-size windows or pop-ups and similar should not be resized +static inline bool resizeOnDpiChanged(const QWindow *w) +{ + bool result = false; + if (w->isTopLevel()) { + switch (w->type()) { + case Qt::Window: + case Qt::Dialog: + case Qt::Sheet: + case Qt::Drawer: + case Qt::Tool: + result = !w->flags().testFlag(Qt::MSWindowsFixedSizeDialogHint); + break; + default: + break; + } + } + return result; +} + /*! \brief Main windows procedure registered for windows. @@ -1118,9 +1139,8 @@ bool QWindowsContext::windowsProc(HWND hwnd, UINT message, #endif } break; case QtWindows::DpiChangedEvent: { - if (platformWindow->window()->flags().testFlag(Qt::MSWindowsFixedSizeDialogHint)) - return false; // Fixed-size window should not be resized - + if (!resizeOnDpiChanged(platformWindow->window())) + return false; platformWindow->setFlag(QWindowsWindow::WithinDpiChanged); const RECT *prcNewWindow = reinterpret_cast<RECT *>(lParam); SetWindowPos(hwnd, NULL, prcNewWindow->left, prcNewWindow->top, diff --git a/src/plugins/platforms/windows/qwindowsscreen.cpp b/src/plugins/platforms/windows/qwindowsscreen.cpp index 24fb12d27a..3a4793efcd 100644 --- a/src/plugins/platforms/windows/qwindowsscreen.cpp +++ b/src/plugins/platforms/windows/qwindowsscreen.cpp @@ -153,7 +153,8 @@ static QDebug operator<<(QDebug dbg, const QWindowsScreenData &d) << d.availableGeometry.width() << 'x' << d.availableGeometry.height() << '+' << d.availableGeometry.x() << '+' << d.availableGeometry.y() << " physical: " << d.physicalSizeMM.width() << 'x' << d.physicalSizeMM.height() << " DPI: " << d.dpi.first << 'x' << d.dpi.second << " Depth: " << d.depth - << " Format: " << d.format; + << " Format: " << d.format + << " hMonitor: " << d.hMonitor; if (d.flags & QWindowsScreenData::PrimaryScreen) dbg << " primary"; if (d.flags & QWindowsScreenData::VirtualDesktop) @@ -290,6 +291,13 @@ void QWindowsScreen::handleChanges(const QWindowsScreenData &newData) { m_data.physicalSizeMM = newData.physicalSizeMM; + if (m_data.hMonitor != newData.hMonitor) { + qCDebug(lcQpaWindows) << "Monitor" << m_data.name + << "has had its hMonitor handle changed from" + << m_data.hMonitor << "to" << newData.hMonitor; + m_data.hMonitor = newData.hMonitor; + } + if (m_data.geometry != newData.geometry || m_data.availableGeometry != newData.availableGeometry) { m_data.geometry = newData.geometry; m_data.availableGeometry = newData.availableGeometry; diff --git a/src/plugins/platforms/windows/qwindowstheme.cpp b/src/plugins/platforms/windows/qwindowstheme.cpp index 3165835d2d..a1ccf1f83c 100644 --- a/src/plugins/platforms/windows/qwindowstheme.cpp +++ b/src/plugins/platforms/windows/qwindowstheme.cpp @@ -869,12 +869,18 @@ QPixmap QWindowsFileIconEngine::filePixmap(const QSize &size, QIcon::Mode, QIcon } SHFILEINFO info; - const unsigned int flags = - SHGFI_ICON|iconSize|SHGFI_SYSICONINDEX|SHGFI_ADDOVERLAYS|SHGFI_OVERLAYINDEX; - - const bool val = cacheableDirIcon && useDefaultFolderIcon - ? shGetFileInfoBackground(QString::fromWCharArray(L"dummy"), FILE_ATTRIBUTE_DIRECTORY, &info, flags | SHGFI_USEFILEATTRIBUTES) - : shGetFileInfoBackground(filePath, 0, &info, flags); + unsigned int flags = SHGFI_ICON | iconSize | SHGFI_SYSICONINDEX | SHGFI_ADDOVERLAYS | SHGFI_OVERLAYINDEX; + DWORD attributes = 0; + QString path = filePath; + if (cacheableDirIcon && useDefaultFolderIcon) { + flags |= SHGFI_USEFILEATTRIBUTES; + attributes |= FILE_ATTRIBUTE_DIRECTORY; + path = QStringLiteral("dummy"); + } else if (!fileInfo().exists()) { + flags |= SHGFI_USEFILEATTRIBUTES; + attributes |= FILE_ATTRIBUTE_NORMAL; + } + const bool val = shGetFileInfoBackground(path, attributes, &info, flags); // Even if GetFileInfo returns a valid result, hIcon can be empty in some cases if (val && info.hIcon) { diff --git a/src/plugins/platforms/windows/qwindowswindow.cpp b/src/plugins/platforms/windows/qwindowswindow.cpp index 25d50e6466..9c8a3d4956 100644 --- a/src/plugins/platforms/windows/qwindowswindow.cpp +++ b/src/plugins/platforms/windows/qwindowswindow.cpp @@ -39,7 +39,9 @@ #include "qwindowswindow.h" #include "qwindowscontext.h" -#include "qwindowsdrag.h" +#if QT_CONFIG(draganddrop) +# include "qwindowsdrag.h" +#endif #include "qwindowsscreen.h" #include "qwindowsintegration.h" #include "qwindowsmenu.h" @@ -1834,6 +1836,8 @@ bool QWindowsWindow::isFullScreen_sys() const if (!w->isTopLevel()) return false; QRect geometry = geometry_sys(); + if (testFlag(HasBorderInFullScreen)) + geometry += QMargins(1, 1, 1, 1); QPlatformScreen *screen = screenForGeometry(geometry); return screen && geometry == QHighDpi::toNativePixels(screen->geometry(), screen); } diff --git a/src/plugins/platforms/winrt/qwinrtfileengine.cpp b/src/plugins/platforms/winrt/qwinrtfileengine.cpp index dab2482ab3..58375d331c 100644 --- a/src/plugins/platforms/winrt/qwinrtfileengine.cpp +++ b/src/plugins/platforms/winrt/qwinrtfileengine.cpp @@ -426,8 +426,7 @@ QDateTime QWinRTFileEngine::fileTime(FileTime type) const ComPtr<FileProperties::IBasicProperties> properties; hr = QWinRTFunctions::await(op, properties.GetAddressOf()); RETURN_IF_FAILED("Failed to get file properties", return QDateTime()); - hr = type == ModificationTime ? properties->get_DateModified(&dateTime) - : properties->get_ItemDate(&dateTime); + hr = properties->get_DateModified(&dateTime); RETURN_IF_FAILED("Failed to get file date", return QDateTime()); } break; diff --git a/src/plugins/platforms/xcb/gl_integrations/gl_integrations_plugin_base.pri b/src/plugins/platforms/xcb/gl_integrations/gl_integrations_plugin_base.pri index df471f1105..98e48b706f 100644 --- a/src/plugins/platforms/xcb/gl_integrations/gl_integrations_plugin_base.pri +++ b/src/plugins/platforms/xcb/gl_integrations/gl_integrations_plugin_base.pri @@ -5,10 +5,3 @@ INCLUDEPATH += $$PWD/../ load(qt_build_paths) -!qtConfig(system-xcb) { - QMAKE_USE += xcb-static xcb -} else { - qtConfig(xkb): QMAKE_USE += xcb_xkb - qtConfig(xcb-render): QMAKE_USE += xcb_render - QMAKE_USE += xcb_syslibs -} diff --git a/src/plugins/sqldrivers/ibase/qsql_ibase.cpp b/src/plugins/sqldrivers/ibase/qsql_ibase.cpp index 23a86e2266..c50fc7916a 100644 --- a/src/plugins/sqldrivers/ibase/qsql_ibase.cpp +++ b/src/plugins/sqldrivers/ibase/qsql_ibase.cpp @@ -544,6 +544,7 @@ static char* readArrayBuffer(QList<QVariant>& list, char *buffer, short curDim, case blr_varying: case blr_varying2: strLen += 2; // for the two terminating null values + Q_FALLTHROUGH(); case blr_text: case blr_text2: { int o; diff --git a/src/plugins/styles/mac/qmacstyle_mac.mm b/src/plugins/styles/mac/qmacstyle_mac.mm index 1379295623..7e54025d6e 100644 --- a/src/plugins/styles/mac/qmacstyle_mac.mm +++ b/src/plugins/styles/mac/qmacstyle_mac.mm @@ -81,21 +81,27 @@ #include <qpushbutton.h> #endif #include <qradiobutton.h> +#if QT_CONFIG(rubberband) #include <qrubberband.h> +#endif #include <qscrollbar.h> #include <qsizegrip.h> #include <qstyleoption.h> #include <qtoolbar.h> #include <qtoolbutton.h> #include <qtreeview.h> +#if QT_CONFIG(tableview) #include <qtableview.h> +#endif #include <qoperatingsystemversion.h> #if QT_CONFIG(wizard) #include <qwizard.h> #endif #include <qdebug.h> #include <qlibrary.h> +#if QT_CONFIG(datetimeedit) #include <qdatetimeedit.h> +#endif #include <qmath.h> #include <QtWidgets/qgraphicsproxywidget.h> #include <QtWidgets/qgraphicsview.h> @@ -317,7 +323,7 @@ static bool isInMacUnifiedToolbarArea(QWindow *window, int windowY) } -void drawTabCloseButton(QPainter *p, bool hover, bool selected, bool pressed) +static void drawTabCloseButton(QPainter *p, bool hover, bool selected, bool pressed, bool documentMode) { p->setRenderHints(QPainter::Antialiasing); QRect rect(0, 0, closeButtonSize, closeButtonSize); @@ -328,10 +334,16 @@ void drawTabCloseButton(QPainter *p, bool hover, bool selected, bool pressed) // draw background circle QColor background; if (selected) { - background = pressed ? tabBarCloseButtonBackgroundSelectedPressed : tabBarCloseButtonBackgroundSelectedHovered; + if (documentMode) + background = pressed ? tabBarCloseButtonBackgroundSelectedPressed : tabBarCloseButtonBackgroundSelectedHovered; + else + background = QColor(255, 255, 255, pressed ? 150 : 100); // Translucent white } else { background = pressed ? tabBarCloseButtonBackgroundPressed : tabBarCloseButtonBackgroundHovered; + if (!documentMode) + background = background.lighter(pressed ? 135 : 140); // Lighter tab background, lighter color } + p->setPen(Qt::transparent); p->setBrush(background); p->drawRoundedRect(rect, closeButtonCornerRadius, closeButtonCornerRadius); @@ -340,7 +352,7 @@ void drawTabCloseButton(QPainter *p, bool hover, bool selected, bool pressed) // draw cross const int margin = 3; QPen crossPen; - crossPen.setColor(selected ? tabBarCloseButtonCrossSelected : tabBarCloseButtonCross); + crossPen.setColor(selected ? (documentMode ? tabBarCloseButtonCrossSelected : Qt::white) : tabBarCloseButtonCross); crossPen.setWidthF(1.1); crossPen.setCapStyle(Qt::FlatCap); p->setPen(crossPen); @@ -1186,9 +1198,10 @@ void QMacStylePrivate::drawFocusRing(QPainter *p, const QRect &targetRect, int h } #ifndef QT_NO_TABBAR -void QMacStylePrivate::tabLayout(const QStyleOptionTab *opt, const QWidget *widget, QRect *textRect) const +void QMacStylePrivate::tabLayout(const QStyleOptionTab *opt, const QWidget *widget, QRect *textRect, QRect *iconRect) const { Q_ASSERT(textRect); + Q_ASSERT(iconRect); QRect tr = opt->rect; const bool verticalTabs = opt->shape == QTabBar::RoundedEast || opt->shape == QTabBar::RoundedWest @@ -1222,6 +1235,26 @@ void QMacStylePrivate::tabLayout(const QStyleOptionTab *opt, const QWidget *widg tr.setLeft(tr.left() + 4 + buttonSize); } + // icon + if (!opt->icon.isNull()) { + QSize iconSize = opt->iconSize; + if (!iconSize.isValid()) { + int iconExtent = proxyStyle->pixelMetric(QStyle::PM_SmallIconSize); + iconSize = QSize(iconExtent, iconExtent); + } + QSize tabIconSize = opt->icon.actualSize(iconSize, + (opt->state & QStyle::State_Enabled) ? QIcon::Normal : QIcon::Disabled, + (opt->state & QStyle::State_Selected) ? QIcon::On : QIcon::Off); + // High-dpi icons do not need adjustment; make sure tabIconSize is not larger than iconSize + tabIconSize = QSize(qMin(tabIconSize.width(), iconSize.width()), qMin(tabIconSize.height(), iconSize.height())); + + *iconRect = QRect(tr.left(), tr.center().y() - tabIconSize.height() / 2, + tabIconSize.width(), tabIconSize.height()); + if (!verticalTabs) + *iconRect = proxyStyle->visualRect(opt->direction, opt->rect, *iconRect); + tr.setLeft(tr.left() + tabIconSize.width() + 4); + } + if (!verticalTabs) tr = proxyStyle->visualRect(opt->direction, opt->rect, tr); @@ -1487,7 +1520,7 @@ void QMacStylePrivate::initComboboxBdi(const QStyleOptionComboBox *combo, HIThem // an extra check here before using the mini and small buttons. int h = combo->rect.size().height(); if (combo->editable){ -#ifndef QT_NO_DATETIMEEDIT +#if QT_CONFIG(datetimeedit) if (qobject_cast<const QDateTimeEdit *>(widget)) { // Except when, you know, we get a QDateTimeEdit with calendarPopup // enabled. And then things get weird, basically because it's a @@ -2354,6 +2387,8 @@ void QMacStyle::polish(QWidget* w) QPalette p = w->palette(); p.setColor(QPalette::WindowText, QColor(17, 17, 17)); w->setPalette(p); + w->setAttribute(Qt::WA_SetPalette, false); + w->setAttribute(Qt::WA_SetFont, false); } } #endif @@ -2395,6 +2430,15 @@ void QMacStyle::unpolish(QWidget* w) } #endif +#ifndef QT_NO_TABBAR + if (qobject_cast<QTabBar*>(w)) { + if (!w->testAttribute(Qt::WA_SetFont)) + w->setFont(qApp->font(w)); + if (!w->testAttribute(Qt::WA_SetPalette)) + w->setPalette(qApp->palette(w)); + } +#endif + if (QRubberBand *rubber = qobject_cast<QRubberBand*>(w)) { rubber->setWindowOpacity(1.0); rubber->setAttribute(Qt::WA_PaintOnScreen, true); @@ -3579,14 +3623,16 @@ void QMacStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPai case PE_IndicatorTabClose: { // Make close button visible only on the hovered tab. if (QTabBar *tabBar = qobject_cast<QTabBar*>(w->parentWidget())) { + const bool documentMode = tabBar->documentMode(); const QTabBarPrivate *tabBarPrivate = static_cast<QTabBarPrivate *>(QObjectPrivate::get(tabBar)); const int hoveredTabIndex = tabBarPrivate->hoveredTabIndex(); - if (hoveredTabIndex != -1 && ((w == tabBar->tabButton(hoveredTabIndex, QTabBar::LeftSide)) || - (w == tabBar->tabButton(hoveredTabIndex, QTabBar::RightSide)))) { + if (!documentMode || + (hoveredTabIndex != -1 && ((w == tabBar->tabButton(hoveredTabIndex, QTabBar::LeftSide)) || + (w == tabBar->tabButton(hoveredTabIndex, QTabBar::RightSide))))) { const bool hover = (opt->state & State_MouseOver); const bool selected = (opt->state & State_Selected); const bool pressed = (opt->state & State_Sunken); - drawTabCloseButton(p, hover, selected, pressed); + drawTabCloseButton(p, hover, selected, pressed, documentMode); } } } break; @@ -3729,7 +3775,7 @@ void QMacStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPainter CGRect bounds = ir.toCGRect(); bool noVerticalHeader = true; -#ifndef QT_NO_TABLEVIEW +#if QT_CONFIG(tableview) if (w) if (const QTableView *table = qobject_cast<const QTableView *>(w->parentWidget())) noVerticalHeader = !table->verticalHeader()->isVisible(); @@ -4831,7 +4877,8 @@ QRect QMacStyle::subElementRect(SubElement sr, const QStyleOption *opt, break; case SE_TabBarTabText: if (const QStyleOptionTab *tab = qstyleoption_cast<const QStyleOptionTab *>(opt)) { - d->tabLayout(tab, widget, &rect); + QRect dummyIconRect; + d->tabLayout(tab, widget, &rect, &dummyIconRect); } break; case SE_TabBarTabLeftButton: diff --git a/src/plugins/styles/mac/qmacstyle_mac_p_p.h b/src/plugins/styles/mac/qmacstyle_mac_p_p.h index 7c9c0f8f3c..f1c355e621 100644 --- a/src/plugins/styles/mac/qmacstyle_mac_p_p.h +++ b/src/plugins/styles/mac/qmacstyle_mac_p_p.h @@ -82,7 +82,9 @@ #include <qpushbutton.h> #endif #include <qradiobutton.h> +#if QT_CONFIG(rubberband) #include <qrubberband.h> +#endif #include <qsizegrip.h> #include <qspinbox.h> #include <qsplitter.h> @@ -92,9 +94,13 @@ #include <qtoolbar.h> #include <qtoolbutton.h> #include <qtreeview.h> +#if QT_CONFIG(tableview) #include <qtableview.h> +#endif #include <qdebug.h> +#if QT_CONFIG(datetimeedit) #include <qdatetimeedit.h> +#endif #include <qmath.h> #include <qpair.h> #include <qvector.h> @@ -164,7 +170,7 @@ typedef void (^QCocoaDrawRectBlock)(CGContextRef, const CGRect &); do { \ static const int sizes[] = { (large), (small), (mini) }; \ return sizes[controlSize]; \ - } while (0) + } while (false) #if QT_CONFIG(pushbutton) bool qt_mac_buttonIsRenderedFlat(const QPushButton *pushButton, const QStyleOptionButton *option); @@ -242,7 +248,7 @@ public: void drawFocusRing(QPainter *p, const QRect &targetRect, int hMargin, int vMargin, qreal radius = 0) const; #ifndef QT_NO_TABBAR - void tabLayout(const QStyleOptionTab *opt, const QWidget *widget, QRect *textRect) const; + void tabLayout(const QStyleOptionTab *opt, const QWidget *widget, QRect *textRect, QRect *iconRect) const; #endif public: diff --git a/src/plugins/styles/windowsvista/qwindowsvistastyle_p_p.h b/src/plugins/styles/windowsvista/qwindowsvistastyle_p_p.h index ee3a12c641..36c8f9d818 100644 --- a/src/plugins/styles/windowsvista/qwindowsvistastyle_p_p.h +++ b/src/plugins/styles/windowsvista/qwindowsvistastyle_p_p.h @@ -82,7 +82,9 @@ #include <qdialogbuttonbox.h> #endif #include <qinputdialog.h> +#if QT_CONFIG(tableview) #include <qtableview.h> +#endif #include <qdatetime.h> #include <qcommandlinkbutton.h> diff --git a/src/plugins/styles/windowsvista/qwindowsxpstyle.cpp b/src/plugins/styles/windowsvista/qwindowsxpstyle.cpp index a21ce4b531..e670794cd3 100644 --- a/src/plugins/styles/windowsvista/qwindowsxpstyle.cpp +++ b/src/plugins/styles/windowsvista/qwindowsxpstyle.cpp @@ -1165,7 +1165,7 @@ void QWindowsXPStyle::polish(QWidget *widget) widget->setAttribute(Qt::WA_Hover); } -#ifndef QT_NO_RUBBERBAND +#if QT_CONFIG(rubberband) if (qobject_cast<QRubberBand*>(widget)) { widget->setWindowOpacity(0.6); } @@ -1200,7 +1200,7 @@ void QWindowsXPStyle::polish(QPalette &pal) /*! \reimp */ void QWindowsXPStyle::unpolish(QWidget *widget) { -#ifndef QT_NO_RUBBERBAND +#if QT_CONFIG(rubberband) if (qobject_cast<QRubberBand*>(widget)) { widget->setWindowOpacity(1.0); } @@ -2418,7 +2418,7 @@ void QWindowsXPStyle::drawControl(ControlElement element, const QStyleOption *op } break; #endif // QT_NO_DOCKWIDGET -#ifndef QT_NO_RUBBERBAND +#if QT_CONFIG(rubberband) case CE_RubberBand: if (qstyleoption_cast<const QStyleOptionRubberBand *>(option)) { QColor highlight = option->palette.color(QPalette::Active, QPalette::Highlight); @@ -2434,7 +2434,7 @@ void QWindowsXPStyle::drawControl(ControlElement element, const QStyleOption *op return; } break; -#endif // QT_NO_RUBBERBAND +#endif // QT_CONFIG(rubberband) case CE_HeaderEmptyArea: if (option->state & State_Horizontal) { @@ -3758,12 +3758,12 @@ int QWindowsXPStyle::styleHint(StyleHint hint, const QStyleOption *option, const } } break; -#ifndef QT_NO_RUBBERBAND +#if QT_CONFIG(rubberband) case SH_RubberBand_Mask: if (qstyleoption_cast<const QStyleOptionRubberBand *>(option)) res = 0; break; -#endif // QT_NO_RUBBERBAND +#endif // QT_CONFIG(rubberband) case SH_ItemView_DrawDelegateFrame: res = 1; |