diff options
Diffstat (limited to 'examples/quick/controls/tableview')
| -rw-r--r-- | examples/quick/controls/tableview/main.qml | 188 | ||||
| -rw-r--r-- | examples/quick/controls/tableview/src/main.cpp | 59 | ||||
| -rw-r--r-- | examples/quick/controls/tableview/src/sortfilterproxymodel.cpp | 189 | ||||
| -rw-r--r-- | examples/quick/controls/tableview/src/sortfilterproxymodel.h | 111 | ||||
| -rw-r--r-- | examples/quick/controls/tableview/src/src.pri | 8 | ||||
| -rw-r--r-- | examples/quick/controls/tableview/tableview.pro | 11 | ||||
| -rw-r--r-- | examples/quick/controls/tableview/tableview.qrc | 5 |
7 files changed, 0 insertions, 571 deletions
diff --git a/examples/quick/controls/tableview/main.qml b/examples/quick/controls/tableview/main.qml deleted file mode 100644 index 1d99f4b93..000000000 --- a/examples/quick/controls/tableview/main.qml +++ /dev/null @@ -1,188 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2015 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** 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 QtQuick 2.2 -import QtQuick.Layouts 1.1 -import QtQuick.Controls 1.2 -import org.qtproject.example 1.0 - -ApplicationWindow { - id: window - visible: true - title: "Table View Example" - - toolBar: ToolBar { - TextField { - id: searchBox - - placeholderText: "Search..." - inputMethodHints: Qt.ImhNoPredictiveText - - width: window.width / 5 * 2 - anchors.right: parent.right - anchors.verticalCenter: parent.verticalCenter - } - } - - TableView { - id: tableView - - frameVisible: false - sortIndicatorVisible: true - - anchors.fill: parent - - Layout.minimumWidth: 400 - Layout.minimumHeight: 240 - Layout.preferredWidth: 600 - Layout.preferredHeight: 400 - - TableViewColumn { - id: titleColumn - title: "Title" - role: "title" - movable: false - resizable: false - width: tableView.viewport.width - authorColumn.width - } - - TableViewColumn { - id: authorColumn - title: "Author" - role: "author" - movable: false - resizable: false - width: tableView.viewport.width / 3 - } - - model: SortFilterProxyModel { - id: proxyModel - source: sourceModel.count > 0 ? sourceModel : null - - sortOrder: tableView.sortIndicatorOrder - sortCaseSensitivity: Qt.CaseInsensitive - sortRole: sourceModel.count > 0 ? tableView.getColumn(tableView.sortIndicatorColumn).role : "" - - filterString: "*" + searchBox.text + "*" - filterSyntax: SortFilterProxyModel.Wildcard - filterCaseSensitivity: Qt.CaseInsensitive - } - - ListModel { - id: sourceModel - ListElement { - title: "Moby-Dick" - author: "Herman Melville" - } - ListElement { - title: "The Adventures of Tom Sawyer" - author: "Mark Twain" - } - ListElement { - title: "Cat’s Cradle" - author: "Kurt Vonnegut" - } - ListElement { - title: "Farenheit 451" - author: "Ray Bradbury" - } - ListElement { - title: "It" - author: "Stephen King" - } - ListElement { - title: "On the Road" - author: "Jack Kerouac" - } - ListElement { - title: "Of Mice and Men" - author: "John Steinbeck" - } - ListElement { - title: "Do Androids Dream of Electric Sheep?" - author: "Philip K. Dick" - } - ListElement { - title: "Uncle Tom’s Cabin" - author: "Harriet Beecher Stowe" - } - ListElement { - title: "The Call of the Wild" - author: "Jack London" - } - ListElement { - title: "The Old Man and the Sea" - author: "Ernest Hemingway" - } - ListElement { - title: "A Streetcar Named Desire" - author: "Tennessee Williams" - } - ListElement { - title: "Catch-22" - author: "Joseph Heller" - } - ListElement { - title: "One Flew Over the Cuckoo’s Nest" - author: "Ken Kesey" - } - ListElement { - title: "The Murders in the Rue Morgue" - author: "Edgar Allan Poe" - } - ListElement { - title: "Breakfast at Tiffany’s" - author: "Truman Capote" - } - ListElement { - title: "Death of a Salesman" - author: "Arthur Miller" - } - ListElement { - title: "Post Office" - author: "Charles Bukowski" - } - ListElement { - title: "Herbert West—Reanimator" - author: "H. P. Lovecraft" - } - } - } -} diff --git a/examples/quick/controls/tableview/src/main.cpp b/examples/quick/controls/tableview/src/main.cpp deleted file mode 100644 index dbba7f38c..000000000 --- a/examples/quick/controls/tableview/src/main.cpp +++ /dev/null @@ -1,59 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2015 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** 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$ -** -****************************************************************************/ - -#include "qtquickcontrolsapplication.h" -#include "sortfilterproxymodel.h" -#include <QtQml/qqmlapplicationengine.h> -#include <QtGui/qsurfaceformat.h> -#include <QtQml/qqml.h> - -int main(int argc, char *argv[]) -{ - QtQuickControlsApplication app(argc, argv); - if (QCoreApplication::arguments().contains(QLatin1String("--coreprofile"))) { - QSurfaceFormat fmt; - fmt.setVersion(4, 4); - fmt.setProfile(QSurfaceFormat::CoreProfile); - QSurfaceFormat::setDefaultFormat(fmt); - } - qmlRegisterType<SortFilterProxyModel>("org.qtproject.example", 1, 0, "SortFilterProxyModel"); - QQmlApplicationEngine engine(QUrl("qrc:/main.qml")); - return app.exec(); -} diff --git a/examples/quick/controls/tableview/src/sortfilterproxymodel.cpp b/examples/quick/controls/tableview/src/sortfilterproxymodel.cpp deleted file mode 100644 index f362d5d3d..000000000 --- a/examples/quick/controls/tableview/src/sortfilterproxymodel.cpp +++ /dev/null @@ -1,189 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2015 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** 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$ -** -****************************************************************************/ - -#include "sortfilterproxymodel.h" -#include <QtDebug> -#include <QtQml> - -SortFilterProxyModel::SortFilterProxyModel(QObject *parent) : QSortFilterProxyModel(parent), m_complete(false) -{ - connect(this, SIGNAL(rowsInserted(QModelIndex,int,int)), this, SIGNAL(countChanged())); - connect(this, SIGNAL(rowsRemoved(QModelIndex,int,int)), this, SIGNAL(countChanged())); -} - -int SortFilterProxyModel::count() const -{ - return rowCount(); -} - -QObject *SortFilterProxyModel::source() const -{ - return sourceModel(); -} - -void SortFilterProxyModel::setSource(QObject *source) -{ - setSourceModel(qobject_cast<QAbstractItemModel *>(source)); -} - -QByteArray SortFilterProxyModel::sortRole() const -{ - return m_sortRole; -} - -void SortFilterProxyModel::setSortRole(const QByteArray &role) -{ - if (m_sortRole != role) { - m_sortRole = role; - if (m_complete) - QSortFilterProxyModel::setSortRole(roleKey(role)); - } -} - -void SortFilterProxyModel::setSortOrder(Qt::SortOrder order) -{ - QSortFilterProxyModel::sort(0, order); -} - -QByteArray SortFilterProxyModel::filterRole() const -{ - return m_filterRole; -} - -void SortFilterProxyModel::setFilterRole(const QByteArray &role) -{ - if (m_filterRole != role) { - m_filterRole = role; - if (m_complete) - QSortFilterProxyModel::setFilterRole(roleKey(role)); - } -} - -QString SortFilterProxyModel::filterString() const -{ - return filterRegExp().pattern(); -} - -void SortFilterProxyModel::setFilterString(const QString &filter) -{ - setFilterRegExp(QRegExp(filter, filterCaseSensitivity(), static_cast<QRegExp::PatternSyntax>(filterSyntax()))); -} - -SortFilterProxyModel::FilterSyntax SortFilterProxyModel::filterSyntax() const -{ - return static_cast<FilterSyntax>(filterRegExp().patternSyntax()); -} - -void SortFilterProxyModel::setFilterSyntax(SortFilterProxyModel::FilterSyntax syntax) -{ - setFilterRegExp(QRegExp(filterString(), filterCaseSensitivity(), static_cast<QRegExp::PatternSyntax>(syntax))); -} - -QJSValue SortFilterProxyModel::get(int idx) const -{ - QJSEngine *engine = qmlEngine(this); - QJSValue value = engine->newObject(); - if (idx >= 0 && idx < count()) { - QHash<int, QByteArray> roles = roleNames(); - QHashIterator<int, QByteArray> it(roles); - while (it.hasNext()) { - it.next(); - value.setProperty(QString::fromUtf8(it.value()), data(index(idx, 0), it.key()).toString()); - } - } - return value; -} - -void SortFilterProxyModel::classBegin() -{ -} - -void SortFilterProxyModel::componentComplete() -{ - m_complete = true; - if (!m_sortRole.isEmpty()) - QSortFilterProxyModel::setSortRole(roleKey(m_sortRole)); - if (!m_filterRole.isEmpty()) - QSortFilterProxyModel::setFilterRole(roleKey(m_filterRole)); -} - -int SortFilterProxyModel::roleKey(const QByteArray &role) const -{ - QHash<int, QByteArray> roles = roleNames(); - QHashIterator<int, QByteArray> it(roles); - while (it.hasNext()) { - it.next(); - if (it.value() == role) - return it.key(); - } - return -1; -} - -QHash<int, QByteArray> SortFilterProxyModel::roleNames() const -{ - if (QAbstractItemModel *source = sourceModel()) - return source->roleNames(); - return QHash<int, QByteArray>(); -} - -bool SortFilterProxyModel::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const -{ - QRegExp rx = filterRegExp(); - if (rx.isEmpty()) - return true; - QAbstractItemModel *model = sourceModel(); - if (filterRole().isEmpty()) { - QHash<int, QByteArray> roles = roleNames(); - QHashIterator<int, QByteArray> it(roles); - while (it.hasNext()) { - it.next(); - QModelIndex sourceIndex = model->index(sourceRow, 0, sourceParent); - QString key = model->data(sourceIndex, it.key()).toString(); - if (key.contains(rx)) - return true; - } - return false; - } - QModelIndex sourceIndex = model->index(sourceRow, 0, sourceParent); - if (!sourceIndex.isValid()) - return true; - QString key = model->data(sourceIndex, roleKey(filterRole())).toString(); - return key.contains(rx); -} diff --git a/examples/quick/controls/tableview/src/sortfilterproxymodel.h b/examples/quick/controls/tableview/src/sortfilterproxymodel.h deleted file mode 100644 index c4460b0f1..000000000 --- a/examples/quick/controls/tableview/src/sortfilterproxymodel.h +++ /dev/null @@ -1,111 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2015 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** 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$ -** -****************************************************************************/ - -#ifndef SORTFILTERPROXYMODEL_H -#define SORTFILTERPROXYMODEL_H - -#include <QtCore/qsortfilterproxymodel.h> -#include <QtQml/qqmlparserstatus.h> -#include <QtQml/qjsvalue.h> - -class SortFilterProxyModel : public QSortFilterProxyModel, public QQmlParserStatus -{ - Q_OBJECT - Q_INTERFACES(QQmlParserStatus) - - Q_PROPERTY(int count READ count NOTIFY countChanged) - Q_PROPERTY(QObject *source READ source WRITE setSource) - - Q_PROPERTY(QByteArray sortRole READ sortRole WRITE setSortRole) - Q_PROPERTY(Qt::SortOrder sortOrder READ sortOrder WRITE setSortOrder) - - Q_PROPERTY(QByteArray filterRole READ filterRole WRITE setFilterRole) - Q_PROPERTY(QString filterString READ filterString WRITE setFilterString) - Q_PROPERTY(FilterSyntax filterSyntax READ filterSyntax WRITE setFilterSyntax) - - Q_ENUMS(FilterSyntax) - -public: - explicit SortFilterProxyModel(QObject *parent = 0); - - QObject *source() const; - void setSource(QObject *source); - - QByteArray sortRole() const; - void setSortRole(const QByteArray &role); - - void setSortOrder(Qt::SortOrder order); - - QByteArray filterRole() const; - void setFilterRole(const QByteArray &role); - - QString filterString() const; - void setFilterString(const QString &filter); - - enum FilterSyntax { - RegExp, - Wildcard, - FixedString - }; - - FilterSyntax filterSyntax() const; - void setFilterSyntax(FilterSyntax syntax); - - int count() const; - Q_INVOKABLE QJSValue get(int index) const; - - void classBegin(); - void componentComplete(); - -signals: - void countChanged(); - -protected: - int roleKey(const QByteArray &role) const; - QHash<int, QByteArray> roleNames() const; - bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const; - -private: - bool m_complete; - QByteArray m_sortRole; - QByteArray m_filterRole; -}; - -#endif // SORTFILTERPROXYMODEL_H diff --git a/examples/quick/controls/tableview/src/src.pri b/examples/quick/controls/tableview/src/src.pri deleted file mode 100644 index 491f851c9..000000000 --- a/examples/quick/controls/tableview/src/src.pri +++ /dev/null @@ -1,8 +0,0 @@ -INCLUDEPATH += $$PWD - -HEADERS += \ - $$PWD/sortfilterproxymodel.h - -SOURCES += \ - $$PWD/main.cpp \ - $$PWD/sortfilterproxymodel.cpp diff --git a/examples/quick/controls/tableview/tableview.pro b/examples/quick/controls/tableview/tableview.pro deleted file mode 100644 index c0ed1a2f9..000000000 --- a/examples/quick/controls/tableview/tableview.pro +++ /dev/null @@ -1,11 +0,0 @@ -TEMPLATE = app -TARGET = tableview - -RESOURCES += \ - tableview.qrc - -OTHER_FILES += \ - main.qml - -include(src/src.pri) -include(../shared/shared.pri) diff --git a/examples/quick/controls/tableview/tableview.qrc b/examples/quick/controls/tableview/tableview.qrc deleted file mode 100644 index 3b111a907..000000000 --- a/examples/quick/controls/tableview/tableview.qrc +++ /dev/null @@ -1,5 +0,0 @@ -<!DOCTYPE RCC><RCC version="1.0"> -<qresource prefix="/"> - <file>main.qml</file> -</qresource> -</RCC> |
