[SCM] ktp-common-internals packaging branch, master, updated. debian/15.12.1-2-1839-gf0635e9
Maximiliano Curia
maxy at moszumanska.debian.org
Mon May 9 09:04:47 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-common-internals.git;a=commitdiff;h=ef35362
The following commit has been merged in the master branch:
commit ef3536286de66075d14afd4ddb9cc9c4296f28db
Author: Daniele E. Domenichelli <daniele.domenichelli at gmail.com>
Date: Sun Jan 15 10:32:37 2012 +0100
Add a class ContactGridWidget (mostly imported from ktp-send-file)
---
KTp/CMakeLists.txt | 2 +-
KTp/Widgets/CMakeLists.txt | 39 +++++++
KTp/Widgets/contact-grid-widget.cpp | 220 ++++++++++++++++++++++++++++++++++++
KTp/Widgets/contact-grid-widget.h | 86 ++++++++++++++
KTp/Widgets/flat-model-proxy.cpp | 188 ++++++++++++++++++++++++++++++
KTp/Widgets/flat-model-proxy.h | 65 +++++++++++
6 files changed, 599 insertions(+), 1 deletion(-)
diff --git a/KTp/CMakeLists.txt b/KTp/CMakeLists.txt
index f17ff8c..865769e 100644
--- a/KTp/CMakeLists.txt
+++ b/KTp/CMakeLists.txt
@@ -49,5 +49,5 @@ install (FILES ${ktp_common_internals_private_HDRS}
DESTINATION ${INCLUDE_INSTALL_DIR}/KTp
)
-
add_subdirectory(Models)
+add_subdirectory(Widgets)
diff --git a/KTp/Widgets/CMakeLists.txt b/KTp/Widgets/CMakeLists.txt
new file mode 100644
index 0000000..5240cbf
--- /dev/null
+++ b/KTp/Widgets/CMakeLists.txt
@@ -0,0 +1,39 @@
+include_directories (${CMAKE_CURRENT_BINARY_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}
+)
+
+set (ktp_widgets_private_SRCS
+ flat-model-proxy.cpp
+ contact-grid-widget.cpp
+)
+
+set (ktp_widgets_private_HDRS
+# flat-model-proxy.h
+ contact-grid-widget.h
+)
+
+kde4_add_library (ktpwidgetsprivate SHARED
+ ${ktp_widgets_private_SRCS}
+)
+
+#Raise SOVERSION for every 0.x cycle
+set_target_properties(ktpwidgetsprivate PROPERTIES
+ VERSION ${KTP_VERSION}
+ SOVERSION ${KTP_SONUMBER}
+ DEFINE_SYMBOL MAKE_KTP_LIB)
+
+target_link_libraries (ktpwidgetsprivate
+ ${KDE4_KDECORE_LIBS}
+ ${TELEPATHY_QT4_LIBRARIES}
+ ${KDE4_KDEUI_LIBS}
+ ktpcommoninternalsprivate
+ ktpmodelsprivate
+)
+
+install (TARGETS ktpwidgetsprivate
+ DESTINATION ${LIB_INSTALL_DIR}
+)
+
+install (FILES ${ktp_widgets_private_HDRS}
+ DESTINATION ${INCLUDE_INSTALL_DIR}/KTp/Widgets
+)
diff --git a/KTp/Widgets/contact-grid-widget.cpp b/KTp/Widgets/contact-grid-widget.cpp
new file mode 100644
index 0000000..26f102b
--- /dev/null
+++ b/KTp/Widgets/contact-grid-widget.cpp
@@ -0,0 +1,220 @@
+/*
+ * Copyright (C) 2011 David Edmundson <kde at davidedmundson.co.uk>
+ * Copyright (C) 2012 Daniele E. Domenichelli <daniele.domenichelli at gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+
+#include "contact-grid-widget.h"
+#include "flat-model-proxy.h"
+
+#include <KDE/KIcon>
+#include <KDE/KLineEdit>
+#include <KDE/KDebug>
+
+#include <QtGui/QApplication>
+#include <QtGui/QTextOption>
+#include <QtGui/QPainter>
+#include <QtGui/QVBoxLayout>
+#include <QtGui/QListView>
+
+#include <KTp/Models/accounts-model.h>
+#include <KTp/Models/accounts-filter-model.h>
+#include <KTp/Models/contact-model-item.h>
+
+
+KTp::ContactGridDelegate::ContactGridDelegate(QObject *parent)
+ : QAbstractItemDelegate(parent),
+ d(0)
+{
+}
+
+KTp::ContactGridDelegate::~ContactGridDelegate()
+{
+}
+
+void KTp::ContactGridDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
+{
+ QStyle *style = QApplication::style();
+ int textHeight = option.fontMetrics.height()*2;
+
+ style->drawPrimitive(QStyle::PE_PanelItemViewItem, &option, painter);
+
+ QRect avatarRect = option.rect.adjusted(0,0,0,-textHeight);
+ QRect textRect = option.rect.adjusted(0,option.rect.height()-textHeight,0,-3);
+
+ QPixmap avatar = index.data(Qt::DecorationRole).value<QPixmap>();
+ if (avatar.isNull()) {
+ avatar = KIcon(QLatin1String("im-user-online")).pixmap(QSize(70,70));
+ }
+
+ //resize larger avatars
+ if (avatar.width() > 80 || avatar.height()> 80) {
+ avatar = avatar.scaled(QSize(80,80), Qt::KeepAspectRatio);
+ //draw leaving paddings on smaller (or non square) avatars
+ }
+ style->drawItemPixmap(painter, avatarRect, Qt::AlignCenter, avatar);
+
+
+ QTextOption textOption;
+ textOption.setAlignment(Qt::AlignCenter);
+ textOption.setWrapMode(QTextOption::WrapAtWordBoundaryOrAnywhere);
+ painter->drawText(textRect, index.data().toString(), textOption);
+
+}
+
+QSize KTp::ContactGridDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const
+{
+ Q_UNUSED(index);
+ int textHeight = option.fontMetrics.height()*2;
+ return QSize(84, 80 + textHeight + 3);
+}
+
+// -----------------------------------------------------------------------------
+
+class KTp::ContactGridWidget::Private
+{
+public:
+ Private(KTp::ContactGridWidget *parent)
+ : q(parent),
+ layout(new QVBoxLayout(parent)),
+ contactGridView(new QListView(parent)),
+ contactFilterLineEdit(new KLineEdit(parent)),
+ accountsModel(0),
+ filterModel(0),
+ flatProxyModel(0)
+ {
+ }
+
+ ~Private()
+ {
+ }
+
+ void _k_onSelectionChanged(QItemSelection,QItemSelection);
+
+ KTp::ContactGridWidget *q;
+ QVBoxLayout *layout;
+ QListView *contactGridView;
+ KLineEdit *contactFilterLineEdit;
+ AccountsModel *accountsModel;
+ AccountsFilterModel *filterModel;
+ FlatModelProxy *flatProxyModel;
+};
+
+void KTp::ContactGridWidget::Private::_k_onSelectionChanged(QItemSelection newSelection, QItemSelection oldSelection)
+{
+ Q_UNUSED(oldSelection)
+ kDebug() << newSelection << oldSelection;
+
+ if (newSelection.isEmpty()) {
+ Q_EMIT q->selectionChanged(Tp::AccountPtr(), Tp::ContactPtr());
+ return;
+ }
+
+ kDebug() << "Emitting selectionChanged" << q->selectedAccount()->displayName() << q->selectedContact()->alias();
+ Q_EMIT q->selectionChanged(q->selectedAccount(), q->selectedContact());
+}
+
+// -----------------------------------------------------------------------------
+
+KTp::ContactGridWidget::ContactGridWidget(AccountsModel* model, QWidget *parent)
+ : QWidget(parent),
+ d(new Private(this))
+{
+ d->filterModel = new AccountsFilterModel(this);
+ d->flatProxyModel = new FlatModelProxy(d->filterModel);
+
+ d->accountsModel = model;
+ d->filterModel->setSourceModel(d->accountsModel);
+
+ d->contactGridView->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+ d->contactGridView->setResizeMode(QListView::Adjust);
+ d->contactGridView->setSpacing(5);
+ d->contactGridView->setViewMode(QListView::IconMode);
+
+ d->contactFilterLineEdit->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
+ d->contactFilterLineEdit->setClearButtonShown(true);
+
+ d->layout->setMargin(0);
+ d->layout->addWidget(d->contactGridView);
+ d->layout->addWidget(d->contactFilterLineEdit);
+ setLayout(d->layout);
+
+ d->contactGridView->setModel(d->flatProxyModel);
+ d->contactGridView->setItemDelegate(new ContactGridDelegate(this));
+
+ connect(d->contactGridView->selectionModel(),
+ SIGNAL(selectionChanged(QItemSelection,QItemSelection)),
+ SLOT(_k_onSelectionChanged(QItemSelection,QItemSelection)));
+
+ connect(d->contactFilterLineEdit,
+ SIGNAL(textChanged(QString)),
+ d->filterModel,
+ SLOT(setFilterString(QString)));
+}
+
+KTp::ContactGridWidget::~ContactGridWidget()
+{
+}
+
+bool KTp::ContactGridWidget::hasSelection() const
+{
+ return d->contactGridView->selectionModel()->hasSelection();
+}
+
+Tp::AccountPtr KTp::ContactGridWidget::selectedAccount() const
+{
+ return d->accountsModel->accountForContactItem(d->contactGridView->currentIndex().data(AccountsModel::ItemRole).value<ContactModelItem*>());
+}
+
+Tp::ContactPtr KTp::ContactGridWidget::selectedContact() const
+{
+ return d->contactGridView->currentIndex().data(AccountsModel::ItemRole).value<ContactModelItem*>()->contact();
+}
+
+void KTp::ContactGridWidget::setShowOfflineUsers(bool showOfflineUsers)
+{
+ d->filterModel->setShowOfflineUsers(showOfflineUsers);
+}
+
+void KTp::ContactGridWidget::setFilterByFileTransferCapability(bool filterByFileTransferCapability)
+{
+ d->filterModel->setFilterByFileTransferCapability(filterByFileTransferCapability);
+}
+
+void KTp::ContactGridWidget::setNameFilterBarShown(bool nameFilterBarShown)
+{
+ d->contactFilterLineEdit->clear();
+ d->contactFilterLineEdit->setShown(nameFilterBarShown);
+}
+
+void KTp::ContactGridWidget::showNameFilterBar()
+{
+ setNameFilterBarShown(true);
+}
+
+void KTp::ContactGridWidget::hideNameFilterBar()
+{
+ setNameFilterBarShown(false);
+}
+
+void KTp::ContactGridWidget::setNameFilter(const QString& nameFilter)
+{
+ d->contactFilterLineEdit->setText(nameFilter);
+}
+
+
+#include "contact-grid-widget.moc"
diff --git a/KTp/Widgets/contact-grid-widget.h b/KTp/Widgets/contact-grid-widget.h
new file mode 100644
index 0000000..1e42119
--- /dev/null
+++ b/KTp/Widgets/contact-grid-widget.h
@@ -0,0 +1,86 @@
+/*
+ * Copyright (C) 2011 David Edmundson <kde at davidedmundson.co.uk>
+ * Copyright (C) 2012 Daniele E. Domenichelli <daniele.domenichelli at gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+
+#ifndef CONTACT_GRID_DELEGATE
+#define CONTACT_GRID_DELEGATE
+
+#include <QtGui/QWidget>
+#include <QAbstractItemDelegate>
+#include <TelepathyQt/Types>
+#include <KTp/ktp-export.h>
+
+class AccountsModel;
+namespace KTp
+{
+
+
+class ContactGridDelegate : public QAbstractItemDelegate
+{
+ Q_OBJECT
+ Q_DISABLE_COPY(ContactGridDelegate)
+
+public:
+ ContactGridDelegate(QObject *parent);
+ virtual ~ContactGridDelegate();
+
+ virtual void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const;
+ virtual QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const;
+
+private:
+ class Private;
+ Private * const d;
+
+}; // class ContactGridDelegate
+
+class KTP_EXPORT ContactGridWidget : public QWidget
+{
+ Q_OBJECT
+ Q_DISABLE_COPY(ContactGridWidget)
+
+ Q_PRIVATE_SLOT(d, void _k_onSelectionChanged(QItemSelection,QItemSelection));
+
+public:
+ explicit ContactGridWidget(AccountsModel *model, QWidget *parent = 0);
+ virtual ~ContactGridWidget();
+
+ virtual bool hasSelection() const;
+ virtual Tp::AccountPtr selectedAccount() const;
+ virtual Tp::ContactPtr selectedContact() const;
+
+ virtual void setShowOfflineUsers(bool showOfflineUsers);
+ virtual void setFilterByFileTransferCapability(bool filterByFileTransferCapability);
+
+ virtual void showNameFilterBar();
+ virtual void hideNameFilterBar();
+ virtual void setNameFilterBarShown(bool filterbarShown);
+ virtual void setNameFilter(const QString &nameFilter);
+
+Q_SIGNALS:
+ void selectionChanged(Tp::AccountPtr selectedAccount, Tp::ContactPtr selectedContact);
+
+private:
+ class Private;
+ Private * const d;
+
+}; // class ContactGridWidget
+
+} // namespace KTp
+
+#endif // CONTACT_GRID_DELEGATE
diff --git a/KTp/Widgets/flat-model-proxy.cpp b/KTp/Widgets/flat-model-proxy.cpp
new file mode 100644
index 0000000..ef39f3e
--- /dev/null
+++ b/KTp/Widgets/flat-model-proxy.cpp
@@ -0,0 +1,188 @@
+/*
+ * This file is part of TelepathyQt4Yell Models
+ *
+ * Copyright (C) 2010 Collabora Ltd. <info at collabora.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include "flat-model-proxy.h"
+
+
+struct FlatModelProxy::Private
+{
+ int offsetOf(const FlatModelProxy *model, int index) const;
+};
+
+int FlatModelProxy::Private::offsetOf(const FlatModelProxy *model, int index) const
+{
+ int offset = 0;
+ for (int i = 0; i < index; i++) {
+ offset += model->sourceModel()->rowCount(model->sourceModel()->index(i, 0, QModelIndex()));
+ }
+ return offset;
+}
+
+FlatModelProxy::FlatModelProxy(QAbstractItemModel *source)
+ : QAbstractProxyModel(source),
+ mPriv(new Private())
+{
+ setSourceModel(source);
+
+ connect(source,
+ SIGNAL(rowsAboutToBeInserted(QModelIndex,int,int)),
+ SLOT(onRowsAboutToBeInserted(QModelIndex,int,int)));
+ connect(source,
+ SIGNAL(rowsInserted(QModelIndex,int,int)),
+ SLOT(onRowsInserted(QModelIndex,int,int)));
+ connect(source,
+ SIGNAL(rowsAboutToBeRemoved(QModelIndex,int,int)),
+ SLOT(onRowsAboutToBeRemoved(QModelIndex,int,int)));
+ connect(source,
+ SIGNAL(rowsRemoved(QModelIndex,int,int)),
+ SLOT(onRowsRemoved(QModelIndex,int,int)));
+ connect(source,
+ SIGNAL(rowsInserted(QModelIndex,int,int)),
+ SIGNAL(rowCountChanged()));
+ connect(source,
+ SIGNAL(rowsRemoved(QModelIndex,int,int)),
+ SIGNAL(rowCountChanged()));
+ connect(source,
+ SIGNAL(dataChanged(QModelIndex,QModelIndex)),
+ SLOT(onDataChanged(QModelIndex,QModelIndex)));
+}
+
+FlatModelProxy::~FlatModelProxy()
+{
+ delete mPriv;
+}
+
+QModelIndex FlatModelProxy::mapFromSource(const QModelIndex &index) const
+{
+ if (!index.isValid()) {
+ return QModelIndex();
+ }
+
+ QModelIndex parent = index.parent();
+
+ if (!parent.isValid()) {
+ return QModelIndex();
+ }
+
+ return createIndex(mPriv->offsetOf(this, parent.row()) + index.row(), index.column(), parent.row());
+}
+
+QModelIndex FlatModelProxy::mapToSource(const QModelIndex &index) const
+{
+ int parentRow = index.internalId();
+ QModelIndex parent = sourceModel()->index(parentRow, 0, QModelIndex());
+ int row = index.row() - mPriv->offsetOf(this, parent.row());
+ return sourceModel()->index(row, index.column(), parent);
+}
+
+QModelIndex FlatModelProxy::index(int row, int column, const QModelIndex &parent) const
+{
+ Q_UNUSED(parent)
+ int count = 0;
+ for (int i = 0; i < sourceModel()->rowCount(QModelIndex()); i++) {
+ QModelIndex sourceIndex = sourceModel()->index(i, 0, QModelIndex());
+ count += sourceModel()->rowCount(sourceIndex);
+ if (row < count) {
+ return createIndex(row, column, i);
+ }
+ }
+
+ return QModelIndex();
+}
+
+QModelIndex FlatModelProxy::parent(const QModelIndex &index) const
+{
+ Q_UNUSED(index)
+ return QModelIndex();
+}
+
+int FlatModelProxy::columnCount(const QModelIndex &parent) const
+{
+ Q_UNUSED(parent)
+ return 1;
+}
+
+int FlatModelProxy::rowCount() const
+{
+ return rowCount(QModelIndex());
+}
+
+int FlatModelProxy::rowCount(const QModelIndex &parent) const
+{
+ Q_UNUSED(parent)
+ return mPriv->offsetOf(this, sourceModel()->rowCount(QModelIndex()));
+}
+
+void FlatModelProxy::onRowsAboutToBeInserted(const QModelIndex &index, int first, int last)
+{
+ if (index.isValid()) {
+ int offset = mPriv->offsetOf(this, index.row());
+ int firstIndex = offset + first;
+ int lastIndex = offset + last;
+
+ beginInsertRows(QModelIndex(), firstIndex, lastIndex);
+ }
+}
+
+void FlatModelProxy::onRowsAboutToBeRemoved(const QModelIndex &index, int first, int last)
+{
+ if (index.isValid()) {
+ int offset = mPriv->offsetOf(this, index.row());
+ int firstIndex = offset + first;
+ int lastIndex = offset + last;
+
+ beginRemoveRows(QModelIndex(), firstIndex, lastIndex);
+ }
+}
+
+void FlatModelProxy::onRowsInserted(const QModelIndex &index, int first, int last)
+{
+ Q_UNUSED(first)
+ Q_UNUSED(last)
+ if (index.isValid()) {
+ endInsertRows();
+ }
+}
+
+void FlatModelProxy::onRowsRemoved(const QModelIndex &index, int first, int last)
+{
+ Q_UNUSED(first)
+ Q_UNUSED(last)
+ if (index.isValid()) {
+ endRemoveRows();
+ }
+}
+
+void FlatModelProxy::onDataChanged(const QModelIndex &first, const QModelIndex &last)
+{
+ if (!first.parent().isValid()) {
+ int firstOffset = mPriv->offsetOf(this, first.row());
+ int lastOffset = mPriv->offsetOf(this, last.row() + 1) - 1;
+
+ QModelIndex firstIndex = createIndex(firstOffset, 0, first.row());
+ QModelIndex lastIndex = createIndex(lastOffset, 0, last.row());
+ Q_EMIT dataChanged(firstIndex, lastIndex);
+ }
+ else if (first.parent() == last.parent()) {
+ QModelIndex firstIndex = mapFromSource(first);
+ QModelIndex lastIndex = mapFromSource(last);
+ Q_EMIT dataChanged(firstIndex, lastIndex);
+ }
+}
diff --git a/KTp/Widgets/flat-model-proxy.h b/KTp/Widgets/flat-model-proxy.h
new file mode 100644
index 0000000..088df7a
--- /dev/null
+++ b/KTp/Widgets/flat-model-proxy.h
@@ -0,0 +1,65 @@
+/*
+ * This file is part of TelepathyQt4Yell Models
+ *
+ * Copyright (C) 2010 Collabora Ltd. <info at collabora.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef TelepathyQt4Yell_Models_flat_model_proxy_h_HEADER_GUARD
+#define TelepathyQt4Yell_Models_flat_model_proxy_h_HEADER_GUARD
+
+#include <QAbstractProxyModel>
+
+#include <KTp/ktp-export.h>
+
+class KTP_EXPORT FlatModelProxy : public QAbstractProxyModel
+{
+ Q_OBJECT
+ Q_DISABLE_COPY(FlatModelProxy)
+ Q_PROPERTY(int rowCount READ rowCount NOTIFY rowCountChanged)
+
+public:
+ FlatModelProxy(QAbstractItemModel *source);
+ virtual ~FlatModelProxy();
+
+ virtual QModelIndex mapFromSource(const QModelIndex &index) const;
+ virtual QModelIndex mapToSource(const QModelIndex &index) const;
+ virtual QModelIndex index(int row, int column, const QModelIndex &parent) const;
+ virtual QModelIndex parent(const QModelIndex &index) const;
+ virtual int rowCount(const QModelIndex &parent) const;
+ virtual int columnCount(const QModelIndex &parent) const;
+
+ int rowCount() const;
+
+Q_SIGNALS:
+ void rowCountChanged();
+
+private Q_SLOTS:
+ void onRowsAboutToBeInserted(const QModelIndex &index, int first, int last);
+ void onRowsInserted(const QModelIndex &index, int first, int last);
+ void onRowsAboutToBeRemoved(const QModelIndex &index, int first, int last);
+ void onRowsRemoved(const QModelIndex &index, int first, int last);
+ void onDataChanged(const QModelIndex &first, const QModelIndex &last);
+
+private:
+ struct Private;
+ friend struct Private;
+ Private *mPriv;
+};
+
+
+
+#endif // TelepathyQt4Yell_Models_flat_model_proxy_h_HEADER_GUARD
--
ktp-common-internals packaging
More information about the pkg-kde-commits
mailing list