diff options
author | Mitch Curtis <mitch.curtis@qt.io> | 2022-11-18 15:15:16 +0800 |
---|---|---|
committer | Mitch Curtis <mitch.curtis@qt.io> | 2022-12-01 10:26:20 +0800 |
commit | 4bd87b903b355b53e3105ba1ae7c154c4e55cdaf (patch) | |
tree | cc2edb597f0d5871302eb86e9dda78217384a5aa /src/quickdialogs2/quickdialogs2quickimpl/qquickfiledialogdelegate.cpp | |
parent | 786e1748d4469c135a922a221024f3f9c421c0de (diff) |
Remove "2" from Qt Quick Controls directories
Qt Quick Controls 2 was named that way because it was a follow-up to
Qt Quick Controls 1.x. Now that Qt Quick Controls 1 is no longer
supported, we don't need to have "2" in the name. Work on this was
already started for the documentation in
1abdfe5d5a052f2298b7bf657513dfa7e0c66a56.
By doing this renaming a few weeks before feature freeze, it won't
affect the release but still results in as little time possible spent
manually fixing conflicts in cherry-picks from non-LTS releases as a
result of the renaming.
This patch does the following:
- Renames directories.
- Adapts CMakeLists.txt and other files to account for the new paths.
A follow-up patch will handle documentation.
It does not touch library names or other user-facing stuff, as that
will have to be done in Qt 7.
Task-number: QTBUG-95413
Change-Id: I170d8db19033ee71e495ff0c5c1a517a41ed7634
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src/quickdialogs2/quickdialogs2quickimpl/qquickfiledialogdelegate.cpp')
-rw-r--r-- | src/quickdialogs2/quickdialogs2quickimpl/qquickfiledialogdelegate.cpp | 152 |
1 files changed, 0 insertions, 152 deletions
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/qquickfiledialogdelegate.cpp b/src/quickdialogs2/quickdialogs2quickimpl/qquickfiledialogdelegate.cpp deleted file mode 100644 index 71b1fccbc5..0000000000 --- a/src/quickdialogs2/quickdialogs2quickimpl/qquickfiledialogdelegate.cpp +++ /dev/null @@ -1,152 +0,0 @@ -// Copyright (C) 2021 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only - -#include "qquickfiledialogdelegate_p.h" - -#include <QtCore/qfileinfo.h> -#include <QtGui/qpa/qplatformtheme.h> -#include <QtQml/QQmlFile> -#include <QtQml/qqmlexpression.h> -#include <QtQuick/private/qquicklistview_p.h> -#include <QtQuickTemplates2/private/qquickitemdelegate_p_p.h> - -#include "qquickfiledialogimpl_p.h" -#include "qquickfolderdialogimpl_p.h" - -QT_BEGIN_NAMESPACE - -class QQuickFileDialogDelegatePrivate : public QQuickItemDelegatePrivate -{ -public: - Q_DECLARE_PUBLIC(QQuickFileDialogDelegate) - - void highlightFile(); - void chooseFile(); - - bool acceptKeyClick(Qt::Key key) const override; - - QQuickDialog *dialog = nullptr; - QQuickFileDialogImpl *fileDialog = nullptr; - QQuickFolderDialogImpl *folderDialog = nullptr; - QUrl file; -}; - -void QQuickFileDialogDelegatePrivate::highlightFile() -{ - Q_Q(QQuickFileDialogDelegate); - QQuickListViewAttached *attached = static_cast<QQuickListViewAttached*>( - qmlAttachedPropertiesObject<QQuickListView>(q)); - if (!attached) - return; - - QQmlContext *delegateContext = qmlContext(q); - if (!delegateContext) - return; - - bool converted = false; - const int index = q->property("index").toInt(&converted); - if (converted) { - attached->view()->setCurrentIndex(index); - if (fileDialog) - fileDialog->setSelectedFile(file); - else if (folderDialog) - folderDialog->setSelectedFolder(file); - } -} - -void QQuickFileDialogDelegatePrivate::chooseFile() -{ - const QFileInfo fileInfo(QQmlFile::urlToLocalFileOrQrc(file)); - if (fileInfo.isDir()) { - // If it's a directory, navigate to it. - if (fileDialog) - fileDialog->setCurrentFolder(file); - else - folderDialog->setCurrentFolder(file); - } else { - Q_ASSERT(fileDialog); - // Otherwise it's a file, so select it and close the dialog. - fileDialog->setSelectedFile(file); - fileDialog->accept(); - } -} - -bool QQuickFileDialogDelegatePrivate::acceptKeyClick(Qt::Key key) const -{ - return key == Qt::Key_Return || key == Qt::Key_Enter; -} - -QQuickFileDialogDelegate::QQuickFileDialogDelegate(QQuickItem *parent) - : QQuickItemDelegate(*(new QQuickFileDialogDelegatePrivate), parent) -{ - Q_D(QQuickFileDialogDelegate); - // Clicking and tabbing should result in it getting focus, - // as e.g. Ubuntu and Windows both allow tabbing through file dialogs. - setFocusPolicy(Qt::StrongFocus); - setCheckable(true); - QObjectPrivate::connect(this, &QQuickFileDialogDelegate::clicked, - d, &QQuickFileDialogDelegatePrivate::highlightFile); - QObjectPrivate::connect(this, &QQuickFileDialogDelegate::doubleClicked, - d, &QQuickFileDialogDelegatePrivate::chooseFile); -} - -QQuickDialog *QQuickFileDialogDelegate::dialog() const -{ - Q_D(const QQuickFileDialogDelegate); - return d->dialog; -} - -void QQuickFileDialogDelegate::setDialog(QQuickDialog *dialog) -{ - Q_D(QQuickFileDialogDelegate); - if (dialog == d->dialog) - return; - - d->dialog = dialog; - d->fileDialog = qobject_cast<QQuickFileDialogImpl*>(dialog); - d->folderDialog = qobject_cast<QQuickFolderDialogImpl*>(dialog); - emit dialogChanged(); -} - -QUrl QQuickFileDialogDelegate::file() const -{ - Q_D(const QQuickFileDialogDelegate); - return d->file; -} - -void QQuickFileDialogDelegate::setFile(const QUrl &file) -{ - Q_D(QQuickFileDialogDelegate); - QUrl adjustedFile = file; -#ifdef Q_OS_WIN32 - // Work around QTBUG-99105 (FolderListModel uses lowercase drive letter). - QString path = adjustedFile.path(); - const int driveColonIndex = path.indexOf(QLatin1Char(':')); - if (driveColonIndex == 2) { - path.replace(1, 1, path.at(1).toUpper()); - adjustedFile.setPath(path); - } -#endif - if (adjustedFile == d->file) - return; - - d->file = adjustedFile; - emit fileChanged(); -} - -void QQuickFileDialogDelegate::keyReleaseEvent(QKeyEvent *event) -{ - Q_D(QQuickFileDialogDelegate); - // We need to respond to being triggered by enter being pressed, - // but we can't use event->isAccepted() to check, because events are pre-accepted. - auto connection = QObjectPrivate::connect(this, &QQuickFileDialogDelegate::clicked, - d, &QQuickFileDialogDelegatePrivate::chooseFile); - - QQuickItemDelegate::keyReleaseEvent(event); - - disconnect(connection); -} - -QT_END_NAMESPACE - -#include "moc_qquickfiledialogdelegate_p.cpp" |