diff options
| author | Juha Vuolle <juha.vuolle@qt.io> | 2025-04-07 16:11:28 +0300 |
|---|---|---|
| committer | Juha Vuolle <juha.vuolle@qt.io> | 2025-04-10 11:03:53 +0300 |
| commit | b4ed50f0090c3cec8e74b99b3a35c6266e6dc2ec (patch) | |
| tree | b30c0fd5eb3b3782d6c08b83a69a704e906ada76 | |
| parent | 0abe19031052ae65e32397201e066a3e28776c39 (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>
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() { |
