diff options
Diffstat (limited to 'src/widgets/itemviews/qtablewidget.h')
-rw-r--r-- | src/widgets/itemviews/qtablewidget.h | 157 |
1 files changed, 45 insertions, 112 deletions
diff --git a/src/widgets/itemviews/qtablewidget.h b/src/widgets/itemviews/qtablewidget.h index 70e2046400..303f4d5f5b 100644 --- a/src/widgets/itemviews/qtablewidget.h +++ b/src/widgets/itemviews/qtablewidget.h @@ -1,74 +1,44 @@ -/**************************************************************************** -** -** 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 QTABLEWIDGET_H #define QTABLEWIDGET_H -#include <QtWidgets/qtwidgetsglobal.h> #include <QtWidgets/qtableview.h> +#include <QtWidgets/qtwidgetsglobal.h> +#include <QtCore/qlist.h> #include <QtCore/qvariant.h> -#include <QtCore/qvector.h> QT_REQUIRE_CONFIG(tablewidget); QT_BEGIN_NAMESPACE -// ### Qt6 unexport the class, remove the user-defined special 3 and make it a literal type. -class Q_WIDGETS_EXPORT QTableWidgetSelectionRange +class QTableWidgetSelectionRange { public: - QTableWidgetSelectionRange(); - QTableWidgetSelectionRange(int top, int left, int bottom, int right); - ~QTableWidgetSelectionRange(); - - QTableWidgetSelectionRange(const QTableWidgetSelectionRange &other); - QTableWidgetSelectionRange &operator=(const QTableWidgetSelectionRange &other); - - inline int topRow() const { return top; } - inline int bottomRow() const { return bottom; } - inline int leftColumn() const { return left; } - inline int rightColumn() const { return right; } - inline int rowCount() const { return bottom - top + 1; } - inline int columnCount() const { return right - left + 1; } - + QTableWidgetSelectionRange() = default; + QTableWidgetSelectionRange(int top, int left, int bottom, int right) + : m_top(top), m_left(left), m_bottom(bottom), m_right(right) + {} + + friend bool operator==(const QTableWidgetSelectionRange &lhs, + const QTableWidgetSelectionRange &rhs) noexcept + { + return lhs.m_top == rhs.m_top && lhs.m_left == rhs.m_left && lhs.m_bottom == rhs.m_bottom + && lhs.m_right == rhs.m_right; + } + friend bool operator!=(const QTableWidgetSelectionRange &lhs, + const QTableWidgetSelectionRange &rhs) noexcept + { return !(lhs == rhs); } + + inline int topRow() const { return m_top; } + inline int bottomRow() const { return m_bottom; } + inline int leftColumn() const { return m_left; } + inline int rightColumn() const { return m_right; } + inline int rowCount() const { return m_bottom - m_top + 1; } + inline int columnCount() const { return m_right - m_left + 1; } private: - int top, left, bottom, right; + int m_top = -1, m_left = -1, m_bottom = -2, m_right = -2; }; class QTableWidget; @@ -113,7 +83,7 @@ public: { return data(Qt::StatusTipRole).toString(); } inline void setStatusTip(const QString &statusTip); -#ifndef QT_NO_TOOLTIP +#if QT_CONFIG(tooltip) inline QString toolTip() const { return data(Qt::ToolTipRole).toString(); } inline void setToolTip(const QString &toolTip); @@ -129,41 +99,35 @@ public: { return qvariant_cast<QFont>(data(Qt::FontRole)); } inline void setFont(const QFont &font); +#if QT_VERSION < QT_VERSION_CHECK(7, 0, 0) inline int textAlignment() const { return data(Qt::TextAlignmentRole).toInt(); } +#else + inline Qt::Alignment textAlignment() const + { return qvariant_cast<Qt::Alignment>(data(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 alignment) { setData(Qt::TextAlignmentRole, alignment); } - -#if QT_DEPRECATED_SINCE(5, 13) - QT_DEPRECATED_X ("Use QTableWidgetItem::background() instead") - inline QColor backgroundColor() const - { return qvariant_cast<QColor>(data(Qt::BackgroundRole)); } - QT_DEPRECATED_X ("Use QTableWidgetItem::setBackground() instead") - inline void setBackgroundColor(const QColor &color) - { setData(Qt::BackgroundRole, color); } + inline void setTextAlignment(Qt::AlignmentFlag alignment) + { setData(Qt::TextAlignmentRole, QVariant::fromValue(Qt::Alignment(alignment))); } #endif + inline void setTextAlignment(Qt::Alignment alignment) + { setData(Qt::TextAlignmentRole, QVariant::fromValue(alignment)); } inline QBrush background() const { return qvariant_cast<QBrush>(data(Qt::BackgroundRole)); } inline void setBackground(const QBrush &brush) { setData(Qt::BackgroundRole, brush.style() != Qt::NoBrush ? QVariant(brush) : QVariant()); } -#if QT_DEPRECATED_SINCE(5, 13) - QT_DEPRECATED_X ("Use QTableWidgetItem::foreground() instead") - inline QColor textColor() const - { return qvariant_cast<QColor>(data(Qt::ForegroundRole)); } - QT_DEPRECATED_X ("Use QTableWidgetItem::setForeground() instead") - inline void setTextColor(const QColor &color) - { setData(Qt::ForegroundRole, color); } -#endif - inline QBrush foreground() const { return qvariant_cast<QBrush>(data(Qt::ForegroundRole)); } inline void setForeground(const QBrush &brush) { setData(Qt::ForegroundRole, brush.style() != Qt::NoBrush ? QVariant(brush) : QVariant()); } inline Qt::CheckState checkState() const - { return static_cast<Qt::CheckState>(data(Qt::CheckStateRole).toInt()); } + { return qvariant_cast<Qt::CheckState>(data(Qt::CheckStateRole)); } inline void setCheckState(Qt::CheckState state) { setData(Qt::CheckStateRole, state); } @@ -190,7 +154,7 @@ private: private: int rtti; - QVector<QWidgetItemData> values; + QList<QWidgetItemData> values; QTableWidget *view; QTableWidgetItemPrivate *d; Qt::ItemFlags itemFlags; @@ -205,7 +169,7 @@ inline void QTableWidgetItem::setIcon(const QIcon &aicon) inline void QTableWidgetItem::setStatusTip(const QString &astatusTip) { setData(Qt::StatusTipRole, astatusTip); } -#ifndef QT_NO_TOOLTIP +#if QT_CONFIG(tooltip) inline void QTableWidgetItem::setToolTip(const QString &atoolTip) { setData(Qt::ToolTipRole, atoolTip); } #endif @@ -249,6 +213,9 @@ public: QTableWidgetItem *item(int row, int column) const; void setItem(int row, int column, QTableWidgetItem *item); QTableWidgetItem *takeItem(int row, int column); + QList<QTableWidgetItem*> items(const QMimeData *data) const; + QModelIndex indexFromItem(const QTableWidgetItem *item) const; + QTableWidgetItem *itemFromIndex(const QModelIndex &index) const; QTableWidgetItem *verticalHeaderItem(int row) const; void setVerticalHeaderItem(int row, QTableWidgetItem *item); @@ -282,12 +249,6 @@ public: void setCellWidget(int row, int column, QWidget *widget); inline void removeCellWidget(int row, int column); -#if QT_DEPRECATED_SINCE(5, 13) - QT_DEPRECATED_X ("Use QTableWidgetItem::isSelected() instead") - bool isItemSelected(const QTableWidgetItem *item) const; - QT_DEPRECATED_X ("Use QTableWidgetItem::setSelected() instead") - void setItemSelected(const QTableWidgetItem *item, bool select); -#endif void setRangeSelected(const QTableWidgetSelectionRange &range, bool select); QList<QTableWidgetSelectionRange> selectedRanges() const; @@ -320,7 +281,6 @@ Q_SIGNALS: void itemActivated(QTableWidgetItem *item); void itemEntered(QTableWidgetItem *item); - // ### Qt 6: add changed roles void itemChanged(QTableWidgetItem *item); void currentItemChanged(QTableWidgetItem *current, QTableWidgetItem *previous); @@ -339,27 +299,10 @@ 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<QTableWidgetItem *> &items) const; -#else - virtual QMimeData *mimeData(const QList<QTableWidgetItem*> items) const; -#endif virtual bool dropMimeData(int row, int column, 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<QTableWidgetItem*> items(const QMimeData *data) const; - - QModelIndex indexFromItem(const QTableWidgetItem *item) const; -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) - QModelIndex indexFromItem(QTableWidgetItem *item) const; // ### Qt 6: remove -#endif - QTableWidgetItem *itemFromIndex(const QModelIndex &index) const; - protected: #if QT_CONFIG(draganddrop) void dropEvent(QDropEvent *event) override; @@ -369,16 +312,6 @@ private: Q_DECLARE_PRIVATE(QTableWidget) Q_DISABLE_COPY(QTableWidget) - - 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_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)) }; inline void QTableWidget::removeCellWidget(int arow, int acolumn) |