diff options
Diffstat (limited to 'src/widgets/itemviews/qtreewidget.h')
-rw-r--r-- | src/widgets/itemviews/qtreewidget.h | 153 |
1 files changed, 31 insertions, 122 deletions
diff --git a/src/widgets/itemviews/qtreewidget.h b/src/widgets/itemviews/qtreewidget.h index b9543fb954..992f6cdb1c 100644 --- a/src/widgets/itemviews/qtreewidget.h +++ b/src/widgets/itemviews/qtreewidget.h @@ -1,50 +1,14 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtWidgets module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** 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 Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** 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-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ +// Copyright (C) 2016 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 #ifndef QTREEWIDGET_H #define QTREEWIDGET_H -#include <QtWidgets/qtwidgetsglobal.h> #include <QtWidgets/qtreeview.h> #include <QtWidgets/qtreewidgetitemiterator.h> +#include <QtWidgets/qtwidgetsglobal.h> +#include <QtCore/qlist.h> #include <QtCore/qvariant.h> -#include <QtCore/qvector.h> QT_REQUIRE_CONFIG(treewidget); @@ -113,7 +77,7 @@ public: { return data(column, Qt::StatusTipRole).toString(); } inline void setStatusTip(int column, const QString &statusTip); -#ifndef QT_NO_TOOLTIP +#if QT_CONFIG(tooltip) inline QString toolTip(int column) const { return data(column, Qt::ToolTipRole).toString(); } inline void setToolTip(int column, const QString &toolTip); @@ -129,41 +93,35 @@ public: { return qvariant_cast<QFont>(data(column, Qt::FontRole)); } inline void setFont(int column, const QFont &font); +#if QT_VERSION < QT_VERSION_CHECK(7, 0, 0) inline int textAlignment(int column) const { return data(column, Qt::TextAlignmentRole).toInt(); } +#else + inline Qt::Alignment textAlignment(int column) const + { return qvariant_cast<Qt::Alignment>(data(column, Qt::TextAlignmentRole)); } +#endif +#if QT_DEPRECATED_SINCE(6, 4) + QT_DEPRECATED_VERSION_X_6_4("Use the overload taking Qt::Alignment") inline void setTextAlignment(int column, int alignment) { setData(column, Qt::TextAlignmentRole, alignment); } - -#if QT_DEPRECATED_SINCE(5, 13) - QT_DEPRECATED_X ("Use QTreeWidgetItem::background() instead") - inline QColor backgroundColor(int column) const - { return qvariant_cast<QColor>(data(column, Qt::BackgroundRole)); } - QT_DEPRECATED_X ("Use QTreeWidgetItem::setBackground() instead") - inline void setBackgroundColor(int column, const QColor &color) - { setData(column, Qt::BackgroundRole, color); } + inline void setTextAlignment(int column, Qt::AlignmentFlag alignment) + { setData(column, Qt::TextAlignmentRole, QVariant::fromValue(Qt::Alignment(alignment))); } #endif + inline void setTextAlignment(int column, Qt::Alignment alignment) + { setData(column, Qt::TextAlignmentRole, QVariant::fromValue(alignment)); } inline QBrush background(int column) const { return qvariant_cast<QBrush>(data(column, Qt::BackgroundRole)); } inline void setBackground(int column, const QBrush &brush) { setData(column, Qt::BackgroundRole, brush.style() != Qt::NoBrush ? QVariant(brush) : QVariant()); } -#if QT_DEPRECATED_SINCE(5, 13) - QT_DEPRECATED_X ("Use QTreeWidgetItem::foreground() instead") - inline QColor textColor(int column) const - { return qvariant_cast<QColor>(data(column, Qt::ForegroundRole)); } - QT_DEPRECATED_X ("Use QTreeWidgetItem::setForeground() instead") - inline void setTextColor(int column, const QColor &color) - { setData(column, Qt::ForegroundRole, color); } -#endif - inline QBrush foreground(int column) const { return qvariant_cast<QBrush>(data(column, Qt::ForegroundRole)); } inline void setForeground(int column, const QBrush &brush) { setData(column, Qt::ForegroundRole, brush.style() != Qt::NoBrush ? QVariant(brush) : QVariant()); } inline Qt::CheckState checkState(int column) const - { return static_cast<Qt::CheckState>(data(column, Qt::CheckStateRole).toInt()); } + { return qvariant_cast<Qt::CheckState>(data(column, Qt::CheckStateRole)); } inline void setCheckState(int column, Qt::CheckState state) { setData(column, Qt::CheckStateRole, state); } @@ -190,8 +148,8 @@ public: executePendingSort(); return children.at(index); } - inline int childCount() const { return children.count(); } - inline int columnCount() const { return values.count(); } + inline int childCount() const { return int(children.size()); } + inline int columnCount() const { return int(values.size()); } inline int indexOfChild(QTreeWidgetItem *child) const; void addChild(QTreeWidgetItem *child); @@ -219,12 +177,15 @@ private: int rtti; // One item has a vector of column entries. Each column has a vector of (role, value) pairs. - QVector< QVector<QWidgetItemData> > values; - QTreeWidget *view; + QList<QList<QWidgetItemData>> values; + QTreeWidget *view = nullptr; QTreeWidgetItemPrivate *d; - QTreeWidgetItem *par; + QTreeWidgetItem *par = nullptr; + // ### Qt7: Move children to d-pointer and replace QList by a suitable data structure. + // to fix QTBUG-94546 QList<QTreeWidgetItem*> children; - Qt::ItemFlags itemFlags; + Qt::ItemFlags itemFlags = Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled + | Qt::ItemIsDragEnabled | Qt::ItemIsDropEnabled; }; inline void QTreeWidgetItem::setText(int column, const QString &atext) @@ -238,7 +199,7 @@ inline void QTreeWidgetItem::setStatusTip(int column, const QString &astatusTip) { setData(column, Qt::StatusTipRole, astatusTip); } #endif -#ifndef QT_NO_TOOLTIP +#if QT_CONFIG(tooltip) inline void QTreeWidgetItem::setToolTip(int column, const QString &atoolTip) { setData(column, Qt::ToolTipRole, atoolTip); } #endif @@ -252,7 +213,7 @@ inline void QTreeWidgetItem::setFont(int column, const QFont &afont) { setData(column, Qt::FontRole, afont); } inline int QTreeWidgetItem::indexOfChild(QTreeWidgetItem *achild) const -{ executePendingSort(); return children.indexOf(achild); } +{ executePendingSort(); return int(children.indexOf(achild)); } #ifndef QT_NO_DATASTREAM Q_WIDGETS_EXPORT QDataStream &operator<<(QDataStream &out, const QTreeWidgetItem &item); @@ -315,36 +276,16 @@ public: void setItemWidget(QTreeWidgetItem *item, int column, QWidget *widget); inline void removeItemWidget(QTreeWidgetItem *item, int column); -#if QT_DEPRECATED_SINCE(5, 13) - QT_DEPRECATED_X ("Use QTreeWidgetItem::isSelected() instead") - bool isItemSelected(const QTreeWidgetItem *item) const; - QT_DEPRECATED_X ("Use QTreeWidgetItem::setSelected() instead") - void setItemSelected(const QTreeWidgetItem *item, bool select); -#endif QList<QTreeWidgetItem*> selectedItems() const; QList<QTreeWidgetItem*> findItems(const QString &text, Qt::MatchFlags flags, int column = 0) const; -#if QT_DEPRECATED_SINCE(5, 13) - QT_DEPRECATED_X ("Use QTreeWidgetItem::isHidden() instead") - bool isItemHidden(const QTreeWidgetItem *item) const; - QT_DEPRECATED_X ("Use QTreeWidgetItem::setHidden() instead") - void setItemHidden(const QTreeWidgetItem *item, bool hide); - - QT_DEPRECATED_X ("Use QTreeWidgetItem::isExpanded() instead") - bool isItemExpanded(const QTreeWidgetItem *item) const; - QT_DEPRECATED_X ("Use QTreeWidgetItem::setExpanded() instead") - void setItemExpanded(const QTreeWidgetItem *item, bool expand); - - QT_DEPRECATED_X ("Use QTreeWidgetItem::isFirstColumnSpanned() instead") - bool isFirstItemColumnSpanned(const QTreeWidgetItem *item) const; - QT_DEPRECATED_X ("Use QTreeWidgetItem::setFirstColumnSpanned() instead") - void setFirstItemColumnSpanned(const QTreeWidgetItem *item, bool span); -#endif - QTreeWidgetItem *itemAbove(const QTreeWidgetItem *item) const; QTreeWidgetItem *itemBelow(const QTreeWidgetItem *item) const; + QModelIndex indexFromItem(const QTreeWidgetItem *item, int column = 0) const; + QTreeWidgetItem *itemFromIndex(const QModelIndex &index) const; + void setSelectionModel(QItemSelectionModel *selectionModel) override; public Q_SLOTS: @@ -360,7 +301,6 @@ Q_SIGNALS: void itemDoubleClicked(QTreeWidgetItem *item, int column); void itemActivated(QTreeWidgetItem *item, int column); void itemEntered(QTreeWidgetItem *item, int column); - // ### Qt 6: add changed roles void itemChanged(QTreeWidgetItem *item, int column); void itemExpanded(QTreeWidgetItem *item); void itemCollapsed(QTreeWidgetItem *item); @@ -370,29 +310,11 @@ Q_SIGNALS: protected: bool event(QEvent *e) override; virtual QStringList mimeTypes() const; -#if QT_VERSION >= QT_VERSION_CHECK(6,0,0) virtual QMimeData *mimeData(const QList<QTreeWidgetItem *> &items) const; -#else - virtual QMimeData *mimeData(const QList<QTreeWidgetItem*> items) const; -#endif virtual bool dropMimeData(QTreeWidgetItem *parent, int index, const QMimeData *data, Qt::DropAction action); virtual Qt::DropActions supportedDropActions() const; -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) -public: -#else -protected: -#endif - QList<QTreeWidgetItem*> items(const QMimeData *data) const; - - QModelIndex indexFromItem(const QTreeWidgetItem *item, int column = 0) const; -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) - QModelIndex indexFromItem(QTreeWidgetItem *item, int column = 0) const; // ### Qt 6: remove -#endif - QTreeWidgetItem *itemFromIndex(const QModelIndex &index) const; - -protected: #if QT_CONFIG(draganddrop) void dropEvent(QDropEvent *event) override; #endif @@ -401,19 +323,6 @@ private: Q_DECLARE_PRIVATE(QTreeWidget) Q_DISABLE_COPY(QTreeWidget) - - Q_PRIVATE_SLOT(d_func(), void _q_emitItemPressed(const QModelIndex &index)) - Q_PRIVATE_SLOT(d_func(), void _q_emitItemClicked(const QModelIndex &index)) - Q_PRIVATE_SLOT(d_func(), void _q_emitItemDoubleClicked(const QModelIndex &index)) - Q_PRIVATE_SLOT(d_func(), void _q_emitItemActivated(const QModelIndex &index)) - Q_PRIVATE_SLOT(d_func(), void _q_emitItemEntered(const QModelIndex &index)) - Q_PRIVATE_SLOT(d_func(), void _q_emitItemChanged(const QModelIndex &index)) - Q_PRIVATE_SLOT(d_func(), void _q_emitItemExpanded(const QModelIndex &index)) - Q_PRIVATE_SLOT(d_func(), void _q_emitItemCollapsed(const QModelIndex &index)) - Q_PRIVATE_SLOT(d_func(), void _q_emitCurrentItemChanged(const QModelIndex &previous, const QModelIndex ¤t)) - Q_PRIVATE_SLOT(d_func(), void _q_sort()) - Q_PRIVATE_SLOT(d_func(), void _q_dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight)) - Q_PRIVATE_SLOT(d_func(), void _q_selectionChanged(const QItemSelection &selected, const QItemSelection &deselected)) }; inline void QTreeWidget::removeItemWidget(QTreeWidgetItem *item, int column) |