From 5aaf46c785f4663dadf3e7a2b2222721b73eb8bc Mon Sep 17 00:00:00 2001 From: Arno Date: Fri, 2 Dec 2016 13:04:39 +0100 Subject: Indicate copy status of file Add a new column to FileWidget to indicate the copy status: Use the gender sign for male (blue) to indicate that the file was found and the sign for female (red) that it was not. --- filewidget.cpp | 21 ++++++++++++++++++++- filewidget.h | 4 ++-- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/filewidget.cpp b/filewidget.cpp index aabd2d3..7e99cd3 100644 --- a/filewidget.cpp +++ b/filewidget.cpp @@ -209,11 +209,23 @@ void FileWidget::selectDir(){ } void FileWidget::gatherData(){ + QSettings s; + QStringList copyDirs = s.value("copydirs").toStringList(); + QStringList copyDirFiles; + foreach(auto d, copyDirs){ + QDir copyDir(d); + foreach(auto cfi, copyDir.entryInfoList()){ + if(cfi.isFile()){ + copyDirFiles << cfi.fileName(); + } + } + } + QDir d(mDir->text()); QFileInfoList fl = d.entryInfoList(QStringList() << "*", QDir::Files | QDir::Dirs | QDir::NoDot, QDir::Name | QDir::DirsFirst); mModel->clear(); QStandardItem *root = mModel->invisibleRootItem(); - mModel->setHorizontalHeaderLabels(QStringList() << QChar(0x26A7) << tr("Name") << tr("MIME") << tr("Duration") << tr("Size") << tr("MD5")); + mModel->setHorizontalHeaderLabels(QStringList() << QChar(0x26A7) << tr("Name") << QChar(0x26A5) << tr("MIME") << tr("Duration") << tr("Size") << tr("MD5")); QBrush redBrush(Qt::red); QBrush greenBrush(Qt::darkGreen); QBrush blueBrush(Qt::darkBlue); @@ -294,6 +306,13 @@ void FileWidget::gatherData(){ QLocale l; QString size = QString("%1").arg(l.toString(sizemb)); fData[SizeColumn]->setText(size); + if(copyDirFiles.contains(fi.fileName())){ + fData[CopiedColumn]->setText(QChar(0x2642)); + fData[CopiedColumn]->setForeground(blueBrush); + }else{ + fData[CopiedColumn]->setText(QChar(0x2640)); + fData[CopiedColumn]->setForeground(redBrush); + } } fData[DurationColumn]->setText(duration); fData[DurationColumn]->setData(seconds, SecondsRole); diff --git a/filewidget.h b/filewidget.h index 4dd53f6..504ea37 100644 --- a/filewidget.h +++ b/filewidget.h @@ -26,8 +26,8 @@ class FileWidget : public QWidget { public: enum FileAttrs { NotPresent = 0, Present = 1, NoVideo = 2, ParentDir = 3, Directory = 4, Origin = 5 }; enum CustomRoles { AttrsRole = Qt::UserRole + 1, FullPathRole = Qt::UserRole + 2, DurationRole = Qt::UserRole + 3, MD5SumRole = Qt::UserRole + 4, SecondsRole = Qt::UserRole + 5 }; - enum { ColumnCount = 6 }; - enum Columns { IconColumn = 0, NameColumn = 1, MimeColumn = 2, DurationColumn = 3, SizeColumn = 4, Md5Column = 5 }; + enum { ColumnCount = 7 }; + enum Columns { IconColumn = 0, NameColumn = 1, CopiedColumn = 2, MimeColumn = 3, DurationColumn = 4, SizeColumn = 5, Md5Column = 6 }; enum FileAction { Copy, Cut, Paste }; explicit FileWidget(QWidget *parent = 0); QTreeView *fileView() { return mFileView; } -- cgit v1.2.3-70-g09d2