diff options
author | Christian Kamm <mail@ckamm.de> | 2018-01-23 12:23:32 +0300 |
---|---|---|
committer | ckamm <mail@ckamm.de> | 2018-01-23 14:02:16 +0300 |
commit | 32bb1e67637e48184d22379c420b767296bf3fea (patch) | |
tree | f924ebb0196c5c82bf35efc8dbc72bbf023bd794 /src/gui/protocolwidget.cpp | |
parent | e2b89c5afe57e5881c749e63469cfa8a4ac8ad91 (diff) |
ProtocolItem: Use accessors over magic numbers
Diffstat (limited to 'src/gui/protocolwidget.cpp')
-rw-r--r-- | src/gui/protocolwidget.cpp | 65 |
1 files changed, 51 insertions, 14 deletions
diff --git a/src/gui/protocolwidget.cpp b/src/gui/protocolwidget.cpp index 7324a1026..2dd9360cc 100644 --- a/src/gui/protocolwidget.cpp +++ b/src/gui/protocolwidget.cpp @@ -43,6 +43,46 @@ QString ProtocolItem::timeString(QDateTime dt, QLocale::FormatType format) return loc.toString(dt, dtFormat); } +QString ProtocolItem::folderName(const QTreeWidgetItem *item) +{ + return item->data(2, Qt::UserRole).toString(); +} + +void ProtocolItem::setFolderName(QTreeWidgetItem *item, const QString &folderName) +{ + item->setData(2, Qt::UserRole, folderName); +} + +QString ProtocolItem::filePath(const QTreeWidgetItem *item) +{ + return item->toolTip(1); +} + +void ProtocolItem::setFilePath(QTreeWidgetItem *item, const QString &filePath) +{ + item->setToolTip(1, filePath); +} + +QDateTime ProtocolItem::timestamp(const QTreeWidgetItem *item) +{ + return item->data(0, Qt::UserRole).toDateTime(); +} + +void ProtocolItem::setTimestamp(QTreeWidgetItem *item, const QDateTime ×tamp) +{ + item->setData(0, Qt::UserRole, timestamp); +} + +SyncFileItem::Status ProtocolItem::status(const QTreeWidgetItem *item) +{ + return static_cast<SyncFileItem::Status>(item->data(3, Qt::UserRole).toInt()); +} + +void ProtocolItem::setStatus(QTreeWidgetItem *item, SyncFileItem::Status status) +{ + item->setData(3, Qt::UserRole, status); +} + ProtocolItem *ProtocolItem::create(const QString &folder, const SyncFileItem &item) { auto f = FolderMan::instance()->folder(folder); @@ -84,13 +124,13 @@ ProtocolItem *ProtocolItem::create(const QString &folder, const SyncFileItem &it // Warning: The data and tooltips on the columns define an implicit // interface and can only be changed with care. twitem->setData(0, Qt::SizeHintRole, QSize(0, ActivityItemDelegate::rowHeight())); - twitem->setData(0, Qt::UserRole, timestamp); twitem->setIcon(0, icon); twitem->setToolTip(0, longTimeStr); - twitem->setToolTip(1, item._file); - twitem->setData(2, Qt::UserRole, folder); twitem->setToolTip(3, message); - twitem->setData(3, Qt::UserRole, item._status); + setTimestamp(twitem, timestamp); + setFilePath(twitem, item._file); // also sets toolTip(1) + setFolderName(twitem, folder); + setStatus(twitem, item._status); return twitem; } @@ -100,22 +140,22 @@ SyncJournalFileRecord ProtocolItem::syncJournalRecord(QTreeWidgetItem *item) auto f = folder(item); if (!f) return rec; - f->journalDb()->getFileRecord(item->toolTip(1), &rec); + f->journalDb()->getFileRecord(filePath(item), &rec); return rec; } Folder *ProtocolItem::folder(QTreeWidgetItem *item) { - return FolderMan::instance()->folder(item->data(2, Qt::UserRole).toString()); + return FolderMan::instance()->folder(folderName(item)); } void ProtocolItem::openContextMenu(QPoint globalPos, QTreeWidgetItem *item, QWidget *parent) { - auto f = ProtocolItem::folder(item); + auto f = folder(item); if (!f) return; AccountPtr account = f->accountState()->account(); - auto rec = ProtocolItem::syncJournalRecord(item); + auto rec = syncJournalRecord(item); // rec might not be valid auto menu = new QMenu(parent); @@ -151,8 +191,8 @@ bool ProtocolItem::operator<(const QTreeWidgetItem &other) const // Items with empty "File" column are larger than others, // otherwise sort by time (this uses lexicographic ordering) - return std::forward_as_tuple(text(1).isEmpty(), data(0, Qt::UserRole).toDateTime()) - < std::forward_as_tuple(other.text(1).isEmpty(), other.data(0, Qt::UserRole).toDateTime()); + return std::forward_as_tuple(text(1).isEmpty(), timestamp(this)) + < std::forward_as_tuple(other.text(1).isEmpty(), timestamp(&other)); } ProtocolWidget::ProtocolWidget(QWidget *parent) @@ -243,11 +283,8 @@ void ProtocolWidget::slotItemContextMenu(const QPoint &pos) void ProtocolWidget::slotOpenFile(QTreeWidgetItem *item, int) { - QString folderName = item->data(2, Qt::UserRole).toString(); QString fileName = item->text(1); - - Folder *folder = FolderMan::instance()->folder(folderName); - if (folder) { + if (Folder *folder = ProtocolItem::folder(item)) { // folder->path() always comes back with trailing path QString fullPath = folder->path() + fileName; if (QFile(fullPath).exists()) { |