aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Schulz <david.schulz@qt.io>2018-07-13 11:13:32 +0200
committerDavid Schulz <david.schulz@qt.io>2018-07-23 13:05:35 +0000
commitda739959ea80a8758b260441a4e3151e7fa7b770 (patch)
treeefaa5acf72e17452505812905433703c7ae775f2
parentf4f2ecc7c51b245a395324f322cb8809c48268fb (diff)
Move PathChooserDelegate to Utils
Change-Id: I94b3c0b60477145f0f084719fc1cf5f3f4a98534 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
-rw-r--r--src/libs/utils/delegates.cpp (renamed from src/libs/utils/annotateditemdelegate.cpp)66
-rw-r--r--src/libs/utils/delegates.h (renamed from src/libs/utils/annotateditemdelegate.h)27
-rw-r--r--src/libs/utils/utils-lib.pri4
-rw-r--r--src/libs/utils/utils.qbs4
-rw-r--r--src/plugins/cppeditor/cppincludehierarchy.cpp2
-rw-r--r--src/plugins/cppeditor/cpptypehierarchy.cpp2
-rw-r--r--src/plugins/qmljseditor/qmljseditor.cpp2
-rw-r--r--src/plugins/qmljseditor/qmljsoutlinetreeview.cpp2
-rw-r--r--src/plugins/qnx/pathchooserdelegate.cpp103
-rw-r--r--src/plugins/qnx/pathchooserdelegate.h65
-rw-r--r--src/plugins/qnx/qnx.pro2
-rw-r--r--src/plugins/qnx/qnx.qbs2
12 files changed, 100 insertions, 181 deletions
diff --git a/src/libs/utils/annotateditemdelegate.cpp b/src/libs/utils/delegates.cpp
index ca844341f0..bbc1a42265 100644
--- a/src/libs/utils/annotateditemdelegate.cpp
+++ b/src/libs/utils/delegates.cpp
@@ -23,7 +23,7 @@
**
****************************************************************************/
-#include "annotateditemdelegate.h"
+#include "delegates.h"
#include <QPainter>
#include <QApplication>
@@ -111,3 +111,67 @@ QSize AnnotatedItemDelegate::sizeHint(const QStyleOptionViewItem &option,
return QApplication::style()->sizeFromContents(QStyle::CT_ItemViewItem, &opt, QSize(), nullptr);
}
+
+PathChooserDelegate::PathChooserDelegate(QObject *parent)
+ : QStyledItemDelegate(parent)
+ , m_kind(Utils::PathChooser::ExistingDirectory)
+{
+}
+
+void PathChooserDelegate::setExpectedKind(Utils::PathChooser::Kind kind)
+{
+ m_kind = kind;
+}
+
+void PathChooserDelegate::setPromptDialogFilter(const QString &filter)
+{
+ m_filter = filter;
+}
+
+QWidget *PathChooserDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const
+{
+ Q_UNUSED(option);
+ Q_UNUSED(index);
+
+ Utils::PathChooser *editor = new Utils::PathChooser(parent);
+
+ editor->setHistoryCompleter(m_historyKey);
+ editor->setAutoFillBackground(true); // To hide the text beneath the editor widget
+ editor->lineEdit()->setMinimumWidth(0);
+
+ connect(editor, &Utils::PathChooser::browsingFinished, this, [this, editor]() {
+ emit const_cast<PathChooserDelegate*>(this)->commitData(editor);
+ });
+
+ return editor;
+}
+
+void PathChooserDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const
+{
+ if (auto *pathChooser = qobject_cast<Utils::PathChooser *>(editor)) {
+ pathChooser->setExpectedKind(m_kind);
+ pathChooser->setPromptDialogFilter(m_filter);
+ pathChooser->setPath(index.model()->data(index, Qt::EditRole).toString());
+ }
+}
+
+void PathChooserDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const
+{
+ Utils::PathChooser *pathChooser = qobject_cast<Utils::PathChooser *>(editor);
+ if (!pathChooser)
+ return;
+
+ model->setData(index, pathChooser->path(), Qt::EditRole);
+}
+
+void PathChooserDelegate::updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const
+{
+ Q_UNUSED(index);
+
+ editor->setGeometry(option.rect);
+}
+
+void PathChooserDelegate::setHistoryCompleter(const QString &key)
+{
+ m_historyKey = key;
+}
diff --git a/src/libs/utils/annotateditemdelegate.h b/src/libs/utils/delegates.h
index ffbcfbd9f4..7deab7a372 100644
--- a/src/libs/utils/annotateditemdelegate.h
+++ b/src/libs/utils/delegates.h
@@ -26,6 +26,7 @@
#pragma once
#include "utils_global.h"
+#include "pathchooser.h"
#include <QStyledItemDelegate>
@@ -54,4 +55,30 @@ private:
QString m_delimiter;
};
+class QTCREATOR_UTILS_EXPORT PathChooserDelegate : public QStyledItemDelegate
+{
+public:
+ explicit PathChooserDelegate(QObject *parent = nullptr);
+
+ void setExpectedKind(PathChooser::Kind kind);
+ void setPromptDialogFilter(const QString &filter);
+
+ QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option,
+ const QModelIndex &index) const override;
+
+ void setEditorData(QWidget *editor, const QModelIndex &index) const override;
+ void setModelData(QWidget *editor, QAbstractItemModel *model,
+ const QModelIndex &index) const override;
+
+ void updateEditorGeometry(QWidget *editor,
+ const QStyleOptionViewItem &option, const QModelIndex &index) const override;
+
+ void setHistoryCompleter(const QString &key);
+
+private:
+ PathChooser::Kind m_kind;
+ QString m_filter;
+ QString m_historyKey;
+};
+
} // Utils
diff --git a/src/libs/utils/utils-lib.pri b/src/libs/utils/utils-lib.pri
index 7de656218b..0cd5f68e12 100644
--- a/src/libs/utils/utils-lib.pri
+++ b/src/libs/utils/utils-lib.pri
@@ -74,7 +74,7 @@ SOURCES += \
$$PWD/crumblepath.cpp \
$$PWD/historycompleter.cpp \
$$PWD/buildablehelperlibrary.cpp \
- $$PWD/annotateditemdelegate.cpp \
+ $$PWD/delegates.cpp \
$$PWD/fileinprojectfinder.cpp \
$$PWD/statuslabel.cpp \
$$PWD/outputformatter.cpp \
@@ -184,7 +184,7 @@ HEADERS += \
$$PWD/crumblepath.h \
$$PWD/historycompleter.h \
$$PWD/buildablehelperlibrary.h \
- $$PWD/annotateditemdelegate.h \
+ $$PWD/delegates.h \
$$PWD/fileinprojectfinder.h \
$$PWD/statuslabel.h \
$$PWD/outputformatter.h \
diff --git a/src/libs/utils/utils.qbs b/src/libs/utils/utils.qbs
index d6f02202e9..c277c21427 100644
--- a/src/libs/utils/utils.qbs
+++ b/src/libs/utils/utils.qbs
@@ -39,8 +39,6 @@ Project {
files: [
"QtConcurrentTools",
"algorithm.h",
- "annotateditemdelegate.cpp",
- "annotateditemdelegate.h",
"ansiescapecodehandler.cpp",
"ansiescapecodehandler.h",
"appmainwindow.cpp",
@@ -71,6 +69,8 @@ Project {
"crumblepath.cpp",
"crumblepath.h",
"declarationmacros.h",
+ "delegates.cpp",
+ "delegates.h",
"detailsbutton.cpp",
"detailsbutton.h",
"detailswidget.cpp",
diff --git a/src/plugins/cppeditor/cppincludehierarchy.cpp b/src/plugins/cppeditor/cppincludehierarchy.cpp
index 22bebf3daf..27a8cca993 100644
--- a/src/plugins/cppeditor/cppincludehierarchy.cpp
+++ b/src/plugins/cppeditor/cppincludehierarchy.cpp
@@ -42,7 +42,7 @@
#include <cplusplus/CppDocument.h>
-#include <utils/annotateditemdelegate.h>
+#include <utils/delegates.h>
#include <utils/dropsupport.h>
#include <utils/fileutils.h>
#include <utils/navigationtreeview.h>
diff --git a/src/plugins/cppeditor/cpptypehierarchy.cpp b/src/plugins/cppeditor/cpptypehierarchy.cpp
index ad581602f0..1b9d51851a 100644
--- a/src/plugins/cppeditor/cpptypehierarchy.cpp
+++ b/src/plugins/cppeditor/cpptypehierarchy.cpp
@@ -34,7 +34,7 @@
#include <coreplugin/editormanager/editormanager.h>
#include <cpptools/cppelementevaluator.h>
#include <utils/algorithm.h>
-#include <utils/annotateditemdelegate.h>
+#include <utils/delegates.h>
#include <utils/navigationtreeview.h>
#include <utils/dropsupport.h>
diff --git a/src/plugins/qmljseditor/qmljseditor.cpp b/src/plugins/qmljseditor/qmljseditor.cpp
index a9e063245e..bf7c50b9e8 100644
--- a/src/plugins/qmljseditor/qmljseditor.cpp
+++ b/src/plugins/qmljseditor/qmljseditor.cpp
@@ -70,7 +70,7 @@
#include <texteditor/texteditoractionhandler.h>
#include <texteditor/textmark.h>
-#include <utils/annotateditemdelegate.h>
+#include <utils/delegates.h>
#include <utils/changeset.h>
#include <utils/qtcassert.h>
#include <utils/uncommentselection.h>
diff --git a/src/plugins/qmljseditor/qmljsoutlinetreeview.cpp b/src/plugins/qmljseditor/qmljsoutlinetreeview.cpp
index d89b84a3b5..9e7efe7efd 100644
--- a/src/plugins/qmljseditor/qmljsoutlinetreeview.cpp
+++ b/src/plugins/qmljseditor/qmljsoutlinetreeview.cpp
@@ -26,7 +26,7 @@
#include "qmljsoutlinetreeview.h"
#include "qmloutlinemodel.h"
-#include <utils/annotateditemdelegate.h>
+#include <utils/delegates.h>
#include <QMenu>
namespace QmlJSEditor {
diff --git a/src/plugins/qnx/pathchooserdelegate.cpp b/src/plugins/qnx/pathchooserdelegate.cpp
deleted file mode 100644
index 2b37c0d9b7..0000000000
--- a/src/plugins/qnx/pathchooserdelegate.cpp
+++ /dev/null
@@ -1,103 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 BlackBerry Limited. All rights reserved.
-** Contact: KDAB (info@kdab.com)
-**
-** This file is part of Qt Creator.
-**
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-****************************************************************************/
-
-#include "pathchooserdelegate.h"
-
-#include <utils/pathchooser.h>
-#include <utils/fancylineedit.h>
-
-namespace Qnx {
-namespace Internal {
-
-PathChooserDelegate::PathChooserDelegate(QObject *parent)
- : QStyledItemDelegate(parent)
- , m_kind(Utils::PathChooser::ExistingDirectory)
-{
-}
-
-void PathChooserDelegate::setExpectedKind(Utils::PathChooser::Kind kind)
-{
- m_kind = kind;
-}
-
-void PathChooserDelegate::setPromptDialogFilter(const QString &filter)
-{
- m_filter = filter;
-}
-
-QWidget *PathChooserDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const
-{
- Q_UNUSED(option);
- Q_UNUSED(index);
-
- Utils::PathChooser *editor = new Utils::PathChooser(parent);
-
- editor->setHistoryCompleter(m_historyKey);
- editor->setAutoFillBackground(true); // To hide the text beneath the editor widget
- editor->lineEdit()->setMinimumWidth(0);
-
- connect(editor, &Utils::PathChooser::browsingFinished, this, [this, editor]() {
- emit const_cast<PathChooserDelegate*>(this)->commitData(editor);
- });
-
- return editor;
-}
-
-void PathChooserDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const
-{
- QString value = index.model()->data(index, Qt::EditRole).toString();
-
- Utils::PathChooser *pathChooser = qobject_cast<Utils::PathChooser *>(editor);
- if (!pathChooser)
- return;
-
- pathChooser->setExpectedKind(m_kind);
- pathChooser->setPromptDialogFilter(m_filter);
- pathChooser->setPath(value);
-}
-
-void PathChooserDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const
-{
- Utils::PathChooser *pathChooser = qobject_cast<Utils::PathChooser *>(editor);
- if (!pathChooser)
- return;
-
- model->setData(index, pathChooser->path(), Qt::EditRole);
-}
-
-void PathChooserDelegate::updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const
-{
- Q_UNUSED(index);
-
- editor->setGeometry(option.rect);
-}
-
-void PathChooserDelegate::setHistoryCompleter(const QString &key)
-{
- m_historyKey = key;
-}
-
-} // namespace Internal
-} // namespace Qnx
diff --git a/src/plugins/qnx/pathchooserdelegate.h b/src/plugins/qnx/pathchooserdelegate.h
deleted file mode 100644
index c8158b423f..0000000000
--- a/src/plugins/qnx/pathchooserdelegate.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 BlackBerry Limited. All rights reserved.
-** Contact: KDAB (info@kdab.com)
-**
-** This file is part of Qt Creator.
-**
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-****************************************************************************/
-
-#pragma once
-
-#include <QStyledItemDelegate>
-
-#include <utils/pathchooser.h>
-
-namespace Qnx {
-namespace Internal {
-
-// TODO: This whole class should probably go into utils
-
-class PathChooserDelegate : public QStyledItemDelegate
-{
- Q_OBJECT
-public:
- explicit PathChooserDelegate(QObject *parent = 0);
-
- void setExpectedKind(Utils::PathChooser::Kind kind);
- void setPromptDialogFilter(const QString &filter);
-
- QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option,
- const QModelIndex &index) const;
-
- void setEditorData(QWidget *editor, const QModelIndex &index) const;
- void setModelData(QWidget *editor, QAbstractItemModel *model,
- const QModelIndex &index) const;
-
- void updateEditorGeometry(QWidget *editor,
- const QStyleOptionViewItem &option, const QModelIndex &index) const;
-
- void setHistoryCompleter(const QString &key);
-
-private:
- Utils::PathChooser::Kind m_kind;
- QString m_filter;
- QString m_historyKey;
-};
-
-} // namespace Internal
-} // namespace Qnx
diff --git a/src/plugins/qnx/qnx.pro b/src/plugins/qnx/qnx.pro
index 49f9d55b77..50a35847d8 100644
--- a/src/plugins/qnx/qnx.pro
+++ b/src/plugins/qnx/qnx.pro
@@ -14,7 +14,6 @@ SOURCES += qnxplugin.cpp \
qnxqtversion.cpp \
qnxdeployconfiguration.cpp \
qnxdevice.cpp \
- pathchooserdelegate.cpp \
qnxdevicetester.cpp \
qnxdeviceprocesssignaloperation.cpp \
qnxdeviceprocesslist.cpp \
@@ -41,7 +40,6 @@ HEADERS += qnxplugin.h\
qnxqtversion.h \
qnxdeployconfiguration.h \
qnxdevice.h \
- pathchooserdelegate.h \
qnxdevicetester.h \
qnxdeviceprocesssignaloperation.h \
qnxdeviceprocesslist.h \
diff --git a/src/plugins/qnx/qnx.qbs b/src/plugins/qnx/qnx.qbs
index 8740daf0ce..6965b5eb16 100644
--- a/src/plugins/qnx/qnx.qbs
+++ b/src/plugins/qnx/qnx.qbs
@@ -18,8 +18,6 @@ QtcPlugin {
"qnxdeployqtlibrariesdialog.cpp",
"qnxdeployqtlibrariesdialog.h",
"qnxdeployqtlibrariesdialog.ui",
- "pathchooserdelegate.cpp",
- "pathchooserdelegate.h",
"qnxtoolchain.cpp",
"qnxtoolchain.h",
"qnx.qrc",