[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