summaryrefslogtreecommitdiffstats
path: root/src/gui/itemviews/qstringlistmodel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/itemviews/qstringlistmodel.cpp')
-rw-r--r--src/gui/itemviews/qstringlistmodel.cpp308
1 files changed, 0 insertions, 308 deletions
diff --git a/src/gui/itemviews/qstringlistmodel.cpp b/src/gui/itemviews/qstringlistmodel.cpp
deleted file mode 100644
index d2e4c2204e..0000000000
--- a/src/gui/itemviews/qstringlistmodel.cpp
+++ /dev/null
@@ -1,308 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*
- A simple model that uses a QStringList as its data source.
-*/
-
-#include "qstringlistmodel.h"
-
-#ifndef QT_NO_STRINGLISTMODEL
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \class QStringListModel
- \brief The QStringListModel class provides a model that supplies strings to views.
-
- \ingroup model-view
-
-
- QStringListModel is an editable model that can be used for simple
- cases where you need to display a number of strings in a view
- widget, such as a QListView or a QComboBox.
-
- The model provides all the standard functions of an editable
- model, representing the data in the string list as a model with
- one column and a number of rows equal to the number of items in
- the list.
-
- Model indexes corresponding to items are obtained with the
- \l{QAbstractListModel::index()}{index()} function, and item flags
- are obtained with flags(). Item data is read with the data()
- function and written with setData(). The number of rows (and
- number of items in the string list) can be found with the
- rowCount() function.
-
- The model can be constructed with an existing string list, or
- strings can be set later with the setStringList() convenience
- function. Strings can also be inserted in the usual way with the
- insertRows() function, and removed with removeRows(). The contents
- of the string list can be retrieved with the stringList()
- convenience function.
-
- An example usage of QStringListModel:
-
- \snippet doc/src/snippets/qstringlistmodel/main.cpp 0
-
- \sa QAbstractListModel, QAbstractItemModel, {Model Classes}
-*/
-
-/*!
- Constructs a string list model with the given \a parent.
-*/
-
-QStringListModel::QStringListModel(QObject *parent)
- : QAbstractListModel(parent)
-{
-}
-
-/*!
- Constructs a string list model containing the specified \a strings
- with the given \a parent.
-*/
-
-QStringListModel::QStringListModel(const QStringList &strings, QObject *parent)
- : QAbstractListModel(parent), lst(strings)
-{
-}
-
-/*!
- Returns the number of rows in the model. This value corresponds to the
- number of items in the model's internal string list.
-
- The optional \a parent argument is in most models used to specify
- the parent of the rows to be counted. Because this is a list if a
- valid parent is specified, the result will always be 0.
-
- \sa insertRows(), removeRows(), QAbstractItemModel::rowCount()
-*/
-
-int QStringListModel::rowCount(const QModelIndex &parent) const
-{
- if (parent.isValid())
- return 0;
-
- return lst.count();
-}
-
-/*!
- Returns data for the specified \a role, from the item with the
- given \a index.
-
- If the view requests an invalid index, an invalid variant is returned.
-
- \sa setData()
-*/
-
-QVariant QStringListModel::data(const QModelIndex &index, int role) const
-{
- if (index.row() < 0 || index.row() >= lst.size())
- return QVariant();
-
- if (role == Qt::DisplayRole || role == Qt::EditRole)
- return lst.at(index.row());
-
- return QVariant();
-}
-
-/*!
- Returns the flags for the item with the given \a index.
-
- Valid items are enabled, selectable, editable, drag enabled and drop enabled.
-
- \sa QAbstractItemModel::flags()
-*/
-
-Qt::ItemFlags QStringListModel::flags(const QModelIndex &index) const
-{
- if (!index.isValid())
- return QAbstractItemModel::flags(index) | Qt::ItemIsDropEnabled;
-
- return QAbstractItemModel::flags(index) | Qt::ItemIsEditable | Qt::ItemIsDragEnabled | Qt::ItemIsDropEnabled;
-}
-
-/*!
- Sets the data for the specified \a role in the item with the given
- \a index in the model, to the provided \a value.
-
- The dataChanged() signal is emitted if the item is changed.
-
- \sa Qt::ItemDataRole, data()
-*/
-
-bool QStringListModel::setData(const QModelIndex &index, const QVariant &value, int role)
-{
- if (index.row() >= 0 && index.row() < lst.size()
- && (role == Qt::EditRole || role == Qt::DisplayRole)) {
- lst.replace(index.row(), value.toString());
- emit dataChanged(index, index);
- return true;
- }
- return false;
-}
-
-/*!
- Inserts \a count rows into the model, beginning at the given \a row.
-
- The \a parent index of the rows is optional and is only used for
- consistency with QAbstractItemModel. By default, a null index is
- specified, indicating that the rows are inserted in the top level of
- the model.
-
- \sa QAbstractItemModel::insertRows()
-*/
-
-bool QStringListModel::insertRows(int row, int count, const QModelIndex &parent)
-{
- if (count < 1 || row < 0 || row > rowCount(parent))
- return false;
-
- beginInsertRows(QModelIndex(), row, row + count - 1);
-
- for (int r = 0; r < count; ++r)
- lst.insert(row, QString());
-
- endInsertRows();
-
- return true;
-}
-
-/*!
- Removes \a count rows from the model, beginning at the given \a row.
-
- The \a parent index of the rows is optional and is only used for
- consistency with QAbstractItemModel. By default, a null index is
- specified, indicating that the rows are removed in the top level of
- the model.
-
- \sa QAbstractItemModel::removeRows()
-*/
-
-bool QStringListModel::removeRows(int row, int count, const QModelIndex &parent)
-{
- if (count <= 0 || row < 0 || (row + count) > rowCount(parent))
- return false;
-
- beginRemoveRows(QModelIndex(), row, row + count - 1);
-
- for (int r = 0; r < count; ++r)
- lst.removeAt(row);
-
- endRemoveRows();
-
- return true;
-}
-
-static bool ascendingLessThan(const QPair<QString, int> &s1, const QPair<QString, int> &s2)
-{
- return s1.first < s2.first;
-}
-
-static bool decendingLessThan(const QPair<QString, int> &s1, const QPair<QString, int> &s2)
-{
- return s1.first > s2.first;
-}
-
-/*!
- \reimp
-*/
-void QStringListModel::sort(int, Qt::SortOrder order)
-{
- emit layoutAboutToBeChanged();
-
- QList<QPair<QString, int> > list;
- for (int i = 0; i < lst.count(); ++i)
- list.append(QPair<QString, int>(lst.at(i), i));
-
- if (order == Qt::AscendingOrder)
- qSort(list.begin(), list.end(), ascendingLessThan);
- else
- qSort(list.begin(), list.end(), decendingLessThan);
-
- lst.clear();
- QVector<int> forwarding(list.count());
- for (int i = 0; i < list.count(); ++i) {
- lst.append(list.at(i).first);
- forwarding[list.at(i).second] = i;
- }
-
- QModelIndexList oldList = persistentIndexList();
- QModelIndexList newList;
- for (int i = 0; i < oldList.count(); ++i)
- newList.append(index(forwarding.at(oldList.at(i).row()), 0));
- changePersistentIndexList(oldList, newList);
-
- emit layoutChanged();
-}
-
-/*!
- Returns the string list used by the model to store data.
-*/
-QStringList QStringListModel::stringList() const
-{
- return lst;
-}
-
-/*!
- Sets the model's internal string list to \a strings. The model will
- notify any attached views that its underlying data has changed.
-
- \sa dataChanged()
-*/
-void QStringListModel::setStringList(const QStringList &strings)
-{
- emit beginResetModel();
- lst = strings;
- emit endResetModel();
-}
-
-/*!
- \reimp
-*/
-Qt::DropActions QStringListModel::supportedDropActions() const
-{
- return QAbstractItemModel::supportedDropActions() | Qt::MoveAction;
-}
-
-QT_END_NAMESPACE
-
-#endif // QT_NO_STRINGLISTMODEL