summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--filesorter.cpp2
-rw-r--r--filewidget.cpp46
-rw-r--r--filewidget.h5
3 files changed, 34 insertions, 19 deletions
diff --git a/filesorter.cpp b/filesorter.cpp
index b155a7c..a3bbf5a 100644
--- a/filesorter.cpp
+++ b/filesorter.cpp
@@ -33,7 +33,7 @@ bool VideoSorter::lessThan(const QModelIndex &source_left, const QModelIndex &so
}
//now check if we're sorting IconRow
- if(source_left.column() == FileWidget::IconRow){
+ if(source_left.column() == FileWidget::IconColumn){
return leftData < rightData;
}
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();
+ }
+ }
+}
diff --git a/filewidget.h b/filewidget.h
index 504a6c7..05bae9d 100644
--- a/filewidget.h
+++ b/filewidget.h
@@ -15,8 +15,8 @@ class FileWidget : public QWidget {
Q_OBJECT
public:
enum FileAttrs { NotPresent = 0, Present = 1, NoVideo = 2, ParentDir = 3, Directory = 4 };
- enum { RowCount = 4 };
- enum Colums { IconRow = 0, NameRow = 1, MimeRow = 2, Md5Row = 3 };
+ enum { ColumnCount = 4 };
+ enum Colums { IconColumn = 0, NameColumn = 1, MimeColumn = 2, Md5Column = 3 };
explicit FileWidget(QWidget *parent = 0);
~FileWidget();
@@ -24,6 +24,7 @@ class FileWidget : public QWidget {
void gatherData();
void selectDir();
void searchFile();
+ void itemDoubleClicked(const QModelIndex &idx);
private:
void setupGui();