diff options
author | Arno <arno@disconnect.de> | 2016-09-03 04:49:51 +0200 |
---|---|---|
committer | Arno <arno@disconnect.de> | 2016-09-03 04:49:51 +0200 |
commit | f80c6c80da7530b43f15acd3b60b27ab6c629f3d (patch) | |
tree | f2ec93b7a894a941d8013388e23f0379833f58ff /filewidget.cpp | |
parent | 86d3baf2c6c6ff3bb987dcd30cd606f0a45ef626 (diff) | |
download | ShemovCleaner-f80c6c80da7530b43f15acd3b60b27ab6c629f3d.tar.gz ShemovCleaner-f80c6c80da7530b43f15acd3b60b27ab6c629f3d.tar.bz2 ShemovCleaner-f80c6c80da7530b43f15acd3b60b27ab6c629f3d.zip |
FileWidget enhancements
* add distinct icons for files presenet or non present in DB and non-
video files, make it sortable
* read and save settings
* save geometry of ShemovCleaner
Diffstat (limited to 'filewidget.cpp')
-rw-r--r-- | filewidget.cpp | 57 |
1 files changed, 48 insertions, 9 deletions
diff --git a/filewidget.cpp b/filewidget.cpp index edcec8a..df97b3a 100644 --- a/filewidget.cpp +++ b/filewidget.cpp @@ -15,12 +15,23 @@ #include <QFont> #include <QSqlDatabase> #include <QSqlQuery> +#include <QSettings> +#include <QHeaderView> +#include <QApplication> +#include <QCursor> #include "filewidget.h" +#include "filesorter.h" #include "helper.h" FileWidget::FileWidget(QWidget *parent) : QWidget(parent) { setupGui(); + gatherData(); +} + +FileWidget::~FileWidget(){ + writeHeaderData(); + writeSettings(); } void FileWidget::setupGui(){ @@ -30,6 +41,7 @@ void FileWidget::setupGui(){ fsCompleter->setModel(dirModel); fsCompleter->setCompletionMode(QCompleter::PopupCompletion); mDir->setCompleter(fsCompleter); + connect(mDir, SIGNAL(returnPressed()), this, SLOT(gatherData())); mSelDir = new QPushButton(tr("Browse...")); connect(mSelDir, SIGNAL(clicked()), this, SLOT(selectDir())); QLabel *dirL = new QLabel(tr("&Directory")); @@ -56,7 +68,10 @@ void FileWidget::setupGui(){ mFileView->setSelectionMode(QAbstractItemView::ExtendedSelection); mModel = new QStandardItemModel; - mFileView->setModel(mModel); + mProxy = new FileSorter; + mProxy->setSourceModel(mModel); + mFileView->setModel(mProxy); + readSettings(); QSqlDatabase mDb = QSqlDatabase::database("shemovdb"); if(!mDb.isOpen()){ @@ -71,9 +86,6 @@ void FileWidget::setupGui(){ mainLayout->addLayout(topL); mainLayout->addWidget(mFileView); setLayout(mainLayout); - - gatherData(); - } void FileWidget::selectDir(){ @@ -92,6 +104,7 @@ void FileWidget::gatherData(){ QBrush greenBrush(Qt::darkGreen); QMimeDatabase db; + qApp->setOverrideCursor(Qt::BusyCursor); foreach(QFileInfo fi, fl){ QMimeType mime = db.mimeTypeForFile(fi); @@ -100,30 +113,32 @@ void FileWidget::gatherData(){ i2->setEditable(false); QStandardItem *i4; if(mime.name().startsWith("video")){ - i1 = new QStandardItem(QIcon(":/huge_bra.png"), QString()); QString md5 = Helper::md5Sum(fi.absoluteFilePath()); i4 = new QStandardItem(md5); i4->setFont(QFont("courier new")); int haveFile = md5Count(md5); if(haveFile){ + i1 = new QStandardItem(QIcon(":/huge_bra.png"), QString()); + i1->setData(Present); i2->setForeground(greenBrush); }else{ + i1 = new QStandardItem(QIcon(":/chastity_belt.png"), QString()); + i1->setData(NotPresent); i2->setForeground(redBrush); } }else{ i1 = new QStandardItem(QIcon(":/gaping_ass.png"), QString()); + i1->setData(NoVideo); i4 = new QStandardItem(tr("n/a")); i4->setFont(QFont("courier new")); } i1->setEditable(false); - QStandardItem *i3 = new QStandardItem(mime.name()); i3->setEditable(false); root->appendRow(QList<QStandardItem*>() << i1 << i2 << i3 << i4); } - mFileView->resizeColumnToContents(0); - mFileView->resizeColumnToContents(1); - mFileView->resizeColumnToContents(2); + readHeaderData(); + qApp->restoreOverrideCursor(); } int FileWidget::md5Count(const QString &md5) { @@ -142,6 +157,30 @@ int FileWidget::md5Count(const QString &md5) { return retval; } +void FileWidget::readHeaderData(){ + QSettings s; + QByteArray headers = s.value("video/fileheaders").toByteArray(); + if(!headers.isEmpty()){ + mFileView->header()->restoreState(headers); + } +} + +void FileWidget::writeHeaderData(){ + QSettings s; + s.setValue("video/fileheaders", mFileView->header()->saveState()); +} + +void FileWidget::readSettings(){ + QSettings s; + QString dir = s.value("video/searchdir", QDir::toNativeSeparators(QDir::homePath())).toString(); + mDir->setText(dir); +} + +void FileWidget::writeSettings(){ + QSettings s; + s.setValue("video/searchdir", mDir->text()); +} + void FileWidget::searchFile(){ } |