[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