[SCM] ktp-send-file packaging branch, master, updated. debian/15.12.1-2-216-g8f07cdf

Maximiliano Curia maxy at moszumanska.debian.org
Sat May 28 00:14:32 UTC 2016


Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-send-file.git;a=commitdiff;h=3b25c07

The following commit has been merged in the master branch:
commit 3b25c07b98b605efc83aba8d9e2449a5b0b836bc
Author: Daniele E. Domenichelli <daniele.domenichelli at gmail.com>
Date:   Thu Feb 9 18:09:58 2012 +0100

    Port to use KTp::ContactGridWidget
---
 CMakeLists.txt |  2 +-
 mainwindow.cpp | 78 +++++++++-------------------------------------------------
 mainwindow.h   | 11 ++++++---
 mainwindow.ui  | 61 ++-------------------------------------------
 4 files changed, 22 insertions(+), 130 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index e2f24fb..fe0b380 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -43,9 +43,9 @@ target_link_libraries(ktp-send-file
   ${TELEPATHY_QT4_LIBRARIES}
   ${KTP_LIBRARIES}
   ${KTP_MODELS_LIBRARIES}
+  ${KTP_WIDGETS_LIBRARIES}
   ${KDE4_KDEUI_LIBS}
   ${KDE4_KIO_LIBS}
-
 )
 
 install(TARGETS ktp-send-file ${INSTALL_TARGETS_DEFAULT_ARGS})
diff --git a/mainwindow.cpp b/mainwindow.cpp
index 3af5748..19e2926 100644
--- a/mainwindow.cpp
+++ b/mainwindow.cpp
@@ -30,6 +30,7 @@
 #include <KMessageBox>
 #include <KPixmapSequence>
 #include <KPixmapSequenceOverlayPainter>
+#include <KLineEdit>
 #include <KDE/KIO/PreviewJob>
 
 #include <QAbstractItemDelegate>
@@ -46,62 +47,12 @@
 #include <KTp/Models/accounts-filter-model.h>
 #include <KTp/Models/contact-model-item.h>
 #include <KTp/Models/flat-model-proxy.h>
+#include <KTp/Widgets/contact-grid-widget.h>
 
 //FIXME, copy and paste the approver code for loading this from a config file into this, the contact list and the chat handler.
 #define PREFERRED_FILETRANSFER_HANDLER "org.freedesktop.Telepathy.Client.KTp.FileTransfer"
 
 
-class ContactGridDelegate : public QAbstractItemDelegate {
-public:
-    ContactGridDelegate(QObject *parent);
-    void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const;
-    QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const;
-};
-
-ContactGridDelegate::ContactGridDelegate(QObject *parent)
-    : QAbstractItemDelegate(parent)
-{
-
-}
-
-void 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("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 ContactGridDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const
-{
-    Q_UNUSED(index);
-    int textHeight = option.fontMetrics.height()*2;
-    return QSize(84, 80 + textHeight + 3);
-}
-
-
 MainWindow::MainWindow(const KUrl &url, QWidget *parent) :
     QWidget(parent),
     ui(new Ui::MainWindow),
@@ -158,20 +109,14 @@ MainWindow::MainWindow(const KUrl &url, QWidget *parent) :
                                                   contactFactory);
 
     m_accountsModel = new AccountsModel(this);
-    AccountsFilterModel *filterModel = new AccountsFilterModel(this);
-    filterModel->setSourceModel(m_accountsModel);
-    filterModel->setPresenceTypeFilterFlags(AccountsFilterModel::ShowOnlyConnected);
-    filterModel->setCapabilityFilterFlags(AccountsFilterModel::FilterByFileTransferCapability);
-
-    connect(ui->filterBar, SIGNAL(textChanged(QString)),
-            filterModel, SLOT(setFilterString(QString)));
-
-    FlatModelProxy *flatProxyModel = new FlatModelProxy(filterModel);
+    connect(m_accountManager->becomeReady(), SIGNAL(finished(Tp::PendingOperation*)), SLOT(onAccountManagerReady()));
 
-    ui->listView->setModel(flatProxyModel);
-    ui->listView->setItemDelegate(new ContactGridDelegate(this));
 
-    connect(m_accountManager->becomeReady(), SIGNAL(finished(Tp::PendingOperation*)), SLOT(onAccountManagerReady()));
+    m_contactGridWidget = new KTp::ContactGridWidget(m_accountsModel, this);
+    m_contactGridWidget->contactFilterLineEdit()->setClickMessage(i18n("Search in Contacts..."));
+    m_contactGridWidget->filter()->setPresenceTypeFilterFlags(AccountsFilterModel::ShowOnlyConnected);
+    m_contactGridWidget->filter()->setCapabilityFilterFlags(AccountsFilterModel::FilterByFileTransferCapability);
+    ui->recipientVLayout->addWidget(m_contactGridWidget);
 
     connect(ui->buttonBox, SIGNAL(accepted()), SLOT(onDialogAccepted()));
     connect(ui->buttonBox, SIGNAL(rejected()), SLOT(close()));
@@ -190,14 +135,13 @@ void MainWindow::onAccountManagerReady()
 void MainWindow::onDialogAccepted()
 {
     // don't do anytghing if no contact has been selected
-    if (!ui->listView->currentIndex().isValid()) {
+    if (!m_contactGridWidget->hasSelection()) {
         // show message box?
         return;
     }
 
-    ContactModelItem *contactModelItem = ui->listView->currentIndex().data(AccountsModel::ItemRole).value<ContactModelItem*>();
-    Tp::ContactPtr contact = contactModelItem->contact();
-    Tp::AccountPtr sendingAccount = m_accountsModel->accountForContactItem(contactModelItem);
+    Tp::ContactPtr contact = m_contactGridWidget->selectedContact();
+    Tp::AccountPtr sendingAccount = m_contactGridWidget->selectedAccount();
 
     if (sendingAccount.isNull()) {
         kDebug() << "sending account: NULL";
diff --git a/mainwindow.h b/mainwindow.h
index 7bb60df..569d9c1 100644
--- a/mainwindow.h
+++ b/mainwindow.h
@@ -27,13 +27,18 @@
 
 #include <TelepathyQt/AccountManager>
 
-class KPixmapSequenceOverlayPainter;
+
 namespace Ui {
     class MainWindow;
 }
 
+namespace KTp {
+class ContactGridWidget;
+}
+
 class AccountsModel;
 class KFileItem;
+class KPixmapSequenceOverlayPainter;
 
 class MainWindow : public QWidget
 {
@@ -53,9 +58,9 @@ private slots:
 private:
     Ui::MainWindow *ui;
     KUrl m_url;
-    AccountsModel *m_accountsModel;
     Tp::AccountManagerPtr m_accountManager;
-
+    AccountsModel *m_accountsModel;
+    KTp::ContactGridWidget *m_contactGridWidget;
     KPixmapSequenceOverlayPainter *m_busyOverlay;
 };
 
diff --git a/mainwindow.ui b/mainwindow.ui
index dc3b36a..e2431d2 100644
--- a/mainwindow.ui
+++ b/mainwindow.ui
@@ -20,7 +20,7 @@
    <item>
     <layout class="QHBoxLayout" name="horizontalLayout">
      <item>
-      <layout class="QVBoxLayout" name="verticalLayout">
+      <layout class="QVBoxLayout" name="previewVLayout">
        <item>
         <widget class="QLabel" name="label_3">
          <property name="font">
@@ -99,7 +99,7 @@
       </widget>
      </item>
      <item>
-      <layout class="QVBoxLayout" name="verticalLayout2">
+      <layout class="QVBoxLayout" name="recipientVLayout">
        <item>
         <widget class="QLabel" name="label">
          <property name="font">
@@ -113,56 +113,6 @@
          </property>
         </widget>
        </item>
-       <item>
-        <widget class="QListView" name="listView">
-         <property name="minimumSize">
-          <size>
-           <width>80</width>
-           <height>0</height>
-          </size>
-         </property>
-         <property name="sizeIncrement">
-          <size>
-           <width>80</width>
-           <height>0</height>
-          </size>
-         </property>
-         <property name="baseSize">
-          <size>
-           <width>260</width>
-           <height>0</height>
-          </size>
-         </property>
-         <property name="sizeHint" stdset="0">
-          <size>
-           <width>256</width>
-           <height>192</height>
-          </size>
-         </property>
-         <property name="movement">
-          <enum>QListView::Static</enum>
-         </property>
-         <property name="resizeMode">
-          <enum>QListView::Adjust</enum>
-         </property>
-         <property name="spacing">
-          <number>5</number>
-         </property>
-         <property name="viewMode">
-          <enum>QListView::IconMode</enum>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="KLineEdit" name="filterBar">
-         <property name="clickMessage">
-          <string>Search in Contacts...</string>
-         </property>
-         <property name="showClearButton" stdset="0">
-          <bool>true</bool>
-         </property>
-        </widget>
-       </item>
       </layout>
      </item>
     </layout>
@@ -176,13 +126,6 @@
    </item>
   </layout>
  </widget>
- <customwidgets>
-  <customwidget>
-   <class>KLineEdit</class>
-   <extends>QLineEdit</extends>
-   <header>klineedit.h</header>
-  </customwidget>
- </customwidgets>
  <resources/>
  <connections/>
 </ui>

-- 
ktp-send-file packaging



More information about the pkg-kde-commits mailing list