diff options
Diffstat (limited to 'tests/manual/headerview')
-rw-r--r-- | tests/manual/headerview/CMakeLists.txt | 48 | ||||
-rw-r--r-- | tests/manual/headerview/headerview.pro | 10 | ||||
-rw-r--r-- | tests/manual/headerview/main.cpp | 217 | ||||
-rw-r--r-- | tests/manual/headerview/main.qml | 126 |
4 files changed, 0 insertions, 401 deletions
diff --git a/tests/manual/headerview/CMakeLists.txt b/tests/manual/headerview/CMakeLists.txt deleted file mode 100644 index 035082d1..00000000 --- a/tests/manual/headerview/CMakeLists.txt +++ /dev/null @@ -1,48 +0,0 @@ -# Generated from headerview.pro. - -##################################################################### -## headerview Binary: -##################################################################### - -qt_internal_add_manual_test(headerview - GUI - SOURCES - main.cpp - PUBLIC_LIBRARIES - Qt::Gui - Qt::Qml - Qt::Quick - Qt::QuickControls2 - Qt::QuickControls2Private - Qt::QuickPrivate - Qt::QuickTemplates2 - Qt::QuickTemplates2Private -) - -# Resources: -set(qmake_immediate_resource_files - "main.qml" -) - -qt_internal_add_resource(headerview "qmake_immediate" - PREFIX - "/" - FILES - ${qmake_immediate_resource_files} -) - - -#### Keys ignored in scope 1:.:.:headerview.pro:<TRUE>: -# TEMPLATE = "app" - -## Scopes: -##################################################################### - -#### Keys ignored in scope 2:.:.:headerview.pro:QNX: -# target.path = "/tmp/$${TARGET}/bin" - -#### Keys ignored in scope 4:.:.:headerview.pro:UNIX AND NOT ANDROID: -# target.path = "/opt/$${TARGET}/bin" - -#### Keys ignored in scope 5:.:.:headerview.pro:NOT target.path_ISEMPTY: -# INSTALLS = "target" diff --git a/tests/manual/headerview/headerview.pro b/tests/manual/headerview/headerview.pro deleted file mode 100644 index 474cc921..00000000 --- a/tests/manual/headerview/headerview.pro +++ /dev/null @@ -1,10 +0,0 @@ -TEMPLATE = app -TARGET = headerview -QT += qml quick quick-private quickcontrols2 quickcontrols2-private \ - quicktemplates2-private quicktemplates2 -SOURCES += main.cpp -RESOURCES += main.qml -# Default rules for deployment. -qnx: target.path = /tmp/$${TARGET}/bin -else: unix:!android: target.path = /opt/$${TARGET}/bin -!isEmpty(target.path): INSTALLS += target diff --git a/tests/manual/headerview/main.cpp b/tests/manual/headerview/main.cpp deleted file mode 100644 index a11f8627..00000000 --- a/tests/manual/headerview/main.cpp +++ /dev/null @@ -1,217 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtQuick 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$ -** -****************************************************************************/ - -#include <QAbstractTableModel> -#include <QDebug> -#include <QGuiApplication> -#include <QQmlApplicationEngine> - -class TestTableModel : public QAbstractTableModel { - Q_OBJECT - Q_PROPERTY(int rowCount READ rowCount WRITE setRowCount NOTIFY rowCountChanged) - Q_PROPERTY(int columnCount READ columnCount WRITE setColumnCount NOTIFY columnCountChanged) - -public: - TestTableModel(QObject *parent = nullptr) - : QAbstractTableModel(parent) - { - } - - int rowCount(const QModelIndex & = QModelIndex()) const override - { - return m_rows; - } - virtual void setRowCount(int count) - { - beginResetModel(); - m_rows = count; - emit rowCountChanged(); - endResetModel(); - } - - int columnCount(const QModelIndex & = QModelIndex()) const override - { - return m_cols; - } - virtual void setColumnCount(int count) - { - beginResetModel(); - m_cols = count; - emit columnCountChanged(); - endResetModel(); - } - - int indexValue(const QModelIndex &index) const - { - return index.row() + (index.column() * rowCount()); - } - - Q_INVOKABLE QModelIndex toQModelIndex(int serialIndex) - { - return createIndex(serialIndex % rowCount(), serialIndex / rowCount()); - } - - Q_INVOKABLE QVariant data(int row, int col) - { - return data(createIndex(row, col), Qt::DisplayRole); - } - QVariant data(const QModelIndex &index, int role) const override - { - if (!index.isValid()) - return QVariant(); - - switch (role) { - case Qt::DisplayRole: - return QLatin1String("Foo"); - case Qt::EditRole: - return m_checkedCells.contains(indexValue(index)); - default: - return QVariant(); - } - } - - bool setData(const QModelIndex &index, const QVariant &value, - int role = Qt::EditRole) override - { - - if (role != Qt::EditRole) - return false; - - int i = indexValue(index); - bool checked = value.toBool(); - if (checked == m_checkedCells.contains(i)) - return false; - - if (checked) - m_checkedCells.insert(i); - else - m_checkedCells.remove(i); - - emit dataChanged(index, index, { role }); - return true; - } - - Q_INVOKABLE QHash<int, QByteArray> roleNames() const override - { - return { - { Qt::DisplayRole, "display" }, - { Qt::EditRole, "edit" } - }; - } - -signals: - void rowCountChanged(); - void columnCountChanged(); - -private: - int m_rows = 0; - int m_cols = 0; - - QSet<int> m_checkedCells; -}; - -class TestTableModelWithHeader : public TestTableModel { - - Q_OBJECT -public: - void setRowCount(int count) override - { - vData.resize(count); - TestTableModel::setRowCount(count); - } - - void setColumnCount(int count) override - { - hData.resize(count); - TestTableModel::setColumnCount(count); - } - - Q_INVOKABLE QVariant headerData(int section, Qt::Orientation orientation, - int role = Qt::DisplayRole) const override - { - const bool isHorizontal = orientation == Qt::Horizontal; - auto sectionCount = isHorizontal ? columnCount() : rowCount(); - if (section < 0 || section >= sectionCount) - return QVariant(); - switch (role) { - case Qt::DisplayRole: - return (isHorizontal ? QString::fromLatin1("Column %1") : QString::fromLatin1("Row %1")).arg(section); - case Qt::EditRole: { - auto &data = isHorizontal ? hData : vData; - return data[section].toString(); - } - default: - return QVariant(); - } - } - - Q_INVOKABLE bool setHeaderData(int section, Qt::Orientation orientation, - const QVariant &value, int role = Qt::EditRole) override - { - qDebug() << Q_FUNC_INFO - << "section:" << section - << "orient:" << orientation - << "value:" << value - << "role:" << QAbstractItemModel::roleNames()[role]; - auto sectionCount = orientation == Qt::Horizontal ? columnCount() : rowCount(); - if (section < 0 || section >= sectionCount) - return false; - auto &data = orientation == Qt::Horizontal ? hData : vData; - data[section] = value; - emit headerDataChanged(orientation, section, section); - return true; - } - -private: - QList<QVariant> hData, vData; -}; - -int main(int argc, char *argv[]) -{ - QGuiApplication app(argc, argv); - - qmlRegisterType<TestTableModel>("TestTableModel", 0, 1, "TestTableModel"); - qmlRegisterType<TestTableModelWithHeader>("TestTableModelWithHeader", 0, 1, "TestTableModelWithHeader"); - QQmlApplicationEngine engine; - engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); - - return app.exec(); -} - -#include "main.moc" diff --git a/tests/manual/headerview/main.qml b/tests/manual/headerview/main.qml deleted file mode 100644 index abce1c00..00000000 --- a/tests/manual/headerview/main.qml +++ /dev/null @@ -1,126 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** 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. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQml.Models -import QtQuick -import QtQuick.Controls -import QtQuick.Shapes -import QtQuick.Window -import Qt.labs.qmlmodels -import TestTableModelWithHeader - -Window { - visible: true - width: 640 - height: 480 - title: qsTr("HeaderView Test") - - TestTableModelWithHeader { - id: tableModel - rowCount: 50 - columnCount: 80 - } - - TableView { - id: tableView - anchors.top: parent.top - anchors.topMargin: horizontalHeader.height + rowSpacing - anchors.left: parent.left - anchors.leftMargin: verticalHeader.width + columnSpacing - model: tableModel - rightMargin: 100 - bottomMargin: 100 - columnSpacing: 4 - rowSpacing: 4 - syncDirection: Qt.Vertical | Qt.Horizontal - implicitWidth: parent.width + columnSpacing - implicitHeight: parent.height + rowSpacing - clip: true - delegate: Rectangle { - implicitWidth: 150 - implicitHeight: 50 - color: "#e6ecf5" - - CheckBox { - anchors.fill: parent - text: model.display - checked: model.edit - leftPadding: 12 - onClicked: model.edit = checked - } - } - } - - HorizontalHeaderView { - id: horizontalHeader - objectName: "horizontalHeader" - anchors.top: parent.top - anchors.left: tableView.left - syncView: tableView - clip: true - } - - VerticalHeaderView { - id: verticalHeader - objectName: "verticalHeader" - anchors.top: tableView.top - syncView: tableView - clip: true - } - - ToolButton { - width: verticalHeader.width - height: horizontalHeader.height - onClicked: { - horizontalHeader.contentX = 0 - verticalHeader.contentY = 0 - } - } -} |