[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:55 UTC 2016


Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-common-internals.git;a=commitdiff;h=c847b52

The following commit has been merged in the master branch:
commit c847b5275135763b3ece54d4696ad756d99962b9
Author: Daniele E. Domenichelli <daniele.domenichelli at gmail.com>
Date:   Thu Feb 2 21:27:20 2012 +0100

    Refactor ContactGridWidget and update it according to AccountsFilterModel changes
    
    Also use size from style options in delegate and add a method to change icon size
---
 KTp/Widgets/contact-grid-widget.cpp | 96 ++++++++++++++++++++++++++-----------
 KTp/Widgets/contact-grid-widget.h   | 48 ++++++++++++++-----
 2 files changed, 103 insertions(+), 41 deletions(-)

diff --git a/KTp/Widgets/contact-grid-widget.cpp b/KTp/Widgets/contact-grid-widget.cpp
index fe15aaf..b0f4624 100644
--- a/KTp/Widgets/contact-grid-widget.cpp
+++ b/KTp/Widgets/contact-grid-widget.cpp
@@ -74,12 +74,10 @@ void KTp::ContactGridDelegate::paint(QPainter *painter, const QStyleOptionViewIt
 
     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);
+        avatar = KIcon(QLatin1String("im-user-online")).pixmap(option.decorationSize);
+    } else if (avatar.width() > option.decorationSize.width() || avatar.height() > option.decorationSize.height()) {
+        //resize larger avatars if required
+        avatar = avatar.scaled(option.decorationSize, Qt::KeepAspectRatio);
         //draw leaving paddings on smaller (or non square) avatars
     }
     style->drawItemPixmap(painter, avatarRect, Qt::AlignCenter, avatar);
@@ -96,7 +94,7 @@ QSize KTp::ContactGridDelegate::sizeHint(const QStyleOptionViewItem &option, con
 {
     Q_UNUSED(index);
     int textHeight = option.fontMetrics.height() * 2;
-    return QSize(84, 80 + textHeight + 3);
+    return QSize(option.decorationSize.width() + 4, option.decorationSize.height() + textHeight + 3);
 }
 
 // -----------------------------------------------------------------------------
@@ -140,7 +138,6 @@ void KTp::ContactGridWidget::Private::_k_onSelectionChanged(QItemSelection newSe
         return;
     }
 
-    kDebug() << "Emitting selectionChanged" << q->selectedAccount()->displayName() << q->selectedContact()->alias();
     Q_EMIT q->selectionChanged(q->selectedAccount(), q->selectedContact());
 }
 
@@ -160,6 +157,7 @@ KTp::ContactGridWidget::ContactGridWidget(AccountsModel* model, QWidget *parent)
     d->contactGridView->setResizeMode(QListView::Adjust);
     d->contactGridView->setSpacing(5);
     d->contactGridView->setViewMode(QListView::IconMode);
+    d->contactGridView->setIconSize(QSize(80, 80));
 
     d->contactFilterLineEdit->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
     d->contactFilterLineEdit->setClearButtonShown(true);
@@ -170,7 +168,7 @@ KTp::ContactGridWidget::ContactGridWidget(AccountsModel* model, QWidget *parent)
     setLayout(d->layout);
 
     d->contactGridView->setModel(d->flatProxyModel);
-    d->contactGridView->setItemDelegate(new ContactGridDelegate(this));
+    d->contactGridView->setItemDelegate(new ContactGridDelegate(d->contactGridView));
 
     connect(d->contactGridView->selectionModel(),
             SIGNAL(selectionChanged(QItemSelection,QItemSelection)),
@@ -179,7 +177,7 @@ KTp::ContactGridWidget::ContactGridWidget(AccountsModel* model, QWidget *parent)
     connect(d->contactFilterLineEdit,
             SIGNAL(textChanged(QString)),
             d->filterModel,
-            SLOT(setFilterString(QString)));
+            SLOT(setDisplayNameFilterString(QString)));
 }
 
 KTp::ContactGridWidget::~ContactGridWidget()
@@ -187,50 +185,90 @@ KTp::ContactGridWidget::~ContactGridWidget()
     delete d;
 }
 
-bool KTp::ContactGridWidget::hasSelection() const
+bool KTp::ContactGridWidget::isDisplayNameFilterBarShown() const
 {
-    return d->contactGridView->selectionModel()->hasSelection();
+    return !d->contactFilterLineEdit->isHidden();
 }
 
-Tp::AccountPtr KTp::ContactGridWidget::selectedAccount() const
+bool KTp::ContactGridWidget::isDisplayNameFilterBarHidden() const
 {
-    return d->accountsModel->accountForContactItem(d->contactGridView->currentIndex().data(AccountsModel::ItemRole).value<ContactModelItem*>());
+    return !isDisplayNameFilterBarShown();
 }
 
-Tp::ContactPtr KTp::ContactGridWidget::selectedContact() const
+void KTp::ContactGridWidget::setDisplayNameFilterBarShown(bool displayNameFilterBarShown)
 {
-    return d->contactGridView->currentIndex().data(AccountsModel::ItemRole).value<ContactModelItem*>()->contact();
+    if (displayNameFilterBarShown != isDisplayNameFilterBarShown()) {
+        clearDisplayNameFilter();
+        d->contactFilterLineEdit->setShown(displayNameFilterBarShown);
+        Q_EMIT displayNameFilterBarShownChanged(displayNameFilterBarShown);
+    }
 }
 
-void KTp::ContactGridWidget::setShowOfflineUsers(bool showOfflineUsers)
+void KTp::ContactGridWidget::setDisplayNameFilterBarHidden(bool displayNameFilterBarHidden)
 {
-    d->filterModel->setShowOfflineUsers(showOfflineUsers);
+    setDisplayNameFilterBarShown(!displayNameFilterBarHidden);
 }
 
-void KTp::ContactGridWidget::setFilterByFileTransferCapability(bool filterByFileTransferCapability)
+void KTp::ContactGridWidget::showDisplayNameFilterBar()
 {
-    d->filterModel->setFilterByFileTransferCapability(filterByFileTransferCapability);
+    setDisplayNameFilterBarShown(true);
 }
 
-void KTp::ContactGridWidget::setNameFilterBarShown(bool nameFilterBarShown)
+void KTp::ContactGridWidget::hideDisplayNameFilterBar()
 {
-    d->contactFilterLineEdit->clear();
-    d->contactFilterLineEdit->setShown(nameFilterBarShown);
+    setDisplayNameFilterBarShown(false);
 }
 
-void KTp::ContactGridWidget::showNameFilterBar()
+QString KTp::ContactGridWidget::displayNameFilter() const
 {
-    setNameFilterBarShown(true);
+    return d->contactFilterLineEdit->text();
 }
 
-void KTp::ContactGridWidget::hideNameFilterBar()
+void KTp::ContactGridWidget::clearDisplayNameFilter()
 {
-    setNameFilterBarShown(false);
+    setDisplayNameFilter(QString());
+}
+
+void KTp::ContactGridWidget::setDisplayNameFilter(const QString& displayNameFilter)
+{
+    if (displayNameFilter != d->contactFilterLineEdit->text()) {
+        d->contactFilterLineEdit->setText(displayNameFilter);
+        Q_EMIT displayNameFilterChanged(displayNameFilter);
+    }
+}
+
+QSize KTp::ContactGridWidget::iconSize() const
+{
+    return d->contactGridView->iconSize();
+}
+
+void KTp::ContactGridWidget::setIconSize(const QSize& iconSize)
+{
+    kDebug();
+    if (iconSize != d->contactGridView->iconSize()) {
+        d->contactGridView->setIconSize(iconSize);
+        Q_EMIT iconSizeChanged(iconSize);
+    }
+}
+
+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::setNameFilter(const QString& nameFilter)
+AccountsFilterModel* KTp::ContactGridWidget::filter() const
 {
-    d->contactFilterLineEdit->setText(nameFilter);
+    return d->filterModel;
 }
 
 
diff --git a/KTp/Widgets/contact-grid-widget.h b/KTp/Widgets/contact-grid-widget.h
index 1e42119..bb4a4a4 100644
--- a/KTp/Widgets/contact-grid-widget.h
+++ b/KTp/Widgets/contact-grid-widget.h
@@ -27,10 +27,10 @@
 #include <KTp/ktp-export.h>
 
 class AccountsModel;
+class AccountsFilterModel;
 namespace KTp
 {
 
-
 class ContactGridDelegate : public QAbstractItemDelegate
 {
     Q_OBJECT
@@ -54,24 +54,46 @@ class KTP_EXPORT ContactGridWidget : public QWidget
     Q_OBJECT
     Q_DISABLE_COPY(ContactGridWidget)
 
-    Q_PRIVATE_SLOT(d, void _k_onSelectionChanged(QItemSelection,QItemSelection));
+    Q_PROPERTY(bool displayNameFilterBarShown
+               READ isDisplayNameFilterBarShown
+               WRITE setDisplayNameFilterBarShown
+               NOTIFY displayNameFilterBarShownChanged)
+    Q_PROPERTY(QString displayNameFilter
+               READ displayNameFilter
+               RESET clearDisplayNameFilter
+               WRITE setDisplayNameFilter)
+    Q_PROPERTY(QSize iconSize
+               READ iconSize
+               WRITE setIconSize
+               NOTIFY iconSizeChanged)
 
 public:
-   explicit ContactGridWidget(AccountsModel *model, QWidget *parent = 0);
-   virtual ~ContactGridWidget();
+    explicit ContactGridWidget(AccountsModel *model, QWidget *parent = 0);
+    virtual ~ContactGridWidget();
+
+    virtual bool isDisplayNameFilterBarShown() const;
+    virtual bool isDisplayNameFilterBarHidden() const;
+    Q_SLOT virtual void setDisplayNameFilterBarShown(bool displayNameFilterBarShown);
+    Q_SLOT virtual void setDisplayNameFilterBarHidden(bool displayNameFilterBarHidden);
+    Q_SLOT virtual void showDisplayNameFilterBar();
+    Q_SLOT virtual void hideDisplayNameFilterBar();
+    Q_SIGNAL void displayNameFilterBarShownChanged(bool displayNameFilterBarShown);
+
+    virtual QString displayNameFilter() const;
+    Q_SLOT virtual void clearDisplayNameFilter();
+    Q_SLOT virtual void setDisplayNameFilter(const QString &displayNameFilter);
+    Q_SIGNAL void displayNameFilterChanged(const QString &displayNameFilter);
+
+    virtual QSize iconSize() const;
+    Q_SLOT virtual void setIconSize(const QSize &iconSize);
+    Q_SIGNAL void iconSizeChanged(const QSize &iconSize);
+
+    virtual AccountsFilterModel* filter() const;
 
     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);
 
@@ -79,6 +101,8 @@ private:
     class Private;
     Private * const d;
 
+    Q_PRIVATE_SLOT(d, void _k_onSelectionChanged(QItemSelection,QItemSelection));
+
 }; // class ContactGridWidget
 
 } // namespace KTp

-- 
ktp-common-internals packaging



More information about the pkg-kde-commits mailing list