summaryrefslogtreecommitdiffstats
path: root/src/widgets/doc/snippets
diff options
context:
space:
mode:
Diffstat (limited to 'src/widgets/doc/snippets')
-rw-r--r--src/widgets/doc/snippets/common-table-model/README2
-rw-r--r--src/widgets/doc/snippets/common-table-model/model.cpp (renamed from src/widgets/doc/snippets/itemselection/model.cpp)0
-rw-r--r--src/widgets/doc/snippets/common-table-model/model.h (renamed from src/widgets/doc/snippets/itemselection/model.h)0
-rw-r--r--src/widgets/doc/snippets/itemselection/itemselection.pro6
-rw-r--r--src/widgets/doc/snippets/reading-selections/model.cpp238
-rw-r--r--src/widgets/doc/snippets/reading-selections/model.h74
-rw-r--r--src/widgets/doc/snippets/reading-selections/reading-selections.pro6
-rw-r--r--src/widgets/doc/snippets/sharedtablemodel/model.cpp236
-rw-r--r--src/widgets/doc/snippets/sharedtablemodel/model.h74
-rw-r--r--src/widgets/doc/snippets/sharedtablemodel/sharedtablemodel.pro7
-rw-r--r--src/widgets/doc/snippets/updating-selections/model.cpp236
-rw-r--r--src/widgets/doc/snippets/updating-selections/model.h74
-rw-r--r--src/widgets/doc/snippets/updating-selections/updating-selections.pro6
13 files changed, 19 insertions, 940 deletions
diff --git a/src/widgets/doc/snippets/common-table-model/README b/src/widgets/doc/snippets/common-table-model/README
new file mode 100644
index 0000000000..eaebd3efc8
--- /dev/null
+++ b/src/widgets/doc/snippets/common-table-model/README
@@ -0,0 +1,2 @@
+This is a QAbstractTableModel implementation used for several other snippets.
+There is no .pro file in this directory because it is not a standalone project.
diff --git a/src/widgets/doc/snippets/itemselection/model.cpp b/src/widgets/doc/snippets/common-table-model/model.cpp
index 6c9c5bad82..6c9c5bad82 100644
--- a/src/widgets/doc/snippets/itemselection/model.cpp
+++ b/src/widgets/doc/snippets/common-table-model/model.cpp
diff --git a/src/widgets/doc/snippets/itemselection/model.h b/src/widgets/doc/snippets/common-table-model/model.h
index ef63e45ce0..ef63e45ce0 100644
--- a/src/widgets/doc/snippets/itemselection/model.h
+++ b/src/widgets/doc/snippets/common-table-model/model.h
diff --git a/src/widgets/doc/snippets/itemselection/itemselection.pro b/src/widgets/doc/snippets/itemselection/itemselection.pro
index b1126bfe73..57f752f0b0 100644
--- a/src/widgets/doc/snippets/itemselection/itemselection.pro
+++ b/src/widgets/doc/snippets/itemselection/itemselection.pro
@@ -1,3 +1,5 @@
-HEADERS = model.h
+QT += widgets
+HEADERS = ../common-table-model/model.h
SOURCES = main.cpp \
- model.cpp
+ ../common-table-model/model.cpp
+INCLUDEPATH += ../common-table-model
diff --git a/src/widgets/doc/snippets/reading-selections/model.cpp b/src/widgets/doc/snippets/reading-selections/model.cpp
deleted file mode 100644
index ca4b9f84dd..0000000000
--- a/src/widgets/doc/snippets/reading-selections/model.cpp
+++ /dev/null
@@ -1,238 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the documentation 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 Nokia Corporation and its Subsidiary(-ies) 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$
-**
-****************************************************************************/
-
-/*
- model.cpp
-
- Provides a table model for use in various examples.
-*/
-
-#include <QtGui>
-
-#include "model.h"
-
-/*!
- Constructs a table model with at least one row and one column.
-*/
-
-TableModel::TableModel(int rows, int columns, QObject *parent)
- : QAbstractTableModel(parent)
-{
- QStringList newList;
-
- for (int column = 0; column < qMax(1, columns); ++column) {
- newList.append("");
- }
-
- for (int row = 0; row < qMax(1, rows); ++row) {
- rowList.append(newList);
- }
-}
-
-
-/*!
- Returns the number of items in the row list as the number of rows
- in the model.
-*/
-
-int TableModel::rowCount(const QModelIndex &/*parent*/) const
-{
- return rowList.size();
-}
-
-/*!
- Returns the number of items in the first list item as the number of
- columns in the model. All rows should have the same number of columns.
-*/
-
-int TableModel::columnCount(const QModelIndex &/*parent*/) const
-{
- return rowList[0].size();
-}
-
-/*!
- Returns an appropriate value for the requested data.
- If the view requests an invalid index, an invalid variant is returned.
- Any valid index that corresponds to a string in the list causes that
- string to be returned for the display role; otherwise an invalid variant
- is returned.
-*/
-
-QVariant TableModel::data(const QModelIndex &index, int role) const
-{
- if (!index.isValid())
- return QVariant();
-
- if (role == Qt::DisplayRole)
- return rowList[index.row()][index.column()];
- else
- return QVariant();
-}
-
-/*!
- Returns the appropriate header string depending on the orientation of
- the header and the section. If anything other than the display role is
- requested, we return an invalid variant.
-*/
-
-QVariant TableModel::headerData(int section, Qt::Orientation orientation,
- int role) const
-{
- if (role != Qt::DisplayRole)
- return QVariant();
-
- if (orientation == Qt::Horizontal)
- return QString("Column %1").arg(section);
- else
- return QString("Row %1").arg(section);
-}
-
-/*!
- Returns an appropriate value for the item's flags. Valid items are
- enabled, selectable, and editable.
-*/
-
-Qt::ItemFlags TableModel::flags(const QModelIndex &index) const
-{
- if (!index.isValid())
- return Qt::ItemIsEnabled;
-
- return Qt::ItemIsEnabled | Qt::ItemIsSelectable;
-}
-
-/*!
- Changes an item in the model, but only if the following conditions
- are met:
-
- * The index supplied is valid.
- * The role associated with editing text is specified.
-
- The dataChanged() signal is emitted if the item is changed.
-*/
-
-bool TableModel::setData(const QModelIndex &index,
- const QVariant &value, int role)
-{
- if (!index.isValid() || role != Qt::EditRole)
- return false;
-
- rowList[index.row()][index.column()] = value.toString();
- emit dataChanged(index, index);
- return true;
-}
-
-/*!
- Inserts a number of rows into the model at the specified position.
-*/
-
-bool TableModel::insertRows(int position, int rows, const QModelIndex &parent)
-{
- int columns = columnCount();
- beginInsertRows(parent, position, position + rows - 1);
-
- for (int row = 0; row < rows; ++row) {
- QStringList items;
- for (int column = 0; column < columns; ++column)
- items.append("");
- rowList.insert(position, items);
- }
-
- endInsertRows();
- return true;
-}
-
-/*!
- Inserts a number of columns into the model at the specified position.
- Each entry in the list is extended in turn with the required number of
- empty strings.
-*/
-
-bool TableModel::insertColumns(int position, int columns,
- const QModelIndex &parent)
-{
- int rows = rowCount();
- beginInsertColumns(parent, position, position + columns - 1);
-
- for (int row = 0; row < rows; ++row) {
- for (int column = position; column < columns; ++column) {
- rowList[row].insert(position, "");
- }
- }
-
- endInsertColumns();
- return true;
-}
-
-/*!
- Removes a number of rows from the model at the specified position.
-*/
-
-bool TableModel::removeRows(int position, int rows, const QModelIndex &parent)
-{
- beginRemoveRows(parent, position, position + rows - 1);
-
- for (int row = 0; row < rows; ++row) {
- rowList.removeAt(position);
- }
-
- endRemoveRows();
- return true;
-}
-
-/*!
- Removes a number of columns from the model at the specified position.
- Each row is shortened by the number of columns specified.
-*/
-
-bool TableModel::removeColumns(int position, int columns,
- const QModelIndex &parent)
-{
- int rows = rowCount();
- beginRemoveColumns(parent, position, position + columns - 1);
-
- for (int row = 0; row < rows; ++row) {
- for (int column = 0; column < columns; ++column) {
- rowList[row].removeAt(position);
- }
- }
-
- endRemoveColumns();
- return true;
-}
diff --git a/src/widgets/doc/snippets/reading-selections/model.h b/src/widgets/doc/snippets/reading-selections/model.h
deleted file mode 100644
index ef63e45ce0..0000000000
--- a/src/widgets/doc/snippets/reading-selections/model.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the documentation 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 Nokia Corporation and its Subsidiary(-ies) 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 MODEL_H
-#define MODEL_H
-
-#include <QAbstractTableModel>
-#include <QStringList>
-#include <QVariant>
-
-class TableModel : public QAbstractTableModel
-{
- Q_OBJECT
-
-public:
- TableModel(int rows = 1, int columns = 1, QObject *parent = 0);
-
- int rowCount(const QModelIndex &parent = QModelIndex()) const;
- int columnCount(const QModelIndex &parent = QModelIndex()) const;
- QVariant data(const QModelIndex &index, int role) const;
- QVariant headerData(int section, Qt::Orientation orientation,
- int role = Qt::DisplayRole) const;
-
- Qt::ItemFlags flags(const QModelIndex &index) const;
- bool setData(const QModelIndex &index, const QVariant &value,
- int role = Qt::EditRole);
-
- bool insertRows(int position, int rows, const QModelIndex &parent = QModelIndex());
- bool insertColumns(int position, int columns, const QModelIndex &parent = QModelIndex());
- bool removeRows(int position, int rows, const QModelIndex &parent = QModelIndex());
- bool removeColumns(int position, int columns, const QModelIndex &parent = QModelIndex());
-
-private:
- QList<QStringList> rowList;
-};
-
-#endif
diff --git a/src/widgets/doc/snippets/reading-selections/reading-selections.pro b/src/widgets/doc/snippets/reading-selections/reading-selections.pro
index 91ebd3e84f..b9350172f5 100644
--- a/src/widgets/doc/snippets/reading-selections/reading-selections.pro
+++ b/src/widgets/doc/snippets/reading-selections/reading-selections.pro
@@ -1,2 +1,4 @@
-HEADERS += model.h window.h
-SOURCES += main.cpp model.cpp window.cpp
+QT += widgets
+HEADERS += ../common-table-model/model.h window.h
+SOURCES += main.cpp ../common-table-model/model.cpp window.cpp
+INCLUDEPATH += ../common-table-model
diff --git a/src/widgets/doc/snippets/sharedtablemodel/model.cpp b/src/widgets/doc/snippets/sharedtablemodel/model.cpp
deleted file mode 100644
index ec56f84adb..0000000000
--- a/src/widgets/doc/snippets/sharedtablemodel/model.cpp
+++ /dev/null
@@ -1,236 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the documentation 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 Nokia Corporation and its Subsidiary(-ies) 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$
-**
-****************************************************************************/
-
-/*
- model.cpp
-
- Provides a table model for use in various examples.
-*/
-
-#include <QtGui>
-
-#include "model.h"
-
-/*!
- Constructs a table model with at least one row and one column.
-*/
-
-TableModel::TableModel(int rows, int columns, QObject *parent)
- : QAbstractTableModel(parent)
-{
- QStringList newList;
-
- for (int column = 0; column < qMax(1, columns); ++column) {
- newList.append("");
- }
-
- for (int row = 0; row < qMax(1, rows); ++row) {
- rowList.append(newList);
- }
-}
-
-
-/*!
- Returns the number of items in the row list as the number of rows
- in the model.
-*/
-
-int TableModel::rowCount(const QModelIndex &/*parent*/) const
-{
- return rowList.size();
-}
-
-/*!
- Returns the number of items in the first list item as the number of
- columns in the model. All rows should have the same number of columns.
-*/
-
-int TableModel::columnCount(const QModelIndex &/*parent*/) const
-{
- return rowList[0].size();
-}
-
-/*!
- Returns an appropriate value for the requested data.
- If the view requests an invalid index, an invalid variant is returned.
- Any valid index that corresponds to a string in the list causes that
- string to be returned for the display role; otherwise an invalid variant
- is returned.
-*/
-
-QVariant TableModel::data(const QModelIndex &index, int role) const
-{
- if (!index.isValid())
- return QVariant();
-
- if (role == Qt::DisplayRole)
- return rowList[index.row()][index.column()];
- else
- return QVariant();
-}
-
-/*!
- Returns the appropriate header string depending on the orientation of
- the header and the section. If anything other than the display role is
- requested, we return an invalid variant.
-*/
-
-QVariant TableModel::headerData(int section, Qt::Orientation orientation,
- int role) const
-{
- if (role != Qt::DisplayRole)
- return QVariant();
-
- if (orientation == Qt::Horizontal)
- return QString("Column %1").arg(section);
- else
- return QString("Row %1").arg(section);
-}
-
-/*!
- Returns an appropriate value for the item's flags. Valid items are
- enabled, selectable, and editable.
-*/
-
-Qt::ItemFlags TableModel::flags(const QModelIndex &index) const
-{
- if (!index.isValid())
- return Qt::ItemIsEnabled;
-
- return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsEditable;
-}
-
-/*!
- Changes an item in the model, but only if the following conditions
- are met:
-
- * The index supplied is valid.
- * The role associated with editing text is specified.
-
- The dataChanged() signal is emitted if the item is changed.
-*/
-
-bool TableModel::setData(const QModelIndex &index,
- const QVariant &value, int role)
-{
- if (!index.isValid() || role != Qt::EditRole)
- return false;
-
- rowList[index.row()][index.column()] = value.toString();
- emit dataChanged(index, index);
- return true;
-}
-
-/*!
- Inserts a number of rows into the model at the specified position.
-*/
-
-bool TableModel::insertRows(int position, int rows, const QModelIndex &parent)
-{
- int columns = columnCount();
- beginInsertRows(parent, position, position + rows - 1);
-
- for (int row = 0; row < rows; ++row) {
- QStringList items;
- for (int column = 0; column < columns; ++column)
- items.append("");
- rowList.insert(position, items);
- }
-
- endInsertRows();
- return true;
-}
-
-/*!
- Inserts a number of columns into the model at the specified position.
- Each entry in the list is extended in turn with the required number of
- empty strings.
-*/
-
-bool TableModel::insertColumns(int position, int columns, const QModelIndex &parent)
-{
- int rows = rowCount();
- beginInsertColumns(parent, position, position + columns - 1);
-
- for (int row = 0; row < rows; ++row) {
- for (int column = position; column < columns; ++column) {
- rowList[row].insert(position, "");
- }
- }
-
- endInsertColumns();
- return true;
-}
-
-/*!
- Removes a number of rows from the model at the specified position.
-*/
-
-bool TableModel::removeRows(int position, int rows, const QModelIndex &parent)
-{
- beginRemoveRows(parent, position, position + rows - 1);
-
- for (int row = 0; row < rows; ++row) {
- rowList.removeAt(position);
- }
-
- endRemoveRows();
- return true;
-}
-
-/*!
- Removes a number of columns from the model at the specified position.
- Each row is shortened by the number of columns specified.
-*/
-
-bool TableModel::removeColumns(int position, int columns, const QModelIndex &parent)
-{
- int rows = rowCount();
- beginRemoveColumns(parent, position, position + columns - 1);
-
- for (int row = 0; row < rows; ++row) {
- for (int column = 0; column < columns; ++column) {
- rowList[row].removeAt(position);
- }
- }
-
- endRemoveColumns();
- return true;
-}
diff --git a/src/widgets/doc/snippets/sharedtablemodel/model.h b/src/widgets/doc/snippets/sharedtablemodel/model.h
deleted file mode 100644
index ef63e45ce0..0000000000
--- a/src/widgets/doc/snippets/sharedtablemodel/model.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the documentation 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 Nokia Corporation and its Subsidiary(-ies) 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 MODEL_H
-#define MODEL_H
-
-#include <QAbstractTableModel>
-#include <QStringList>
-#include <QVariant>
-
-class TableModel : public QAbstractTableModel
-{
- Q_OBJECT
-
-public:
- TableModel(int rows = 1, int columns = 1, QObject *parent = 0);
-
- int rowCount(const QModelIndex &parent = QModelIndex()) const;
- int columnCount(const QModelIndex &parent = QModelIndex()) const;
- QVariant data(const QModelIndex &index, int role) const;
- QVariant headerData(int section, Qt::Orientation orientation,
- int role = Qt::DisplayRole) const;
-
- Qt::ItemFlags flags(const QModelIndex &index) const;
- bool setData(const QModelIndex &index, const QVariant &value,
- int role = Qt::EditRole);
-
- bool insertRows(int position, int rows, const QModelIndex &parent = QModelIndex());
- bool insertColumns(int position, int columns, const QModelIndex &parent = QModelIndex());
- bool removeRows(int position, int rows, const QModelIndex &parent = QModelIndex());
- bool removeColumns(int position, int columns, const QModelIndex &parent = QModelIndex());
-
-private:
- QList<QStringList> rowList;
-};
-
-#endif
diff --git a/src/widgets/doc/snippets/sharedtablemodel/sharedtablemodel.pro b/src/widgets/doc/snippets/sharedtablemodel/sharedtablemodel.pro
index 10671e6e25..57f752f0b0 100644
--- a/src/widgets/doc/snippets/sharedtablemodel/sharedtablemodel.pro
+++ b/src/widgets/doc/snippets/sharedtablemodel/sharedtablemodel.pro
@@ -1,2 +1,5 @@
-HEADERS += model.h
-SOURCES += main.cpp model.cpp
+QT += widgets
+HEADERS = ../common-table-model/model.h
+SOURCES = main.cpp \
+ ../common-table-model/model.cpp
+INCLUDEPATH += ../common-table-model
diff --git a/src/widgets/doc/snippets/updating-selections/model.cpp b/src/widgets/doc/snippets/updating-selections/model.cpp
deleted file mode 100644
index ec56f84adb..0000000000
--- a/src/widgets/doc/snippets/updating-selections/model.cpp
+++ /dev/null
@@ -1,236 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the documentation 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 Nokia Corporation and its Subsidiary(-ies) 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$
-**
-****************************************************************************/
-
-/*
- model.cpp
-
- Provides a table model for use in various examples.
-*/
-
-#include <QtGui>
-
-#include "model.h"
-
-/*!
- Constructs a table model with at least one row and one column.
-*/
-
-TableModel::TableModel(int rows, int columns, QObject *parent)
- : QAbstractTableModel(parent)
-{
- QStringList newList;
-
- for (int column = 0; column < qMax(1, columns); ++column) {
- newList.append("");
- }
-
- for (int row = 0; row < qMax(1, rows); ++row) {
- rowList.append(newList);
- }
-}
-
-
-/*!
- Returns the number of items in the row list as the number of rows
- in the model.
-*/
-
-int TableModel::rowCount(const QModelIndex &/*parent*/) const
-{
- return rowList.size();
-}
-
-/*!
- Returns the number of items in the first list item as the number of
- columns in the model. All rows should have the same number of columns.
-*/
-
-int TableModel::columnCount(const QModelIndex &/*parent*/) const
-{
- return rowList[0].size();
-}
-
-/*!
- Returns an appropriate value for the requested data.
- If the view requests an invalid index, an invalid variant is returned.
- Any valid index that corresponds to a string in the list causes that
- string to be returned for the display role; otherwise an invalid variant
- is returned.
-*/
-
-QVariant TableModel::data(const QModelIndex &index, int role) const
-{
- if (!index.isValid())
- return QVariant();
-
- if (role == Qt::DisplayRole)
- return rowList[index.row()][index.column()];
- else
- return QVariant();
-}
-
-/*!
- Returns the appropriate header string depending on the orientation of
- the header and the section. If anything other than the display role is
- requested, we return an invalid variant.
-*/
-
-QVariant TableModel::headerData(int section, Qt::Orientation orientation,
- int role) const
-{
- if (role != Qt::DisplayRole)
- return QVariant();
-
- if (orientation == Qt::Horizontal)
- return QString("Column %1").arg(section);
- else
- return QString("Row %1").arg(section);
-}
-
-/*!
- Returns an appropriate value for the item's flags. Valid items are
- enabled, selectable, and editable.
-*/
-
-Qt::ItemFlags TableModel::flags(const QModelIndex &index) const
-{
- if (!index.isValid())
- return Qt::ItemIsEnabled;
-
- return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsEditable;
-}
-
-/*!
- Changes an item in the model, but only if the following conditions
- are met:
-
- * The index supplied is valid.
- * The role associated with editing text is specified.
-
- The dataChanged() signal is emitted if the item is changed.
-*/
-
-bool TableModel::setData(const QModelIndex &index,
- const QVariant &value, int role)
-{
- if (!index.isValid() || role != Qt::EditRole)
- return false;
-
- rowList[index.row()][index.column()] = value.toString();
- emit dataChanged(index, index);
- return true;
-}
-
-/*!
- Inserts a number of rows into the model at the specified position.
-*/
-
-bool TableModel::insertRows(int position, int rows, const QModelIndex &parent)
-{
- int columns = columnCount();
- beginInsertRows(parent, position, position + rows - 1);
-
- for (int row = 0; row < rows; ++row) {
- QStringList items;
- for (int column = 0; column < columns; ++column)
- items.append("");
- rowList.insert(position, items);
- }
-
- endInsertRows();
- return true;
-}
-
-/*!
- Inserts a number of columns into the model at the specified position.
- Each entry in the list is extended in turn with the required number of
- empty strings.
-*/
-
-bool TableModel::insertColumns(int position, int columns, const QModelIndex &parent)
-{
- int rows = rowCount();
- beginInsertColumns(parent, position, position + columns - 1);
-
- for (int row = 0; row < rows; ++row) {
- for (int column = position; column < columns; ++column) {
- rowList[row].insert(position, "");
- }
- }
-
- endInsertColumns();
- return true;
-}
-
-/*!
- Removes a number of rows from the model at the specified position.
-*/
-
-bool TableModel::removeRows(int position, int rows, const QModelIndex &parent)
-{
- beginRemoveRows(parent, position, position + rows - 1);
-
- for (int row = 0; row < rows; ++row) {
- rowList.removeAt(position);
- }
-
- endRemoveRows();
- return true;
-}
-
-/*!
- Removes a number of columns from the model at the specified position.
- Each row is shortened by the number of columns specified.
-*/
-
-bool TableModel::removeColumns(int position, int columns, const QModelIndex &parent)
-{
- int rows = rowCount();
- beginRemoveColumns(parent, position, position + columns - 1);
-
- for (int row = 0; row < rows; ++row) {
- for (int column = 0; column < columns; ++column) {
- rowList[row].removeAt(position);
- }
- }
-
- endRemoveColumns();
- return true;
-}
diff --git a/src/widgets/doc/snippets/updating-selections/model.h b/src/widgets/doc/snippets/updating-selections/model.h
deleted file mode 100644
index ef63e45ce0..0000000000
--- a/src/widgets/doc/snippets/updating-selections/model.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the documentation 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 Nokia Corporation and its Subsidiary(-ies) 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 MODEL_H
-#define MODEL_H
-
-#include <QAbstractTableModel>
-#include <QStringList>
-#include <QVariant>
-
-class TableModel : public QAbstractTableModel
-{
- Q_OBJECT
-
-public:
- TableModel(int rows = 1, int columns = 1, QObject *parent = 0);
-
- int rowCount(const QModelIndex &parent = QModelIndex()) const;
- int columnCount(const QModelIndex &parent = QModelIndex()) const;
- QVariant data(const QModelIndex &index, int role) const;
- QVariant headerData(int section, Qt::Orientation orientation,
- int role = Qt::DisplayRole) const;
-
- Qt::ItemFlags flags(const QModelIndex &index) const;
- bool setData(const QModelIndex &index, const QVariant &value,
- int role = Qt::EditRole);
-
- bool insertRows(int position, int rows, const QModelIndex &parent = QModelIndex());
- bool insertColumns(int position, int columns, const QModelIndex &parent = QModelIndex());
- bool removeRows(int position, int rows, const QModelIndex &parent = QModelIndex());
- bool removeColumns(int position, int columns, const QModelIndex &parent = QModelIndex());
-
-private:
- QList<QStringList> rowList;
-};
-
-#endif
diff --git a/src/widgets/doc/snippets/updating-selections/updating-selections.pro b/src/widgets/doc/snippets/updating-selections/updating-selections.pro
index 91ebd3e84f..b9350172f5 100644
--- a/src/widgets/doc/snippets/updating-selections/updating-selections.pro
+++ b/src/widgets/doc/snippets/updating-selections/updating-selections.pro
@@ -1,2 +1,4 @@
-HEADERS += model.h window.h
-SOURCES += main.cpp model.cpp window.cpp
+QT += widgets
+HEADERS += ../common-table-model/model.h window.h
+SOURCES += main.cpp ../common-table-model/model.cpp window.cpp
+INCLUDEPATH += ../common-table-model