diff options
Diffstat (limited to 'filewidget.cpp')
-rw-r--r-- | filewidget.cpp | 46 |
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(); + } + } +} |