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


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

The following commit has been merged in the master branch:
commit f0ca0e70455bae9e0057b1965031dc7e1de71dcf
Author: David Edmundson <kde at davidedmundson.co.uk>
Date:   Thu Jun 23 00:31:09 2011 +0100

    Added a delegate for nicer contact selection.
---
 accounts-model.cpp                                 |  4 +-
 mainwindow.cpp                                     | 75 ++++++++++++++++++++--
 mainwindow.ui                                      | 60 ++++-------------
 ...phin.desktop => telepathy-kde-send-file.desktop |  0
 4 files changed, 82 insertions(+), 57 deletions(-)

diff --git a/accounts-model.cpp b/accounts-model.cpp
index 47fc697..c8c166e 100644
--- a/accounts-model.cpp
+++ b/accounts-model.cpp
@@ -238,10 +238,10 @@ Tp::AccountPtr AccountsModel::accountForContactItem(ContactModelItem *contactIte
 Qt::ItemFlags AccountsModel::flags(const QModelIndex &index) const
 {
     if (index.isValid()) {
-        return Qt::ItemIsEnabled;
+        return Qt::ItemIsEnabled | Qt::ItemIsSelectable;
     }
 
-    return QAbstractItemModel::flags(index) | Qt::ItemIsEditable;
+    return QAbstractItemModel::flags(index) | Qt::ItemIsEditable | Qt::ItemIsSelectable;
 }
 
 bool AccountsModel::setData(const QModelIndex &index, const QVariant &value, int role)
diff --git a/mainwindow.cpp b/mainwindow.cpp
index ffcfea9..ae5964e 100644
--- a/mainwindow.cpp
+++ b/mainwindow.cpp
@@ -7,20 +7,79 @@
 #include <KApplication>
 #include <KCmdLineArgs>
 #include <KMimeType>
+#include <KDebug>
+
+
+#include <QAbstractItemDelegate>
+#include <QPainter>
+#include <QRect>
+#include <QStyle>
+#include <QDebug>
 
 
 #include <TelepathyQt4/AccountManager>
 #include <TelepathyQt4/PendingChannelRequest>
 #include <TelepathyQt4/PendingReady>
 
-
 #include "accounts-model.h"
 #include "flat-model-proxy.h"
 #include "account-filter-model.h"
 #include "contact-model-item.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.KDE.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
+{
+    int textHeight = option.fontMetrics.height()*2;
+    return QSize(80,80+textHeight+3);
+}
+
+
 MainWindow::MainWindow(QWidget *parent) :
     QWidget(parent),
     ui(new Ui::MainWindow),
@@ -30,7 +89,7 @@ MainWindow::MainWindow(QWidget *parent) :
 
     ui->setupUi(this);
 
-    qDebug() << KApplication::arguments();
+    kDebug() << KApplication::arguments();
 
 
     KUrl filePath (KCmdLineArgs::parsedArgs()->arg(0));
@@ -84,6 +143,7 @@ void MainWindow::onAccountManagerReady()
     FlatModelProxy *flatProxyModel = new FlatModelProxy(filterModel);
 
     ui->listView->setModel(flatProxyModel);
+    ui->listView->setItemDelegate(new ContactGridDelegate(this));
 }
 
 void MainWindow::onDialogAccepted()
@@ -99,10 +159,10 @@ void MainWindow::onDialogAccepted()
     Tp::AccountPtr sendingAccount = m_accountsModel->accountForContactItem(contactModelItem);
 
     if (sendingAccount.isNull()) {
-        qDebug("sending account: NULL");
+        kDebug() << "sending account: NULL";
     } else {
-        qDebug() << "Account is: " << sendingAccount->displayName();
-        qDebug() << "sending to: " << contact->alias();
+        kDebug() << "Account is: " << sendingAccount->displayName();
+        kDebug() << "sending to: " << contact->alias();
     }
 
     // start sending file
@@ -122,10 +182,11 @@ void MainWindow::onDialogAccepted()
 void MainWindow::slotFileTransferFinished(Tp::PendingOperation* op)
 {
     if (op->isError()) {
+        //FIXME map to human readable strings.
         QString errorMsg(op->errorName() + ": " + op->errorMessage());
-        qDebug() << "ERROR!: " << errorMsg;
+        kDebug() << "ERROR!: " << errorMsg;
     } else {
-        qDebug("FUCK YEAH TRANSFER STARTED");
+        kDebug() << "FUCK YEAH TRANSFER STARTED";
         // now I can close the dialog
         close();
     }
diff --git a/mainwindow.ui b/mainwindow.ui
index a15081e..96823f6 100644
--- a/mainwindow.ui
+++ b/mainwindow.ui
@@ -17,7 +17,7 @@
    </size>
   </property>
   <property name="windowTitle">
-   <string>Form</string>
+   <string>Select Recipient</string>
   </property>
   <layout class="QVBoxLayout" name="verticalLayout_3">
    <item>
@@ -82,48 +82,17 @@
       </layout>
      </item>
      <item>
-      <layout class="QVBoxLayout" name="verticalLayout_2">
-       <item>
-        <widget class="KCategorizedView" name="listView">
-         <property name="showDropIndicator" stdset="0">
-          <bool>false</bool>
-         </property>
-         <property name="iconSize">
-          <size>
-           <width>40</width>
-           <height>40</height>
-          </size>
-         </property>
-         <property name="verticalScrollMode">
-          <enum>QAbstractItemView::ScrollPerPixel</enum>
-         </property>
-         <property name="horizontalScrollMode">
-          <enum>QAbstractItemView::ScrollPerPixel</enum>
-         </property>
-         <property name="movement">
-          <enum>QListView::Static</enum>
-         </property>
-         <property name="flow">
-          <enum>QListView::LeftToRight</enum>
-         </property>
-         <property name="isWrapping" stdset="0">
-          <bool>true</bool>
-         </property>
-         <property name="resizeMode">
-          <enum>QListView::Adjust</enum>
-         </property>
-         <property name="viewMode">
-          <enum>QListView::IconMode</enum>
-         </property>
-         <property name="uniformItemSizes">
-          <bool>true</bool>
-         </property>
-         <property name="wordWrap">
-          <bool>true</bool>
-         </property>
-        </widget>
-       </item>
-      </layout>
+      <widget class="QListView" name="listView">
+       <property name="spacing">
+        <number>5</number>
+       </property>
+       <property name="viewMode">
+        <enum>QListView::IconMode</enum>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <layout class="QVBoxLayout" name="verticalLayout_2"/>
      </item>
     </layout>
    </item>
@@ -138,11 +107,6 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>KCategorizedView</class>
-   <extends>QListView</extends>
-   <header>kcategorizedview.h</header>
-  </customwidget>
-  <customwidget>
    <class>KImageFilePreview</class>
    <extends>QWidget</extends>
    <header>kimagefilepreview.h</header>
diff --git a/telepathy-dolphin.desktop b/telepathy-kde-send-file.desktop
similarity index 100%
rename from telepathy-dolphin.desktop
rename to telepathy-kde-send-file.desktop

-- 
ktp-send-file packaging



More information about the pkg-kde-commits mailing list