Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/owncloud/client.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Kamm <mail@ckamm.de>2018-02-23 13:35:09 +0300
committerckamm <mail@ckamm.de>2018-03-06 15:02:54 +0300
commit61869bb65e99f12b711ae6ebe4632f56a0f39566 (patch)
treedc8bd3b3a6e0e313aede41aeaa1bb4b06065f1fc /src/gui/issueswidget.cpp
parent797473ba1fed83a915b8b56f61ace9185aff8a18 (diff)
ProtocolItem: Adjust the way data is stored again
The struct makes it easy to pack data and should consume less memory overall.
Diffstat (limited to 'src/gui/issueswidget.cpp')
-rw-r--r--src/gui/issueswidget.cpp30
1 files changed, 17 insertions, 13 deletions
diff --git a/src/gui/issueswidget.cpp b/src/gui/issueswidget.cpp
index 9896373ee..1ae3b234e 100644
--- a/src/gui/issueswidget.cpp
+++ b/src/gui/issueswidget.cpp
@@ -148,7 +148,7 @@ void IssuesWidget::hideEvent(QHideEvent *ev)
static bool persistsUntilLocalDiscovery(QTreeWidgetItem *item)
{
- const auto status = ProtocolItem::status(item);
+ const auto status = ProtocolItem::extraData(item).status;
return status == SyncFileItem::Conflict || status == SyncFileItem::FileIgnored;
}
@@ -223,7 +223,7 @@ void IssuesWidget::slotProgressInfo(const QString &folder, const ProgressInfo &p
const auto &engine = f->syncEngine();
const auto style = engine.lastLocalDiscoveryStyle();
cleanItems([&](QTreeWidgetItem *item) {
- if (ProtocolItem::folderName(item) != folder)
+ if (ProtocolItem::extraData(item).folderName != folder)
return false;
if (style == LocalDiscoveryStyle::FilesystemOnly)
return true;
@@ -231,10 +231,10 @@ void IssuesWidget::slotProgressInfo(const QString &folder, const ProgressInfo &p
return true;
// Definitely wipe the entry if the file no longer exists
- if (!QFileInfo(f->path() + ProtocolItem::filePath(item)).exists())
+ if (!QFileInfo(f->path() + ProtocolItem::extraData(item).path).exists())
return true;
- auto path = QFileInfo(ProtocolItem::filePath(item)).dir().path().toUtf8();
+ auto path = QFileInfo(ProtocolItem::extraData(item).path).dir().path().toUtf8();
if (path == ".")
path.clear();
@@ -248,9 +248,10 @@ void IssuesWidget::slotProgressInfo(const QString &folder, const ProgressInfo &p
auto tree = _ui->_treeWidget;
for (int i = 0; i < tree->topLevelItemCount(); ++i) {
auto item = tree->topLevelItem(i);
- if (ProtocolItem::folderName(item) == folder
- && ProtocolItem::status(item) == SyncFileItem::Conflict) {
- conflicts.append(ProtocolItem::filePath(item));
+ auto data = ProtocolItem::extraData(item);
+ if (data.folderName == folder
+ && data.status == SyncFileItem::Conflict) {
+ conflicts.append(data.path);
}
}
emit ProgressDispatcher::instance()->folderConflicts(folder, conflicts);
@@ -327,13 +328,14 @@ bool IssuesWidget::shouldBeVisible(QTreeWidgetItem *item, AccountState *filterAc
const QString &filterFolderAlias) const
{
bool visible = true;
- auto status = ProtocolItem::status(item);
+ auto data = ProtocolItem::extraData(item);
+ auto status = data.status;
visible &= (_ui->showIgnores->isChecked() || status != SyncFileItem::FileIgnored);
visible &= (_ui->showWarnings->isChecked()
|| (status != SyncFileItem::SoftError
&& status != SyncFileItem::Restoration));
- auto folderalias = ProtocolItem::folderName(item);
+ const auto &folderalias = data.folderName;
if (filterAccount) {
auto folder = FolderMan::instance()->folder(folderalias);
visible &= folder && folder->accountState() == filterAccount;
@@ -457,12 +459,14 @@ void IssuesWidget::addError(const QString &folderAlias, const QString &message,
QTreeWidgetItem *twitem = new ProtocolItem(columns);
twitem->setData(0, Qt::SizeHintRole, QSize(0, ActivityItemDelegate::rowHeight()));
- twitem->setData(0, Qt::UserRole, timestamp);
twitem->setIcon(0, icon);
twitem->setToolTip(0, longTimeStr);
- twitem->setData(2, Qt::UserRole, folderAlias);
twitem->setToolTip(3, message);
- twitem->setData(3, Qt::UserRole, SyncFileItem::NormalError);
+ ProtocolItem::ExtraData data;
+ data.timestamp = timestamp;
+ data.folderName = folderAlias;
+ data.status = SyncFileItem::NormalError;
+ ProtocolItem::setExtraData(twitem, data);
addItem(twitem);
addErrorWidget(twitem, message, category);
@@ -482,7 +486,7 @@ void IssuesWidget::addErrorWidget(QTreeWidgetItem *item, const QString &message,
auto button = new QPushButton("Retry all uploads", widget);
button->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Expanding);
- auto folderAlias = ProtocolItem::folderName(item);
+ auto folderAlias = ProtocolItem::extraData(item).folderName;
connect(button, &QPushButton::clicked,
this, [this, folderAlias]() { retryInsufficentRemoteStorageErrors(folderAlias); });
layout->addWidget(button);