summaryrefslogtreecommitdiffstats
path: root/src/widgets
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@qt.io>2017-08-02 22:49:38 +0200
committerOswald Buddenhagen <oswald.buddenhagen@qt.io>2017-08-02 22:52:32 +0200
commitee07b912a1768ea0b103544f9eeac41f3cf50cf6 (patch)
tree15bfa7e4a9c098511c1fc89e2b2c240520b85e2d /src/widgets
parent4bfff6a98b59b32605d881a463ad3edc221a7dc8 (diff)
parenta96656a8fb6a3c1fc7765659efff28f807fd0deb (diff)
Merge remote-tracking branch 'origin/5.9' into dev
Conflicts: src/plugins/platforms/xcb/qxcbconnection.h src/plugins/platforms/xcb/qxcbconnection_xi2.cpp src/plugins/sqldrivers/sqlite/qsql_sqlite.cpp src/plugins/styles/mac/qmacstyle_mac.mm src/widgets/widgets/qdockarealayout.cpp src/widgets/widgets/qmainwindow.cpp src/widgets/widgets/qmainwindowlayout.cpp src/widgets/widgets/qmainwindowlayout_p.h tests/auto/corelib/tools/qlocale/tst_qlocale.cpp tests/auto/other/macnativeevents/BLACKLIST tests/auto/widgets/widgets/qmenu/BLACKLIST Change-Id: Ic8e724b80a65e7b1af25511b0e674d209265e567
Diffstat (limited to 'src/widgets')
-rw-r--r--src/widgets/accessible/accessible.pri7
-rw-r--r--src/widgets/accessible/complexwidgets.cpp17
-rw-r--r--src/widgets/accessible/complexwidgets_p.h10
-rw-r--r--src/widgets/accessible/itemviews.cpp7
-rw-r--r--src/widgets/accessible/itemviews_p.h5
-rw-r--r--src/widgets/accessible/qaccessiblewidgetfactory.cpp14
-rw-r--r--src/widgets/accessible/qaccessiblewidgets.cpp16
-rw-r--r--src/widgets/accessible/qaccessiblewidgets_p.h8
-rw-r--r--src/widgets/dialogs/qfiledialog.cpp10
-rw-r--r--src/widgets/dialogs/qfileinfogatherer.cpp2
-rw-r--r--src/widgets/dialogs/qfilesystemmodel.cpp8
-rw-r--r--src/widgets/graphicsview/qgraphicsproxywidget.cpp1
-rw-r--r--src/widgets/itemviews/itemviews.pri25
-rw-r--r--src/widgets/itemviews/qabstractitemdelegate.cpp3
-rw-r--r--src/widgets/itemviews/qabstractitemdelegate.h7
-rw-r--r--src/widgets/itemviews/qabstractitemdelegate_p.h4
-rw-r--r--src/widgets/itemviews/qabstractitemview.cpp3
-rw-r--r--src/widgets/itemviews/qabstractitemview.h7
-rw-r--r--src/widgets/itemviews/qabstractitemview_p.h4
-rw-r--r--src/widgets/itemviews/qdatawidgetmapper.cpp4
-rw-r--r--src/widgets/itemviews/qdatawidgetmapper.h5
-rw-r--r--src/widgets/itemviews/qdirmodel.cpp3
-rw-r--r--src/widgets/itemviews/qdirmodel.h7
-rw-r--r--src/widgets/itemviews/qheaderview.cpp3
-rw-r--r--src/widgets/itemviews/qheaderview.h7
-rw-r--r--src/widgets/itemviews/qheaderview_p.h6
-rw-r--r--src/widgets/itemviews/qitemdelegate.cpp3
-rw-r--r--src/widgets/itemviews/qitemdelegate.h7
-rw-r--r--src/widgets/itemviews/qitemeditorfactory.cpp22
-rw-r--r--src/widgets/itemviews/qitemeditorfactory.h7
-rw-r--r--src/widgets/itemviews/qitemeditorfactory_p.h7
-rw-r--r--src/widgets/itemviews/qlistview.cpp13
-rw-r--r--src/widgets/itemviews/qlistview.h7
-rw-r--r--src/widgets/itemviews/qlistview_p.h4
-rw-r--r--src/widgets/itemviews/qstyleditemdelegate.cpp3
-rw-r--r--src/widgets/itemviews/qstyleditemdelegate.h7
-rw-r--r--src/widgets/kernel/qtooltip.cpp6
-rw-r--r--src/widgets/kernel/qwidget.cpp2
-rw-r--r--src/widgets/styles/qcommonstyle.cpp96
-rw-r--r--src/widgets/styles/qcommonstyle_p.h8
-rw-r--r--src/widgets/styles/qfusionstyle.cpp2
-rw-r--r--src/widgets/styles/qpixmapstyle.cpp8
-rw-r--r--src/widgets/styles/qstyleoption.cpp16
-rw-r--r--src/widgets/styles/qstyleoption.h22
-rw-r--r--src/widgets/styles/qstylesheetstyle.cpp92
-rw-r--r--src/widgets/styles/qwindowsstyle.cpp33
-rw-r--r--src/widgets/util/qcompleter.cpp30
-rw-r--r--src/widgets/widgets/qabstractbutton.cpp4
-rw-r--r--src/widgets/widgets/qabstractscrollarea.cpp2
-rw-r--r--src/widgets/widgets/qcalendarwidget.cpp4
-rw-r--r--src/widgets/widgets/qcalendarwidget.h8
-rw-r--r--src/widgets/widgets/qcombobox.cpp3
-rw-r--r--src/widgets/widgets/qcombobox.h6
-rw-r--r--src/widgets/widgets/qcombobox_p.h5
-rw-r--r--src/widgets/widgets/qdatetimeedit_p.h1
-rw-r--r--src/widgets/widgets/qdockarealayout.cpp118
-rw-r--r--src/widgets/widgets/qdockarealayout_p.h18
-rw-r--r--src/widgets/widgets/qdockwidget.cpp7
-rw-r--r--src/widgets/widgets/qdockwidget.h7
-rw-r--r--src/widgets/widgets/qdockwidget_p.h4
-rw-r--r--src/widgets/widgets/qlineedit.cpp2
-rw-r--r--src/widgets/widgets/qlineedit_p.cpp2
-rw-r--r--src/widgets/widgets/qmainwindow.cpp36
-rw-r--r--src/widgets/widgets/qmainwindow.h32
-rw-r--r--src/widgets/widgets/qmainwindowlayout.cpp190
-rw-r--r--src/widgets/widgets/qmainwindowlayout_p.h30
-rw-r--r--src/widgets/widgets/qmdiarea.cpp74
-rw-r--r--src/widgets/widgets/qmdiarea.h10
-rw-r--r--src/widgets/widgets/qmdiarea_p.h6
-rw-r--r--src/widgets/widgets/qmdisubwindow.h2
-rw-r--r--src/widgets/widgets/qscrollbar.h2
-rw-r--r--src/widgets/widgets/qtabbar.cpp10
-rw-r--r--src/widgets/widgets/qtabbar.h7
-rw-r--r--src/widgets/widgets/qtabbar_p.h7
-rw-r--r--src/widgets/widgets/qtabwidget.cpp3
-rw-r--r--src/widgets/widgets/qtabwidget.h7
-rw-r--r--src/widgets/widgets/qtoolbar.cpp2
-rw-r--r--src/widgets/widgets/qtoolbarlayout.cpp2
-rw-r--r--src/widgets/widgets/qwidgetlinecontrol.cpp6
-rw-r--r--src/widgets/widgets/widgets.pri52
80 files changed, 637 insertions, 620 deletions
diff --git a/src/widgets/accessible/accessible.pri b/src/widgets/accessible/accessible.pri
index e63ae28d30..06467d0ff0 100644
--- a/src/widgets/accessible/accessible.pri
+++ b/src/widgets/accessible/accessible.pri
@@ -5,7 +5,6 @@ qtConfig(accessibility) {
accessible/qaccessiblewidget.h \
accessible/qaccessiblewidgetfactory_p.h \
accessible/complexwidgets_p.h \
- accessible/itemviews_p.h \
accessible/qaccessiblemenu_p.h \
accessible/qaccessiblewidgets_p.h \
accessible/rangecontrols_p.h \
@@ -15,9 +14,13 @@ qtConfig(accessibility) {
accessible/qaccessiblewidget.cpp \
accessible/qaccessiblewidgetfactory.cpp \
accessible/complexwidgets.cpp \
- accessible/itemviews.cpp \
accessible/qaccessiblemenu.cpp \
accessible/qaccessiblewidgets.cpp \
accessible/rangecontrols.cpp \
accessible/simplewidgets.cpp
+
+ qtConfig(itemviews) {
+ HEADERS += accessible/itemviews_p.h
+ SOURCES += accessible/itemviews.cpp
+ }
}
diff --git a/src/widgets/accessible/complexwidgets.cpp b/src/widgets/accessible/complexwidgets.cpp
index 50aba759c3..5442c145a0 100644
--- a/src/widgets/accessible/complexwidgets.cpp
+++ b/src/widgets/accessible/complexwidgets.cpp
@@ -42,10 +42,16 @@
#include <qaccessible.h>
#include <qapplication.h>
#include <qevent.h>
+#if QT_CONFIG(itemviews)
#include <qheaderview.h>
+#endif
+#if QT_CONFIG(tabbar)
#include <qtabbar.h>
+#include <private/qtabbar_p.h>
+#endif
+#if QT_CONFIG(combobox)
#include <qcombobox.h>
-#include <qlistview.h>
+#endif
#include <qlineedit.h>
#include <qstyle.h>
#include <qstyleoption.h>
@@ -53,7 +59,6 @@
#if QT_CONFIG(whatsthis)
#include <qwhatsthis.h>
#endif
-#include <private/qtabbar_p.h>
#include <QAbstractScrollArea>
#include <QScrollArea>
#include <QScrollBar>
@@ -66,7 +71,7 @@ QT_BEGIN_NAMESPACE
QString qt_accStripAmp(const QString &text);
QString qt_accHotKey(const QString &text);
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
/*!
\class QAccessibleTabBar
\brief The QAccessibleTabBar class implements the QAccessibleInterface for tab bars.
@@ -259,9 +264,9 @@ QString QAccessibleTabBar::text(QAccessible::Text t) const
return QString();
}
-#endif // QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
-#ifndef QT_NO_COMBOBOX
+#if QT_CONFIG(combobox)
/*!
\class QAccessibleComboBox
\brief The QAccessibleComboBox class implements the QAccessibleInterface for editable and read-only combo boxes.
@@ -379,7 +384,7 @@ QStringList QAccessibleComboBox::keyBindingsForAction(const QString &/*actionNam
return QStringList();
}
-#endif // QT_NO_COMBOBOX
+#endif // QT_CONFIG(combobox)
#ifndef QT_NO_SCROLLAREA
// ======================= QAccessibleAbstractScrollArea =======================
diff --git a/src/widgets/accessible/complexwidgets_p.h b/src/widgets/accessible/complexwidgets_p.h
index d43b06f4a4..6f5c950631 100644
--- a/src/widgets/accessible/complexwidgets_p.h
+++ b/src/widgets/accessible/complexwidgets_p.h
@@ -54,7 +54,9 @@
#include <QtWidgets/private/qtwidgetsglobal_p.h>
#include <QtCore/qpointer.h>
#include <QtWidgets/qaccessiblewidget.h>
+#if QT_CONFIG(itemviews)
#include <QtWidgets/qabstractitemview.h>
+#endif
QT_BEGIN_NAMESPACE
@@ -105,7 +107,7 @@ public:
};
#endif // QT_NO_SCROLLAREA
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
class QAccessibleTabBar : public QAccessibleWidget
{
public:
@@ -122,9 +124,9 @@ protected:
QTabBar *tabBar() const;
mutable QHash<int, QAccessible::Id> m_childInterfaces;
};
-#endif // QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
-#ifndef QT_NO_COMBOBOX
+#if QT_CONFIG(combobox)
class QAccessibleComboBox : public QAccessibleWidget
{
public:
@@ -146,7 +148,7 @@ public:
protected:
QComboBox *comboBox() const;
};
-#endif // QT_NO_COMBOBOX
+#endif // QT_CONFIG(combobox)
#endif // QT_NO_ACCESSIBILITY
diff --git a/src/widgets/accessible/itemviews.cpp b/src/widgets/accessible/itemviews.cpp
index 4d1a4589ee..4d37400dc9 100644
--- a/src/widgets/accessible/itemviews.cpp
+++ b/src/widgets/accessible/itemviews.cpp
@@ -43,7 +43,9 @@
#if QT_CONFIG(tableview)
#include <qtableview.h>
#endif
+#if QT_CONFIG(listview)
#include <qlistview.h>
+#endif
#if QT_CONFIG(treeview)
#include <qtreeview.h>
#include <private/qtreeview_p.h>
@@ -54,7 +56,6 @@
QT_BEGIN_NAMESPACE
-#ifndef QT_NO_ITEMVIEWS
/*
Implementation of the IAccessible2 table2 interface. Much simpler than
the other table interfaces since there is only the main table and cells:
@@ -96,7 +97,7 @@ QAccessibleTable::QAccessibleTable(QWidget *w)
m_role = QAccessible::Tree;
} else
#endif
-#ifndef QT_NO_LISTVIEW
+#if QT_CONFIG(listview)
if (qobject_cast<const QListView*>(view())) {
m_role = QAccessible::List;
} else
@@ -1213,8 +1214,6 @@ QHeaderView *QAccessibleTableHeaderCell::headerView() const
return header;
}
-#endif // QT_NO_ITEMVIEWS
-
QT_END_NAMESPACE
#endif // QT_NO_ACCESSIBILITY
diff --git a/src/widgets/accessible/itemviews_p.h b/src/widgets/accessible/itemviews_p.h
index 9542a569db..72841b8a0f 100644
--- a/src/widgets/accessible/itemviews_p.h
+++ b/src/widgets/accessible/itemviews_p.h
@@ -58,13 +58,12 @@
#include <QtWidgets/qabstractitemview.h>
#include <QtWidgets/qheaderview.h>
+QT_REQUIRE_CONFIG(itemviews);
QT_BEGIN_NAMESPACE
#ifndef QT_NO_ACCESSIBILITY
-#ifndef QT_NO_ITEMVIEWS
-
class QAccessibleTableCell;
class QAccessibleTableHeaderCell;
@@ -299,8 +298,6 @@ private:
};
-#endif
-
#endif // QT_NO_ACCESSIBILITY
QT_END_NAMESPACE
diff --git a/src/widgets/accessible/qaccessiblewidgetfactory.cpp b/src/widgets/accessible/qaccessiblewidgetfactory.cpp
index a39674dc7a..c3de7a7dd6 100644
--- a/src/widgets/accessible/qaccessiblewidgetfactory.cpp
+++ b/src/widgets/accessible/qaccessiblewidgetfactory.cpp
@@ -43,7 +43,9 @@
#include "simplewidgets_p.h"
#include "rangecontrols_p.h"
#include "complexwidgets_p.h"
+#if QT_CONFIG(itemviews)
#include "itemviews_p.h"
+#endif
#include <qtoolbutton.h>
#if QT_CONFIG(treeview)
@@ -79,7 +81,7 @@ QAccessibleInterface *qAccessibleFactory(const QString &classname, QObject *obje
else
iface = new QAccessibleLineEdit(widget);
#endif
-#ifndef QT_NO_COMBOBOX
+#if QT_CONFIG(combobox)
} else if (classname == QLatin1String("QComboBox")) {
iface = new QAccessibleComboBox(widget);
#endif
@@ -146,12 +148,12 @@ QAccessibleInterface *qAccessibleFactory(const QString &classname, QObject *obje
} else if (classname == QLatin1String("QTreeView")) {
iface = new QAccessibleTree(widget);
#endif // QT_CONFIG(treeview)
-#ifndef QT_NO_ITEMVIEWS
+#if QT_CONFIG(itemviews)
} else if (classname == QLatin1String("QTableView") || classname == QLatin1String("QListView")) {
iface = new QAccessibleTable(widget);
// ### This should be cleaned up. We return the parent for the scrollarea to hide it.
-#endif // QT_NO_ITEMVIEWS
-#ifndef QT_NO_TABBAR
+#endif // QT_CONFIG(itemviews)
+#if QT_CONFIG(tabbar)
} else if (classname == QLatin1String("QTabBar")) {
iface = new QAccessibleTabBar(widget);
#endif
@@ -209,11 +211,11 @@ QAccessibleInterface *qAccessibleFactory(const QString &classname, QObject *obje
} else if (classname == QLatin1String("QScrollArea")) {
iface = new QAccessibleScrollArea(widget);
#endif
-#ifndef QT_NO_CALENDARWIDGET
+#if QT_CONFIG(calendarwidget)
} else if (classname == QLatin1String("QCalendarWidget")) {
iface = new QAccessibleCalendarWidget(widget);
#endif
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
} else if (classname == QLatin1String("QDockWidget")) {
iface = new QAccessibleDockWidget(widget);
#endif
diff --git a/src/widgets/accessible/qaccessiblewidgets.cpp b/src/widgets/accessible/qaccessiblewidgets.cpp
index 60f489d487..e28833274e 100644
--- a/src/widgets/accessible/qaccessiblewidgets.cpp
+++ b/src/widgets/accessible/qaccessiblewidgets.cpp
@@ -62,11 +62,17 @@
#include <QRubberBand>
#endif
#include <QTextBrowser>
+#if QT_CONFIG(calendarwidget)
#include <QCalendarWidget>
+#endif
+#if QT_CONFIG(itemviews)
#include <QAbstractItemView>
+#endif
+#if QT_CONFIG(dockwidget)
#include <QDockWidget>
-#include <QMainWindow>
#include <private/qdockwidget_p.h>
+#endif
+#include <QMainWindow>
#include <QFocusFrame>
#ifndef QT_NO_ACCESSIBILITY
@@ -506,7 +512,7 @@ QAccessible::Role QAccessibleTextBrowser::role() const
}
#endif // QT_NO_TEXTBROWSER && QT_NO_CURSOR
-#ifndef QT_NO_CALENDARWIDGET
+#if QT_CONFIG(calendarwidget)
// ===================== QAccessibleCalendarWidget ========================
QAccessibleCalendarWidget::QAccessibleCalendarWidget(QWidget *widget)
: QAccessibleWidget(widget, QAccessible::Table)
@@ -561,9 +567,9 @@ QWidget *QAccessibleCalendarWidget::navigationBar() const
}
return 0;
}
-#endif // QT_NO_CALENDARWIDGET
+#endif // QT_CONFIG(calendarwidget)
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
// Dock Widget - order of children:
// - Content widget
@@ -644,7 +650,7 @@ QString QAccessibleDockWidget::text(QAccessible::Text t) const
}
return QString();
}
-#endif // QT_NO_DOCKWIDGET
+#endif // QT_CONFIG(dockwidget)
#ifndef QT_NO_CURSOR
diff --git a/src/widgets/accessible/qaccessiblewidgets_p.h b/src/widgets/accessible/qaccessiblewidgets_p.h
index 4d945a2016..3ff67c0c9b 100644
--- a/src/widgets/accessible/qaccessiblewidgets_p.h
+++ b/src/widgets/accessible/qaccessiblewidgets_p.h
@@ -266,7 +266,7 @@ public:
};
#endif // QT_NO_TEXTBROWSER && QT_NO_CURSOR
-#ifndef QT_NO_CALENDARWIDGET
+#if QT_CONFIG(calendarwidget)
class QAccessibleCalendarWidget : public QAccessibleWidget
{
public:
@@ -284,9 +284,9 @@ private:
QAbstractItemView *calendarView() const;
QWidget *navigationBar() const;
};
-#endif // QT_NO_CALENDARWIDGET
+#endif // QT_CONFIG(calendarwidget)
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
class QAccessibleDockWidget: public QAccessibleWidget
{
public:
@@ -302,7 +302,7 @@ protected:
QDockWidgetLayout *dockWidgetLayout() const;
};
-#endif // QT_NO_DOCKWIDGET
+#endif // QT_CONFIG(dockwidget)
#ifndef QT_NO_MAINWINDOW
class QAccessibleMainWindow : public QAccessibleWidget
diff --git a/src/widgets/dialogs/qfiledialog.cpp b/src/widgets/dialogs/qfiledialog.cpp
index b638adeaec..97afce1734 100644
--- a/src/widgets/dialogs/qfiledialog.cpp
+++ b/src/widgets/dialogs/qfiledialog.cpp
@@ -3417,7 +3417,7 @@ void QFileDialogPrivate::_q_deleteCurrent()
QModelIndexList list = qFileDialogUi->listView->selectionModel()->selectedRows();
for (int i = list.count() - 1; i >= 0; --i) {
- QModelIndex index = list.at(i);
+ QPersistentModelIndex index = list.at(i);
if (index == qFileDialogUi->listView->rootIndex())
continue;
@@ -3427,7 +3427,6 @@ void QFileDialogPrivate::_q_deleteCurrent()
QString fileName = index.data(QFileSystemModel::FileNameRole).toString();
QString filePath = index.data(QFileSystemModel::FilePathRole).toString();
- bool isDir = model->isDir(index);
QFile::Permissions p(index.parent().data(QFileSystemModel::FilePermissions).toInt());
#if QT_CONFIG(messagebox)
@@ -3443,13 +3442,16 @@ void QFileDialogPrivate::_q_deleteCurrent()
QMessageBox::Yes | QMessageBox::No, QMessageBox::No) == QMessageBox::No)
return;
+ // the event loop has run, we have to validate if the index is valid because the model might have removed it.
+ if (!index.isValid())
+ return;
+
#else
if (!(p & QFile::WriteUser))
return;
#endif // QT_CONFIG(messagebox)
- // the event loop has run, we can NOT reuse index because the model might have removed it.
- if (isDir) {
+ if (model->isDir(index) && !model->fileInfo(index).isSymLink()) {
if (!removeDirectory(filePath)) {
#if QT_CONFIG(messagebox)
QMessageBox::warning(q, q->windowTitle(),
diff --git a/src/widgets/dialogs/qfileinfogatherer.cpp b/src/widgets/dialogs/qfileinfogatherer.cpp
index 9f2d15d31b..710ee611b9 100644
--- a/src/widgets/dialogs/qfileinfogatherer.cpp
+++ b/src/widgets/dialogs/qfileinfogatherer.cpp
@@ -98,7 +98,7 @@ QFileInfoGatherer::QFileInfoGatherer(QObject *parent)
if (listener.canConvert<QObject *>()) {
if (QObject *driveListener = listener.value<QObject *>()) {
connect(driveListener, SIGNAL(driveAdded()), this, SLOT(driveAdded()));
- connect(driveListener, SIGNAL(driveRemoved(QString)), this, SLOT(driveRemoved()));
+ connect(driveListener, SIGNAL(driveRemoved()), this, SLOT(driveRemoved()));
}
}
# endif // Q_OS_WIN && !Q_OS_WINRT
diff --git a/src/widgets/dialogs/qfilesystemmodel.cpp b/src/widgets/dialogs/qfilesystemmodel.cpp
index 872b8daf22..f88ac71cf3 100644
--- a/src/widgets/dialogs/qfilesystemmodel.cpp
+++ b/src/widgets/dialogs/qfilesystemmodel.cpp
@@ -203,8 +203,12 @@ QFileInfo QFileSystemModel::fileInfo(const QModelIndex &index) const
bool QFileSystemModel::remove(const QModelIndex &aindex)
{
- const QString path = filePath(aindex);
- const bool success = QFileInfo(path).isFile() ? QFile::remove(path) : QDir(path).removeRecursively();
+ Q_D(QFileSystemModel);
+
+ const QString path = d->filePath(aindex);
+ const QFileInfo fileInfo(path);
+ const bool success = (fileInfo.isFile() || fileInfo.isSymLink())
+ ? QFile::remove(path) : QDir(path).removeRecursively();
#ifndef QT_NO_FILESYSTEMWATCHER
if (success) {
QFileSystemModelPrivate * d = const_cast<QFileSystemModelPrivate*>(d_func());
diff --git a/src/widgets/graphicsview/qgraphicsproxywidget.cpp b/src/widgets/graphicsview/qgraphicsproxywidget.cpp
index eface182ae..5e692abd73 100644
--- a/src/widgets/graphicsview/qgraphicsproxywidget.cpp
+++ b/src/widgets/graphicsview/qgraphicsproxywidget.cpp
@@ -55,7 +55,6 @@
#include <QtGui/qpainter.h>
#include <QtWidgets/qstyleoption.h>
#include <QtWidgets/qgraphicsview.h>
-#include <QtWidgets/qlistview.h>
#include <QtWidgets/qlineedit.h>
#include <QtWidgets/qtextedit.h>
diff --git a/src/widgets/itemviews/itemviews.pri b/src/widgets/itemviews/itemviews.pri
index c68aa590bc..e95b640d18 100644
--- a/src/widgets/itemviews/itemviews.pri
+++ b/src/widgets/itemviews/itemviews.pri
@@ -6,29 +6,22 @@ HEADERS += \
itemviews/qabstractitemview_p.h \
itemviews/qheaderview.h \
itemviews/qheaderview_p.h \
- itemviews/qlistview.h \
- itemviews/qlistview_p.h \
itemviews/qbsptree_p.h \
itemviews/qabstractitemdelegate.h \
itemviews/qabstractitemdelegate_p.h \
itemviews/qitemdelegate.h \
- itemviews/qdirmodel.h \
itemviews/qwidgetitemdata_p.h \
itemviews/qitemeditorfactory.h \
itemviews/qitemeditorfactory_p.h \
- itemviews/qdatawidgetmapper.h \
itemviews/qstyleditemdelegate.h
SOURCES += \
itemviews/qabstractitemview.cpp \
itemviews/qheaderview.cpp \
- itemviews/qlistview.cpp \
itemviews/qbsptree.cpp \
itemviews/qabstractitemdelegate.cpp \
itemviews/qitemdelegate.cpp \
- itemviews/qdirmodel.cpp \
itemviews/qitemeditorfactory.cpp \
- itemviews/qdatawidgetmapper.cpp \
itemviews/qstyleditemdelegate.cpp
}
@@ -43,6 +36,24 @@ qtConfig(columnview) {
itemviews/qcolumnviewgrip.cpp
}
+qtConfig(datawidgetmapper) {
+ HEADERS += itemviews/qdatawidgetmapper.h
+ SOURCES += itemviews/qdatawidgetmapper.cpp
+}
+
+qtConfig(dirmodel) {
+ HEADERS += itemviews/qdirmodel.h
+ SOURCES += itemviews/qdirmodel.cpp
+}
+
+qtConfig(listview) {
+ HEADERS += \
+ itemviews/qlistview.h \
+ itemviews/qlistview_p.h
+
+ SOURCES += itemviews/qlistview.cpp
+}
+
qtConfig(listwidget) {
HEADERS += \
itemviews/qlistwidget.h \
diff --git a/src/widgets/itemviews/qabstractitemdelegate.cpp b/src/widgets/itemviews/qabstractitemdelegate.cpp
index 5b119cc79e..fd4699409c 100644
--- a/src/widgets/itemviews/qabstractitemdelegate.cpp
+++ b/src/widgets/itemviews/qabstractitemdelegate.cpp
@@ -39,7 +39,6 @@
#include "qabstractitemdelegate.h"
-#ifndef QT_NO_ITEMVIEWS
#include <qabstractitemmodel.h>
#include <qabstractitemview.h>
#include <qfontmetrics.h>
@@ -606,5 +605,3 @@ void QAbstractItemDelegatePrivate::_q_commitDataAndCloseEditor(QWidget *editor)
QT_END_NAMESPACE
#include "moc_qabstractitemdelegate.cpp"
-
-#endif // QT_NO_ITEMVIEWS
diff --git a/src/widgets/itemviews/qabstractitemdelegate.h b/src/widgets/itemviews/qabstractitemdelegate.h
index 9f7a7716af..9b6bde1c87 100644
--- a/src/widgets/itemviews/qabstractitemdelegate.h
+++ b/src/widgets/itemviews/qabstractitemdelegate.h
@@ -44,10 +44,9 @@
#include <QtCore/qobject.h>
#include <QtWidgets/qstyleoption.h>
-QT_BEGIN_NAMESPACE
-
+QT_REQUIRE_CONFIG(itemviews);
-#ifndef QT_NO_ITEMVIEWS
+QT_BEGIN_NAMESPACE
class QPainter;
class QModelIndex;
@@ -127,8 +126,6 @@ private:
Q_PRIVATE_SLOT(d_func(), void _q_commitDataAndCloseEditor(QWidget*))
};
-#endif // QT_NO_ITEMVIEWS
-
QT_END_NAMESPACE
#endif // QABSTRACTITEMDELEGATE_H
diff --git a/src/widgets/itemviews/qabstractitemdelegate_p.h b/src/widgets/itemviews/qabstractitemdelegate_p.h
index 0b03be63f0..da76d31e8b 100644
--- a/src/widgets/itemviews/qabstractitemdelegate_p.h
+++ b/src/widgets/itemviews/qabstractitemdelegate_p.h
@@ -55,7 +55,7 @@
#include "qabstractitemdelegate.h"
#include <private/qobject_p.h>
-#ifndef QT_NO_ITEMVIEWS
+QT_REQUIRE_CONFIG(itemviews);
QT_BEGIN_NAMESPACE
@@ -73,6 +73,4 @@ public:
QT_END_NAMESPACE
-#endif // QT_NO_ITEMVIEWS
-
#endif // QABSTRACTITEMDELEGATE_P_H
diff --git a/src/widgets/itemviews/qabstractitemview.cpp b/src/widgets/itemviews/qabstractitemview.cpp
index 78189c13c3..f7b0ecdf5d 100644
--- a/src/widgets/itemviews/qabstractitemview.cpp
+++ b/src/widgets/itemviews/qabstractitemview.cpp
@@ -39,7 +39,6 @@
#include "qabstractitemview.h"
-#ifndef QT_NO_ITEMVIEWS
#include <qpointer.h>
#include <qapplication.h>
#include <qclipboard.h>
@@ -4502,5 +4501,3 @@ QModelIndexList QAbstractItemViewPrivate::selectedDraggableIndexes() const
QT_END_NAMESPACE
#include "moc_qabstractitemview.cpp"
-
-#endif // QT_NO_ITEMVIEWS
diff --git a/src/widgets/itemviews/qabstractitemview.h b/src/widgets/itemviews/qabstractitemview.h
index e2249ec3aa..6a007da348 100644
--- a/src/widgets/itemviews/qabstractitemview.h
+++ b/src/widgets/itemviews/qabstractitemview.h
@@ -49,10 +49,9 @@
class tst_QAbstractItemView;
class tst_QTreeView;
-QT_BEGIN_NAMESPACE
-
+QT_REQUIRE_CONFIG(itemviews);
-#ifndef QT_NO_ITEMVIEWS
+QT_BEGIN_NAMESPACE
class QMenu;
class QDrag;
@@ -382,8 +381,6 @@ private:
Q_DECLARE_OPERATORS_FOR_FLAGS(QAbstractItemView::EditTriggers)
-#endif // QT_NO_ITEMVIEWS
-
QT_END_NAMESPACE
#endif // QABSTRACTITEMVIEW_H
diff --git a/src/widgets/itemviews/qabstractitemview_p.h b/src/widgets/itemviews/qabstractitemview_p.h
index 5e3858f491..d8af96af55 100644
--- a/src/widgets/itemviews/qabstractitemview_p.h
+++ b/src/widgets/itemviews/qabstractitemview_p.h
@@ -64,7 +64,7 @@
#include "QtCore/qbasictimer.h"
#include "QtCore/qelapsedtimer.h"
-#ifndef QT_NO_ITEMVIEWS
+QT_REQUIRE_CONFIG(itemviews);
QT_BEGIN_NAMESPACE
@@ -477,6 +477,4 @@ inline int qBinarySearch(const QVector<T> &vec, const T &item, int start, int en
QT_END_NAMESPACE
-#endif // QT_NO_ITEMVIEWS
-
#endif // QABSTRACTITEMVIEW_P_H
diff --git a/src/widgets/itemviews/qdatawidgetmapper.cpp b/src/widgets/itemviews/qdatawidgetmapper.cpp
index 99704c7911..1f0dbff7a9 100644
--- a/src/widgets/itemviews/qdatawidgetmapper.cpp
+++ b/src/widgets/itemviews/qdatawidgetmapper.cpp
@@ -39,8 +39,6 @@
#include "qdatawidgetmapper.h"
-#ifndef QT_NO_DATAWIDGETMAPPER
-
#include "qabstractitemmodel.h"
#include "qitemdelegate.h"
#include "qmetaobject.h"
@@ -827,5 +825,3 @@ QDataWidgetMapper::SubmitPolicy QDataWidgetMapper::submitPolicy() const
QT_END_NAMESPACE
#include "moc_qdatawidgetmapper.cpp"
-
-#endif // QT_NO_DATAWIDGETMAPPER
diff --git a/src/widgets/itemviews/qdatawidgetmapper.h b/src/widgets/itemviews/qdatawidgetmapper.h
index 4d244349ad..7d4d61378a 100644
--- a/src/widgets/itemviews/qdatawidgetmapper.h
+++ b/src/widgets/itemviews/qdatawidgetmapper.h
@@ -43,11 +43,10 @@
#include <QtWidgets/qtwidgetsglobal.h>
#include "QtCore/qobject.h"
-#ifndef QT_NO_DATAWIDGETMAPPER
+QT_REQUIRE_CONFIG(datawidgetmapper);
QT_BEGIN_NAMESPACE
-
class QAbstractItemDelegate;
class QAbstractItemModel;
class QModelIndex;
@@ -117,6 +116,4 @@ private:
QT_END_NAMESPACE
-#endif // QT_NO_DATAWIDGETMAPPER
#endif
-
diff --git a/src/widgets/itemviews/qdirmodel.cpp b/src/widgets/itemviews/qdirmodel.cpp
index 9b54c5c2fe..449850c42e 100644
--- a/src/widgets/itemviews/qdirmodel.cpp
+++ b/src/widgets/itemviews/qdirmodel.cpp
@@ -39,7 +39,6 @@
#include "qdirmodel.h"
-#ifndef QT_NO_DIRMODEL
#include <qfile.h>
#include <qfilesystemmodel.h>
#include <qurl.h>
@@ -1374,5 +1373,3 @@ QFileInfo QDirModelPrivate::resolvedInfo(QFileInfo info)
QT_END_NAMESPACE
#include "moc_qdirmodel.cpp"
-
-#endif // QT_NO_DIRMODEL
diff --git a/src/widgets/itemviews/qdirmodel.h b/src/widgets/itemviews/qdirmodel.h
index 90a9809986..30810cf4f6 100644
--- a/src/widgets/itemviews/qdirmodel.h
+++ b/src/widgets/itemviews/qdirmodel.h
@@ -45,10 +45,9 @@
#include <QtCore/qdir.h>
#include <QtWidgets/qfileiconprovider.h>
-QT_BEGIN_NAMESPACE
-
+QT_REQUIRE_CONFIG(dirmodel);
-#ifndef QT_NO_DIRMODEL
+QT_BEGIN_NAMESPACE
class QDirModelPrivate;
@@ -143,8 +142,6 @@ private:
Q_PRIVATE_SLOT(d_func(), void _q_refresh())
};
-#endif // QT_NO_DIRMODEL
-
QT_END_NAMESPACE
#endif // QDIRMODEL_H
diff --git a/src/widgets/itemviews/qheaderview.cpp b/src/widgets/itemviews/qheaderview.cpp
index 89d0c7f93c..d6db7deee7 100644
--- a/src/widgets/itemviews/qheaderview.cpp
+++ b/src/widgets/itemviews/qheaderview.cpp
@@ -39,7 +39,6 @@
#include "qheaderview.h"
-#ifndef QT_NO_ITEMVIEWS
#include <qbitarray.h>
#include <qbrush.h>
#include <qdebug.h>
@@ -3961,6 +3960,4 @@ bool QHeaderViewPrivate::read(QDataStream &in)
QT_END_NAMESPACE
-#endif // QT_NO_ITEMVIEWS
-
#include "moc_qheaderview.cpp"
diff --git a/src/widgets/itemviews/qheaderview.h b/src/widgets/itemviews/qheaderview.h
index 4be97c0c7e..ec4500d81e 100644
--- a/src/widgets/itemviews/qheaderview.h
+++ b/src/widgets/itemviews/qheaderview.h
@@ -43,10 +43,9 @@
#include <QtWidgets/qtwidgetsglobal.h>
#include <QtWidgets/qabstractitemview.h>
-QT_BEGIN_NAMESPACE
-
+QT_REQUIRE_CONFIG(itemviews);
-#ifndef QT_NO_ITEMVIEWS
+QT_BEGIN_NAMESPACE
class QHeaderViewPrivate;
class QStyleOptionHeader;
@@ -265,8 +264,6 @@ inline void QHeaderView::hideSection(int alogicalIndex)
inline void QHeaderView::showSection(int alogicalIndex)
{ setSectionHidden(alogicalIndex, false); }
-#endif // QT_NO_ITEMVIEWS
-
QT_END_NAMESPACE
#endif // QHEADERVIEW_H
diff --git a/src/widgets/itemviews/qheaderview_p.h b/src/widgets/itemviews/qheaderview_p.h
index d6b119512c..8fc8b88aa5 100644
--- a/src/widgets/itemviews/qheaderview_p.h
+++ b/src/widgets/itemviews/qheaderview_p.h
@@ -54,14 +54,14 @@
#include <QtWidgets/private/qtwidgetsglobal_p.h>
#include "private/qabstractitemview_p.h"
-#ifndef QT_NO_ITEMVIEWS
-
#include "QtCore/qbitarray.h"
#include "QtWidgets/qapplication.h"
#if QT_CONFIG(label)
#include "QtWidgets/qlabel.h"
#endif
+QT_REQUIRE_CONFIG(itemviews);
+
QT_BEGIN_NAMESPACE
class QHeaderViewPrivate: public QAbstractItemViewPrivate
@@ -391,6 +391,4 @@ Q_DECLARE_TYPEINFO(QHeaderViewPrivate::SectionItem, Q_PRIMITIVE_TYPE);
QT_END_NAMESPACE
-#endif // QT_NO_ITEMVIEWS
-
#endif // QHEADERVIEW_P_H
diff --git a/src/widgets/itemviews/qitemdelegate.cpp b/src/widgets/itemviews/qitemdelegate.cpp
index 86deea75b7..d9caebec8a 100644
--- a/src/widgets/itemviews/qitemdelegate.cpp
+++ b/src/widgets/itemviews/qitemdelegate.cpp
@@ -39,7 +39,6 @@
#include "qitemdelegate.h"
-#ifndef QT_NO_ITEMVIEWS
#include <qabstractitemmodel.h>
#include <qapplication.h>
#include <qbrush.h>
@@ -1199,5 +1198,3 @@ QStyleOptionViewItem QItemDelegate::setOptions(const QModelIndex &index,
QT_END_NAMESPACE
#include "moc_qitemdelegate.cpp"
-
-#endif // QT_NO_ITEMVIEWS
diff --git a/src/widgets/itemviews/qitemdelegate.h b/src/widgets/itemviews/qitemdelegate.h
index 3d98419c80..21594327ef 100644
--- a/src/widgets/itemviews/qitemdelegate.h
+++ b/src/widgets/itemviews/qitemdelegate.h
@@ -46,10 +46,9 @@
#include <QtGui/qpixmap.h>
#include <QtCore/qvariant.h>
-QT_BEGIN_NAMESPACE
-
+QT_REQUIRE_CONFIG(itemviews);
-#ifndef QT_NO_ITEMVIEWS
+QT_BEGIN_NAMESPACE
class QItemDelegatePrivate;
class QItemEditorFactory;
@@ -126,8 +125,6 @@ private:
Q_DISABLE_COPY(QItemDelegate)
};
-#endif // QT_NO_ITEMVIEWS
-
QT_END_NAMESPACE
#endif // QITEMDELEGATE_H
diff --git a/src/widgets/itemviews/qitemeditorfactory.cpp b/src/widgets/itemviews/qitemeditorfactory.cpp
index a31689e0b5..54b7c6666f 100644
--- a/src/widgets/itemviews/qitemeditorfactory.cpp
+++ b/src/widgets/itemviews/qitemeditorfactory.cpp
@@ -41,9 +41,9 @@
#include "qitemeditorfactory.h"
#include "qitemeditorfactory_p.h"
-#ifndef QT_NO_ITEMVIEWS
-
+#if QT_CONFIG(combobox)
#include <qcombobox.h>
+#endif
#if QT_CONFIG(datetimeedit)
#include <qdatetimeedit.h>
#endif
@@ -52,6 +52,8 @@
#endif
#include <qlineedit.h>
#include <qspinbox.h>
+#include <qstyle.h>
+#include <qstyleoption.h>
#include <limits.h>
#include <float.h>
#include <qapplication.h>
@@ -62,7 +64,7 @@
QT_BEGIN_NAMESPACE
-#ifndef QT_NO_COMBOBOX
+#if QT_CONFIG(combobox)
class QBooleanComboBox : public QComboBox
{
@@ -75,7 +77,7 @@ public:
bool value() const;
};
-#endif // QT_NO_COMBOBOX
+#endif // QT_CONFIG(combobox)
#ifndef QT_NO_SPINBOX
@@ -234,7 +236,7 @@ public:
QWidget *QDefaultItemEditorFactory::createEditor(int userType, QWidget *parent) const
{
switch (userType) {
-#ifndef QT_NO_COMBOBOX
+#if QT_CONFIG(combobox)
case QVariant::Bool: {
QBooleanComboBox *cb = new QBooleanComboBox(parent);
cb->setFrame(false);
@@ -300,7 +302,7 @@ QWidget *QDefaultItemEditorFactory::createEditor(int userType, QWidget *parent)
QByteArray QDefaultItemEditorFactory::valuePropertyName(int userType) const
{
switch (userType) {
-#ifndef QT_NO_COMBOBOX
+#if QT_CONFIG(combobox)
case QVariant::Bool:
return "currentIndex";
#endif
@@ -595,7 +597,7 @@ void QExpandingLineEdit::resizeToContents()
#endif // QT_NO_LINEEDIT
-#ifndef QT_NO_COMBOBOX
+#if QT_CONFIG(combobox)
QBooleanComboBox::QBooleanComboBox(QWidget *parent)
: QComboBox(parent)
@@ -614,14 +616,12 @@ bool QBooleanComboBox::value() const
return (currentIndex() == 1);
}
-#endif // QT_NO_COMBOBOX
+#endif // QT_CONFIG(combobox)
QT_END_NAMESPACE
-#if !defined(QT_NO_LINEEDIT) || !defined(QT_NO_COMBOBOX)
+#if !defined(QT_NO_LINEEDIT) || QT_CONFIG(combobox)
#include "qitemeditorfactory.moc"
#endif
#include "moc_qitemeditorfactory_p.cpp"
-
-#endif // QT_NO_ITEMVIEWS
diff --git a/src/widgets/itemviews/qitemeditorfactory.h b/src/widgets/itemviews/qitemeditorfactory.h
index dea9bce794..f2610ad3de 100644
--- a/src/widgets/itemviews/qitemeditorfactory.h
+++ b/src/widgets/itemviews/qitemeditorfactory.h
@@ -46,10 +46,9 @@
#include <QtCore/qhash.h>
#include <QtCore/qvariant.h>
-QT_BEGIN_NAMESPACE
-
+QT_REQUIRE_CONFIG(itemviews);
-#ifndef QT_NO_ITEMVIEWS
+QT_BEGIN_NAMESPACE
class QWidget;
@@ -111,8 +110,6 @@ private:
QHash<int, QItemEditorCreatorBase *> creatorMap;
};
-#endif // QT_NO_ITEMVIEWS
-
QT_END_NAMESPACE
#endif // QITEMEDITORFACTORY_H
diff --git a/src/widgets/itemviews/qitemeditorfactory_p.h b/src/widgets/itemviews/qitemeditorfactory_p.h
index 91edcf65ba..409ecc684f 100644
--- a/src/widgets/itemviews/qitemeditorfactory_p.h
+++ b/src/widgets/itemviews/qitemeditorfactory_p.h
@@ -55,12 +55,11 @@
#include <QtWidgets/private/qtwidgetsglobal_p.h>
#include <qlineedit.h>
-#ifndef QT_NO_ITEMVIEWS
-
#ifndef QT_NO_LINEEDIT
-QT_BEGIN_NAMESPACE
+QT_REQUIRE_CONFIG(itemviews);
+QT_BEGIN_NAMESPACE
class QExpandingLineEdit : public QLineEdit
{
@@ -92,6 +91,4 @@ QT_END_NAMESPACE
#endif // QT_NO_LINEEDIT
-#endif //QT_NO_ITEMVIEWS
-
#endif //QITEMEDITORFACTORY_P_H
diff --git a/src/widgets/itemviews/qlistview.cpp b/src/widgets/itemviews/qlistview.cpp
index e234bae4dd..0efee755a2 100644
--- a/src/widgets/itemviews/qlistview.cpp
+++ b/src/widgets/itemviews/qlistview.cpp
@@ -40,7 +40,6 @@
#include "qlistview.h"
-#ifndef QT_NO_LISTVIEW
#include <qabstractitemdelegate.h>
#include <qapplication.h>
#include <qpainter.h>
@@ -2814,11 +2813,17 @@ bool QIconModeViewBase::filterDragLeaveEvent(QDragLeaveEvent *e)
bool QIconModeViewBase::filterDragMoveEvent(QDragMoveEvent *e)
{
- if (e->source() != qq || !dd->canDrop(e))
- return false;
+ const bool wasAccepted = e->isAccepted();
// ignore by default
e->ignore();
+
+ if (e->source() != qq || !dd->canDrop(e)) {
+ // restore previous acceptance on failure
+ e->setAccepted(wasAccepted);
+ return false;
+ }
+
// get old dragged items rect
QRect itemsRect = this->itemsRect(draggedItems);
viewport()->update(itemsRect.translated(draggedItemsDelta()));
@@ -3297,5 +3302,3 @@ QSize QListView::viewportSizeHint() const
QT_END_NAMESPACE
#include "moc_qlistview.cpp"
-
-#endif // QT_NO_LISTVIEW
diff --git a/src/widgets/itemviews/qlistview.h b/src/widgets/itemviews/qlistview.h
index 6b164aeec8..66ec9b18b1 100644
--- a/src/widgets/itemviews/qlistview.h
+++ b/src/widgets/itemviews/qlistview.h
@@ -43,10 +43,9 @@
#include <QtWidgets/qtwidgetsglobal.h>
#include <QtWidgets/qabstractitemview.h>
-QT_BEGIN_NAMESPACE
-
+QT_REQUIRE_CONFIG(listview);
-#ifndef QT_NO_LISTVIEW
+QT_BEGIN_NAMESPACE
class QListViewPrivate;
@@ -195,8 +194,6 @@ private:
Q_DISABLE_COPY(QListView)
};
-#endif // QT_NO_LISTVIEW
-
QT_END_NAMESPACE
#endif // QLISTVIEW_H
diff --git a/src/widgets/itemviews/qlistview_p.h b/src/widgets/itemviews/qlistview_p.h
index 6c0e470a93..8d29767951 100644
--- a/src/widgets/itemviews/qlistview_p.h
+++ b/src/widgets/itemviews/qlistview_p.h
@@ -58,7 +58,7 @@
#include <limits.h>
#include <qscrollbar.h>
-#ifndef QT_NO_LISTVIEW
+QT_REQUIRE_CONFIG(listview);
QT_BEGIN_NAMESPACE
@@ -474,6 +474,4 @@ inline bool QCommonListViewBase::isRightToLeft() const { return qq->isRightToLef
QT_END_NAMESPACE
-#endif // QT_NO_LISTVIEW
-
#endif // QLISTVIEW_P_H
diff --git a/src/widgets/itemviews/qstyleditemdelegate.cpp b/src/widgets/itemviews/qstyleditemdelegate.cpp
index 0b8019c21c..bda3325adb 100644
--- a/src/widgets/itemviews/qstyleditemdelegate.cpp
+++ b/src/widgets/itemviews/qstyleditemdelegate.cpp
@@ -39,7 +39,6 @@
#include "qstyleditemdelegate.h"
-#ifndef QT_NO_ITEMVIEWS
#include <qabstractitemmodel.h>
#include <qapplication.h>
#include <qbrush.h>
@@ -643,5 +642,3 @@ bool QStyledItemDelegate::editorEvent(QEvent *event,
QT_END_NAMESPACE
#include "moc_qstyleditemdelegate.cpp"
-
-#endif // QT_NO_ITEMVIEWS
diff --git a/src/widgets/itemviews/qstyleditemdelegate.h b/src/widgets/itemviews/qstyleditemdelegate.h
index d30e6e0e9c..f3b7c4d1f4 100644
--- a/src/widgets/itemviews/qstyleditemdelegate.h
+++ b/src/widgets/itemviews/qstyleditemdelegate.h
@@ -46,10 +46,9 @@
#include <QtGui/qpixmap.h>
#include <QtCore/qvariant.h>
-QT_BEGIN_NAMESPACE
-
+QT_REQUIRE_CONFIG(itemviews);
-#ifndef QT_NO_ITEMVIEWS
+QT_BEGIN_NAMESPACE
class QStyledItemDelegatePrivate;
class QItemEditorFactory;
@@ -101,8 +100,6 @@ private:
Q_DISABLE_COPY(QStyledItemDelegate)
};
-#endif // QT_NO_ITEMVIEWS
-
QT_END_NAMESPACE
#endif // QSTYLEDITEMDELEGATE_H
diff --git a/src/widgets/kernel/qtooltip.cpp b/src/widgets/kernel/qtooltip.cpp
index 48afeb1dcc..830a328948 100644
--- a/src/widgets/kernel/qtooltip.cpp
+++ b/src/widgets/kernel/qtooltip.cpp
@@ -493,12 +493,12 @@ void QToolTip::showText(const QPoint &pos, const QString &text, QWidget *w, cons
}
if (!text.isEmpty()){ // no tip can be reused, create new tip:
-#if 1 // Used to be excluded in Qt4 for Q_WS_WIN
- new QTipLabel(text, w, msecDisplayTime); // sets QTipLabel::instance to itself
-#else
+#ifdef Q_OS_WIN32
// On windows, we can't use the widget as parent otherwise the window will be
// raised when the tooltip will be shown
new QTipLabel(text, QApplication::desktop()->screen(QTipLabel::getTipScreen(pos, w)), msecDisplayTime);
+#else
+ new QTipLabel(text, w, msecDisplayTime); // sets QTipLabel::instance to itself
#endif
QTipLabel::instance->setTipRect(w, rect);
QTipLabel::instance->placeTip(pos, w);
diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp
index e46ef55324..eee0908593 100644
--- a/src/widgets/kernel/qwidget.cpp
+++ b/src/widgets/kernel/qwidget.cpp
@@ -107,7 +107,9 @@
#include "private/qgesturemanager_p.h"
#ifdef QT_KEYPAD_NAVIGATION
+#if QT_CONFIG(tabwidget)
#include "qtabwidget.h" // Needed in inTabWidget()
+#endif
#endif // QT_KEYPAD_NAVIGATION
#include "qwindowcontainer_p.h"
diff --git a/src/widgets/styles/qcommonstyle.cpp b/src/widgets/styles/qcommonstyle.cpp
index ceff1a50a3..c15703ca58 100644
--- a/src/widgets/styles/qcommonstyle.cpp
+++ b/src/widgets/styles/qcommonstyle.cpp
@@ -41,13 +41,17 @@
#include "qcommonstyle_p.h"
#include <qfile.h>
+#if QT_CONFIG(itemviews)
#include <qabstractitemview.h>
+#endif
#include <qapplication.h>
#include <private/qguiapplication_p.h>
#include <qpa/qplatformtheme.h>
#include <qbitmap.h>
#include <qcache.h>
+#if QT_CONFIG(dockwidget)
#include <qdockwidget.h>
+#endif
#include <qdrawutil.h>
#if QT_CONFIG(dialogbuttonbox)
#include <qdialogbuttonbox.h>
@@ -65,8 +69,12 @@
#include <qpainterpath.h>
#include <qslider.h>
#include <qstyleoption.h>
+#if QT_CONFIG(tabbar)
#include <qtabbar.h>
+#endif
+#if QT_CONFIG(tabwidget)
#include <qtabwidget.h>
+#endif
#include <qtoolbar.h>
#include <qtoolbutton.h>
#if QT_CONFIG(rubberband)
@@ -91,7 +99,7 @@
#include <limits.h>
-#ifndef QT_NO_ITEMVIEWS
+#if QT_CONFIG(itemviews)
# include "private/qtextengine_p.h"
#endif
@@ -362,7 +370,7 @@ void QCommonStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, Q
p->setPen(oldPen);
}
break;
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
case PE_FrameTabBarBase:
if (const QStyleOptionTabBarBase *tbb
= qstyleoption_cast<const QStyleOptionTabBarBase *>(opt)) {
@@ -425,7 +433,7 @@ void QCommonStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, Q
}
#else
Q_UNUSED(d);
-#endif // QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
case PE_FrameTabWidget:
case PE_FrameWindow:
qDrawWinPanel(p, opt->rect, opt->palette, false, 0);
@@ -450,7 +458,7 @@ void QCommonStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, Q
}
break;
#endif // QT_NO_GROUPBOX
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
case PE_FrameDockWidget:
if (const QStyleOptionFrame *frame = qstyleoption_cast<const QStyleOptionFrame *>(opt)) {
int lw = frame->lineWidth;
@@ -460,7 +468,7 @@ void QCommonStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, Q
qDrawShadePanel(p, frame->rect, frame->palette, false, lw);
}
break;
-#endif // QT_NO_DOCKWIDGET
+#endif // QT_CONFIG(dockwidget)
#ifndef QT_NO_TOOLBAR
case PE_IndicatorToolBarHandle:
p->save();
@@ -569,7 +577,7 @@ void QCommonStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, Q
p->setBrush(oldBrush);
break;
}
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
case PE_IndicatorTabTear:
if (const QStyleOptionTab *tab = qstyleoption_cast<const QStyleOptionTab *>(opt)) {
bool rtl = tab->direction == Qt::RightToLeft;
@@ -603,7 +611,7 @@ void QCommonStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, Q
p->drawPath(path);
}
break;
-#endif // QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
#ifndef QT_NO_LINEEDIT
case PE_PanelLineEdit:
if (const QStyleOptionFrame *panel = qstyleoption_cast<const QStyleOptionFrame *>(opt)) {
@@ -675,7 +683,7 @@ void QCommonStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, Q
else
p->drawRect(rect);
break; }
-#ifndef QT_NO_ITEMVIEWS
+#if QT_CONFIG(itemviews)
case PE_PanelItemViewRow:
if (const QStyleOptionViewItem *vopt = qstyleoption_cast<const QStyleOptionViewItem *>(opt)) {
QPalette::ColorGroup cg = (widget ? widget->isEnabled() : (vopt->state & QStyle::State_Enabled))
@@ -713,7 +721,7 @@ void QCommonStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, Q
}
}
break;
-#endif //QT_NO_ITEMVIEWS
+#endif // QT_CONFIG(itemviews)
case PE_PanelScrollAreaCorner: {
const QBrush brush(opt->palette.brush(QPalette::Window));
p->fillRect(opt->rect, brush);
@@ -824,7 +832,7 @@ static void drawArrow(const QStyle *style, const QStyleOptionToolButton *toolbut
}
#endif // QT_NO_TOOLBUTTON
-#ifndef QT_NO_ITEMVIEWS
+#if QT_CONFIG(itemviews)
static QSizeF viewItemTextLayout(QTextLayout &textLayout, int lineWidth)
{
@@ -1095,10 +1103,10 @@ void QCommonStylePrivate::viewItemLayout(const QStyleOptionViewItem *opt, QRect
*textRect = display;
}
}
-#endif // QT_NO_ITEMVIEWS
+#endif // QT_CONFIG(itemviews)
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
/*! \internal
Compute the textRect and the pixmapRect from the opt rect
@@ -1165,7 +1173,7 @@ void QCommonStylePrivate::tabLayout(const QStyleOptionTab *opt, const QWidget *w
*textRect = tr;
}
-#endif //QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
#ifndef QT_NO_ANIMATION
/*! \internal */
@@ -1712,7 +1720,7 @@ void QCommonStyle::drawControl(ControlElement element, const QStyleOption *opt,
}
break;
#endif // QT_NO_TOOLBOX
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
case CE_TabBarTab:
if (const QStyleOptionTab *tab = qstyleoption_cast<const QStyleOptionTab *>(opt)) {
proxy()->drawControl(CE_TabBarTabShape, tab, p, widget);
@@ -1932,7 +1940,7 @@ void QCommonStyle::drawControl(ControlElement element, const QStyleOption *opt,
}
}
break;
-#endif // QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
#ifndef QT_NO_SIZEGRIP
case CE_SizeGrip: {
p->save();
@@ -2036,7 +2044,7 @@ void QCommonStyle::drawControl(ControlElement element, const QStyleOption *opt,
}
break; }
#endif // QT_CONFIG(rubberband)
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
case CE_DockWidgetTitle:
if (const QStyleOptionDockWidget *dwOpt = qstyleoption_cast<const QStyleOptionDockWidget *>(opt)) {
QRect r = dwOpt->rect.adjusted(0, 0, -1, -1);
@@ -2068,7 +2076,7 @@ void QCommonStyle::drawControl(ControlElement element, const QStyleOption *opt,
}
}
break;
-#endif // QT_NO_DOCKWIDGET
+#endif // QT_CONFIG(dockwidget)
case CE_Header:
if (const QStyleOptionHeader *header = qstyleoption_cast<const QStyleOptionHeader *>(opt)) {
QRegion clipRegion = p->clipRegion();
@@ -2096,7 +2104,7 @@ void QCommonStyle::drawControl(ControlElement element, const QStyleOption *opt,
case CE_HeaderEmptyArea:
p->fillRect(opt->rect, opt->palette.background());
break;
-#ifndef QT_NO_COMBOBOX
+#if QT_CONFIG(combobox)
case CE_ComboBoxLabel:
if (const QStyleOptionComboBox *cb = qstyleoption_cast<const QStyleOptionComboBox *>(opt)) {
QRect editRect = proxy()->subControlRect(CC_ComboBox, cb, SC_ComboBoxEditField, widget);
@@ -2128,7 +2136,7 @@ void QCommonStyle::drawControl(ControlElement element, const QStyleOption *opt,
p->restore();
}
break;
-#endif // QT_NO_COMBOBOX
+#endif // QT_CONFIG(combobox)
#ifndef QT_NO_TOOLBAR
case CE_ToolBar:
if (const QStyleOptionToolBar *toolBar = qstyleoption_cast<const QStyleOptionToolBar *>(opt)) {
@@ -2168,7 +2176,7 @@ void QCommonStyle::drawControl(ControlElement element, const QStyleOption *opt,
}
break;
-#ifndef QT_NO_ITEMVIEWS
+#if QT_CONFIG(itemviews)
case CE_ItemViewItem:
if (const QStyleOptionViewItem *vopt = qstyleoption_cast<const QStyleOptionViewItem *>(opt)) {
p->save();
@@ -2248,7 +2256,7 @@ void QCommonStyle::drawControl(ControlElement element, const QStyleOption *opt,
}
break;
-#endif // QT_NO_ITEMVIEWS
+#endif // QT_CONFIG(itemviews)
#ifndef QT_NO_FRAME
case CE_ShapedFrame:
if (const QStyleOptionFrame *f = qstyleoption_cast<const QStyleOptionFrame *>(opt)) {
@@ -2505,7 +2513,7 @@ QRect QCommonStyle::subElementRect(SubElement sr, const QStyleOption *opt,
}
break;
#endif // QT_NO_PROGRESSBAR
-#ifndef QT_NO_COMBOBOX
+#if QT_CONFIG(combobox)
case SE_ComboBoxFocusRect:
if (const QStyleOptionComboBox *cb = qstyleoption_cast<const QStyleOptionComboBox *>(opt)) {
int margin = cb->frame ? 3 : 0;
@@ -2514,7 +2522,7 @@ QRect QCommonStyle::subElementRect(SubElement sr, const QStyleOption *opt,
r = visualRect(opt->direction, opt->rect, r);
}
break;
-#endif // QT_NO_COMBOBOX
+#endif // QT_CONFIG(combobox)
#ifndef QT_NO_TOOLBOX
case SE_ToolBoxTabContents:
r = opt->rect;
@@ -2564,7 +2572,7 @@ QRect QCommonStyle::subElementRect(SubElement sr, const QStyleOption *opt,
r = subElementRect(SE_CheckBoxFocusRect, opt, widget);
r |= subElementRect(SE_CheckBoxIndicator, opt, widget);
break;
-#ifndef QT_NO_TABWIDGET
+#if QT_CONFIG(tabwidget)
case SE_TabWidgetTabBar:
if (const QStyleOptionTabWidgetFrame *twf
= qstyleoption_cast<const QStyleOptionTabWidgetFrame *>(opt)) {
@@ -2806,8 +2814,8 @@ QRect QCommonStyle::subElementRect(SubElement sr, const QStyleOption *opt,
}
break;
-#endif // QT_NO_TABWIDGET
-#ifndef QT_NO_TABBAR
+#endif // QT_CONFIG(tabwidget)
+#if QT_CONFIG(tabbar)
case SE_TabBarTearIndicator:
if (const QStyleOptionTab *tab = qstyleoption_cast<const QStyleOptionTab *>(opt)) {
switch (tab->shape) {
@@ -2919,7 +2927,7 @@ QRect QCommonStyle::subElementRect(SubElement sr, const QStyleOption *opt,
r = f->rect.adjusted(frameWidth, frameWidth, -frameWidth, -frameWidth);
}
break;
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
case SE_DockWidgetCloseButton:
case SE_DockWidgetFloatButton:
case SE_DockWidgetTitleBarText:
@@ -3020,7 +3028,7 @@ QRect QCommonStyle::subElementRect(SubElement sr, const QStyleOption *opt,
break;
}
#endif
-#ifndef QT_NO_ITEMVIEWS
+#if QT_CONFIG(itemviews)
case SE_ItemViewItemCheckIndicator:
if (!qstyleoption_cast<const QStyleOptionViewItem *>(opt)) {
r = subElementRect(SE_CheckBoxIndicator, opt, widget);
@@ -3047,7 +3055,7 @@ QRect QCommonStyle::subElementRect(SubElement sr, const QStyleOption *opt,
r = d->displayRect;
}
break;
-#endif //QT_NO_ITEMVIEWS
+#endif // QT_CONFIG(itemviews)
#ifndef QT_NO_TOOLBAR
case SE_ToolBarHandle:
if (const QStyleOptionToolBar *tbopt = qstyleoption_cast<const QStyleOptionToolBar *>(opt)) {
@@ -3439,7 +3447,7 @@ void QCommonStyle::drawComplexControl(ComplexControl cc, const QStyleOptionCompl
ir = proxy()->subControlRect(CC_TitleBar, tb, SC_TitleBarCloseButton, widget);
down = tb->activeSubControls & SC_TitleBarCloseButton && (opt->state & State_Sunken);
if ((tb->titleBarFlags & Qt::WindowType_Mask) == Qt::Tool
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
|| qobject_cast<const QDockWidget *>(widget)
#endif
)
@@ -3892,7 +3900,7 @@ QStyle::SubControl QCommonStyle::hitTestComplexControl(ComplexControl cc, const
}
}
break;
-#ifndef QT_NO_COMBOBOX
+#if QT_CONFIG(combobox)
case CC_ComboBox:
if (const QStyleOptionComboBox *cb = qstyleoption_cast<const QStyleOptionComboBox *>(opt)) {
QRect r;
@@ -3907,7 +3915,7 @@ QStyle::SubControl QCommonStyle::hitTestComplexControl(ComplexControl cc, const
}
}
break;
-#endif // QT_NO_COMBOBOX
+#endif // QT_CONFIG(combobox)
#ifndef QT_NO_GROUPBOX
case CC_GroupBox:
if (const QStyleOptionGroupBox *groupBox = qstyleoption_cast<const QStyleOptionGroupBox *>(opt)) {
@@ -4140,7 +4148,7 @@ QRect QCommonStyle::subControlRect(ComplexControl cc, const QStyleOptionComplex
}
break;
#endif // QT_NO_TOOLBUTTON
-#ifndef QT_NO_COMBOBOX
+#if QT_CONFIG(combobox)
case CC_ComboBox:
if (const QStyleOptionComboBox *cb = qstyleoption_cast<const QStyleOptionComboBox *>(opt)) {
int x = cb->rect.x(),
@@ -4172,7 +4180,7 @@ QRect QCommonStyle::subControlRect(ComplexControl cc, const QStyleOptionComplex
ret = visualRect(cb->direction, cb->rect, ret);
}
break;
-#endif // QT_NO_COMBOBOX
+#endif // QT_CONFIG(combobox)
case CC_TitleBar:
if (const QStyleOptionTitleBar *tb = qstyleoption_cast<const QStyleOptionTitleBar *>(opt)) {
const int controlMargin = 2;
@@ -4412,7 +4420,7 @@ int QCommonStyle::pixelMetric(PixelMetric m, const QStyleOption *opt, const QWid
if (const QStyleOptionTitleBar *tb = qstyleoption_cast<const QStyleOptionTitleBar *>(opt)) {
if ((tb->titleBarFlags & Qt::WindowType_Mask) == Qt::Tool) {
ret = qMax(widget ? widget->fontMetrics().height() : opt->fontMetrics.height(), 16);
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
} else if (qobject_cast<const QDockWidget*>(widget)) {
ret = qMax(widget->fontMetrics().height(), int(QStyleHelper::dpiScaled(13)));
#endif
@@ -4524,7 +4532,7 @@ int QCommonStyle::pixelMetric(PixelMetric m, const QStyleOption *opt, const QWid
}
break;
#endif // QT_NO_SLIDER
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
case PM_DockWidgetSeparatorExtent:
ret = int(QStyleHelper::dpiScaled(6.));
break;
@@ -4538,7 +4546,7 @@ int QCommonStyle::pixelMetric(PixelMetric m, const QStyleOption *opt, const QWid
case PM_DockWidgetFrameWidth:
ret = 1;
break;
-#endif // QT_NO_DOCKWIDGET
+#endif // QT_CONFIG(dockwidget)
case PM_SpinBoxSliderHeight:
case PM_MenuBarPanelWidth:
@@ -4575,7 +4583,7 @@ int QCommonStyle::pixelMetric(PixelMetric m, const QStyleOption *opt, const QWid
break;
#endif // QT_NO_TOOLBAR
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
case PM_TabBarTabOverlap:
ret = 3;
break;
@@ -4839,7 +4847,7 @@ QSize QCommonStyle::sizeFromContents(ContentsType ct, const QStyleOption *opt,
sz = QSize(sz.width() + 6, sz.height() + 5);
break;
#endif // QT_NO_TOOLBUTTON
-#ifndef QT_NO_COMBOBOX
+#if QT_CONFIG(combobox)
case CT_ComboBox:
if (const QStyleOptionComboBox *cmb = qstyleoption_cast<const QStyleOptionComboBox *>(opt)) {
int fw = cmb->frame ? proxy()->pixelMetric(PM_ComboBoxFrameWidth, opt, widget) * 2 : 0;
@@ -4849,7 +4857,7 @@ QSize QCommonStyle::sizeFromContents(ContentsType ct, const QStyleOption *opt,
sz = QSize(sz.width() + fw + other, sz.height() + fw);
}
break;
-#endif // QT_NO_COMBOBOX
+#endif // QT_CONFIG(combobox)
case CT_HeaderSection:
if (const QStyleOptionHeader *hdr = qstyleoption_cast<const QStyleOptionHeader *>(opt)) {
bool nullIcon = hdr->icon.isNull();
@@ -4897,7 +4905,7 @@ QSize QCommonStyle::sizeFromContents(ContentsType ct, const QStyleOption *opt,
sz = QSize(1 + 3 * (buttonSize + 1), buttonSize);
}
break;
-#ifndef QT_NO_ITEMVIEWS
+#if QT_CONFIG(itemviews)
case CT_ItemViewItem:
if (const QStyleOptionViewItem *vopt = qstyleoption_cast<const QStyleOptionViewItem *>(opt)) {
QRect decorationRect, displayRect, checkRect;
@@ -4909,7 +4917,7 @@ QSize QCommonStyle::sizeFromContents(ContentsType ct, const QStyleOption *opt,
break;
#else
Q_UNUSED(d);
-#endif // QT_NO_ITEMVIEWS
+#endif // QT_CONFIG(itemviews)
#ifndef QT_NO_SPINBOX
case CT_SpinBox:
if (const QStyleOptionSpinBox *vopt = qstyleoption_cast<const QStyleOptionSpinBox *>(opt)) {
@@ -5177,7 +5185,7 @@ int QCommonStyle::styleHint(StyleHint sh, const QStyleOption *opt, const QWidget
case SH_FocusFrame_AboveWidget:
ret = false;
break;
-#ifndef QT_NO_TABWIDGET
+#if QT_CONFIG(tabwidget)
case SH_TabWidget_DefaultTabPosition:
ret = QTabWidget::North;
break;
@@ -5219,7 +5227,7 @@ int QCommonStyle::styleHint(StyleHint sh, const QStyleOption *opt, const QWidget
case SH_ItemView_DrawDelegateFrame:
ret = 0;
break;
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
case SH_TabBar_CloseButtonPosition:
ret = QTabBar::RightSide;
break;
diff --git a/src/widgets/styles/qcommonstyle_p.h b/src/widgets/styles/qcommonstyle_p.h
index ebfc06139c..93db75ac2d 100644
--- a/src/widgets/styles/qcommonstyle_p.h
+++ b/src/widgets/styles/qcommonstyle_p.h
@@ -68,7 +68,7 @@ class Q_WIDGETS_EXPORT QCommonStylePrivate : public QStylePrivate
Q_DECLARE_PUBLIC(QCommonStyle)
public:
inline QCommonStylePrivate() :
-#ifndef QT_NO_ITEMVIEWS
+#if QT_CONFIG(itemviews)
cachedOption(0),
#endif
animationFps(30)
@@ -79,12 +79,12 @@ public:
#ifndef QT_NO_ANIMATION
qDeleteAll(animations);
#endif
-#ifndef QT_NO_ITEMVIEWS
+#if QT_CONFIG(itemviews)
delete cachedOption;
#endif
}
-#ifndef QT_NO_ITEMVIEWS
+#if QT_CONFIG(itemviews)
void viewItemDrawText(QPainter *p, const QStyleOptionViewItem *option, const QRect &rect) const;
void viewItemLayout(const QStyleOptionViewItem *opt, QRect *checkRect,
QRect *pixmapRect, QRect *textRect, bool sizehint) const;
@@ -110,7 +110,7 @@ public:
}
#endif
mutable QIcon tabBarcloseButtonIcon;
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
void tabLayout(const QStyleOptionTab *opt, const QWidget *widget, QRect *textRect, QRect *pixmapRect) const;
#endif
diff --git a/src/widgets/styles/qfusionstyle.cpp b/src/widgets/styles/qfusionstyle.cpp
index 1e584f47b8..c1b240a381 100644
--- a/src/widgets/styles/qfusionstyle.cpp
+++ b/src/widgets/styles/qfusionstyle.cpp
@@ -42,7 +42,9 @@
#if QT_CONFIG(style_fusion) || defined(QT_PLUGIN)
#include "qcommonstyle_p.h"
+#if QT_CONFIG(combobox)
#include <qcombobox.h>
+#endif
#if QT_CONFIG(pushbutton)
#include <qpushbutton.h>
#endif
diff --git a/src/widgets/styles/qpixmapstyle.cpp b/src/widgets/styles/qpixmapstyle.cpp
index 88482d28c9..63308a5e36 100644
--- a/src/widgets/styles/qpixmapstyle.cpp
+++ b/src/widgets/styles/qpixmapstyle.cpp
@@ -52,10 +52,16 @@
#include <QProgressBar>
#include <QSlider>
#include <QEvent>
+#if QT_CONFIG(combobox)
#include <QComboBox>
+#endif
+#if QT_CONFIG(itemviews)
#include <QAbstractItemView>
-#include <QListView>
#include <QStyledItemDelegate>
+#endif
+#if QT_CONFIG(listview)
+#include <QListView>
+#endif
#include <QAbstractScrollArea>
#include <QScrollBar>
diff --git a/src/widgets/styles/qstyleoption.cpp b/src/widgets/styles/qstyleoption.cpp
index 51fecd0d13..a346ee18c4 100644
--- a/src/widgets/styles/qstyleoption.cpp
+++ b/src/widgets/styles/qstyleoption.cpp
@@ -1227,7 +1227,7 @@ QStyleOptionToolBar::QStyleOptionToolBar(int version)
#endif
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
/*!
\class QStyleOptionTab
\brief The QStyleOptionTab class is used to describe the
@@ -1475,7 +1475,7 @@ QStyleOptionTab::QStyleOptionTab(int version)
The default value is QSize(-1, -1), i.e. an invalid size;
*/
-#endif // QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
/*!
\class QStyleOptionProgressBar
@@ -2996,7 +2996,7 @@ QStyleOptionTitleBar::QStyleOptionTitleBar(int version)
\sa Qt::WindowFlags
*/
-#ifndef QT_NO_ITEMVIEWS
+#if QT_CONFIG(itemviews)
/*!
\class QStyleOptionViewItem
\brief The QStyleOptionViewItem class is used to describe the
@@ -3263,7 +3263,7 @@ QStyleOptionViewItem::QStyleOptionViewItem(int version)
therefore both at the beginning and the end.
*/
-#endif // QT_NO_ITEMVIEWS
+#endif // QT_CONFIG(itemviews)
/*!
\fn T qstyleoption_cast<T>(const QStyleOption *option)
\relates QStyleOption
@@ -3286,7 +3286,7 @@ QStyleOptionViewItem::QStyleOptionViewItem(int version)
Returns a T or 0 depending on the type of the given \a option.
*/
-#ifndef QT_NO_TABWIDGET
+#if QT_CONFIG(tabwidget)
/*!
\class QStyleOptionTabWidgetFrame
\brief The QStyleOptionTabWidgetFrame class is used to describe the
@@ -3430,9 +3430,9 @@ QStyleOptionTabWidgetFrame::QStyleOptionTabWidgetFrame(int version)
and the height set to 0.
*/
-#endif // QT_NO_TABWIDGET
+#endif // QT_CONFIG(tabwidget)
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
/*!
\class QStyleOptionTabBarBase
@@ -3552,7 +3552,7 @@ QStyleOptionTabBarBase::QStyleOptionTabBarBase(int version)
The default value is false;
*/
-#endif // QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
#ifndef QT_NO_SIZEGRIP
/*!
diff --git a/src/widgets/styles/qstyleoption.h b/src/widgets/styles/qstyleoption.h
index a3ed35c762..af97479ef0 100644
--- a/src/widgets/styles/qstyleoption.h
+++ b/src/widgets/styles/qstyleoption.h
@@ -47,13 +47,17 @@
#include <QtGui/qmatrix.h>
#include <QtWidgets/qslider.h>
#include <QtWidgets/qstyle.h>
+#if QT_CONFIG(tabbar)
#include <QtWidgets/qtabbar.h>
+#endif
+#if QT_CONFIG(tabwidget)
#include <QtWidgets/qtabwidget.h>
+#endif
#if QT_CONFIG(rubberband)
#include <QtWidgets/qrubberband.h>
#endif
#include <QtWidgets/qframe.h>
-#ifndef QT_NO_ITEMVIEWS
+#if QT_CONFIG(itemviews)
# include <QtCore/qabstractitemmodel.h>
#endif
@@ -143,7 +147,7 @@ Q_DECLARE_OPERATORS_FOR_FLAGS(QStyleOptionFrame::FrameFeatures)
typedef Q_DECL_DEPRECATED QStyleOptionFrame QStyleOptionFrameV2;
typedef Q_DECL_DEPRECATED QStyleOptionFrame QStyleOptionFrameV3;
-#ifndef QT_NO_TABWIDGET
+#if QT_CONFIG(tabwidget)
class Q_WIDGETS_EXPORT QStyleOptionTabWidgetFrame : public QStyleOption
{
public:
@@ -168,10 +172,10 @@ protected:
};
typedef Q_DECL_DEPRECATED QStyleOptionTabWidgetFrame QStyleOptionTabWidgetFrameV2;
-#endif // QT_NO_TABWIDGET
+#endif // QT_CONFIG(tabwidget)
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
class Q_WIDGETS_EXPORT QStyleOptionTabBarBase : public QStyleOption
{
public:
@@ -191,7 +195,7 @@ protected:
};
typedef Q_DECL_DEPRECATED QStyleOptionTabBarBase QStyleOptionTabBarBaseV2;
-#endif // QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
class Q_WIDGETS_EXPORT QStyleOptionHeader : public QStyleOption
{
@@ -245,7 +249,7 @@ protected:
Q_DECLARE_OPERATORS_FOR_FLAGS(QStyleOptionButton::ButtonFeatures)
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
class Q_WIDGETS_EXPORT QStyleOptionTab : public QStyleOption
{
public:
@@ -284,7 +288,7 @@ Q_DECLARE_OPERATORS_FOR_FLAGS(QStyleOptionTab::CornerWidgets)
typedef Q_DECL_DEPRECATED QStyleOptionTab QStyleOptionTabV2;
typedef Q_DECL_DEPRECATED QStyleOptionTab QStyleOptionTabV3;
-#endif // QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
#ifndef QT_NO_TOOLBAR
@@ -388,7 +392,7 @@ protected:
typedef Q_DECL_DEPRECATED QStyleOptionDockWidget QStyleOptionDockWidgetV2;
-#ifndef QT_NO_ITEMVIEWS
+#if QT_CONFIG(itemviews)
class Q_WIDGETS_EXPORT QStyleOptionViewItem : public QStyleOption
{
@@ -443,7 +447,7 @@ typedef Q_DECL_DEPRECATED QStyleOptionViewItem QStyleOptionViewItemV2;
typedef Q_DECL_DEPRECATED QStyleOptionViewItem QStyleOptionViewItemV3;
typedef Q_DECL_DEPRECATED QStyleOptionViewItem QStyleOptionViewItemV4;
-#endif // QT_NO_ITEMVIEWS
+#endif // QT_CONFIG(itemviews)
class Q_WIDGETS_EXPORT QStyleOptionToolBox : public QStyleOption
{
diff --git a/src/widgets/styles/qstylesheetstyle.cpp b/src/widgets/styles/qstylesheetstyle.cpp
index 4fe697a32f..b42876d72e 100644
--- a/src/widgets/styles/qstylesheetstyle.cpp
+++ b/src/widgets/styles/qstylesheetstyle.cpp
@@ -51,7 +51,9 @@
#include <qstyleoption.h>
#include <qlineedit.h>
#include <private/qwindowsstyle_p.h>
+#if QT_CONFIG(combobox)
#include <qcombobox.h>
+#endif
#include "private/qcssparser_p.h"
#include "private/qmath_p.h"
#include <qabstractscrollarea.h>
@@ -69,13 +71,19 @@
#include <qcheckbox.h>
#endif
#include <qstatusbar.h>
+#if QT_CONFIG(itemviews)
#include <qheaderview.h>
+#endif
#include <private/qwindowsstyle_p_p.h>
#include <private/qstyleanimation_p.h>
+#if QT_CONFIG(tabbar)
#include <qtabbar.h>
+#endif
#include <QMetaProperty>
#include <qmainwindow.h>
+#if QT_CONFIG(dockwidget)
#include <qdockwidget.h>
+#endif
#include <qmdisubwindow.h>
#if QT_CONFIG(dialog)
#include <qdialog.h>
@@ -1641,7 +1649,7 @@ int QStyleSheetStyle::nativeFrameWidth(const QWidget *w)
return base->pixelMetric(QStyle::PM_SpinBoxFrameWidth, 0, w);
#endif
-#ifndef QT_NO_COMBOBOX
+#if QT_CONFIG(combobox)
if (qobject_cast<const QComboBox *>(w))
return base->pixelMetric(QStyle::PM_ComboBoxFrameWidth, 0, w);
#endif
@@ -1719,7 +1727,7 @@ static quint64 pseudoClass(QStyle::State state)
static void qt_check_if_internal_object(const QObject **obj, int *element)
{
-#ifdef QT_NO_DOCKWIDGET
+#if !QT_CONFIG(dockwidget)
Q_UNUSED(obj);
Q_UNUSED(element);
#else
@@ -1885,7 +1893,7 @@ QRenderRule QStyleSheetStyle::renderRule(const QObject *obj, const QStyleOption
extraClass |= PseudoClass_NextSelected;
else if (hdr->selectedPosition == QStyleOptionHeader::PreviousIsSelected)
extraClass |= PseudoClass_PreviousSelected;
-#ifndef QT_NO_TABWIDGET
+#if QT_CONFIG(tabwidget)
} else if (const QStyleOptionTabWidgetFrame *tab = qstyleoption_cast<const QStyleOptionTabWidgetFrame *>(opt)) {
switch (tab->shape) {
case QTabBar::RoundedNorth:
@@ -1908,7 +1916,7 @@ QRenderRule QStyleSheetStyle::renderRule(const QObject *obj, const QStyleOption
break;
}
#endif
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
} else if (const QStyleOptionTab *tab = qstyleoption_cast<const QStyleOptionTab *>(opt)) {
if (tab->position == QStyleOptionTab::OnlyOneTab)
extraClass |= PseudoClass_OnlyOne;
@@ -1944,7 +1952,7 @@ QRenderRule QStyleSheetStyle::renderRule(const QObject *obj, const QStyleOption
default:
break;
}
-#endif // QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
} else if (const QStyleOptionButton *btn = qstyleoption_cast<const QStyleOptionButton *>(opt)) {
if (btn->features & QStyleOptionButton::Flat)
extraClass |= PseudoClass_Flat;
@@ -1994,7 +2002,7 @@ QRenderRule QStyleSheetStyle::renderRule(const QObject *obj, const QStyleOption
extraClass |= PseudoClass_PreviousSelected;
}
#endif // QT_NO_TOOLBOX
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
else if (const QStyleOptionDockWidget *dw = qstyleoption_cast<const QStyleOptionDockWidget *>(opt)) {
if (dw->verticalTitleBar)
extraClass |= PseudoClass_Vertical;
@@ -2007,8 +2015,8 @@ QRenderRule QStyleSheetStyle::renderRule(const QObject *obj, const QStyleOption
if (dw->movable)
extraClass |= PseudoClass_Movable;
}
-#endif // QT_NO_DOCKWIDGET
-#ifndef QT_NO_ITEMVIEWS
+#endif // QT_CONFIG(dockwidget)
+#if QT_CONFIG(itemviews)
else if (const QStyleOptionViewItem *vopt = qstyleoption_cast<const QStyleOptionViewItem *>(opt)) {
if (vopt->features & QStyleOptionViewItem::Alternate)
extraClass |= PseudoClass_Alternate;
@@ -2340,7 +2348,7 @@ QRect QStyleSheetStyle::positionRect(const QWidget *w, const QRenderRule& rule1,
*/
static QWidget *embeddedWidget(QWidget *w)
{
-#ifndef QT_NO_COMBOBOX
+#if QT_CONFIG(combobox)
if (QComboBox *cmb = qobject_cast<QComboBox *>(w)) {
if (cmb->isEditable())
return cmb->lineEdit();
@@ -2374,7 +2382,7 @@ static QWidget *containerWidget(const QWidget *w)
#ifndef QT_NO_LINEEDIT
if (qobject_cast<const QLineEdit *>(w)) {
//if the QLineEdit is an embeddedWidget, we need the rule of the real widget
-#ifndef QT_NO_COMBOBOX
+#if QT_CONFIG(combobox)
if (qobject_cast<const QComboBox *>(w->parentWidget()))
return w->parentWidget();
#endif
@@ -2413,7 +2421,7 @@ static bool unstylable(const QWidget *w)
// detect QComboBoxPrivateContainer
else if (qobject_cast<const QFrame *>(w)) {
if (0
-#ifndef QT_NO_COMBOBOX
+#if QT_CONFIG(combobox)
|| qobject_cast<const QComboBox *>(w->parentWidget())
#endif
)
@@ -2421,7 +2429,7 @@ static bool unstylable(const QWidget *w)
}
#endif
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
if (w->metaObject() == &QWidget::staticMetaObject
&& qobject_cast<const QTabBar*>(w->parentWidget()))
return true; // The moving tab of a QTabBar
@@ -2438,7 +2446,7 @@ static quint64 extendedPseudoClass(const QWidget *w)
pc |= ((slider->orientation() == Qt::Vertical) ? PseudoClass_Vertical : PseudoClass_Horizontal);
} else
#endif
-#ifndef QT_NO_COMBOBOX
+#if QT_CONFIG(combobox)
if (const QComboBox *combo = qobject_cast<const QComboBox *>(w)) {
if (combo->isEditable())
pc |= (combo->isEditable() ? PseudoClass_Editable : PseudoClass_ReadOnly);
@@ -2805,10 +2813,10 @@ void QStyleSheetStyle::polish(QWidget *w)
QRenderRule rule = renderRule(w, PseudoElement_None, PseudoClass_Any);
if (rule.hasDrawable() || rule.hasBox()) {
if (w->metaObject() == &QWidget::staticMetaObject
-#ifndef QT_NO_ITEMVIEWS
+#if QT_CONFIG(itemviews)
|| qobject_cast<QHeaderView *>(w)
#endif
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
|| qobject_cast<QTabBar *>(w)
#endif
#ifndef QT_NO_FRAME
@@ -2912,7 +2920,7 @@ void QStyleSheetStyle::unpolish(QApplication *app)
styleSheetCaches->styleSheetCache.remove(qApp);
}
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
inline static bool verticalTabs(QTabBar::Shape shape)
{
return shape == QTabBar::RoundedWest
@@ -2920,7 +2928,7 @@ inline static bool verticalTabs(QTabBar::Shape shape)
|| shape == QTabBar::TriangularWest
|| shape == QTabBar::TriangularEast;
}
-#endif // QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
void QStyleSheetStyle::drawComplexControl(ComplexControl cc, const QStyleOptionComplex *opt, QPainter *p,
const QWidget *w) const
@@ -3771,7 +3779,7 @@ void QStyleSheetStyle::drawControl(ControlElement ce, const QStyleOption *opt, Q
}
return;
-#ifndef QT_NO_COMBOBOX
+#if QT_CONFIG(combobox)
case CE_ComboBoxLabel:
if (!rule.hasBox())
break;
@@ -3807,7 +3815,7 @@ void QStyleSheetStyle::drawControl(ControlElement ce, const QStyleOption *opt, Q
return;
}
break;
-#endif // QT_NO_COMBOBOX
+#endif // QT_CONFIG(combobox)
case CE_Header:
if (hasStyleRule(w, PseudoElement_HeaderViewUpArrow)
@@ -4069,7 +4077,7 @@ void QStyleSheetStyle::drawControl(ControlElement ce, const QStyleOption *opt, Q
fallback = true;
break;
-#ifndef QT_NO_ITEMVIEWS
+#if QT_CONFIG(itemviews)
case CE_ItemViewItem:
if (const QStyleOptionViewItem *vopt = qstyleoption_cast<const QStyleOptionViewItem *>(opt)) {
QRenderRule subRule = renderRule(w, opt, PseudoElement_ViewItem);
@@ -4086,9 +4094,9 @@ void QStyleSheetStyle::drawControl(ControlElement ce, const QStyleOption *opt, Q
return;
}
break;
-#endif // QT_NO_ITEMVIEWS
+#endif // QT_CONFIG(itemviews)
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
case CE_TabBarTab:
if (hasStyleRule(w, PseudoElement_TabBarTab)) {
QWindowsStyle::drawControl(ce, opt, p, w);
@@ -4123,7 +4131,7 @@ void QStyleSheetStyle::drawControl(ControlElement ce, const QStyleOption *opt, Q
return;
}
break;
-#endif // QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
case CE_ColumnViewGrip:
if (rule.hasDrawable()) {
@@ -4477,7 +4485,7 @@ void QStyleSheetStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *op
rule.drawBorder(p, opt->rect);
return;
-#ifndef QT_NO_TABWIDGET
+#if QT_CONFIG(tabwidget)
case PE_FrameTabWidget:
if (const QStyleOptionTabWidgetFrame *frm = qstyleoption_cast<const QStyleOptionTabWidgetFrame *>(opt)) {
QRenderRule subRule = renderRule(w, opt, PseudoElement_TabWidgetPane);
@@ -4492,7 +4500,7 @@ void QStyleSheetStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *op
return;
}
break;
-#endif // QT_NO_TABWIDGET
+#endif // QT_CONFIG(tabwidget)
case PE_IndicatorProgressChunk:
pseudoElement = PseudoElement_ProgressBarChunk;
@@ -4530,7 +4538,7 @@ void QStyleSheetStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *op
case PE_IndicatorSpinPlus:
pseudoElement = PseudoElement_SpinBoxUpArrow;
break;
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
case PE_IndicatorTabClose:
if (w)
w = w->parentWidget(); //match on the QTabBar instead of the CloseButton
@@ -4790,7 +4798,7 @@ int QStyleSheetStyle::pixelMetric(PixelMetric m, const QStyleOption *opt, const
}
break;
-#ifndef QT_NO_TABWIDGET
+#if QT_CONFIG(tabwidget)
case PM_TabBarTabHSpace:
case PM_TabBarTabVSpace:
subRule = renderRule(w, opt, PseudoElement_TabBarTab);
@@ -4823,7 +4831,7 @@ int QStyleSheetStyle::pixelMetric(PixelMetric m, const QStyleOption *opt, const
}
break;
}
-#endif // QT_NO_TABWIDGET
+#endif // QT_CONFIG(tabwidget)
case PM_SliderThickness: // horizontal slider's height (sizeHint)
case PM_SliderLength: // minimum length of slider
@@ -5051,7 +5059,7 @@ QSize QStyleSheetStyle::sizeFromContents(ContentsType ct, const QStyleOption *op
return rule.boxSize(sz);
break;
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
case CT_TabBarTab: {
QRenderRule subRule = renderRule(w, opt, PseudoElement_TabBarTab);
if (subRule.hasBox() || !subRule.hasNativeBorder()) {
@@ -5075,7 +5083,7 @@ QSize QStyleSheetStyle::sizeFromContents(ContentsType ct, const QStyleOption *op
sz = subRule.adjustSize(csz);
break;
}
-#endif // QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
case CT_MdiControls:
if (const QStyleOptionComplex *ccOpt = qstyleoption_cast<const QStyleOptionComplex *>(opt)) {
@@ -5107,7 +5115,7 @@ QSize QStyleSheetStyle::sizeFromContents(ContentsType ct, const QStyleOption *op
}
break;
-#ifndef QT_NO_ITEMVIEWS
+#if QT_CONFIG(itemviews)
case CT_ItemViewItem: {
QRenderRule subRule = renderRule(w, opt, PseudoElement_ViewItem);
sz = baseStyle()->sizeFromContents(ct, opt, csz, w);
@@ -5116,7 +5124,7 @@ QSize QStyleSheetStyle::sizeFromContents(ContentsType ct, const QStyleOption *op
sz = subRule.boxSize(sz);
return sz;
}
-#endif // QT_NO_ITEMVIEWS
+#endif // QT_CONFIG(itemviews)
default:
break;
@@ -5275,16 +5283,16 @@ int QStyleSheetStyle::styleHint(StyleHint sh, const QStyleOption *opt, const QWi
case SH_ScrollBar_RollBetweenButtons: s = QLatin1String("scrollbar-roll-between-buttons"); break;
case SH_ScrollBar_ScrollWhenPointerLeavesControl: s = QLatin1String("scrollbar-scroll-when-pointer-leaves-control"); break;
case SH_TabBar_Alignment:
-#ifndef QT_NO_TABWIDGET
+#if QT_CONFIG(tabwidget)
if (qobject_cast<const QTabWidget *>(w)) {
rule = renderRule(w, opt, PseudoElement_TabWidgetTabBar);
if (rule.hasPosition())
return rule.position()->position;
}
-#endif // QT_NO_TABWIDGET
+#endif // QT_CONFIG(tabwidget)
s = QLatin1String("alignment");
break;
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
case SH_TabBar_CloseButtonPosition:
rule = renderRule(w, opt, PseudoElement_TabBarTabCloseButton);
if (rule.hasPosition()) {
@@ -5299,7 +5307,7 @@ int QStyleSheetStyle::styleHint(StyleHint sh, const QStyleOption *opt, const QWi
case SH_TabBar_ElideMode: s = QLatin1String("tabbar-elide-mode"); break;
case SH_TabBar_PreferNoArrows: s = QLatin1String("tabbar-prefer-no-arrows"); break;
case SH_ComboBox_PopupFrameStyle:
-#ifndef QT_NO_COMBOBOX
+#if QT_CONFIG(combobox)
if (qobject_cast<const QComboBox *>(w)) {
QAbstractItemView *view = w->findChild<QAbstractItemView *>();
if (view) {
@@ -5309,7 +5317,7 @@ int QStyleSheetStyle::styleHint(StyleHint sh, const QStyleOption *opt, const QWi
return QFrame::NoFrame;
}
}
-#endif // QT_NO_COMBOBOX
+#endif // QT_CONFIG(combobox)
break;
case SH_DialogButtonBox_ButtonsHaveIcons: s = QLatin1String("dialogbuttonbox-buttons-have-icons"); break;
case SH_Workspace_FillSpaceOnMaximize: s = QLatin1String("mdi-fill-space-on-maximize"); break;
@@ -5692,7 +5700,7 @@ QRect QStyleSheetStyle::subElementRect(SubElement se, const QStyleOption *opt, c
RECURSION_GUARD(return baseStyle()->subElementRect(se, opt, w))
QRenderRule rule = renderRule(w, opt);
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
int pe = PseudoElement_None;
#endif
@@ -5758,7 +5766,7 @@ QRect QStyleSheetStyle::subElementRect(SubElement se, const QStyleOption *opt, c
case SE_CheckBoxClickRect: // relies on indicator and contents
return ParentStyle::subElementRect(se, opt, w);
-#ifndef QT_NO_ITEMVIEWS
+#if QT_CONFIG(itemviews)
case SE_ViewItemCheckIndicator:
if (!qstyleoption_cast<const QStyleOptionViewItem *>(opt)) {
return subElementRect(SE_CheckBoxIndicator, opt, w);
@@ -5787,7 +5795,7 @@ QRect QStyleSheetStyle::subElementRect(SubElement se, const QStyleOption *opt, c
}
}
break;
-#endif // QT_NO_ITEMVIEWS
+#endif // QT_CONFIG(itemviews)
case SE_HeaderArrow: {
QRenderRule subRule = renderRule(w, opt, PseudoElement_HeaderViewUpArrow);
@@ -5820,7 +5828,7 @@ QRect QStyleSheetStyle::subElementRect(SubElement se, const QStyleOption *opt, c
}
break;
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
case SE_TabWidgetLeftCorner:
pe = PseudoElement_TabWidgetLeftCorner;
// intentionally falls through
@@ -5887,7 +5895,7 @@ QRect QStyleSheetStyle::subElementRect(SubElement se, const QStyleOption *opt, c
}
break;
}
-#endif // QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
case SE_DockWidgetCloseButton:
case SE_DockWidgetFloatButton: {
diff --git a/src/widgets/styles/qwindowsstyle.cpp b/src/widgets/styles/qwindowsstyle.cpp
index f805e29db1..63f7cd43ef 100644
--- a/src/widgets/styles/qwindowsstyle.cpp
+++ b/src/widgets/styles/qwindowsstyle.cpp
@@ -55,7 +55,9 @@
#include "qrubberband.h"
#endif
#include "qstyleoption.h"
+#if QT_CONFIG(tabbar)
#include "qtabbar.h"
+#endif
#include "qwidget.h"
#include "qdebug.h"
#include "qmainwindow.h"
@@ -65,7 +67,9 @@
#if QT_CONFIG(wizard)
#include "qwizard.h"
#endif
+#if QT_CONFIG(listview)
#include "qlistview.h"
+#endif
#include <private/qmath_p.h>
#include <qmath.h>
#include <QtGui/qscreen.h>
@@ -332,7 +336,7 @@ int QWindowsStylePrivate::fixedPixelMetric(QStyle::PixelMetric pm)
break;
case QStyle::PM_DockWidgetSeparatorExtent:
return 4;
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
case QStyle::PM_TabBarTabShiftHorizontal:
return 0;
case QStyle::PM_TabBarTabShiftVertical:
@@ -548,7 +552,7 @@ int QWindowsStyle::styleHint(StyleHint hint, const QStyleOption *opt, const QWid
break;
case SH_ItemView_ShowDecorationSelected:
-#ifndef QT_NO_LISTVIEW
+#if QT_CONFIG(listview)
if (qobject_cast<const QListView*>(widget))
ret = 1;
#endif
@@ -715,7 +719,7 @@ void QWindowsStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *opt,
case PE_FrameButtonTool:
case PE_PanelButtonTool: {
QPen oldPen = p->pen();
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
if (w && w->inherits("QDockWidgetTitleButton")) {
if (const QWidget *dw = w->parentWidget())
if (dw->isWindow()){
@@ -725,7 +729,7 @@ void QWindowsStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *opt,
return;
}
}
-#endif // QT_NO_DOCKWIDGET
+#endif // QT_CONFIG(dockwidget)
QBrush fill;
bool stippled;
bool panel = (pe == PE_PanelButtonTool);
@@ -1020,7 +1024,7 @@ void QWindowsStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *opt,
popupPal.setColor(QPalette::Midlight, opt->palette.light().color());
qDrawWinPanel(p, opt->rect, popupPal, opt->state & State_Sunken);
break; }
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
case PE_IndicatorDockWidgetResizeHandle:
break;
case PE_FrameDockWidget:
@@ -1028,7 +1032,7 @@ void QWindowsStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *opt,
proxy()->drawPrimitive(QStyle::PE_FrameWindow, opt, p, w);
}
break;
-#endif // QT_NO_DOCKWIDGET
+#endif // QT_CONFIG(dockwidget)
case PE_FrameStatusBarItem:
qDrawShadePanel(p, opt->rect, opt->palette, true, 1, 0);
@@ -1281,7 +1285,7 @@ void QWindowsStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPai
}
break;
#endif // QT_NO_MENUBAR
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
case CE_TabBarTabShape:
if (const QStyleOptionTab *tab = qstyleoption_cast<const QStyleOptionTab *>(opt)) {
bool rtlHorTabs = (tab->direction == Qt::RightToLeft
@@ -1484,7 +1488,7 @@ void QWindowsStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPai
}
}
break;
-#endif // QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
case CE_ToolBoxTabShape:
qDrawShadePanel(p, opt->rect, opt->palette,
opt->state & (State_Sunken | State_On), 1,
@@ -1617,6 +1621,7 @@ void QWindowsStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPai
default:
break;
}
+ Q_FALLTHROUGH(); // It continues in the end of the next case
case Qt::TopToolBarArea :
switch(toolbar->positionWithinLine){
case QStyleOptionToolBar::Beginning:
@@ -1782,7 +1787,7 @@ void QWindowsStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPai
}
break;
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
case CE_DockWidgetTitle:
if (const QStyleOptionDockWidget *dwOpt = qstyleoption_cast<const QStyleOptionDockWidget *>(opt)) {
@@ -1856,8 +1861,8 @@ void QWindowsStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPai
p->restore();
}
return;
-#endif // QT_NO_DOCKWIDGET
-#ifndef QT_NO_COMBOBOX
+#endif // QT_CONFIG(dockwidget)
+#if QT_CONFIG(combobox)
case CE_ComboBoxLabel:
if (const QStyleOptionComboBox *cb = qstyleoption_cast<const QStyleOptionComboBox *>(opt)) {
if (cb->state & State_HasFocus) {
@@ -1870,7 +1875,7 @@ void QWindowsStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPai
}
QCommonStyle::drawControl(ce, opt, p, widget);
break;
-#endif // QT_NO_COMBOBOX
+#endif // QT_CONFIG(combobox)
default:
QCommonStyle::drawControl(ce, opt, p, widget);
}
@@ -2148,7 +2153,7 @@ void QWindowsStyle::drawComplexControl(ComplexControl cc, const QStyleOptionComp
}
break;
#endif // QT_NO_SCROLLBAR
-#ifndef QT_NO_COMBOBOX
+#if QT_CONFIG(combobox)
case CC_ComboBox:
if (const QStyleOptionComboBox *cmb = qstyleoption_cast<const QStyleOptionComboBox *>(opt)) {
QBrush editBrush = cmb->palette.brush(QPalette::Base);
@@ -2221,7 +2226,7 @@ void QWindowsStyle::drawComplexControl(ComplexControl cc, const QStyleOptionComp
}
}
break;
-#endif // QT_NO_COMBOBOX
+#endif // QT_CONFIG(combobox)
#ifndef QT_NO_SPINBOX
case CC_SpinBox:
if (const QStyleOptionSpinBox *sb = qstyleoption_cast<const QStyleOptionSpinBox *>(opt)) {
diff --git a/src/widgets/util/qcompleter.cpp b/src/widgets/util/qcompleter.cpp
index 96f91188b8..3a1821240e 100644
--- a/src/widgets/util/qcompleter.cpp
+++ b/src/widgets/util/qcompleter.cpp
@@ -147,12 +147,16 @@
#include "QtWidgets/qscrollbar.h"
#include "QtCore/qstringlistmodel.h"
+#if QT_CONFIG(dirmodel)
#include "QtWidgets/qdirmodel.h"
+#endif
#if QT_CONFIG(filesystemmodel)
#include "QtWidgets/qfilesystemmodel.h"
#endif
#include "QtWidgets/qheaderview.h"
+#if QT_CONFIG(listview)
#include "QtWidgets/qlistview.h"
+#endif
#include "QtWidgets/qapplication.h"
#include "QtGui/qevent.h"
#include "QtWidgets/qdesktopwidget.h"
@@ -463,7 +467,7 @@ QMatchData QCompletionEngine::filterHistory()
if (curParts.count() <= 1 || c->proxy->showAll || !source)
return QMatchData();
-#ifndef QT_NO_DIRMODEL
+#if QT_CONFIG(dirmodel)
const bool isDirModel = (qobject_cast<QDirModel *>(source) != 0);
#else
const bool isDirModel = false;
@@ -833,11 +837,11 @@ void QCompleterPrivate::init(QAbstractItemModel *m)
proxy = new QCompletionModel(this, q);
QObject::connect(proxy, SIGNAL(rowsAdded()), q, SLOT(_q_autoResizePopup()));
q->setModel(m);
-#ifdef QT_NO_LISTVIEW
+#if !QT_CONFIG(listview)
q->setCompletionMode(QCompleter::InlineCompletion);
#else
q->setCompletionMode(QCompleter::PopupCompletion);
-#endif // QT_NO_LISTVIEW
+#endif // QT_CONFIG(listview)
}
void QCompleterPrivate::setCurrentIndex(QModelIndex index, bool select)
@@ -884,7 +888,7 @@ void QCompleterPrivate::_q_complete(QModelIndex index, bool highlighted)
QModelIndex si = proxy->mapToSource(index);
si = si.sibling(si.row(), column); // for clicked()
completion = q->pathFromIndex(si);
-#ifndef QT_NO_DIRMODEL
+#if QT_CONFIG(dirmodel)
// add a trailing separator in inline
if (mode == QCompleter::InlineCompletion) {
if (qobject_cast<QDirModel *>(proxy->sourceModel()) && QFileInfo(completion).isDir())
@@ -1072,7 +1076,7 @@ void QCompleter::setModel(QAbstractItemModel *model)
setPopup(d->popup); // set the model and make new connections
if (oldModel && oldModel->QObject::parent() == this)
delete oldModel;
-#ifndef QT_NO_DIRMODEL
+#if QT_CONFIG(dirmodel)
if (qobject_cast<QDirModel *>(model)) {
#if defined(Q_OS_WIN)
setCaseSensitivity(Qt::CaseInsensitive);
@@ -1080,7 +1084,7 @@ void QCompleter::setModel(QAbstractItemModel *model)
setCaseSensitivity(Qt::CaseSensitive);
#endif
}
-#endif // QT_NO_DIRMODEL
+#endif // QT_CONFIG(dirmodel)
#if QT_CONFIG(filesystemmodel)
QFileSystemModel *fsModel = qobject_cast<QFileSystemModel *>(model);
if (fsModel) {
@@ -1231,7 +1235,7 @@ void QCompleter::setPopup(QAbstractItemView *popup)
popup->setFocusProxy(d->widget);
popup->installEventFilter(this);
popup->setItemDelegate(new QCompleterItemDelegate(popup));
-#ifndef QT_NO_LISTVIEW
+#if QT_CONFIG(listview)
if (QListView *listView = qobject_cast<QListView *>(popup)) {
listView->setModelColumn(d->column);
}
@@ -1255,7 +1259,7 @@ void QCompleter::setPopup(QAbstractItemView *popup)
QAbstractItemView *QCompleter::popup() const
{
Q_D(const QCompleter);
-#ifndef QT_NO_LISTVIEW
+#if QT_CONFIG(listview)
if (!d->popup && completionMode() != QCompleter::InlineCompletion) {
QListView *listView = new QListView;
listView->setEditTriggers(QAbstractItemView::NoEditTriggers);
@@ -1266,7 +1270,7 @@ QAbstractItemView *QCompleter::popup() const
QCompleter *that = const_cast<QCompleter*>(this);
that->setPopup(listView);
}
-#endif // QT_NO_LISTVIEW
+#endif // QT_CONFIG(listview)
return d->popup;
}
@@ -1597,7 +1601,7 @@ void QCompleter::setCompletionColumn(int column)
Q_D(QCompleter);
if (d->column == column)
return;
-#ifndef QT_NO_LISTVIEW
+#if QT_CONFIG(listview)
if (QListView *listView = qobject_cast<QListView *>(d->popup))
listView->setModelColumn(column);
#endif
@@ -1786,7 +1790,7 @@ QString QCompleter::pathFromIndex(const QModelIndex& index) const
return QString();
bool isDirModel = false;
bool isFsModel = false;
-#ifndef QT_NO_DIRMODEL
+#if QT_CONFIG(dirmodel)
isDirModel = qobject_cast<QDirModel *>(d->proxy->sourceModel()) != 0;
#endif
#if QT_CONFIG(filesystemmodel)
@@ -1835,12 +1839,12 @@ QStringList QCompleter::splitPath(const QString& path) const
{
bool isDirModel = false;
bool isFsModel = false;
-#ifndef QT_NO_DIRMODEL
+#if QT_CONFIG(dirmodel)
Q_D(const QCompleter);
isDirModel = qobject_cast<QDirModel *>(d->proxy->sourceModel()) != 0;
#endif
#if QT_CONFIG(filesystemmodel)
-#ifdef QT_NO_DIRMODEL
+#if !QT_CONFIG(dirmodel)
Q_D(const QCompleter);
#endif
isFsModel = qobject_cast<QFileSystemModel *>(d->proxy->sourceModel()) != 0;
diff --git a/src/widgets/widgets/qabstractbutton.cpp b/src/widgets/widgets/qabstractbutton.cpp
index e65613d5cd..1d78d24a88 100644
--- a/src/widgets/widgets/qabstractbutton.cpp
+++ b/src/widgets/widgets/qabstractbutton.cpp
@@ -40,7 +40,9 @@
#include "private/qabstractbutton_p.h"
#include "private/qbuttongroup_p.h"
+#if QT_CONFIG(itemviews)
#include "qabstractitemview.h"
+#endif
#include "qbuttongroup.h"
#include "qabstractbutton_p.h"
#include "qevent.h"
@@ -1071,7 +1073,7 @@ void QAbstractButton::keyPressEvent(QKeyEvent *e)
#ifndef QT_NO_BUTTONGROUP
|| d->group
#endif
-#ifndef QT_NO_ITEMVIEWS
+#if QT_CONFIG(itemviews)
|| (pw && qobject_cast<QAbstractItemView *>(pw->parentWidget()))
#endif
) {
diff --git a/src/widgets/widgets/qabstractscrollarea.cpp b/src/widgets/widgets/qabstractscrollarea.cpp
index 673983d575..14498c8b90 100644
--- a/src/widgets/widgets/qabstractscrollarea.cpp
+++ b/src/widgets/widgets/qabstractscrollarea.cpp
@@ -50,7 +50,9 @@
#include "qboxlayout.h"
#include "qpainter.h"
#include "qmargins.h"
+#if QT_CONFIG(itemviews)
#include "qheaderview.h"
+#endif
#include <QDebug>
diff --git a/src/widgets/widgets/qcalendarwidget.cpp b/src/widgets/widgets/qcalendarwidget.cpp
index b96492d623..94911d1cb1 100644
--- a/src/widgets/widgets/qcalendarwidget.cpp
+++ b/src/widgets/widgets/qcalendarwidget.cpp
@@ -39,8 +39,6 @@
#include "qcalendarwidget.h"
-#ifndef QT_NO_CALENDARWIDGET
-
#include <qabstractitemmodel.h>
#include <qitemdelegate.h>
#include <qdatetime.h>
@@ -3129,5 +3127,3 @@ QT_END_NAMESPACE
#include "qcalendarwidget.moc"
#include "moc_qcalendarwidget.cpp"
-
-#endif //QT_NO_CALENDARWIDGET
diff --git a/src/widgets/widgets/qcalendarwidget.h b/src/widgets/widgets/qcalendarwidget.h
index 7780065117..29e2ff698b 100644
--- a/src/widgets/widgets/qcalendarwidget.h
+++ b/src/widgets/widgets/qcalendarwidget.h
@@ -44,10 +44,9 @@
#include <QtWidgets/qwidget.h>
#include <QtCore/qdatetime.h>
-QT_BEGIN_NAMESPACE
-
+QT_REQUIRE_CONFIG(calendarwidget);
-#ifndef QT_NO_CALENDARWIDGET
+QT_BEGIN_NAMESPACE
class QDate;
class QTextCharFormat;
@@ -184,9 +183,6 @@ private:
};
-#endif // QT_NO_CALENDARWIDGET
-
QT_END_NAMESPACE
#endif // QCALENDARWIDGET_H
-
diff --git a/src/widgets/widgets/qcombobox.cpp b/src/widgets/widgets/qcombobox.cpp
index 1259c236e4..58a1ff9e7f 100644
--- a/src/widgets/widgets/qcombobox.cpp
+++ b/src/widgets/widgets/qcombobox.cpp
@@ -39,7 +39,6 @@
#include "qcombobox.h"
-#ifndef QT_NO_COMBOBOX
#include <qstylepainter.h>
#include <qpa/qplatformtheme.h>
#include <qpa/qplatformmenu.h>
@@ -3508,5 +3507,3 @@ QT_END_NAMESPACE
#include "moc_qcombobox.cpp"
#include "moc_qcombobox_p.cpp"
-
-#endif // QT_NO_COMBOBOX
diff --git a/src/widgets/widgets/qcombobox.h b/src/widgets/widgets/qcombobox.h
index 8f99594a76..a6aac6f8aa 100644
--- a/src/widgets/widgets/qcombobox.h
+++ b/src/widgets/widgets/qcombobox.h
@@ -46,9 +46,9 @@
#include <QtCore/qabstractitemmodel.h>
#include <QtCore/qvariant.h>
-QT_BEGIN_NAMESPACE
+QT_REQUIRE_CONFIG(combobox);
-#ifndef QT_NO_COMBOBOX
+QT_BEGIN_NAMESPACE
class QAbstractItemView;
class QLineEdit;
@@ -277,8 +277,6 @@ inline void QComboBox::insertItem(int aindex, const QString &atext,
const QVariant &auserData)
{ insertItem(aindex, QIcon(), atext, auserData); }
-#endif // QT_NO_COMBOBOX
-
QT_END_NAMESPACE
#endif // QCOMBOBOX_H
diff --git a/src/widgets/widgets/qcombobox_p.h b/src/widgets/widgets/qcombobox_p.h
index 8d3b46a950..6bee9409ee 100644
--- a/src/widgets/widgets/qcombobox_p.h
+++ b/src/widgets/widgets/qcombobox_p.h
@@ -54,7 +54,6 @@
#include <QtWidgets/private/qtwidgetsglobal_p.h>
#include "QtWidgets/qcombobox.h"
-#ifndef QT_NO_COMBOBOX
#include "QtWidgets/qabstractslider.h"
#include "QtWidgets/qapplication.h"
#include "QtWidgets/qitemdelegate.h"
@@ -74,6 +73,8 @@
#include <limits.h>
+QT_REQUIRE_CONFIG(combobox);
+
QT_BEGIN_NAMESPACE
class QAction;
@@ -424,6 +425,4 @@ public:
QT_END_NAMESPACE
-#endif // QT_NO_COMBOBOX
-
#endif // QCOMBOBOX_P_H
diff --git a/src/widgets/widgets/qdatetimeedit_p.h b/src/widgets/widgets/qdatetimeedit_p.h
index bc70780de9..5ac5a9db6a 100644
--- a/src/widgets/widgets/qdatetimeedit_p.h
+++ b/src/widgets/widgets/qdatetimeedit_p.h
@@ -52,7 +52,6 @@
//
#include <QtWidgets/private/qtwidgetsglobal_p.h>
-#include "QtWidgets/qcombobox.h"
#include "QtWidgets/qcalendarwidget.h"
#include "QtWidgets/qspinbox.h"
#include "QtWidgets/qtoolbutton.h"
diff --git a/src/widgets/widgets/qdockarealayout.cpp b/src/widgets/widgets/qdockarealayout.cpp
index 60f6f6d26d..5edcbcf4ec 100644
--- a/src/widgets/widgets/qdockarealayout.cpp
+++ b/src/widgets/widgets/qdockarealayout.cpp
@@ -40,7 +40,9 @@
#include "QtWidgets/qapplication.h"
#include "QtWidgets/qwidget.h"
+#if QT_CONFIG(tabbar)
#include "QtWidgets/qtabbar.h"
+#endif
#include "QtWidgets/qstyle.h"
#include "QtWidgets/qdesktopwidget.h"
#include "QtWidgets/qapplication.h"
@@ -56,8 +58,6 @@
#include <qpainter.h>
#include <qstyleoption.h>
-#ifndef QT_NO_DOCKWIDGET
-
QT_BEGIN_NAMESPACE
// qmainwindow.cpp
@@ -214,7 +214,7 @@ QDockAreaLayoutItem
** QDockAreaLayoutInfo
*/
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
static quintptr tabId(const QDockAreaLayoutItem &item)
{
if (item.widgetItem == 0)
@@ -227,7 +227,7 @@ static const int zero = 0;
QDockAreaLayoutInfo::QDockAreaLayoutInfo()
: sep(&zero), dockPos(QInternal::LeftDock), o(Qt::Horizontal), mainWindow(0)
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
, tabbed(false), tabBar(0), tabBarShape(QTabBar::RoundedSouth)
#endif
{
@@ -237,11 +237,11 @@ QDockAreaLayoutInfo::QDockAreaLayoutInfo(const int *_sep, QInternal::DockPositio
Qt::Orientation _o, int tbshape,
QMainWindow *window)
: sep(_sep), dockPos(_dockPos), o(_o), mainWindow(window)
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
, tabbed(false), tabBar(0), tabBarShape(static_cast<QTabBar::Shape>(tbshape))
#endif
{
-#ifdef QT_NO_TABBAR
+#if !QT_CONFIG(tabbar)
Q_UNUSED(tbshape);
#endif
}
@@ -255,7 +255,7 @@ void QDockAreaLayoutInfo::clear()
{
item_list.clear();
rect = QRect();
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
tabbed = false;
tabBar = 0;
#endif
@@ -289,7 +289,7 @@ QSize QDockAreaLayoutInfo::minimumSize() const
continue;
QSize min_size = item.minimumSize();
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
if (tabbed) {
a = qMax(a, pick(o, min_size));
} else
@@ -308,7 +308,7 @@ QSize QDockAreaLayoutInfo::minimumSize() const
rpick(o, result) = a;
rperp(o, result) = b;
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
QSize tbm = tabBarMinimumSize();
if (!tbm.isNull()) {
switch (tabBarShape) {
@@ -330,7 +330,7 @@ QSize QDockAreaLayoutInfo::minimumSize() const
break;
}
}
-#endif // QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
return result;
}
@@ -341,7 +341,7 @@ QSize QDockAreaLayoutInfo::maximumSize() const
return QSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX);
int a = 0, b = QWIDGETSIZE_MAX;
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
if (tabbed)
a = QWIDGETSIZE_MAX;
#endif
@@ -357,7 +357,7 @@ QSize QDockAreaLayoutInfo::maximumSize() const
QSize max_size = item.maximumSize();
min_perp = qMax(min_perp, perp(o, item.minimumSize()));
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
if (tabbed) {
a = qMin(a, pick(o, max_size));
} else
@@ -381,7 +381,7 @@ QSize QDockAreaLayoutInfo::maximumSize() const
rpick(o, result) = a;
rperp(o, result) = b;
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
QSize tbh = tabBarSizeHint();
if (!tbh.isNull()) {
switch (tabBarShape) {
@@ -397,7 +397,7 @@ QSize QDockAreaLayoutInfo::maximumSize() const
break;
}
}
-#endif // QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
return result;
}
@@ -422,7 +422,7 @@ QSize QDockAreaLayoutInfo::sizeHint() const
min_perp = qMax(min_perp, perp(o, item.minimumSize()));
max_perp = qMin(max_perp, perp(o, item.maximumSize()));
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
if (tabbed) {
a = qMax(a, gap ? item.size : pick(o, size_hint));
} else
@@ -447,7 +447,7 @@ QSize QDockAreaLayoutInfo::sizeHint() const
rpick(o, result) = a;
rperp(o, result) = b;
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
if (tabbed) {
QSize tbh = tabBarSizeHint();
switch (tabBarShape) {
@@ -469,7 +469,7 @@ QSize QDockAreaLayoutInfo::sizeHint() const
break;
}
}
-#endif // QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
return result;
}
@@ -545,7 +545,7 @@ static int realMaxSize(const QDockAreaLayoutInfo &info)
void QDockAreaLayoutInfo::fitItems()
{
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
if (tabbed) {
return;
}
@@ -759,7 +759,7 @@ QList<int> QDockAreaLayoutInfo::gapIndex(const QPoint& _pos,
QRect item_rect;
int item_index = 0;
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
if (tabbed) {
item_rect = tabContentRect();
} else
@@ -779,7 +779,7 @@ QList<int> QDockAreaLayoutInfo::gapIndex(const QPoint& _pos,
continue;
if (item.subinfo != 0
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
&& !item.subinfo->tabbed
#endif
) {
@@ -941,7 +941,7 @@ static int separatorMoveHelper(QVector<QLayoutStruct> &list, int index, int delt
int QDockAreaLayoutInfo::separatorMove(int index, int delta)
{
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
Q_ASSERT(!tabbed);
#endif
@@ -1065,7 +1065,7 @@ QLayoutItem *QDockAreaLayoutInfo::unplug(const QList<int> &path)
Q_ASSERT(!(item.flags & QDockAreaLayoutItem::GapItem));
item.flags |= QDockAreaLayoutItem::GapItem;
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
if (tabbed) {
} else
#endif
@@ -1081,7 +1081,7 @@ QLayoutItem *QDockAreaLayoutInfo::unplug(const QList<int> &path)
return item.widgetItem;
}
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
quintptr QDockAreaLayoutInfo::currentTabId() const
{
@@ -1113,7 +1113,7 @@ void QDockAreaLayoutInfo::setCurrentTabId(quintptr id)
}
}
-#endif // QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
static QRect dockedGeometry(QWidget *widget)
{
@@ -1146,7 +1146,7 @@ bool QDockAreaLayoutInfo::insertGap(const QList<int> &path, QLayoutItem *dockWid
QDockAreaLayoutItem &item = item_list[index];
if (item.subinfo == 0
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
|| (item.subinfo->tabbed && !insert_tabbed)
#endif
) {
@@ -1159,7 +1159,7 @@ bool QDockAreaLayoutInfo::insertGap(const QList<int> &path, QLayoutItem *dockWid
QRect r = subinfo == 0 ? widgetItem ? dockedGeometry(widgetItem->widget()) : placeHolderItem->topLevelRect : subinfo->rect;
Qt::Orientation opposite = o == Qt::Horizontal ? Qt::Vertical : Qt::Horizontal;
-#ifdef QT_NO_TABBAR
+#if !QT_CONFIG(tabbar)
const int tabBarShape = 0;
#endif
QDockAreaLayoutInfo *new_info
@@ -1177,7 +1177,7 @@ bool QDockAreaLayoutInfo::insertGap(const QList<int> &path, QLayoutItem *dockWid
new_item.size = pick(opposite, r.size());
new_item.pos = pick(opposite, r.topLeft());
new_info->item_list.append(new_item);
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
if (insert_tabbed) {
new_info->tabbed = true;
}
@@ -1192,7 +1192,7 @@ bool QDockAreaLayoutInfo::insertGap(const QList<int> &path, QLayoutItem *dockWid
gap_item.flags |= QDockAreaLayoutItem::GapItem;
gap_item.widgetItem = dockWidgetItem; // so minimumSize(), maximumSize() and
// sizeHint() will work
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
if (!tabbed)
#endif
{
@@ -1267,7 +1267,7 @@ QDockAreaLayoutInfo *QDockAreaLayoutInfo::info(QWidget *widget)
if (item.skip())
continue;
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
if (tabbed && widget == tabBar)
return this;
#endif
@@ -1308,7 +1308,7 @@ QRect QDockAreaLayoutInfo::itemRect(int index, bool isGap) const
QRect result;
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
if (tabbed) {
if (isGap || tabId(item) == currentTabId())
result = tabContentRect();
@@ -1357,7 +1357,7 @@ QRect QDockAreaLayoutInfo::itemRect(const QList<int> &path) const
QRect QDockAreaLayoutInfo::separatorRect(int index) const
{
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
if (tabbed)
return QRect();
#endif
@@ -1389,7 +1389,7 @@ QRect QDockAreaLayoutInfo::separatorRect(const QList<int> &path) const
QList<int> QDockAreaLayoutInfo::findSeparator(const QPoint &_pos) const
{
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
if (tabbed)
return QList<int>();
#endif
@@ -1500,7 +1500,7 @@ QDockWidget *QDockAreaLayoutInfo::apply(bool animate)
{
QWidgetAnimator &widgetAnimator = mainWindowLayout()->widgetAnimator;
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
if (tabbed) {
QRect tab_rect;
QSize tbh = tabBarSizeHint();
@@ -1533,7 +1533,7 @@ QDockWidget *QDockAreaLayoutInfo::apply(bool animate)
widgetAnimator.animate(tabBar, tab_rect, animate);
}
-#endif // QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
QDockWidget *activated = nullptr;
@@ -1569,10 +1569,10 @@ QDockWidget *QDockAreaLayoutInfo::apply(bool animate)
}
}
}
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
if (*sep == 1)
updateSeparatorWidgets();
-#endif //QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
return activated;
}
@@ -1599,7 +1599,7 @@ QRegion QDockAreaLayoutInfo::separatorRegion() const
if (isEmpty())
return result;
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
if (tabbed)
return result;
#endif
@@ -1629,7 +1629,7 @@ void QDockAreaLayoutInfo::paintSeparators(QPainter *p, QWidget *widget,
{
if (isEmpty())
return;
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
if (tabbed)
return;
#endif
@@ -1678,7 +1678,7 @@ int QDockAreaLayoutInfo::prev(int index) const
void QDockAreaLayoutInfo::tab(int index, QLayoutItem *dockWidgetItem)
{
-#ifdef QT_NO_TABBAR
+#if !QT_CONFIG(tabbar)
Q_UNUSED(index);
Q_UNUSED(dockWidgetItem);
#else
@@ -1697,7 +1697,7 @@ void QDockAreaLayoutInfo::tab(int index, QLayoutItem *dockWidgetItem)
new_info->updateTabBar();
new_info->setCurrentTab(dockWidgetItem->widget());
}
-#endif // QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
}
void QDockAreaLayoutInfo::split(int index, Qt::Orientation orientation,
@@ -1706,7 +1706,7 @@ void QDockAreaLayoutInfo::split(int index, Qt::Orientation orientation,
if (orientation == o) {
item_list.insert(index + 1, QDockAreaLayoutItem(dockWidgetItem));
} else {
-#ifdef QT_NO_TABBAR
+#if !QT_CONFIG(tabbar)
const int tabBarShape = 0;
#endif
QDockAreaLayoutInfo *new_info
@@ -1787,7 +1787,7 @@ void QDockAreaLayoutInfo::deleteAllLayoutItems()
void QDockAreaLayoutInfo::saveState(QDataStream &stream) const
{
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
if (tabbed) {
stream << (uchar) TabMarker;
@@ -1802,7 +1802,7 @@ void QDockAreaLayoutInfo::saveState(QDataStream &stream) const
}
stream << index;
} else
-#endif // QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
{
stream << (uchar) SequenceMarker;
}
@@ -1876,7 +1876,7 @@ bool QDockAreaLayoutInfo::restoreState(QDataStream &stream, QList<QDockWidget*>
if (marker != TabMarker && marker != SequenceMarker)
return false;
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
tabbed = marker == TabMarker;
int index = -1;
@@ -1981,7 +1981,7 @@ bool QDockAreaLayoutInfo::restoreState(QDataStream &stream, QList<QDockWidget*>
}
} else if (nextMarker == SequenceMarker) {
int dummy;
-#ifdef QT_NO_TABBAR
+#if !QT_CONFIG(tabbar)
const int tabBarShape = 0;
#endif
QDockAreaLayoutItem item(new QDockAreaLayoutInfo(sep, dockPos, o,
@@ -2002,7 +2002,7 @@ bool QDockAreaLayoutInfo::restoreState(QDataStream &stream, QList<QDockWidget*>
}
}
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
if (!testing && tabbed && index >= 0 && index < item_list.count()) {
updateTabBar();
setCurrentTabId(tabId(item_list.at(index)));
@@ -2014,7 +2014,7 @@ bool QDockAreaLayoutInfo::restoreState(QDataStream &stream, QList<QDockWidget*>
return true;
}
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
void QDockAreaLayoutInfo::updateSeparatorWidgets() const
{
if (tabbed) {
@@ -2065,9 +2065,7 @@ void QDockAreaLayoutInfo::updateSeparatorWidgets() const
separatorWidgets.resize(j);
Q_ASSERT(separatorWidgets.size() == j);
}
-#endif //QT_NO_TABBAR
-#ifndef QT_NO_TABBAR
/*! \internal
reparent all the widgets contained in this layout portion to the
specified parent. This is used to reparent dock widgets and tabbars
@@ -2293,7 +2291,7 @@ void QDockAreaLayoutInfo::moveTab(int from, int to)
{
item_list.move(tabIndexToListIndex(from), tabIndexToListIndex(to));
}
-#endif // QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
/******************************************************************************
** QDockAreaLayout
@@ -2303,7 +2301,7 @@ QDockAreaLayout::QDockAreaLayout(QMainWindow *win) : fallbackToSizeHints(true)
{
mainWindow = win;
sep = win->style()->pixelMetric(QStyle::PM_DockWidgetSeparatorExtent, 0, win);
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
const int tabShape = QTabBar::RoundedSouth;
#else
const int tabShape = 0;
@@ -2423,7 +2421,7 @@ QList<int> QDockAreaLayout::gapIndex(const QPoint &pos, bool disallowTabs) const
QMainWindow::DockOptions opts = mainWindow->dockOptions();
bool nestingEnabled = opts & QMainWindow::AllowNestedDocks;
QDockAreaLayoutInfo::TabMode tabMode = QDockAreaLayoutInfo::NoTabs;
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
if (!disallowTabs) {
if (opts & QMainWindow::AllowTabbedDocks || opts & QMainWindow::VerticalTabs)
tabMode = QDockAreaLayoutInfo::AllowTabs;
@@ -3115,14 +3113,14 @@ void QDockAreaLayout::addDockWidget(QInternal::DockPosition pos, QDockWidget *do
QDockAreaLayoutItem new_item(dockWidgetItem);
info.item_list.append(new_item);
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
if (info.tabbed && !new_item.skip()) {
info.updateTabBar();
info.setCurrentTabId(tabId(new_item));
}
#endif
} else {
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
int tbshape = info.tabBarShape;
#else
int tbshape = 0;
@@ -3223,10 +3221,10 @@ void QDockAreaLayout::apply(bool animate)
widgetAnimator.animate(centralWidgetItem->widget(), centralWidgetRect,
animate);
}
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
if (sep == 1)
updateSeparatorWidgets();
-#endif //QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
}
void QDockAreaLayout::paintSeparators(QPainter *p, QWidget *widget,
@@ -3317,7 +3315,7 @@ int QDockAreaLayoutInfo::separatorMove(const QList<int> &separator, const QPoint
return delta;
}
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
// Sets the correct positions for the separator widgets
// Allocates new sepearator widgets with getSeparatorWidget
void QDockAreaLayout::updateSeparatorWidgets() const
@@ -3351,7 +3349,7 @@ void QDockAreaLayout::updateSeparatorWidgets() const
separatorWidgets.resize(j);
}
-#endif //QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
QLayoutItem *QDockAreaLayout::itemAt(int *x, int index) const
{
@@ -3394,7 +3392,7 @@ void QDockAreaLayout::deleteAllLayoutItems()
docks[i].deleteAllLayoutItems();
}
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
QSet<QTabBar*> QDockAreaLayout::usedTabBars() const
{
QSet<QTabBar*> result;
@@ -3450,5 +3448,3 @@ void QDockAreaLayout::styleChangedEvent()
}
QT_END_NAMESPACE
-
-#endif // QT_NO_DOCKWIDGET
diff --git a/src/widgets/widgets/qdockarealayout_p.h b/src/widgets/widgets/qdockarealayout_p.h
index e4cdc9f296..49bd157179 100644
--- a/src/widgets/widgets/qdockarealayout_p.h
+++ b/src/widgets/widgets/qdockarealayout_p.h
@@ -58,7 +58,7 @@
#include "QtCore/qvector.h"
#include "QtWidgets/qlayout.h"
-#ifndef QT_NO_DOCKWIDGET
+QT_REQUIRE_CONFIG(dockwidget);
QT_BEGIN_NAMESPACE
@@ -197,12 +197,10 @@ public:
QRect rect;
QMainWindow *mainWindow;
QList<QDockAreaLayoutItem> item_list;
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
void updateSeparatorWidgets() const;
QSet<QWidget*> usedSeparatorWidgets() const;
-#endif //QT_NO_TABBAR
-#ifndef QT_NO_TABBAR
quintptr currentTabId() const;
void setCurrentTab(QWidget *widget);
void setCurrentTabId(quintptr id);
@@ -221,7 +219,7 @@ public:
int tabIndexToListIndex(int) const;
void moveTab(int from, int to);
-#endif // QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
};
class Q_AUTOTEST_EXPORT QDockAreaLayout
@@ -286,9 +284,9 @@ public:
const QPoint &mouse) const;
QRegion separatorRegion() const;
int separatorMove(const QList<int> &separator, const QPoint &origin, const QPoint &dest);
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
void updateSeparatorWidgets() const;
-#endif //QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
QLayoutItem *itemAt(int *x, int index) const;
QLayoutItem *takeAt(int *x, int index);
@@ -302,15 +300,13 @@ public:
QRect gapRect(const QList<int> &path) const;
void keepSize(QDockWidget *w);
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
QSet<QTabBar*> usedTabBars() const;
QSet<QWidget*> usedSeparatorWidgets() const;
-#endif //QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
void styleChangedEvent();
};
QT_END_NAMESPACE
-#endif // QT_NO_QDOCKWIDGET
-
#endif // QDOCKAREALAYOUT_P_H
diff --git a/src/widgets/widgets/qdockwidget.cpp b/src/widgets/widgets/qdockwidget.cpp
index 15f79638c8..36d7ab3421 100644
--- a/src/widgets/widgets/qdockwidget.cpp
+++ b/src/widgets/widgets/qdockwidget.cpp
@@ -39,7 +39,6 @@
#include "qdockwidget.h"
-#ifndef QT_NO_DOCKWIDGET
#include <qaction.h>
#include <qapplication.h>
#include <qdesktopwidget.h>
@@ -1392,14 +1391,14 @@ void QDockWidget::changeEvent(QEvent *event)
d->fixedWindowTitle = qt_setWindowTitle_helperHelper(windowTitle(), this);
d->toggleViewAction->setText(d->fixedWindowTitle);
#endif
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
{
if (QMainWindowLayout *winLayout = qt_mainwindow_layout_from_dock(this)) {
if (QDockAreaLayoutInfo *info = winLayout->layoutState.dockAreaLayout.info(this))
info->updateTabBar();
}
}
-#endif // QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
break;
default:
break;
@@ -1689,5 +1688,3 @@ QT_END_NAMESPACE
#include "qdockwidget.moc"
#include "moc_qdockwidget.cpp"
#include "moc_qdockwidget_p.cpp"
-
-#endif // QT_NO_DOCKWIDGET
diff --git a/src/widgets/widgets/qdockwidget.h b/src/widgets/widgets/qdockwidget.h
index 80df009007..b53fa19a03 100644
--- a/src/widgets/widgets/qdockwidget.h
+++ b/src/widgets/widgets/qdockwidget.h
@@ -43,10 +43,9 @@
#include <QtWidgets/qtwidgetsglobal.h>
#include <QtWidgets/qwidget.h>
-QT_BEGIN_NAMESPACE
-
+QT_REQUIRE_CONFIG(dockwidget);
-#ifndef QT_NO_DOCKWIDGET
+QT_BEGIN_NAMESPACE
class QDockAreaLayout;
class QDockWidgetPrivate;
@@ -134,8 +133,6 @@ private:
Q_DECLARE_OPERATORS_FOR_FLAGS(QDockWidget::DockWidgetFeatures)
-#endif // QT_NO_DOCKWIDGET
-
QT_END_NAMESPACE
#endif // QDYNAMICDOCKWIDGET_H
diff --git a/src/widgets/widgets/qdockwidget_p.h b/src/widgets/widgets/qdockwidget_p.h
index 2d62cf5acd..2c16176c37 100644
--- a/src/widgets/widgets/qdockwidget_p.h
+++ b/src/widgets/widgets/qdockwidget_p.h
@@ -57,7 +57,7 @@
#include "QtWidgets/qboxlayout.h"
#include "QtWidgets/qdockwidget.h"
-#ifndef QT_NO_DOCKWIDGET
+QT_REQUIRE_CONFIG(dockwidget);
QT_BEGIN_NAMESPACE
@@ -204,6 +204,4 @@ inline QDockWidgetLayout *QDockWidgetItem::dockWidgetLayout() const
QT_END_NAMESPACE
-#endif // QT_NO_DOCKWIDGET
-
#endif // QDYNAMICDOCKWIDGET_P_H
diff --git a/src/widgets/widgets/qlineedit.cpp b/src/widgets/widgets/qlineedit.cpp
index f859ec0ddb..f57fa4fd85 100644
--- a/src/widgets/widgets/qlineedit.cpp
+++ b/src/widgets/widgets/qlineedit.cpp
@@ -68,7 +68,9 @@
#ifndef QT_NO_ACCESSIBILITY
#include "qaccessible.h"
#endif
+#if QT_CONFIG(itemviews)
#include "qabstractitemview.h"
+#endif
#include "private/qstylesheetstyle_p.h"
#ifndef QT_NO_SHORTCUT
diff --git a/src/widgets/widgets/qlineedit_p.cpp b/src/widgets/widgets/qlineedit_p.cpp
index e1c7a4e280..83dab9e110 100644
--- a/src/widgets/widgets/qlineedit_p.cpp
+++ b/src/widgets/widgets/qlineedit_p.cpp
@@ -43,7 +43,9 @@
#ifndef QT_NO_LINEEDIT
#include "qvariant.h"
+#if QT_CONFIG(itemviews)
#include "qabstractitemview.h"
+#endif
#include "qdrag.h"
#include "qwidgetaction.h"
#include "qclipboard.h"
diff --git a/src/widgets/widgets/qmainwindow.cpp b/src/widgets/widgets/qmainwindow.cpp
index 889082cb2a..694a36ed5b 100644
--- a/src/widgets/widgets/qmainwindow.cpp
+++ b/src/widgets/widgets/qmainwindow.cpp
@@ -44,7 +44,9 @@
#ifndef QT_NO_MAINWINDOW
+#if QT_CONFIG(dockwidget)
#include "qdockwidget.h"
+#endif
#include "qtoolbar.h"
#include <qapplication.h>
@@ -348,7 +350,7 @@ void QMainWindowPrivate::init()
\sa setToolButtonStyle()
*/
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
/*!
\fn void QMainWindow::tabifiedDockWidgetActivated(QDockWidget *dockWidget)
@@ -660,7 +662,7 @@ QWidget *QMainWindow::takeCentralWidget()
return oldcentralwidget;
}
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
/*!
Sets the given dock widget \a area to occupy the specified \a
corner.
@@ -766,12 +768,12 @@ void QMainWindow::addToolBar(Qt::ToolBarArea area, QToolBar *toolbar)
if(toolbar->d_func()->state && toolbar->d_func()->state->dragging) {
//removing a toolbar which is dragging will cause crash
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
bool animated = isAnimated();
setAnimated(false);
#endif
toolbar->d_func()->endDrag();
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
setAnimated(animated);
#endif
}
@@ -870,7 +872,7 @@ bool QMainWindow::toolBarBreak(QToolBar *toolbar) const
#endif // QT_NO_TOOLBAR
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
/*! \property QMainWindow::animated
\brief whether manipulating dock widgets and tool bars is animated
@@ -984,7 +986,7 @@ static bool checkDockWidgetArea(Qt::DockWidgetArea area, const char *where)
return false;
}
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
/*!
\property QMainWindow::documentMode
\brief whether the tab bar for tabbed dockwidgets is set to document mode.
@@ -1003,9 +1005,9 @@ void QMainWindow::setDocumentMode(bool enabled)
{
d_func()->layout->setDocumentMode(enabled);
}
-#endif // QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
-#ifndef QT_NO_TABWIDGET
+#if QT_CONFIG(tabwidget)
/*!
\property QMainWindow::tabShape
\brief the tab shape used for tabbed dock widgets.
@@ -1057,7 +1059,7 @@ void QMainWindow::setTabPosition(Qt::DockWidgetAreas areas, QTabWidget::TabPosit
{
d_func()->layout->setTabPosition(areas, tabPosition);
}
-#endif // QT_NO_TABWIDGET
+#endif // QT_CONFIG(tabwidget)
/*!
Adds the given \a dockwidget to the specified \a area.
@@ -1160,7 +1162,7 @@ void QMainWindow::tabifyDockWidget(QDockWidget *first, QDockWidget *second)
QList<QDockWidget*> QMainWindow::tabifiedDockWidgets(QDockWidget *dockwidget) const
{
QList<QDockWidget*> ret;
-#if defined(QT_NO_TABBAR)
+#if !QT_CONFIG(tabbar)
Q_UNUSED(dockwidget);
#else
const QDockAreaLayoutInfo *info = d_func()->layout->layoutState.dockAreaLayout.info(dockwidget);
@@ -1232,7 +1234,7 @@ void QMainWindow::resizeDocks(const QList<QDockWidget *> &docks,
}
-#endif // QT_NO_DOCKWIDGET
+#endif // QT_CONFIG(dockwidget)
/*!
Saves the current state of this mainwindow's toolbars and
@@ -1323,7 +1325,7 @@ bool QMainWindow::event(QEvent *event)
#endif // QT_CONFIG(statustip)
case QEvent::StyleChange:
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
d->layout->layoutState.dockAreaLayout.styleChangedEvent();
#endif
if (!d->explicitIconSize)
@@ -1388,7 +1390,7 @@ bool QMainWindow::unifiedTitleAndToolBarOnMac() const
*/
bool QMainWindow::isSeparator(const QPoint &pos) const
{
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
Q_D(const QMainWindow);
return !d->layout->layoutState.dockAreaLayout.findSeparator(pos).isEmpty();
#else
@@ -1415,7 +1417,7 @@ void QMainWindow::contextMenuEvent(QContextMenuEvent *event)
break;
}
#endif
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
if (QDockWidget *dw = qobject_cast<QDockWidget *>(child)) {
if (dw->parentWidget() != this)
return;
@@ -1426,7 +1428,7 @@ void QMainWindow::contextMenuEvent(QContextMenuEvent *event)
}
break;
}
-#endif // QT_NO_DOCKWIDGET
+#endif // QT_CONFIG(dockwidget)
#ifndef QT_NO_TOOLBAR
if (QToolBar *tb = qobject_cast<QToolBar *>(child)) {
if (tb->parentWidget() != this)
@@ -1474,7 +1476,7 @@ QMenu *QMainWindow::createPopupMenu()
{
Q_D(QMainWindow);
QMenu *menu = 0;
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
QList<QDockWidget *> dockwidgets = findChildren<QDockWidget *>();
if (dockwidgets.size()) {
menu = new QMenu(this);
@@ -1497,7 +1499,7 @@ QMenu *QMainWindow::createPopupMenu()
}
menu->addSeparator();
}
-#endif // QT_NO_DOCKWIDGET
+#endif // QT_CONFIG(dockwidget)
#ifndef QT_NO_TOOLBAR
QList<QToolBar *> toolbars = findChildren<QToolBar *>();
if (toolbars.size()) {
diff --git a/src/widgets/widgets/qmainwindow.h b/src/widgets/widgets/qmainwindow.h
index bab1176d8a..aa26d4c23b 100644
--- a/src/widgets/widgets/qmainwindow.h
+++ b/src/widgets/widgets/qmainwindow.h
@@ -42,7 +42,9 @@
#include <QtWidgets/qtwidgetsglobal.h>
#include <QtWidgets/qwidget.h>
+#if QT_CONFIG(tabwidget)
#include <QtWidgets/qtabwidget.h>
+#endif
QT_BEGIN_NAMESPACE
@@ -62,16 +64,16 @@ class Q_WIDGETS_EXPORT QMainWindow : public QWidget
Q_PROPERTY(QSize iconSize READ iconSize WRITE setIconSize)
Q_PROPERTY(Qt::ToolButtonStyle toolButtonStyle READ toolButtonStyle WRITE setToolButtonStyle)
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
Q_PROPERTY(bool animated READ isAnimated WRITE setAnimated)
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
Q_PROPERTY(bool documentMode READ documentMode WRITE setDocumentMode)
-#endif // QT_NO_TABBAR
-#ifndef QT_NO_TABWIDGET
+#endif // QT_CONFIG(tabbar)
+#if QT_CONFIG(tabwidget)
Q_PROPERTY(QTabWidget::TabShape tabShape READ tabShape WRITE setTabShape)
-#endif // QT_NO_TABWIDGET
+#endif // QT_CONFIG(tabwidget)
Q_PROPERTY(bool dockNestingEnabled READ isDockNestingEnabled WRITE setDockNestingEnabled)
-#endif // QT_NO_DOCKWIDGET
+#endif // QT_CONFIG(dockwidget)
Q_PROPERTY(DockOptions dockOptions READ dockOptions WRITE setDockOptions)
#ifndef QT_NO_TOOLBAR
Q_PROPERTY(bool unifiedTitleAndToolBarOnMac READ unifiedTitleAndToolBarOnMac WRITE setUnifiedTitleAndToolBarOnMac)
@@ -99,22 +101,22 @@ public:
Qt::ToolButtonStyle toolButtonStyle() const;
void setToolButtonStyle(Qt::ToolButtonStyle toolButtonStyle);
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
bool isAnimated() const;
bool isDockNestingEnabled() const;
#endif
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
bool documentMode() const;
void setDocumentMode(bool enabled);
#endif
-#ifndef QT_NO_TABWIDGET
+#if QT_CONFIG(tabwidget)
QTabWidget::TabShape tabShape() const;
void setTabShape(QTabWidget::TabShape tabShape);
QTabWidget::TabPosition tabPosition(Qt::DockWidgetArea area) const;
void setTabPosition(Qt::DockWidgetAreas areas, QTabWidget::TabPosition tabPosition);
-#endif // QT_NO_TABWIDGET
+#endif // QT_CONFIG(tabwidget)
void setDockOptions(DockOptions options);
DockOptions dockOptions() const;
@@ -139,7 +141,7 @@ public:
QWidget *takeCentralWidget();
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
void setCorner(Qt::Corner corner, Qt::DockWidgetArea area);
Qt::DockWidgetArea corner(Qt::Corner corner) const;
#endif
@@ -160,7 +162,7 @@ public:
Qt::ToolBarArea toolBarArea(QToolBar *toolbar) const;
bool toolBarBreak(QToolBar *toolbar) const;
#endif
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
void addDockWidget(Qt::DockWidgetArea area, QDockWidget *dockwidget);
void addDockWidget(Qt::DockWidgetArea area, QDockWidget *dockwidget,
Qt::Orientation orientation);
@@ -175,7 +177,7 @@ public:
void resizeDocks(const QList<QDockWidget *> &docks,
const QList<int> &sizes, Qt::Orientation orientation);
-#endif // QT_NO_DOCKWIDGET
+#endif // QT_CONFIG(dockwidget)
QByteArray saveState(int version = 0) const;
bool restoreState(const QByteArray &state, int version = 0);
@@ -185,7 +187,7 @@ public:
#endif
public Q_SLOTS:
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
void setAnimated(bool enabled);
void setDockNestingEnabled(bool enabled);
#endif
@@ -196,7 +198,7 @@ public Q_SLOTS:
Q_SIGNALS:
void iconSizeChanged(const QSize &iconSize);
void toolButtonStyleChanged(Qt::ToolButtonStyle toolButtonStyle);
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
void tabifiedDockWidgetActivated(QDockWidget *dockWidget);
#endif
diff --git a/src/widgets/widgets/qmainwindowlayout.cpp b/src/widgets/widgets/qmainwindowlayout.cpp
index e48ce301fb..2c1c2ab75c 100644
--- a/src/widgets/widgets/qmainwindowlayout.cpp
+++ b/src/widgets/widgets/qmainwindowlayout.cpp
@@ -39,11 +39,13 @@
****************************************************************************/
#include "qmainwindowlayout_p.h"
-#include "qdockarealayout_p.h"
#ifndef QT_NO_MAINWINDOW
+#if QT_CONFIG(dockwidget)
+#include "qdockarealayout_p.h"
#include "qdockwidget.h"
#include "qdockwidget_p.h"
+#endif
#include "qtoolbar_p.h"
#include "qmainwindow.h"
#include "qtoolbar.h"
@@ -52,7 +54,9 @@
#if QT_CONFIG(rubberband)
#include "qrubberband.h"
#endif
+#if QT_CONFIG(tabbar)
#include "qtabbar_p.h"
+#endif
#include <qapplication.h>
#include <qstatusbar.h>
@@ -81,7 +85,7 @@ extern QMainWindowLayout *qt_mainwindow_layout(const QMainWindow *window);
** debug
*/
-#if !defined(QT_NO_DOCKWIDGET) && !defined(QT_NO_DEBUG_STREAM)
+#if QT_CONFIG(dockwidget) && !defined(QT_NO_DEBUG_STREAM)
static void dumpLayout(QTextStream &qout, const QDockAreaLayoutInfo &layout, QString indent);
@@ -170,7 +174,7 @@ QDebug operator<<(QDebug debug, const QMainWindowLayout *layout)
return debug;
}
-#endif // !defined(QT_NO_DOCKWIDGET) && !defined(QT_NO_DEBUG)
+#endif // QT_CONFIG(dockwidget) && !defined(QT_NO_DEBUG)
/******************************************************************************
** QDockWidgetGroupWindow
@@ -182,7 +186,7 @@ QDebug operator<<(QDebug debug, const QMainWindowLayout *layout)
// If there is only one QDockWidgets, or all QDockWidgets are tabbed together, it is equivalent
// of a floating QDockWidget (the title of the QDockWidget is the title of the window). But if there
// are nested QDockWidget, an additional title bar is there.
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
class QDockWidgetGroupLayout : public QLayout,
public QMainWindowLayoutSeparatorHelper<QDockWidgetGroupLayout>
{
@@ -590,7 +594,7 @@ QMainWindowLayoutState::QMainWindowLayoutState(QMainWindow *win)
#ifndef QT_NO_TOOLBAR
toolBarAreaLayout(win),
#endif
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
dockAreaLayout(win)
#else
centralWidgetItem(0)
@@ -605,7 +609,7 @@ QSize QMainWindowLayoutState::sizeHint() const
QSize result(0, 0);
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
result = dockAreaLayout.sizeHint();
#else
if (centralWidgetItem != 0)
@@ -623,7 +627,7 @@ QSize QMainWindowLayoutState::minimumSize() const
{
QSize result(0, 0);
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
result = dockAreaLayout.minimumSize();
#else
if (centralWidgetItem != 0)
@@ -643,7 +647,7 @@ void QMainWindowLayoutState::apply(bool animated)
toolBarAreaLayout.apply(animated);
#endif
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
// dumpLayout(dockAreaLayout, QString());
dockAreaLayout.apply(animated);
#else
@@ -665,7 +669,7 @@ void QMainWindowLayoutState::fitLayout()
r = toolBarAreaLayout.fitLayout();
#endif // QT_NO_TOOLBAR
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
dockAreaLayout.rect = r;
dockAreaLayout.fitLayout();
#else
@@ -679,14 +683,14 @@ void QMainWindowLayoutState::deleteAllLayoutItems()
toolBarAreaLayout.deleteAllLayoutItems();
#endif
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
dockAreaLayout.deleteAllLayoutItems();
#endif
}
void QMainWindowLayoutState::deleteCentralWidgetItem()
{
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
delete dockAreaLayout.centralWidgetItem;
dockAreaLayout.centralWidgetItem = 0;
#else
@@ -702,7 +706,7 @@ QLayoutItem *QMainWindowLayoutState::itemAt(int index, int *x) const
return ret;
#endif
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
if (QLayoutItem *ret = dockAreaLayout.itemAt(x, index))
return ret;
#else
@@ -720,7 +724,7 @@ QLayoutItem *QMainWindowLayoutState::takeAt(int index, int *x)
return ret;
#endif
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
if (QLayoutItem *ret = dockAreaLayout.takeAt(x, index))
return ret;
#else
@@ -748,7 +752,7 @@ QList<int> QMainWindowLayoutState::indexOf(QWidget *widget) const
}
#endif
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
// is it a dock widget?
if (qobject_cast<QDockWidget *>(widget) || qobject_cast<QDockWidgetGroupWindow *>(widget)) {
result = dockAreaLayout.indexOf(widget);
@@ -756,14 +760,14 @@ QList<int> QMainWindowLayoutState::indexOf(QWidget *widget) const
result.prepend(1);
return result;
}
-#endif //QT_NO_DOCKWIDGET
+#endif // QT_CONFIG(dockwidget)
return result;
}
bool QMainWindowLayoutState::contains(QWidget *widget) const
{
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
if (dockAreaLayout.centralWidgetItem != 0 && dockAreaLayout.centralWidgetItem->widget() == widget)
return true;
if (!dockAreaLayout.indexOf(widget).isEmpty())
@@ -789,7 +793,7 @@ void QMainWindowLayoutState::setCentralWidget(QWidget *widget)
if (widget != 0)
item = new QWidgetItemV2(widget);
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
dockAreaLayout.centralWidgetItem = item;
#else
centralWidgetItem = item;
@@ -800,7 +804,7 @@ QWidget *QMainWindowLayoutState::centralWidget() const
{
QLayoutItem *item = 0;
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
item = dockAreaLayout.centralWidgetItem;
#else
item = centralWidgetItem;
@@ -826,7 +830,7 @@ QList<int> QMainWindowLayoutState::gapIndex(QWidget *widget,
}
#endif
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
// is it a dock widget?
if (qobject_cast<QDockWidget *>(widget) != 0
|| qobject_cast<QDockWidgetGroupWindow *>(widget)) {
@@ -842,7 +846,7 @@ QList<int> QMainWindowLayoutState::gapIndex(QWidget *widget,
result.prepend(1);
return result;
}
-#endif //QT_NO_DOCKWIDGET
+#endif // QT_CONFIG(dockwidget)
return result;
}
@@ -861,12 +865,12 @@ bool QMainWindowLayoutState::insertGap(const QList<int> &path, QLayoutItem *item
}
#endif
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
if (i == 1) {
Q_ASSERT(qobject_cast<QDockWidget*>(item->widget()) || qobject_cast<QDockWidgetGroupWindow*>(item->widget()));
return dockAreaLayout.insertGap(path.mid(1), item);
}
-#endif //QT_NO_DOCKWIDGET
+#endif // QT_CONFIG(dockwidget)
return false;
}
@@ -880,10 +884,10 @@ void QMainWindowLayoutState::remove(const QList<int> &path)
toolBarAreaLayout.remove(path.mid(1));
#endif
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
if (i == 1)
dockAreaLayout.remove(path.mid(1));
-#endif //QT_NO_DOCKWIDGET
+#endif // QT_CONFIG(dockwidget)
}
void QMainWindowLayoutState::remove(QLayoutItem *item)
@@ -892,14 +896,14 @@ void QMainWindowLayoutState::remove(QLayoutItem *item)
toolBarAreaLayout.remove(item);
#endif
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
// is it a dock widget?
if (QDockWidget *dockWidget = qobject_cast<QDockWidget *>(item->widget())) {
QList<int> path = dockAreaLayout.indexOf(dockWidget);
if (!path.isEmpty())
dockAreaLayout.remove(path);
}
-#endif //QT_NO_DOCKWIDGET
+#endif // QT_CONFIG(dockwidget)
}
void QMainWindowLayoutState::clear()
@@ -908,7 +912,7 @@ void QMainWindowLayoutState::clear()
toolBarAreaLayout.clear();
#endif
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
dockAreaLayout.clear();
#else
centralWidgetRect = QRect();
@@ -934,10 +938,10 @@ QLayoutItem *QMainWindowLayoutState::item(const QList<int> &path)
}
#endif
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
if (i == 1)
return dockAreaLayout.item(path.mid(1)).widgetItem;
-#endif //QT_NO_DOCKWIDGET
+#endif // QT_CONFIG(dockwidget)
return 0;
}
@@ -951,10 +955,10 @@ QRect QMainWindowLayoutState::itemRect(const QList<int> &path) const
return toolBarAreaLayout.itemRect(path.mid(1));
#endif
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
if (i == 1)
return dockAreaLayout.itemRect(path.mid(1));
-#endif //QT_NO_DOCKWIDGET
+#endif // QT_CONFIG(dockwidget)
return QRect();
}
@@ -968,10 +972,10 @@ QRect QMainWindowLayoutState::gapRect(const QList<int> &path) const
return toolBarAreaLayout.itemRect(path.mid(1));
#endif
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
if (i == 1)
return dockAreaLayout.gapRect(path.mid(1));
-#endif //QT_NO_DOCKWIDGET
+#endif // QT_CONFIG(dockwidget)
return QRect();
}
@@ -985,10 +989,10 @@ QLayoutItem *QMainWindowLayoutState::plug(const QList<int> &path)
return toolBarAreaLayout.plug(path.mid(1));
#endif
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
if (i == 1)
return dockAreaLayout.plug(path.mid(1));
-#endif //QT_NO_DOCKWIDGET
+#endif // QT_CONFIG(dockwidget)
return 0;
}
@@ -1004,19 +1008,19 @@ QLayoutItem *QMainWindowLayoutState::unplug(const QList<int> &path, QMainWindowL
return toolBarAreaLayout.unplug(path.mid(1), other ? &other->toolBarAreaLayout : 0);
#endif
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
if (i == 1)
return dockAreaLayout.unplug(path.mid(1));
-#endif //QT_NO_DOCKWIDGET
+#endif // QT_CONFIG(dockwidget)
return 0;
}
void QMainWindowLayoutState::saveState(QDataStream &stream) const
{
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
dockAreaLayout.saveState(stream);
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
QList<QDockWidgetGroupWindow *> floatingTabs =
mainWindow->findChildren<QDockWidgetGroupWindow *>(QString(), Qt::FindDirectChildrenOnly);
@@ -1048,7 +1052,7 @@ static QList<T> findChildrenHelper(const QObject *o)
return result;
}
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
static QList<QDockWidget*> allMyDockWidgets(const QWidget *mainWindow)
{
QList<QDockWidget*> result;
@@ -1065,7 +1069,7 @@ static QList<QDockWidget*> allMyDockWidgets(const QWidget *mainWindow)
return result;
}
-#endif // QT_NO_DOCKWIDGET
+#endif // QT_CONFIG(dockwidget)
//pre4.3 tests the format that was used before 4.3
bool QMainWindowLayoutState::checkFormat(QDataStream &stream)
@@ -1087,7 +1091,7 @@ bool QMainWindowLayoutState::checkFormat(QDataStream &stream)
break;
#endif // QT_NO_TOOLBAR
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
case QDockAreaLayout::DockWidgetStateMarker:
{
const auto dockWidgets = allMyDockWidgets(mainWindow);
@@ -1096,7 +1100,7 @@ bool QMainWindowLayoutState::checkFormat(QDataStream &stream)
}
}
break;
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
case QDockAreaLayout::FloatingDockWidgetTabMarker:
{
QRect geom;
@@ -1107,8 +1111,8 @@ bool QMainWindowLayoutState::checkFormat(QDataStream &stream)
return false;
}
break;
-#endif // QT_NO_TABBAR
-#endif // QT_NO_DOCKWIDGET
+#endif // QT_CONFIG(tabbar)
+#endif // QT_CONFIG(dockwidget)
default:
//there was an error during the parsing
return false;
@@ -1143,7 +1147,7 @@ bool QMainWindowLayoutState::restoreState(QDataStream &_stream,
stream >> marker;
switch(marker)
{
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
case QDockAreaLayout::DockWidgetStateMarker:
{
const auto dockWidgets = allMyDockWidgets(mainWindow);
@@ -1192,7 +1196,7 @@ bool QMainWindowLayoutState::restoreState(QDataStream &_stream,
}
break;
#endif // QT_CONFIG(tabwidget)
-#endif // QT_NO_DOCKWIDGET
+#endif // QT_CONFIG(dockwidget)
#ifndef QT_NO_TOOLBAR
case QToolBarAreaLayout::ToolBarStateMarker:
@@ -1410,7 +1414,7 @@ void QMainWindowLayout::toggleToolBarsVisible()
** QMainWindowLayoutState - dock areas
*/
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
static QInternal::DockPosition toDockPos(Qt::DockWidgetArea area)
{
@@ -1494,7 +1498,7 @@ bool QMainWindowLayout::restoreDockWidget(QDockWidget *dockwidget)
return true;
}
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
bool QMainWindowLayout::documentMode() const
{
return _documentMode;
@@ -1513,11 +1517,11 @@ void QMainWindowLayout::setDocumentMode(bool enabled)
foreach (QTabBar *bar, unusedTabBars)
bar->setDocumentMode(_documentMode);
}
-#endif // QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
void QMainWindowLayout::setVerticalTabsEnabled(bool enabled)
{
-#ifdef QT_NO_TABBAR
+#if !QT_CONFIG(tabbar)
Q_UNUSED(enabled);
#else
if (verticalTabsEnabled == enabled)
@@ -1526,10 +1530,10 @@ void QMainWindowLayout::setVerticalTabsEnabled(bool enabled)
verticalTabsEnabled = enabled;
updateTabBarShapes();
-#endif // QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
}
-#ifndef QT_NO_TABWIDGET
+#if QT_CONFIG(tabwidget)
QTabWidget::TabShape QMainWindowLayout::tabShape() const
{
return _tabShape;
@@ -1585,12 +1589,12 @@ static inline QTabBar::Shape tabBarShapeFrom(QTabWidget::TabShape shape, QTabWid
return rounded ? QTabBar::RoundedWest : QTabBar::TriangularWest;
return QTabBar::RoundedNorth;
}
-#endif // QT_NO_TABWIDGET
+#endif // QT_CONFIG(tabwidget)
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
void QMainWindowLayout::updateTabBarShapes()
{
-#ifndef QT_NO_TABWIDGET
+#if QT_CONFIG(tabwidget)
const QTabWidget::TabPosition vertical[] = {
QTabWidget::West,
QTabWidget::East,
@@ -1609,7 +1613,7 @@ void QMainWindowLayout::updateTabBarShapes()
QDockAreaLayout &layout = layoutState.dockAreaLayout;
for (int i = 0; i < QInternal::DockCount; ++i) {
-#ifndef QT_NO_TABWIDGET
+#if QT_CONFIG(tabwidget)
QTabWidget::TabPosition pos = verticalTabsEnabled ? vertical[i] : tabPositions[i];
QTabBar::Shape shape = tabBarShapeFrom(_tabShape, pos);
#else
@@ -1618,7 +1622,7 @@ void QMainWindowLayout::updateTabBarShapes()
layout.docks[i].setTabBarShape(shape);
}
}
-#endif // QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
void QMainWindowLayout::splitDockWidget(QDockWidget *after,
QDockWidget *dockwidget,
@@ -1643,7 +1647,7 @@ void QMainWindowLayout::keepSize(QDockWidget *w)
layoutState.dockAreaLayout.keepSize(w);
}
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
// Handle custom tooltip, and allow to drag tabs away.
class QMainWindowTabBar : public QTabBar
@@ -1828,11 +1832,11 @@ void QMainWindowLayout::tabMoved(int from, int to)
info->moveTab(from, to);
}
-#endif // QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
void QMainWindowLayout::raise(QDockWidget *widget)
{
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
QDockAreaLayoutInfo *info = dockInfo(widget);
if (info == 0)
return;
@@ -1842,7 +1846,7 @@ void QMainWindowLayout::raise(QDockWidget *widget)
#endif
}
-#endif // QT_NO_DOCKWIDGET
+#endif // QT_CONFIG(dockwidget)
/******************************************************************************
@@ -1964,7 +1968,7 @@ void QMainWindowLayout::invalidate()
minSize = szHint = QSize();
}
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
void QMainWindowLayout::setCurrentHoveredFloat(QDockWidgetGroupWindow *w)
{
if (currentHoveredFloat != w) {
@@ -1987,7 +1991,7 @@ void QMainWindowLayout::setCurrentHoveredFloat(QDockWidgetGroupWindow *w)
updateGapIndicator();
}
}
-#endif //QT_NO_DOCKWIDGET
+#endif // QT_CONFIG(dockwidget)
/******************************************************************************
** QMainWindowLayout - remaining stuff
@@ -2080,7 +2084,7 @@ bool QMainWindowLayout::plug(QLayoutItem *widgetItem)
QWidget *widget = widgetItem->widget();
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
// Let's remove the widget from any possible group window
foreach (QDockWidgetGroupWindow *dwgw,
parent()->findChildren<QDockWidgetGroupWindow*>(QString(), Qt::FindDirectChildrenOnly)) {
@@ -2102,7 +2106,7 @@ bool QMainWindowLayout::plug(QLayoutItem *widgetItem)
pluggingWidget = widget;
QRect globalRect = currentGapRect;
globalRect.moveTopLeft(parentWidget()->mapToGlobal(globalRect.topLeft()));
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
if (qobject_cast<QDockWidget*>(widget) != 0) {
QDockWidgetLayout *layout = qobject_cast<QDockWidgetLayout*>(widget->layout());
if (layout->nativeWindowDeco()) {
@@ -2136,7 +2140,7 @@ void QMainWindowLayout::animationFinished(QWidget *widget)
if (widget == pluggingWidget) {
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
#if QT_CONFIG(tabbar)
if (QDockWidgetGroupWindow *dwgw = qobject_cast<QDockWidgetGroupWindow *>(widget)) {
// When the animated widget was a QDockWidgetGroupWindow, it means each of the
@@ -2208,8 +2212,8 @@ void QMainWindowLayout::animationFinished(QWidget *widget)
//and all the geometries (especially the one from the central widget) is correct
layoutState.apply(false);
-#ifndef QT_NO_DOCKWIDGET
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(dockwidget)
+#if QT_CONFIG(tabbar)
if (qobject_cast<QDockWidget*>(widget) != 0) {
// info() might return null if the widget is destroyed while
// animating but before the animationFinished signal is received.
@@ -2222,13 +2226,13 @@ void QMainWindowLayout::animationFinished(QWidget *widget)
if (!widgetAnimator.animating()) {
//all animations are finished
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
parentWidget()->update(layoutState.dockAreaLayout.separatorRegion());
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
foreach (QTabBar *tab_bar, usedTabBars)
tab_bar->show();
-#endif // QT_NO_TABBAR
-#endif // QT_NO_DOCKWIDGET
+#endif // QT_CONFIG(tabbar)
+#endif // QT_CONFIG(dockwidget)
}
updateGapIndicator();
@@ -2254,31 +2258,31 @@ QMainWindowLayout::QMainWindowLayout(QMainWindow *mainwindow, QLayout *parentLay
, savedState(mainwindow)
, dockOptions(QMainWindow::AnimatedDocks | QMainWindow::AllowTabbedDocks)
, statusbar(0)
-#ifndef QT_NO_DOCKWIDGET
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(dockwidget)
+#if QT_CONFIG(tabbar)
, _documentMode(false)
, verticalTabsEnabled(false)
-#ifndef QT_NO_TABWIDGET
+#if QT_CONFIG(tabwidget)
, _tabShape(QTabWidget::Rounded)
#endif
#endif
-#endif // QT_NO_DOCKWIDGET
+#endif // QT_CONFIG(dockwidget)
, widgetAnimator(this)
, pluggingWidget(0)
{
if (parentLayout)
setParent(parentLayout);
-#ifndef QT_NO_DOCKWIDGET
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(dockwidget)
+#if QT_CONFIG(tabbar)
sep = mainwindow->style()->pixelMetric(QStyle::PM_DockWidgetSeparatorExtent, 0, mainwindow);
#endif
-#ifndef QT_NO_TABWIDGET
+#if QT_CONFIG(tabwidget)
for (int i = 0; i < QInternal::DockCount; ++i)
tabPositions[i] = QTabWidget::South;
#endif
-#endif // QT_NO_DOCKWIDGET
+#endif // QT_CONFIG(dockwidget)
pluggingWidget = 0;
setObjectName(mainwindow->objectName() + QLatin1String("_layout"));
@@ -2299,7 +2303,7 @@ void QMainWindowLayout::setDockOptions(QMainWindow::DockOptions opts)
dockOptions = opts;
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
setVerticalTabsEnabled(opts & QMainWindow::VerticalTabs);
#endif
@@ -2331,7 +2335,7 @@ void QMainWindowLayout::setCentralWidget(QWidget *widget)
addChildWidget(widget);
layoutState.setCentralWidget(widget);
if (savedState.isValid()) {
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
savedState.dockAreaLayout.centralWidgetItem = layoutState.dockAreaLayout.centralWidgetItem;
savedState.dockAreaLayout.fallbackToSizeHints = true;
#else
@@ -2383,7 +2387,7 @@ static bool unplugGroup(QMainWindowLayout *layout, QLayoutItem **item,
*/
QLayoutItem *QMainWindowLayout::unplug(QWidget *widget, bool group)
{
-#if !defined(QT_NO_DOCKWIDGET) && !defined(QT_NO_TABBAR)
+#if QT_CONFIG(dockwidget) && QT_CONFIG(tabbar)
auto *groupWindow = qobject_cast<const QDockWidgetGroupWindow *>(widget->parentWidget());
if (!widget->isWindow() && groupWindow) {
if (group && groupWindow->tabLayoutInfo()) {
@@ -2423,7 +2427,7 @@ QLayoutItem *QMainWindowLayout::unplug(QWidget *widget, bool group)
QRect r = layoutState.itemRect(path);
savedState = layoutState;
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
if (QDockWidget *dw = qobject_cast<QDockWidget*>(widget)) {
Q_ASSERT(path.constFirst() == 1);
#if QT_CONFIG(tabwidget)
@@ -2438,7 +2442,7 @@ QLayoutItem *QMainWindowLayout::unplug(QWidget *widget, bool group)
dw->d_func()->unplug(r);
}
}
-#endif // QT_NO_DOCKWIDGET
+#endif // QT_CONFIG(dockwidget)
#ifndef QT_NO_TOOLBAR
if (QToolBar *tb = qobject_cast<QToolBar*>(widget)) {
tb->d_func()->unplug(r);
@@ -2503,7 +2507,7 @@ void QMainWindowLayout::hover(QLayoutItem *widgetItem, const QPoint &mousePos)
QWidget *widget = widgetItem->widget();
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
if ((dockOptions & QMainWindow::GroupedDragging) && (qobject_cast<QDockWidget*>(widget)
|| qobject_cast<QDockWidgetGroupWindow *>(widget))) {
@@ -2565,7 +2569,7 @@ void QMainWindowLayout::hover(QLayoutItem *widgetItem, const QPoint &mousePos)
}
setCurrentHoveredFloat(nullptr);
layoutState.dockAreaLayout.fallbackToSizeHints = false;
-#endif //QT_NO_DOCKWIDGET
+#endif // QT_CONFIG(dockwidget)
QPoint pos = parentWidget()->mapFromGlobal(mousePos);
@@ -2577,7 +2581,7 @@ void QMainWindowLayout::hover(QLayoutItem *widgetItem, const QPoint &mousePos)
if (!path.isEmpty()) {
bool allowed = false;
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
if (QDockWidget *dw = qobject_cast<QDockWidget*>(widget))
allowed = dw->isAreaAllowed(toDockWidgetArea(path.at(1)));
@@ -2624,7 +2628,7 @@ void QMainWindowLayout::hover(QLayoutItem *widgetItem, const QPoint &mousePos)
currentGapRect = newState.gapRect(currentGapPos);
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
parentWidget()->update(layoutState.dockAreaLayout.separatorRegion());
#endif
layoutState = std::move(newState);
@@ -2703,15 +2707,15 @@ bool QMainWindowLayout::restoreState(QDataStream &stream)
savedState.deleteAllLayoutItems();
savedState.clear();
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
if (parentWidget()->isVisible()) {
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
foreach (QTabBar *tab_bar, usedTabBars)
tab_bar->show();
#endif
}
-#endif // QT_NO_DOCKWIDGET
+#endif // QT_CONFIG(dockwidget)
return true;
}
diff --git a/src/widgets/widgets/qmainwindowlayout_p.h b/src/widgets/widgets/qmainwindowlayout_p.h
index 6b75ef1caf..948d6edeef 100644
--- a/src/widgets/widgets/qmainwindowlayout_p.h
+++ b/src/widgets/widgets/qmainwindowlayout_p.h
@@ -57,16 +57,20 @@
#ifndef QT_NO_MAINWINDOW
#include "QtWidgets/qlayout.h"
+#if QT_CONFIG(tabbar)
#include "QtWidgets/qtabbar.h"
#include "QtGui/qpainter.h"
#include "QtGui/qevent.h"
+#endif
#include "QtCore/qvector.h"
#include "QtCore/qset.h"
#include "QtCore/qbasictimer.h"
#include "private/qlayoutengine_p.h"
#include "private/qwidgetanimator_p.h"
+#if QT_CONFIG(dockwidget)
#include "qdockarealayout_p.h"
+#endif
#include "qtoolbararealayout_p.h"
QT_BEGIN_NAMESPACE
@@ -319,7 +323,7 @@ bool QMainWindowLayoutSeparatorHelper<Layout>::endSeparatorMove(const QPoint &)
}
#endif
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
class QDockWidgetGroupWindow : public QWidget
{
Q_OBJECT
@@ -381,7 +385,7 @@ public:
QToolBarAreaLayout toolBarAreaLayout;
#endif
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
QDockAreaLayout dockAreaLayout;
#else
QLayoutItem *centralWidgetItem;
@@ -471,7 +475,7 @@ public:
// dock widgets
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
void setCorner(Qt::Corner corner, Qt::DockWidgetArea area);
Qt::DockWidgetArea corner(Qt::Corner corner) const;
void addDockWidget(Qt::DockWidgetArea area,
@@ -486,7 +490,7 @@ public:
void setVerticalTabsEnabled(bool enabled);
bool restoreDockWidget(QDockWidget *dockwidget);
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
QDockAreaLayoutInfo *dockInfo(QWidget *w);
bool _documentMode;
bool documentMode() const;
@@ -502,7 +506,7 @@ public:
QList<QWidget*> unusedSeparatorWidgets;
int sep; // separator extent
-#ifndef QT_NO_TABWIDGET
+#if QT_CONFIG(tabwidget)
QTabWidget::TabPosition tabPositions[4];
QTabWidget::TabShape _tabShape;
@@ -512,12 +516,12 @@ public:
void setTabPosition(Qt::DockWidgetAreas areas, QTabWidget::TabPosition tabPosition);
QDockWidgetGroupWindow *createTabbedDockWindow();
-#endif // QT_NO_TABWIDGET
-#endif // QT_NO_TABBAR
+#endif // QT_CONFIG(tabwidget)
+#endif // QT_CONFIG(tabbar)
QDockAreaLayout *dockAreaLayoutInfo() { return &layoutState.dockAreaLayout; }
void keepSize(QDockWidget *w);
-#endif // QT_NO_DOCKWIDGET
+#endif // QT_CONFIG(dockwidget)
// save/restore
@@ -550,7 +554,7 @@ public:
#if QT_CONFIG(rubberband)
QPointer<QRubberBand> gapIndicator;
#endif
-#ifndef QT_NO_DOCKWIDGET
+#if QT_CONFIG(dockwidget)
QPointer<QDockWidgetGroupWindow> currentHoveredFloat; // set when dragging over a floating dock widget
void setCurrentHoveredFloat(QDockWidgetGroupWindow *w);
#endif
@@ -566,19 +570,19 @@ public:
private Q_SLOTS:
void updateGapIndicator();
-#ifndef QT_NO_DOCKWIDGET
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(dockwidget)
+#if QT_CONFIG(tabbar)
void tabChanged();
void tabMoved(int from, int to);
#endif
#endif
private:
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
void updateTabBarShapes();
#endif
};
-#if !defined(QT_NO_DOCKWIDGET) && !defined(QT_NO_DEBUG_STREAM)
+#if QT_CONFIG(dockwidget) && !defined(QT_NO_DEBUG_STREAM)
class QDebug;
QDebug operator<<(QDebug debug, const QDockAreaLayout &layout);
QDebug operator<<(QDebug debug, const QMainWindowLayout *layout);
diff --git a/src/widgets/widgets/qmdiarea.cpp b/src/widgets/widgets/qmdiarea.cpp
index 83b5068bba..31d9ae21ae 100644
--- a/src/widgets/widgets/qmdiarea.cpp
+++ b/src/widgets/widgets/qmdiarea.cpp
@@ -254,7 +254,7 @@ static inline QMdiArea *mdiAreaParent(QWidget *widget)
return 0;
}
-#ifndef QT_NO_TABWIDGET
+#if QT_CONFIG(tabwidget)
static inline QTabBar::Shape tabBarShapeFrom(QTabWidget::TabShape shape, QTabWidget::TabPosition position)
{
const bool rounded = (shape == QTabWidget::Rounded);
@@ -268,7 +268,7 @@ static inline QTabBar::Shape tabBarShapeFrom(QTabWidget::TabShape shape, QTabWid
return rounded ? QTabBar::RoundedWest : QTabBar::TriangularWest;
return QTabBar::RoundedNorth;
}
-#endif // QT_NO_TABWIDGET
+#endif // QT_CONFIG(tabwidget)
static inline QString tabTextFor(QMdiSubWindow *subWindow)
{
@@ -561,7 +561,7 @@ QPoint MinOverlapPlacer::place(const QSize &size, const QVector<QRect> &rects,
return findBestPlacement(domain, rects, candidates);
}
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
class QMdiAreaTabBar : public QTabBar
{
public:
@@ -659,7 +659,7 @@ QMdiSubWindow *QMdiAreaTabBar::subWindowFromIndex(int index) const
return subWindow;
}
-#endif // QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
/*!
\internal
@@ -672,17 +672,17 @@ QMdiAreaPrivate::QMdiAreaPrivate()
#if QT_CONFIG(rubberband)
rubberBand(0),
#endif
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
tabBar(0),
#endif
activationOrder(QMdiArea::CreationOrder),
viewMode(QMdiArea::SubWindowView),
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
documentMode(false),
tabsClosable(false),
tabsMovable(false),
#endif
-#ifndef QT_NO_TABWIDGET
+#if QT_CONFIG(tabwidget)
tabShape(QTabWidget::Rounded),
tabPosition(QTabWidget::North),
#endif
@@ -777,7 +777,7 @@ void QMdiAreaPrivate::_q_processWindowStateChanged(Qt::WindowStates oldState,
void QMdiAreaPrivate::_q_currentTabChanged(int index)
{
-#ifdef QT_NO_TABBAR
+#if !QT_CONFIG(tabbar)
Q_UNUSED(index);
#else
if (!tabBar || index < 0)
@@ -796,28 +796,28 @@ void QMdiAreaPrivate::_q_currentTabChanged(int index)
QMdiSubWindow *subWindow = childWindows.at(index);
Q_ASSERT(subWindow);
activateWindow(subWindow);
-#endif // QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
}
void QMdiAreaPrivate::_q_closeTab(int index)
{
-#ifdef QT_NO_TABBAR
+#if !QT_CONFIG(tabbar)
Q_UNUSED(index);
#else
QMdiSubWindow *subWindow = childWindows.at(index);
Q_ASSERT(subWindow);
subWindow->close();
-#endif // QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
}
void QMdiAreaPrivate::_q_moveTab(int from, int to)
{
-#ifdef QT_NO_TABBAR
+#if !QT_CONFIG(tabbar)
Q_UNUSED(from);
Q_UNUSED(to);
#else
childWindows.move(from, to);
-#endif // QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
}
/*!
@@ -855,7 +855,7 @@ void QMdiAreaPrivate::appendChild(QMdiSubWindow *child)
indicesToActivatedChildren.prepend(childWindows.size() - 1);
Q_ASSERT(indicesToActivatedChildren.size() == childWindows.size());
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
if (tabBar) {
tabBar->addTab(child->windowIcon(), tabTextFor(child));
updateTabBarGeometry();
@@ -1079,7 +1079,7 @@ void QMdiAreaPrivate::emitWindowActivated(QMdiSubWindow *activeWindow)
aboutToBecomeActive = 0;
Q_ASSERT(active->d_func()->isActive);
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
if (tabBar && tabBar->currentIndex() != indexToActiveWindow)
tabBar->setCurrentIndex(indexToActiveWindow);
#endif
@@ -1122,7 +1122,7 @@ void QMdiAreaPrivate::updateActiveWindow(int removedIndex, bool activeRemoved)
{
Q_ASSERT(indicesToActivatedChildren.size() == childWindows.size());
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
if (tabBar && removedIndex >= 0) {
const QSignalBlocker blocker(tabBar);
tabBar->removeTab(removedIndex);
@@ -1560,14 +1560,14 @@ void QMdiAreaPrivate::setViewMode(QMdiArea::ViewMode mode)
// Just a guard since we cannot set viewMode = mode here.
inViewModeChange = true;
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
if (mode == QMdiArea::TabbedView) {
Q_ASSERT(!tabBar);
tabBar = new QMdiAreaTabBar(q);
tabBar->setDocumentMode(documentMode);
tabBar->setTabsClosable(tabsClosable);
tabBar->setMovable(tabsMovable);
-#ifndef QT_NO_TABWIDGET
+#if QT_CONFIG(tabwidget)
tabBar->setShape(tabBarShapeFrom(tabShape, tabPosition));
#endif
@@ -1601,12 +1601,12 @@ void QMdiAreaPrivate::setViewMode(QMdiArea::ViewMode mode)
QObject::connect(tabBar, SIGNAL(tabCloseRequested(int)), q, SLOT(_q_closeTab(int)));
QObject::connect(tabBar, SIGNAL(tabMoved(int,int)), q, SLOT(_q_moveTab(int,int)));
} else
-#endif // QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
{ // SubWindowView
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
delete tabBar;
tabBar = 0;
-#endif // QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
viewMode = mode;
q->setViewportMargins(0, 0, 0, 0);
@@ -1621,7 +1621,7 @@ void QMdiAreaPrivate::setViewMode(QMdiArea::ViewMode mode)
inViewModeChange = false;
}
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
/*!
\internal
*/
@@ -1631,7 +1631,7 @@ void QMdiAreaPrivate::updateTabBarGeometry()
return;
Q_Q(QMdiArea);
-#ifndef QT_NO_TABWIDGET
+#if QT_CONFIG(tabwidget)
Q_ASSERT(tabBarShapeFrom(tabShape, tabPosition) == tabBar->shape());
#endif
const QSize tabBarSizeHint = tabBar->sizeHint();
@@ -1645,7 +1645,7 @@ void QMdiAreaPrivate::updateTabBarGeometry()
areaWidth -= vbar->width();
QRect tabBarRect;
-#ifndef QT_NO_TABWIDGET
+#if QT_CONFIG(tabwidget)
switch (tabPosition) {
case QTabWidget::North:
q->setViewportMargins(0, tabBarSizeHint.height(), 0, 0);
@@ -1672,7 +1672,7 @@ void QMdiAreaPrivate::updateTabBarGeometry()
default:
break;
}
-#endif // QT_NO_TABWIDGET
+#endif // QT_CONFIG(tabwidget)
tabBar->setGeometry(QStyle::visualRect(q->layoutDirection(), q->contentsRect(), tabBarRect));
}
@@ -1688,12 +1688,12 @@ void QMdiAreaPrivate::refreshTabBar()
tabBar->setDocumentMode(documentMode);
tabBar->setTabsClosable(tabsClosable);
tabBar->setMovable(tabsMovable);
-#ifndef QT_NO_TABWIDGET
+#if QT_CONFIG(tabwidget)
tabBar->setShape(tabBarShapeFrom(tabShape, tabPosition));
#endif
updateTabBarGeometry();
}
-#endif // QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
/*!
Constructs an empty mdi area. \a parent is passed to QWidget's
@@ -2138,7 +2138,7 @@ void QMdiArea::setViewMode(ViewMode mode)
d->setViewMode(mode);
}
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
/*!
\property QMdiArea::documentMode
\brief whether the tab bar is set to document mode in tabbed view mode.
@@ -2213,9 +2213,9 @@ void QMdiArea::setTabsMovable(bool movable)
d->tabsMovable = movable;
d->refreshTabBar();
}
-#endif // QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
-#ifndef QT_NO_TABWIDGET
+#if QT_CONFIG(tabwidget)
/*!
\property QMdiArea::tabShape
\brief the shape of the tabs in tabbed view mode.
@@ -2267,7 +2267,7 @@ void QMdiArea::setTabPosition(QTabWidget::TabPosition position)
d->tabPosition = position;
d->refreshTabBar();
}
-#endif // QT_NO_TABWIDGET
+#endif // QT_CONFIG(tabwidget)
/*!
\reimp
@@ -2294,7 +2294,7 @@ void QMdiArea::resizeEvent(QResizeEvent *resizeEvent)
return;
}
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
d->updateTabBarGeometry();
#endif
@@ -2532,7 +2532,7 @@ bool QMdiArea::event(QEvent *event)
d->setActive(d->active, false, false);
d->setChildActivationEnabled(false);
break;
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
case QEvent::LayoutDirectionChange:
d->updateTabBarGeometry();
break;
@@ -2629,13 +2629,13 @@ bool QMdiArea::eventFilter(QObject *object, QEvent *event)
d->isSubWindowsTiled = false;
break;
case QEvent::Show:
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
if (d->tabBar) {
const int tabIndex = d->childWindows.indexOf(subWindow);
if (!d->tabBar->isTabEnabled(tabIndex))
d->tabBar->setTabEnabled(tabIndex, true);
}
-#endif // QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
// fall through
case QEvent::Hide:
d->isSubWindowsTiled = false;
@@ -2646,7 +2646,7 @@ bool QMdiArea::eventFilter(QObject *object, QEvent *event)
d->hideRubberBand();
break;
#endif
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
case QEvent::WindowTitleChange:
case QEvent::ModifiedChange:
if (d->tabBar)
@@ -2656,7 +2656,7 @@ bool QMdiArea::eventFilter(QObject *object, QEvent *event)
if (d->tabBar)
d->tabBar->setTabIcon(d->childWindows.indexOf(subWindow), subWindow->windowIcon());
break;
-#endif // QT_NO_TABBAR
+#endif // QT_CONFIG(tabbar)
default:
break;
}
diff --git a/src/widgets/widgets/qmdiarea.h b/src/widgets/widgets/qmdiarea.h
index 44a40948af..acc59296b6 100644
--- a/src/widgets/widgets/qmdiarea.h
+++ b/src/widgets/widgets/qmdiarea.h
@@ -42,7 +42,9 @@
#include <QtWidgets/qtwidgetsglobal.h>
#include <QtWidgets/qabstractscrollarea.h>
+#if QT_CONFIG(tabwidget)
#include <QtWidgets/qtabwidget.h>
+#endif
QT_BEGIN_NAMESPACE
@@ -58,12 +60,12 @@ class Q_WIDGETS_EXPORT QMdiArea : public QAbstractScrollArea
Q_PROPERTY(QBrush background READ background WRITE setBackground)
Q_PROPERTY(WindowOrder activationOrder READ activationOrder WRITE setActivationOrder)
Q_PROPERTY(ViewMode viewMode READ viewMode WRITE setViewMode)
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
Q_PROPERTY(bool documentMode READ documentMode WRITE setDocumentMode)
Q_PROPERTY(bool tabsClosable READ tabsClosable WRITE setTabsClosable)
Q_PROPERTY(bool tabsMovable READ tabsMovable WRITE setTabsMovable)
#endif
-#ifndef QT_NO_TABWIDGET
+#if QT_CONFIG(tabwidget)
Q_PROPERTY(QTabWidget::TabShape tabShape READ tabShape WRITE setTabShape)
Q_PROPERTY(QTabWidget::TabPosition tabPosition READ tabPosition WRITE setTabPosition)
#endif
@@ -111,7 +113,7 @@ public:
void setViewMode(ViewMode mode);
ViewMode viewMode() const;
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
bool documentMode() const;
void setDocumentMode(bool enabled);
@@ -121,7 +123,7 @@ public:
void setTabsMovable(bool movable);
bool tabsMovable() const;
#endif
-#ifndef QT_NO_TABWIDGET
+#if QT_CONFIG(tabwidget)
void setTabShape(QTabWidget::TabShape shape);
QTabWidget::TabShape tabShape() const;
diff --git a/src/widgets/widgets/qmdiarea_p.h b/src/widgets/widgets/qmdiarea_p.h
index b77f3f63ea..10b5de6840 100644
--- a/src/widgets/widgets/qmdiarea_p.h
+++ b/src/widgets/widgets/qmdiarea_p.h
@@ -158,12 +158,12 @@ public:
QMdiArea::WindowOrder activationOrder;
QMdiArea::AreaOptions options;
QMdiArea::ViewMode viewMode;
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
bool documentMode;
bool tabsClosable;
bool tabsMovable;
#endif
-#ifndef QT_NO_TABWIDGET
+#if QT_CONFIG(tabwidget)
QTabWidget::TabShape tabShape;
QTabWidget::TabPosition tabPosition;
#endif
@@ -213,7 +213,7 @@ public:
QList<QMdiSubWindow *> subWindowList(QMdiArea::WindowOrder, bool reversed = false) const;
void disconnectSubWindow(QObject *subWindow);
void setViewMode(QMdiArea::ViewMode mode);
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
void updateTabBarGeometry();
void refreshTabBar();
#endif
diff --git a/src/widgets/widgets/qmdisubwindow.h b/src/widgets/widgets/qmdisubwindow.h
index e2bb533ddf..875c9a22c8 100644
--- a/src/widgets/widgets/qmdisubwindow.h
+++ b/src/widgets/widgets/qmdisubwindow.h
@@ -138,7 +138,7 @@ private:
Q_PRIVATE_SLOT(d_func(), void _q_enterInteractiveMode())
Q_PRIVATE_SLOT(d_func(), void _q_processFocusChanged(QWidget *, QWidget *))
friend class QMdiAreaPrivate;
-#ifndef QT_NO_TABBAR
+#if QT_CONFIG(tabbar)
friend class QMdiAreaTabBar;
#endif
friend class QMdi::ControlContainer;
diff --git a/src/widgets/widgets/qscrollbar.h b/src/widgets/widgets/qscrollbar.h
index 963ae4263b..c180a62585 100644
--- a/src/widgets/widgets/qscrollbar.h
+++ b/src/widgets/widgets/qscrollbar.h
@@ -85,7 +85,7 @@ private:
Q_DISABLE_COPY(QScrollBar)
Q_DECLARE_PRIVATE(QScrollBar)
-#ifndef QT_NO_ITEMVIEWS
+#if QT_CONFIG(itemviews)
friend class QTableView;
friend class QTreeViewPrivate;
friend class QCommonListViewBase;
diff --git a/src/widgets/widgets/qtabbar.cpp b/src/widgets/widgets/qtabbar.cpp
index 9e803f4388..adaafc7d21 100644
--- a/src/widgets/widgets/qtabbar.cpp
+++ b/src/widgets/widgets/qtabbar.cpp
@@ -38,7 +38,9 @@
****************************************************************************/
#include "private/qlayoutengine_p.h"
+#if QT_CONFIG(itemviews)
#include "qabstractitemdelegate.h"
+#endif
#include "qapplication.h"
#include "qbitmap.h"
#include "qcursor.h"
@@ -47,7 +49,9 @@
#include "qstyle.h"
#include "qstyleoption.h"
#include "qstylepainter.h"
+#if QT_CONFIG(tabwidget)
#include "qtabwidget.h"
+#endif
#include "qtooltip.h"
#if QT_CONFIG(whatsthis)
#include "qwhatsthis.h"
@@ -63,8 +67,6 @@
#include "qdebug.h"
#include "private/qtabbar_p.h"
-#ifndef QT_NO_TABBAR
-
#if 0 // Used to be included in Qt4 for Q_WS_MAC
#include <private/qt_mac_p.h>
#include <private/qt_cocoa_helpers_mac_p.h>
@@ -205,7 +207,7 @@ void QTabBarPrivate::initBasicStyleOption(QStyleOptionTab *option, int tabIndex)
option->position = QStyleOptionTab::Middle;
}
-#ifndef QT_NO_TABWIDGET
+#if QT_CONFIG(tabwidget)
if (const QTabWidget *tw = qobject_cast<const QTabWidget *>(q->parentWidget())) {
option->features |= QStyleOptionTab::HasFrame;
if (tw->cornerWidget(Qt::TopLeftCorner) || tw->cornerWidget(Qt::BottomLeftCorner))
@@ -2690,6 +2692,4 @@ QT_END_NAMESPACE
#include "moc_qtabbar.cpp"
-#endif // QT_NO_TABBAR
-
#include "moc_qtabbar_p.cpp"
diff --git a/src/widgets/widgets/qtabbar.h b/src/widgets/widgets/qtabbar.h
index 2a27a98661..ebcd1094ef 100644
--- a/src/widgets/widgets/qtabbar.h
+++ b/src/widgets/widgets/qtabbar.h
@@ -43,10 +43,9 @@
#include <QtWidgets/qtwidgetsglobal.h>
#include <QtWidgets/qwidget.h>
-QT_BEGIN_NAMESPACE
-
+QT_REQUIRE_CONFIG(tabbar);
-#ifndef QT_NO_TABBAR
+QT_BEGIN_NAMESPACE
class QIcon;
class QTabBarPrivate;
@@ -221,8 +220,6 @@ private:
Q_PRIVATE_SLOT(d_func(), void _q_closeTab())
};
-#endif // QT_NO_TABBAR
-
QT_END_NAMESPACE
#endif // QTABBAR_H
diff --git a/src/widgets/widgets/qtabbar_p.h b/src/widgets/widgets/qtabbar_p.h
index 7141ffc8d5..195ff79c5d 100644
--- a/src/widgets/widgets/qtabbar_p.h
+++ b/src/widgets/widgets/qtabbar_p.h
@@ -60,12 +60,12 @@
#include <qdebug.h>
#include <qvariantanimation.h>
-#ifndef QT_NO_TABBAR
-
#define ANIMATION_DURATION 250
#include <qstyleoption.h>
+QT_REQUIRE_CONFIG(tabbar);
+
QT_BEGIN_NAMESPACE
class QMovableTabWidget : public QWidget
@@ -286,9 +286,6 @@ public:
void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;
};
-
QT_END_NAMESPACE
#endif
-
-#endif
diff --git a/src/widgets/widgets/qtabwidget.cpp b/src/widgets/widgets/qtabwidget.cpp
index c84c78275d..c496d267b3 100644
--- a/src/widgets/widgets/qtabwidget.cpp
+++ b/src/widgets/widgets/qtabwidget.cpp
@@ -39,7 +39,6 @@
#include "qtabwidget.h"
-#ifndef QT_NO_TABWIDGET
#include "private/qwidget_p.h"
#include "private/qtabbar_p.h"
#include "qapplication.h"
@@ -1375,5 +1374,3 @@ void QTabWidget::clear()
QT_END_NAMESPACE
#include "moc_qtabwidget.cpp"
-
-#endif //QT_NO_TABWIDGET
diff --git a/src/widgets/widgets/qtabwidget.h b/src/widgets/widgets/qtabwidget.h
index 7d8864241a..b80fdba1fb 100644
--- a/src/widgets/widgets/qtabwidget.h
+++ b/src/widgets/widgets/qtabwidget.h
@@ -44,10 +44,9 @@
#include <QtWidgets/qwidget.h>
#include <QtGui/qicon.h>
-QT_BEGIN_NAMESPACE
-
+QT_REQUIRE_CONFIG(tabwidget);
-#ifndef QT_NO_TABWIDGET
+QT_BEGIN_NAMESPACE
class QTabBar;
class QTabWidgetPrivate;
@@ -181,8 +180,6 @@ private:
void setUpLayout(bool = false);
};
-#endif // QT_NO_TABWIDGET
-
QT_END_NAMESPACE
#endif // QTABWIDGET_H
diff --git a/src/widgets/widgets/qtoolbar.cpp b/src/widgets/widgets/qtoolbar.cpp
index aaa64c8b2f..476f9d4cfa 100644
--- a/src/widgets/widgets/qtoolbar.cpp
+++ b/src/widgets/widgets/qtoolbar.cpp
@@ -42,7 +42,9 @@
#ifndef QT_NO_TOOLBAR
#include <qapplication.h>
+#if QT_CONFIG(combobox)
#include <qcombobox.h>
+#endif
#include <qevent.h>
#include <qlayout.h>
#include <qmainwindow.h>
diff --git a/src/widgets/widgets/qtoolbarlayout.cpp b/src/widgets/widgets/qtoolbarlayout.cpp
index 79174bdbff..39e61a1951 100644
--- a/src/widgets/widgets/qtoolbarlayout.cpp
+++ b/src/widgets/widgets/qtoolbarlayout.cpp
@@ -666,7 +666,7 @@ void QToolBarLayout::setExpanded(bool exp)
extension->setChecked(expanded);
if (QMainWindow *win = qobject_cast<QMainWindow*>(tb->parentWidget())) {
-#ifdef QT_NO_DOCKWIDGET
+#if !QT_CONFIG(dockwidget)
animating = false;
#else
animating = !tb->isWindow() && win->isAnimated();
diff --git a/src/widgets/widgets/qwidgetlinecontrol.cpp b/src/widgets/widgets/qwidgetlinecontrol.cpp
index 97df3427b0..9555ccc5b6 100644
--- a/src/widgets/widgets/qwidgetlinecontrol.cpp
+++ b/src/widgets/widgets/qwidgetlinecontrol.cpp
@@ -41,7 +41,9 @@
#ifndef QT_NO_LINEEDIT
+#if QT_CONFIG(itemviews)
#include "qabstractitemview.h"
+#endif
#include "qclipboard.h"
#include <private/qguiapplication_p.h>
#include <qpa/qplatformtheme.h>
@@ -548,10 +550,10 @@ void QWidgetLineControl::processInputMethodEvent(QInputMethodEvent *event)
if (!event->commitString().isEmpty()) {
internalInsert(event->commitString());
cursorPositionChanged = true;
+ } else {
+ m_cursor = qBound(0, c, m_text.length());
}
- m_cursor = qBound(0, c, m_text.length());
-
for (int i = 0; i < event->attributes().size(); ++i) {
const QInputMethodEvent::Attribute &a = event->attributes().at(i);
if (a.type == QInputMethodEvent::Selection) {
diff --git a/src/widgets/widgets/widgets.pri b/src/widgets/widgets/widgets.pri
index 610932c6ce..aed3f53478 100644
--- a/src/widgets/widgets/widgets.pri
+++ b/src/widgets/widgets/widgets.pri
@@ -5,13 +5,7 @@ HEADERS += \
widgets/qbuttongroup_p.h \
widgets/qabstractspinbox.h \
widgets/qabstractspinbox_p.h \
- widgets/qcalendarwidget.h \
- widgets/qcombobox.h \
- widgets/qcombobox_p.h \
widgets/qdial.h \
- widgets/qdockwidget.h \
- widgets/qdockwidget_p.h \
- widgets/qdockarealayout_p.h \
widgets/qframe.h \
widgets/qframe_p.h \
widgets/qgroupbox.h \
@@ -40,9 +34,6 @@ HEADERS += \
widgets/qsplitter_p.h \
widgets/qstackedwidget.h \
widgets/qstatusbar.h \
- widgets/qtabbar.h \
- widgets/qtabbar_p.h \
- widgets/qtabwidget.h \
widgets/qtextedit.h \
widgets/qtextedit_p.h \
widgets/qtextbrowser.h \
@@ -67,11 +58,7 @@ HEADERS += \
SOURCES += \
widgets/qbuttongroup.cpp \
widgets/qabstractspinbox.cpp \
- widgets/qcalendarwidget.cpp \
- widgets/qcombobox.cpp \
widgets/qdial.cpp \
- widgets/qdockwidget.cpp \
- widgets/qdockarealayout.cpp \
widgets/qeffects.cpp \
widgets/qframe.cpp \
widgets/qgroupbox.cpp \
@@ -92,8 +79,6 @@ SOURCES += \
widgets/qsplitter.cpp \
widgets/qstackedwidget.cpp \
widgets/qstatusbar.cpp \
- widgets/qtabbar.cpp \
- widgets/qtabwidget.cpp \
widgets/qtextedit.cpp \
widgets/qtextbrowser.cpp \
widgets/qtoolbar.cpp \
@@ -129,6 +114,11 @@ qtConfig(abstractslider) {
widgets/qabstractslider.cpp
}
+qtConfig(calendarwidget) {
+ HEADERS += widgets/qcalendarwidget.h
+ SOURCES += widgets/qcalendarwidget.cpp
+}
+
qtConfig(checkbox) {
HEADERS += \
widgets/qcheckbox.h
@@ -137,6 +127,14 @@ qtConfig(checkbox) {
widgets/qcheckbox.cpp
}
+qtConfig(combobox) {
+ HEADERS += \
+ widgets/qcombobox.h \
+ widgets/qcombobox_p.h
+
+ SOURCES += widgets/qcombobox.cpp
+}
+
qtConfig(commandlinkbutton) {
HEADERS += \
widgets/qcommandlinkbutton.h
@@ -154,6 +152,17 @@ qtConfig(datetimeedit) {
widgets/qdatetimeedit.cpp
}
+qtConfig(dockwidget) {
+ HEADERS += \
+ widgets/qdockwidget.h \
+ widgets/qdockwidget_p.h \
+ widgets/qdockarealayout_p.h
+
+ SOURCES += \
+ widgets/qdockwidget.cpp \
+ widgets/qdockarealayout.cpp
+}
+
qtConfig(fontcombobox) {
HEADERS += widgets/qfontcombobox.h
SOURCES += widgets/qfontcombobox.cpp
@@ -214,6 +223,19 @@ qtConfig(splashscreen) {
widgets/qsplashscreen.cpp
}
+qtConfig(tabbar) {
+ HEADERS += \
+ widgets/qtabbar.h \
+ widgets/qtabbar_p.h
+
+ SOURCES += widgets/qtabbar.cpp
+}
+
+qtConfig(tabwidget) {
+ HEADERS += widgets/qtabwidget.h
+ SOURCES += widgets/qtabwidget.cpp
+}
+
qtConfig(widgettextcontrol) {
HEADERS += \
widgets/qwidgettextcontrol_p.h \