summaryrefslogtreecommitdiffstats
path: root/filewidget.cpp
diff options
context:
space:
mode:
authorArno <arno@disconnect.de>2016-09-03 07:31:28 +0200
committerArno <arno@disconnect.de>2016-09-03 07:31:28 +0200
commit9ccd31690b5d982588bcb9be1988c682233aabb8 (patch)
treee6d09554a81ec8ac43b6323ba3d883a4dfe5a493 /filewidget.cpp
parentc3cfc9dd9d94a3c3ce2d58c0ec9320c03489f496 (diff)
downloadShemovCleaner-9ccd31690b5d982588bcb9be1988c682233aabb8.tar.gz
ShemovCleaner-9ccd31690b5d982588bcb9be1988c682233aabb8.tar.bz2
ShemovCleaner-9ccd31690b5d982588bcb9be1988c682233aabb8.zip
Implement doubleClicked in FileWidget
Navigate through the filesystem by doubleclicking directories. Rename enums from Row to Column, since it *are* columns. I'm not very good at naming things...
Diffstat (limited to 'filewidget.cpp')
-rw-r--r--filewidget.cpp46
1 files changed, 30 insertions, 16 deletions
diff --git a/filewidget.cpp b/filewidget.cpp
index d1d7a6a..0e3c9f1 100644
--- a/filewidget.cpp
+++ b/filewidget.cpp
@@ -66,6 +66,7 @@ void FileWidget::setupGui(){
mFileView->setSortingEnabled(true);
mFileView->setSelectionBehavior(QAbstractItemView::SelectRows);
mFileView->setSelectionMode(QAbstractItemView::ExtendedSelection);
+ connect(mFileView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(itemDoubleClicked(QModelIndex)));
mModel = new QStandardItemModel;
mProxy = new VideoSorter;
@@ -110,47 +111,47 @@ void FileWidget::gatherData(){
QMimeType mime = db.mimeTypeForFile(fi);
QList<QStandardItem*> fData;
FileAttrs attr = NotPresent;
- for(int i = 0; i < RowCount; ++i){
+ for(int i = 0; i < ColumnCount; ++i){
QStandardItem *item = new QStandardItem;
item->setEditable(false);
- if(i == Md5Row){
+ if(i == Md5Column){
item->setFont(QFont("courier new"));
}
fData << item;
}
- fData[NameRow]->setText(fi.fileName());
+ fData[NameColumn]->setText(fi.fileName());
if(mime.name().startsWith("video")){
QString md5 = Helper::md5Sum(fi.absoluteFilePath());
- fData[Md5Row]->setText(md5);
+ fData[Md5Column]->setText(md5);
int haveFile = md5Count(md5);
if(haveFile){
- fData[IconRow]->setIcon(QIcon(":/huge_bra.png"));
- fData[NameRow]->setForeground(greenBrush);
+ fData[IconColumn]->setIcon(QIcon(":/huge_bra.png"));
+ fData[NameColumn]->setForeground(greenBrush);
attr = Present;
}else{
- fData[IconRow]->setIcon(QIcon(":/chastity_belt.png"));
- fData[NameRow]->setForeground(redBrush);
+ fData[IconColumn]->setIcon(QIcon(":/chastity_belt.png"));
+ fData[NameColumn]->setForeground(redBrush);
attr = NotPresent;
}
}else if(fi.isDir()){
if(fi.fileName() == ".."){
- fData[IconRow]->setIcon(QIcon(":/up_dick.png"));
+ fData[IconColumn]->setIcon(QIcon(":/up_dick.png"));
attr = ParentDir;
}else{
- fData[IconRow]->setIcon(QIcon(":/folder.png"));
+ fData[IconColumn]->setIcon(QIcon(":/folder.png"));
attr = Directory;
}
- fData[Md5Row]->setText(tr("n/a"));
+ fData[Md5Column]->setText(tr("n/a"));
}else{
- fData[IconRow]->setIcon(QIcon(":/gaping_ass.png"));
- fData[Md5Row]->setText(tr("n/a"));
+ fData[IconColumn]->setIcon(QIcon(":/gaping_ass.png"));
+ fData[Md5Column]->setText(tr("n/a"));
attr = NoVideo;
}
- fData[MimeRow]->setText(mime.name());
+ fData[MimeColumn]->setText(mime.name());
if(mime.name() == "inode/directory"){
- fData[MimeRow]->setText("directory");
+ fData[MimeColumn]->setText("directory");
}
- for(int i = 0; i < RowCount; ++i){
+ for(int i = 0; i < ColumnCount; ++i){
fData[i]->setData(attr);
}
root->appendRow(fData);
@@ -220,3 +221,16 @@ void FileWidget::searchFile(){
}
}
}
+
+void FileWidget::itemDoubleClicked(const QModelIndex &idx){
+ if(idx.column() == NameColumn){
+ int attr = idx.data(Qt::UserRole + 1).toInt();
+ if(attr == ParentDir || attr == Directory){
+ QDir d(mDir->text());
+ d.cd(idx.data().toString());
+ QString newDir = d.absolutePath();
+ mDir->setText(QDir::toNativeSeparators(newDir));
+ gatherData();
+ }
+ }
+}