[Pkg-owncloud-commits] [owncloud-client] 107/159: Sort folder sizes SelectiveSyncTreeView numerically
Sandro Knauß
hefee-guest at moszumanska.debian.org
Fri May 1 13:05:31 UTC 2015
This is an automated email from the git hooks/post-receive script.
hefee-guest pushed a commit to branch master
in repository owncloud-client.
commit ed80a712abe1de27d0719bc53c07d3fd6648491a
Author: Daniel Molkentin <danimo at owncloud.com>
Date: Tue Apr 14 20:00:42 2015 +0200
Sort folder sizes SelectiveSyncTreeView numerically
Fixes #3112
---
src/gui/selectivesyncdialog.cpp | 31 +++++++++++++++++++++++++++----
1 file changed, 27 insertions(+), 4 deletions(-)
diff --git a/src/gui/selectivesyncdialog.cpp b/src/gui/selectivesyncdialog.cpp
index 7034847..429fe98 100644
--- a/src/gui/selectivesyncdialog.cpp
+++ b/src/gui/selectivesyncdialog.cpp
@@ -26,10 +26,33 @@
#include <QDebug>
#include <QSettings>
#include <QScopedValueRollback>
+#include <QTreeWidgetItem>
#include <QLabel>
namespace OCC {
+
+class SelectiveSyncTreeViewItem : public QTreeWidgetItem {
+public:
+ SelectiveSyncTreeViewItem(int type = QTreeWidgetItem::Type)
+ : QTreeWidgetItem(type) { }
+ SelectiveSyncTreeViewItem(const QStringList &strings, int type = QTreeWidgetItem::Type)
+ : QTreeWidgetItem(strings, type) { }
+ SelectiveSyncTreeViewItem(QTreeWidget *view, int type = QTreeWidgetItem::Type)
+ : QTreeWidgetItem(view, type) { }
+ SelectiveSyncTreeViewItem(QTreeWidgetItem *parent, int type = QTreeWidgetItem::Type)
+ : QTreeWidgetItem(parent, type) { }
+
+private:
+ bool operator<(const QTreeWidgetItem &other)const {
+ int column = treeWidget()->sortColumn();
+ if (column == 1) {
+ return data(1, Qt::UserRole).toLongLong() < other.data(1, Qt::UserRole).toLongLong();
+ }
+ return QTreeWidgetItem::operator <(other);
+ }
+};
+
SelectiveSyncTreeView::SelectiveSyncTreeView(AccountPtr account, QWidget* parent)
: QTreeWidget(parent), _inserting(false), _account(account)
{
@@ -101,9 +124,9 @@ void SelectiveSyncTreeView::recursiveInsert(QTreeWidgetItem* parent, QStringList
parent->setToolTip(0, path);
parent->setData(0, Qt::UserRole, path);
} else {
- QTreeWidgetItem *item = findFirstChild(parent, pathTrail.first());
+ SelectiveSyncTreeViewItem *item = static_cast<SelectiveSyncTreeViewItem*>(findFirstChild(parent, pathTrail.first()));
if (!item) {
- item = new QTreeWidgetItem(parent);
+ item = new SelectiveSyncTreeViewItem(parent);
if (parent->checkState(0) == Qt::Checked
|| parent->checkState(0) == Qt::PartiallyChecked) {
item->setCheckState(0, Qt::Checked);
@@ -138,7 +161,7 @@ void SelectiveSyncTreeView::slotUpdateDirectories(const QStringList&list)
QScopedValueRollback<bool> isInserting(_inserting);
_inserting = true;
- QTreeWidgetItem *root = topLevelItem(0);
+ SelectiveSyncTreeViewItem *root = static_cast<SelectiveSyncTreeViewItem*>(topLevelItem(0));
if (!root && list.size() <= 1) {
_loading->setText(tr("No subfolders currently on the server."));
@@ -149,7 +172,7 @@ void SelectiveSyncTreeView::slotUpdateDirectories(const QStringList&list)
}
if (!root) {
- root = new QTreeWidgetItem(this);
+ root = new SelectiveSyncTreeViewItem(this);
root->setText(0, _rootName);
root->setIcon(0, Theme::instance()->applicationIcon());
root->setData(0, Qt::UserRole, QString());
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud-client.git
More information about the Pkg-owncloud-commits
mailing list