[SCM] ktp-contact-list packaging branch, master, updated. debian/15.12.1-2-1070-g6c56f91
Maximiliano Curia
maxy at moszumanska.debian.org
Sat May 28 00:04:28 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-contact-list.git;a=commitdiff;h=921732a
The following commit has been merged in the master branch:
commit 921732a8846889c44bf003fab26417c087762e7f
Author: George Goldberg <grundleborg at googlemail.com>
Date: Mon Feb 22 21:07:00 2010 +0000
Change the model/view to use QTreeView because QListView/Model is crap. Also get sorting of the contact list as a bonus.
svn path=/trunk/playground/network/telepathy-contactlist/; revision=1094492
---
contacts-list-model.cpp | 57 ++++++++++++++++++++++++++++++++++++++++++++++---
contacts-list-model.h | 14 +++++++++---
main-widget.cpp | 8 +++++--
main-widget.h | 5 ++++-
main-widget.ui | 2 +-
5 files changed, 76 insertions(+), 10 deletions(-)
diff --git a/contacts-list-model.cpp b/contacts-list-model.cpp
index 5e37b51..d368acd 100644
--- a/contacts-list-model.cpp
+++ b/contacts-list-model.cpp
@@ -77,10 +77,18 @@ ContactsListModel::~ContactsListModel()
kDebug();
}
-int ContactsListModel::rowCount(const QModelIndex &index) const
+int ContactsListModel::columnCount(const QModelIndex &parent) const
+{
+ Q_UNUSED(parent);
+
+ // List view, so all items have the same number of columns
+ return 1;
+}
+
+int ContactsListModel::rowCount(const QModelIndex &parent) const
{
// If the index is the root item, then return the row count.
- if (index == QModelIndex()) {
+ if (parent == QModelIndex()) {
return m_contactItems.size();
}
@@ -91,8 +99,11 @@ int ContactsListModel::rowCount(const QModelIndex &index) const
QVariant ContactsListModel::data(const QModelIndex &index, int role) const
{
- QVariant data;
+ if (index.column() != 0) {
+ return QVariant();
+ }
+ QVariant data;
switch(role)
{
case Qt::DisplayRole:
@@ -110,6 +121,46 @@ Qt::ItemFlags ContactsListModel::flags(const QModelIndex &index) const
return QAbstractItemModel::flags(index);
}
+QModelIndex ContactsListModel::parent(const QModelIndex &index) const
+{
+ Q_UNUSED(index);
+
+ // This is a list model, so all items are children of the root item.
+ return QModelIndex();
+}
+
+QModelIndex ContactsListModel::index(int row, int column, const QModelIndex &parent) const
+{
+ // List view, so all items are children of the root item.
+ if (parent.isValid()) {
+ return QModelIndex();
+ }
+
+ // Only 1 column
+ if (column != 0) {
+ return QModelIndex();
+ }
+
+ // Check the row is within the range of the list.
+ if (row >= m_contactItems.size()) {
+ return QModelIndex();
+ }
+
+ // Return the index to the item.
+ return createIndex(row, column, 0);
+}
+
+QVariant ContactsListModel::headerData(int section, Qt::Orientation orientation, int role) const
+{
+ Q_UNUSED(section);
+
+ if (orientation == Qt::Horizontal && role == Qt::DisplayRole) {
+ return QVariant("Contact Name");
+ }
+
+ return QVariant();
+}
+
#include "contacts-list-model.moc"
diff --git a/contacts-list-model.h b/contacts-list-model.h
index 0ca8f99..9ee4af6 100644
--- a/contacts-list-model.h
+++ b/contacts-list-model.h
@@ -34,9 +34,17 @@ public:
explicit ContactsListModel(QObject *parent = 0);
virtual ~ContactsListModel();
- virtual int rowCount(const QModelIndex &index) const;
- virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
- virtual Qt::ItemFlags flags(const QModelIndex &index) const;
+ virtual QVariant data(const QModelIndex &index, int role) const;
+ virtual Qt::ItemFlags flags(const QModelIndex &index) const;
+ virtual QVariant headerData(int section,
+ Qt::Orientation orientation,
+ int role = Qt::DisplayRole) const;
+ virtual QModelIndex index(int row,
+ int column,
+ const QModelIndex &parent = QModelIndex()) const;
+ virtual QModelIndex parent(const QModelIndex &index) const;
+ virtual int rowCount(const QModelIndex &parent = QModelIndex()) const;
+ virtual int columnCount(const QModelIndex &parent = QModelIndex()) const;
private:
Q_DISABLE_COPY(ContactsListModel);
diff --git a/main-widget.cpp b/main-widget.cpp
index 1290fcb..02745fb 100644
--- a/main-widget.cpp
+++ b/main-widget.cpp
@@ -24,6 +24,7 @@
#include "contacts-list-model.h"
#include <KDebug>
+#include <QtGui/QSortFilterProxyModel>
MainWidget::MainWidget(QWidget *parent)
: QWidget(parent),
@@ -32,9 +33,12 @@ MainWidget::MainWidget(QWidget *parent)
kDebug();
setupUi(this);
-
+
m_model = new ContactsListModel(this);
- m_contactsListView->setModel(m_model);
+ m_sortFilterProxyModel = new QSortFilterProxyModel(this);
+ m_sortFilterProxyModel->setSourceModel(m_model);
+ m_contactsListView->setSortingEnabled(true);
+ m_contactsListView->setModel(m_sortFilterProxyModel);
}
MainWidget::~MainWidget()
diff --git a/main-widget.h b/main-widget.h
index 61571a9..a6ae326 100644
--- a/main-widget.h
+++ b/main-widget.h
@@ -27,6 +27,7 @@
#include <QtGui/QWidget>
class ContactsListModel;
+class QSortFilterProxyModel;
class MainWidget : public QWidget, Ui::MainWidget
{
@@ -35,9 +36,11 @@ class MainWidget : public QWidget, Ui::MainWidget
public:
MainWidget(QWidget *parent = 0);
~MainWidget();
-
+
private:
ContactsListModel *m_model;
+ QSortFilterProxyModel *m_sortFilterProxyModel;
+
};
diff --git a/main-widget.ui b/main-widget.ui
index 8c83761..2c0b3c1 100644
--- a/main-widget.ui
+++ b/main-widget.ui
@@ -15,7 +15,7 @@
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
- <widget class="QListView" name="m_contactsListView"/>
+ <widget class="QTreeView" name="m_contactsListView"/>
</item>
</layout>
</widget>
--
ktp-contact-list packaging
More information about the pkg-kde-commits
mailing list