[SCM] ktp-accounts-kcm packaging branch, master, updated. debian/15.12.1-1-1157-gc4589c5
Maximiliano Curia
maxy at moszumanska.debian.org
Fri May 27 23:58:51 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-accounts-kcm.git;a=commitdiff;h=2565e23
The following commit has been merged in the master branch:
commit 2565e2337d7d23c0db1872ea13f73df9f944b81b
Author: David Edmundson <kde at davidedmundson.co.uk>
Date: Sun Jan 9 15:07:13 2011 +0000
Show status connection reason.
---
src/account-item.cpp | 13 +++++++++++++
src/account-item.h | 1 +
src/accounts-list-delegate.cpp | 34 ++++++++++++++++++++++++++++------
src/accounts-list-model.cpp | 3 +++
4 files changed, 45 insertions(+), 6 deletions(-)
diff --git a/src/account-item.cpp b/src/account-item.cpp
index 471d4d8..6cd19f7 100644
--- a/src/account-item.cpp
+++ b/src/account-item.cpp
@@ -113,6 +113,19 @@ const KIcon AccountItem::connectionStateIcon() const
}
}
+const QString AccountItem::connectionStatusReason() const
+{
+ switch (m_account->connectionStatusReason())
+ {
+ case Tp::ConnectionStatusReasonAuthenticationFailed:
+ return i18n("Authentication Failed");
+ case Tp::ConnectionStatusReasonNetworkError:
+ return i18n("Network Error");
+ default:
+ return QString();
+ }
+}
+
void AccountItem::generateIcon()
{
kDebug();
diff --git a/src/account-item.h b/src/account-item.h
index 137e893..809b93f 100644
--- a/src/account-item.h
+++ b/src/account-item.h
@@ -46,6 +46,7 @@ public:
const KIcon& icon() const;
const QString connectionStateString() const;
const KIcon connectionStateIcon() const;
+ const QString connectionStatusReason() const;
public Q_SLOTS:
void onTitleForCustomPages(QString, QList<QString>);
diff --git a/src/accounts-list-delegate.cpp b/src/accounts-list-delegate.cpp
index 3d5a598..004598f 100644
--- a/src/accounts-list-delegate.cpp
+++ b/src/accounts-list-delegate.cpp
@@ -16,11 +16,13 @@ QSize AccountsListDelegate::sizeHint(const QStyleOptionViewItem &option, const Q
int iconHeight = option.decorationSize.height() + (4*2);
- return QSize(iconHeight,50); //any random width,the view should give us the whole thing.
+ return QSize(iconHeight,50); //any width,the view should give us the whole thing.
}
void AccountsListDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
+ //draws Icon AccountName ConnectionIcon ConnectionState
+
QStyle *style = QApplication::style();
style->drawPrimitive(QStyle::PE_PanelItemViewItem, &option, painter, 0);
@@ -28,26 +30,46 @@ void AccountsListDelegate::paint(QPainter *painter, const QStyleOptionViewItem &
QIcon icon = index.data(Qt::DecorationRole).value<QIcon>();
QString accountName = index.data(Qt::DisplayRole).toString();
QString connectionStatusString = index.data(AccountsListModel::ConnectionStateDisplayRole).toString();
+ QString connectionErrorString = index.data(AccountsListModel::ConnectionErrorMessageDisplayRole).toString();
+ QIcon connectionStatusIcon = index.data(AccountsListModel::ConnectionStateIconRole).value<QIcon>();
+
QRect innerRect = option.rect.adjusted(4,4,-4,-4); //add some padding
+ int top = innerRect.top();
+ int bottom = innerRect.bottom();
+
QSize decorationSize = option.decorationSize;
- QSize statusSize = style->itemTextRect(option.fontMetrics, option.rect, Qt::AlignCenter , false , connectionStatusString).size();
+ QSize statusTextSize = style->itemTextRect(option.fontMetrics, option.rect, Qt::AlignCenter , false , connectionStatusString).size();
+ QSize statusIconSize = QSize(16,16); //a nice small icon
+ QSize statusSize = statusTextSize+statusIconSize;
+ //the main account label size = whatever's left.
QRect iconRect(innerRect.topLeft(), decorationSize);
- QRect statusRect(QPoint(innerRect.right() - statusSize.width(), innerRect.top()), innerRect.bottomRight());
+// QRect statusTextRect(QPoint(top, innerRect.right() - statusTextSize.width()), QPoint(bottom, innerRect.right()));
- QRect textRect(iconRect.topRight() + QPoint(5,0), statusRect.bottomLeft() - QPoint(5,0));
+ QRect statusTextRect(QPoint(innerRect.right() - statusSize.width(), innerRect.top()), innerRect.bottomRight());
+ int statusIconTopPadding = (innerRect.height() - statusIconSize.height()) / 2 ;
+ QRect statusIconRect(QPoint(statusTextRect.left() - statusIconSize.width(), top + statusIconTopPadding), statusIconSize);
+ QRect textRect(iconRect.topRight() + QPoint(10,0), QPoint(innerRect.right() - statusIconSize.width() - statusTextSize.width(), bottom));
+
+ QFont boldFont = option.font;
+ boldFont.setBold(true);
painter->drawPixmap(iconRect, icon.pixmap(option.decorationSize));
+ painter->drawPixmap(statusIconRect,connectionStatusIcon.pixmap(16,16));
+
+
+ painter->setFont(boldFont);
painter->drawText(textRect, accountName);
+ painter->setFont(option.font);
textRect.adjust(0,option.fontMetrics.height()+2,0,0);
- painter->drawText(textRect, "Connection Error");
+ painter->drawText(textRect, connectionErrorString);
- painter->drawText(statusRect, Qt::AlignCenter, connectionStatusString);
+ painter->drawText(statusTextRect, Qt::AlignCenter, connectionStatusString);
}
diff --git a/src/accounts-list-model.cpp b/src/accounts-list-model.cpp
index 5862398..4db4f5a 100644
--- a/src/accounts-list-model.cpp
+++ b/src/accounts-list-model.cpp
@@ -86,6 +86,9 @@ QVariant AccountsListModel::data(const QModelIndex &index, int role) const
data = QVariant(m_accounts.at(index.row())->connectionStateIcon());
break;
+ case AccountsListModel::ConnectionErrorMessageDisplayRole:
+ data = QVariant(m_accounts.at(index.row())->connectionStatusReason());
+ break;
default:
break;
}
--
ktp-accounts-kcm packaging
More information about the pkg-kde-commits
mailing list