aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJuha Vuolle <juha.vuolle@qt.io>2025-04-07 16:11:28 +0300
committerJuha Vuolle <juha.vuolle@qt.io>2025-04-10 11:03:53 +0300
commitb4ed50f0090c3cec8e74b99b3a35c6266e6dc2ec (patch)
treeb30c0fd5eb3b3782d6c08b83a69a704e906ada76
parent0abe19031052ae65e32397201e066a3e28776c39 (diff)
Fix compilation when draganddrop support is disabled
When Qt is configured with -no-feature-draganddrop, the quick_draganddrop feature gets disabled too. Consequently many dialog files are then omitted from the build, see src/quickdialogs/quickdialogsquickimpl/CMakeLists.txt. As a result, some dialogs and templates that include and use these files/classes unconditionally, fail to compile. This commit adds same feature guards to these includes/uses. In addition this commit adds the few missing 'drag' feature guards in QQuickVerticalHeaderView as well as adds appropriate feature guards to autotests. Pick-to: 6.9 6.8 Fixes: QTBUG-135740 Change-Id: If1688a3cd8f52918088a8c586d54ccf09cb08890 Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
-rw-r--r--src/quickcontrolstestutils/dialogstestutils.cpp6
-rw-r--r--src/quickdialogs/quickdialogs/qquickfiledialog.cpp4
-rw-r--r--src/quickdialogs/quickdialogs/qquickfolderdialog.cpp4
-rw-r--r--src/quickdialogs/quickdialogs/qquickfontdialog.cpp4
-rw-r--r--src/quickdialogs/quickdialogsquickimpl/qquickdialogimplfactory.cpp2
-rw-r--r--src/quicktemplates/qquickheaderview.cpp4
-rw-r--r--tests/auto/quickcontrols/qquickpopup/tst_qquickpopup.cpp8
7 files changed, 27 insertions, 5 deletions
diff --git a/src/quickcontrolstestutils/dialogstestutils.cpp b/src/quickcontrolstestutils/dialogstestutils.cpp
index 2b21f674d1..ed30d6f76b 100644
--- a/src/quickcontrolstestutils/dialogstestutils.cpp
+++ b/src/quickcontrolstestutils/dialogstestutils.cpp
@@ -13,7 +13,7 @@
#include <QtQuickTemplates2/private/qquickabstractbutton_p.h>
#include <QtQuickTemplates2/private/qquickapplicationwindow_p.h>
#include <QtQuickTemplates2/private/qquickdialogbuttonbox_p.h>
-#if QT_CONFIG(quick_listview)
+#if QT_CONFIG(quick_listview) && QT_CONFIG(draganddrop)
#include <QtQuickDialogs2QuickImpl/private/qquickfiledialogdelegate_p.h>
#include <QtQuickDialogs2QuickImpl/private/qquickfolderbreadcrumbbar_p.h>
#include <QtQuickDialogs2QuickImpl/private/qquickfolderbreadcrumbbar_p_p.h>
@@ -21,7 +21,7 @@
QT_BEGIN_NAMESPACE
-#if QT_CONFIG(quick_listview)
+#if QT_CONFIG(quick_listview) && QT_CONFIG(draganddrop)
bool QQuickDialogTestUtils::verifyFileDialogDelegates(QQuickListView *fileDialogListView,
const QStringList &expectedFiles, QString &failureMessage)
{
@@ -111,7 +111,7 @@ bool QQuickDialogTestUtils::verifyBreadcrumbDelegates(QQuickFolderBreadcrumbBar
return true;
}
-#endif
+#endif // QT_CONFIG(quick_listview) && QT_CONFIG(draganddrop)
QQuickAbstractButton *QQuickDialogTestUtils::findDialogButton(QQuickDialogButtonBox *box, const QString &buttonText)
{
diff --git a/src/quickdialogs/quickdialogs/qquickfiledialog.cpp b/src/quickdialogs/quickdialogs/qquickfiledialog.cpp
index b55f4b8b1e..7fdb858abc 100644
--- a/src/quickdialogs/quickdialogs/qquickfiledialog.cpp
+++ b/src/quickdialogs/quickdialogs/qquickfiledialog.cpp
@@ -7,8 +7,10 @@
#include <QtCore/qloggingcategory.h>
#include <QtQml/qqmlfile.h>
#include <QtQml/qqmlinfo.h>
+#if QT_CONFIG(quick_listview) && QT_CONFIG(quick_draganddrop)
#include <QtQuickDialogs2QuickImpl/private/qquickplatformfiledialog_p.h>
#include <QtQuickDialogs2QuickImpl/private/qquickfiledialogimpl_p.h>
+#endif
#include <QtQuickDialogs2Utils/private/qquickfilenamefilter_p.h>
@@ -553,8 +555,10 @@ void QQuickFileDialog::onShow(QPlatformDialogHelper *dialog)
fileDialog->setDirectory(m_options->initialDirectory());
}
}
+#if QT_CONFIG(quick_listview) && QT_CONFIG(quick_draganddrop)
if (QQuickPlatformFileDialog *fileDialog = qobject_cast<QQuickPlatformFileDialog *>(dialog))
fileDialog->dialog()->setPopupType(m_popupType);
+#endif
QQuickAbstractDialog::onShow(dialog);
}
diff --git a/src/quickdialogs/quickdialogs/qquickfolderdialog.cpp b/src/quickdialogs/quickdialogs/qquickfolderdialog.cpp
index 35278b36db..4376956005 100644
--- a/src/quickdialogs/quickdialogs/qquickfolderdialog.cpp
+++ b/src/quickdialogs/quickdialogs/qquickfolderdialog.cpp
@@ -5,8 +5,10 @@
#include <QtCore/qloggingcategory.h>
#include <QtQml/qqmlfile.h>
+#if QT_CONFIG(quick_listview) && QT_CONFIG(quick_draganddrop)
#include <QtQuickDialogs2QuickImpl/private/qquickplatformfolderdialog_p.h>
#include <QtQuickDialogs2QuickImpl/private/qquickfolderdialogimpl_p.h>
+#endif
QT_BEGIN_NAMESPACE
@@ -257,8 +259,10 @@ void QQuickFolderDialog::onShow(QPlatformDialogHelper *dialog)
if (m_firstShow && initialDir.isValid() && QDir(QQmlFile::urlToLocalFileOrQrc(initialDir)).exists())
fileDialog->setDirectory(m_options->initialDirectory());
}
+#if QT_CONFIG(quick_listview) && QT_CONFIG(quick_draganddrop)
if (QQuickPlatformFolderDialog *folderDialog = qobject_cast<QQuickPlatformFolderDialog *>(dialog))
folderDialog->dialog()->setPopupType(m_popupType);
+#endif
QQuickAbstractDialog::onShow(dialog);
}
diff --git a/src/quickdialogs/quickdialogs/qquickfontdialog.cpp b/src/quickdialogs/quickdialogs/qquickfontdialog.cpp
index a8e55f0e42..d7516740d7 100644
--- a/src/quickdialogs/quickdialogs/qquickfontdialog.cpp
+++ b/src/quickdialogs/quickdialogs/qquickfontdialog.cpp
@@ -4,8 +4,10 @@
#include "qquickfontdialog_p.h"
#include <QtCore/qloggingcategory.h>
+#if QT_CONFIG(quick_listview) && QT_CONFIG(quick_draganddrop)
#include <QtQuickDialogs2QuickImpl/private/qquickplatformfontdialog_p.h>
#include <QtQuickDialogs2QuickImpl/private/qquickfontdialogimpl_p.h>
+#endif
QT_BEGIN_NAMESPACE
@@ -183,8 +185,10 @@ void QQuickFontDialog::onShow(QPlatformDialogHelper *dialog)
fontDialog->setOptions(m_options); // setOptions only assigns a member and isn't virtual
fontDialog->setCurrentFont(m_selectedFont);
}
+#if QT_CONFIG(quick_listview) && QT_CONFIG(quick_draganddrop)
if (QQuickPlatformFontDialog *fontDialog = qobject_cast<QQuickPlatformFontDialog *>(dialog))
fontDialog->dialog()->setPopupType(m_popupType);
+#endif
QQuickAbstractDialog::onShow(dialog);
}
diff --git a/src/quickdialogs/quickdialogsquickimpl/qquickdialogimplfactory.cpp b/src/quickdialogs/quickdialogsquickimpl/qquickdialogimplfactory.cpp
index 594b148528..340695fe11 100644
--- a/src/quickdialogs/quickdialogsquickimpl/qquickdialogimplfactory.cpp
+++ b/src/quickdialogs/quickdialogsquickimpl/qquickdialogimplfactory.cpp
@@ -32,7 +32,7 @@ std::unique_ptr<QPlatformDialogHelper> QQuickDialogImplFactory::createPlatformDi
dialogHelper.reset(new QQuickPlatformColorDialog(parent));
break;
}
-#if QT_CONFIG(quick_listview)
+#if QT_CONFIG(quick_listview) && QT_CONFIG(quick_draganddrop)
case QQuickDialogType::FileDialog: {
dialogHelper.reset(new QQuickPlatformFileDialog(parent));
break;
diff --git a/src/quicktemplates/qquickheaderview.cpp b/src/quicktemplates/qquickheaderview.cpp
index 8c019bac27..8273529061 100644
--- a/src/quicktemplates/qquickheaderview.cpp
+++ b/src/quicktemplates/qquickheaderview.cpp
@@ -464,8 +464,10 @@ QQuickHorizontalHeaderView::QQuickHorizontalHeaderView(QQuickItem *parent)
QQuickHorizontalHeaderView::~QQuickHorizontalHeaderView()
{
+#if QT_CONFIG(quick_draganddrop)
Q_D(QQuickHorizontalHeaderView);
d->destroySectionDragHandler();
+#endif
}
bool QQuickHorizontalHeaderView::movableColumns() const
@@ -501,8 +503,10 @@ QQuickVerticalHeaderView::QQuickVerticalHeaderView(QQuickItem *parent)
QQuickVerticalHeaderView::~QQuickVerticalHeaderView()
{
+#if QT_CONFIG(quick_draganddrop)
Q_D(QQuickVerticalHeaderView);
d->destroySectionDragHandler();
+#endif
}
bool QQuickVerticalHeaderView::movableRows() const
diff --git a/tests/auto/quickcontrols/qquickpopup/tst_qquickpopup.cpp b/tests/auto/quickcontrols/qquickpopup/tst_qquickpopup.cpp
index 32a4044ffc..b249c585f2 100644
--- a/tests/auto/quickcontrols/qquickpopup/tst_qquickpopup.cpp
+++ b/tests/auto/quickcontrols/qquickpopup/tst_qquickpopup.cpp
@@ -33,7 +33,9 @@
#include <QtQuick/private/qquicktextinput_p.h>
#include <QtQuick/private/qquicklistview_p.h>
#include <QtQuick/private/qquicktextedit_p.h>
+#if QT_CONFIG(draganddrop)
#include <QtQuick/private/qquickdroparea_p.h>
+#endif
#include <QtQuickControlsTestUtils/private/controlstestutils_p.h>
#include <QtQuickControlsTestUtils/private/qtest_quickcontrols_p.h>
@@ -83,8 +85,10 @@ private slots:
void nested();
#if QT_CONFIG(wheelevent)
void nestedWheel();
+#if QT_CONFIG(draganddrop)
void nestedWheelWithOverlayParent();
#endif
+#endif
void modelessOnModalOnModeless();
void grabber();
void cursorShape();
@@ -1349,6 +1353,7 @@ void tst_QQuickPopup::nestedWheel()
QTRY_COMPARE_GT(vbar->property("position").toDouble(), startPosition);
}
+#if QT_CONFIG(draganddrop)
void tst_QQuickPopup::nestedWheelWithOverlayParent()
{
QQuickControlsApplicationHelper helper(this, QStringLiteral("nested-wheel-overlay-parent.qml"));
@@ -1383,7 +1388,8 @@ void tst_QQuickPopup::nestedWheelWithOverlayParent()
// Wheel over the list view, verify that it scrolls
QTRY_COMPARE(listView->contentY(), 72.);
}
-#endif
+#endif // QT_CONFIG(draganddrop)
+#endif // QT_CONFIG(wheelevent)
void tst_QQuickPopup::modelessOnModalOnModeless()
{