summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--filedisplay.cpp6
-rw-r--r--filewidget.cpp48
-rw-r--r--filewidget.h4
3 files changed, 38 insertions, 20 deletions
diff --git a/filedisplay.cpp b/filedisplay.cpp
index fe832b1..c3ef2bc 100644
--- a/filedisplay.cpp
+++ b/filedisplay.cpp
@@ -130,6 +130,12 @@ void DBData::gatherData(){
seriesRes << seriesQ2.value(0) << seriesQ2.value(1) << seriesQ2.value(2) << seriesQ2.value(3);
}
}
+ if(seriesRes.isEmpty()){
+ mActors->setText(tr("not in database!"));
+ mGenres->setText(tr("not in database!"));
+ mSeriesName->clear();
+ return;
+ }
QString seriesName(seriesRes.at(0).toString());
if(seriesRes.at(1).isValid()){
seriesName.append(QString(" - %1").arg(seriesRes.at(1).toString()));
diff --git a/filewidget.cpp b/filewidget.cpp
index 478ab26..5727e88 100644
--- a/filewidget.cpp
+++ b/filewidget.cpp
@@ -73,7 +73,7 @@ void FileWidget::setupGui(){
mFileView->setSortingEnabled(true);
mFileView->setSelectionBehavior(QAbstractItemView::SelectRows);
mFileView->setSelectionMode(QAbstractItemView::ExtendedSelection);
- connect(mFileView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(itemDoubleClicked(QModelIndex)));
+ connect(mFileView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(itemSelected(QModelIndex)));
QGroupBox *filesGB = new QGroupBox(tr("Files"));
QHBoxLayout *filesGBL = new QHBoxLayout;
filesGBL->addWidget(mFileView);
@@ -106,6 +106,11 @@ void FileWidget::setupGui(){
mFileView->setFocus();
}
+void FileWidget::fileData(const QString &fullPath, const QString &md5){
+ mFileDisplay->setFileData(fullPath, md5);
+ mFileDisplay->show();
+}
+
void FileWidget::selectDir(){
QString dir = QFileDialog::getExistingDirectory(this, tr("Select directory"), QDir::homePath());
if(!dir.isEmpty()){
@@ -205,6 +210,7 @@ int FileWidget::md5Count(const QString &md5) {
}
if(!retval){
mQFiles.bindValue(":md5", md5);
+ mQFiles.exec();
while(mQFiles.next()){
retval = mQFiles.value(0).toInt();
}
@@ -263,24 +269,28 @@ void FileWidget::fileSelectionChanged(const QItemSelection &selected, const QIte
emit durationChanged(dur.toString());
}
-void FileWidget::itemDoubleClicked(const QModelIndex &idx){
- if(idx.column() == NameColumn){
- int attr = idx.data(AttrsRole).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();
- return;
- }
- if(attr == Present){
- QString fp = idx.data(FullPathRole).toString();
- QString md5 = idx.data(MD5SumRole).toString();
- mFileDisplay->setFileData(fp, md5);
- mFileDisplay->show();
- }
+void FileWidget::itemSelected(const QModelIndex &idx){
+ QModelIndex name = idx;
+ QString mime = idx.sibling(idx.row(), MimeColumn).data().toString();
+ if(name.column() != NameColumn){
+ name = idx.sibling(idx.row(), NameColumn);
}
+ int attr = name.data(AttrsRole).toInt();
+ if(attr == ParentDir || attr == Directory){
+ cd(name.data().toString());
+ return;
+ }
+ if(mime.startsWith("video")){
+ fileData(name.data(FullPathRole).toString(), name.data(MD5SumRole).toString());
+ }
+}
+
+void FileWidget::cd(const QString &to){
+ QDir cur(mDir->text());
+ cur.cd(to);
+ QString newDir = cur.absolutePath();
+ mDir->setText(QDir::toNativeSeparators(newDir));
+ gatherData();
}
void FileWidget::keyPressEvent(QKeyEvent *e){
@@ -304,7 +314,7 @@ void FileWidget::keyPressEvent(QKeyEvent *e){
if(mFileView->hasFocus()){
if(e->key() == Qt::Key_Return){
QModelIndex idx = mFileView->selectionModel()->selectedRows(NameColumn).at(0);
- itemDoubleClicked(idx);
+ itemSelected(idx);
e->accept();
return;
}
diff --git a/filewidget.h b/filewidget.h
index 6b84b2d..db9799f 100644
--- a/filewidget.h
+++ b/filewidget.h
@@ -31,19 +31,21 @@ class FileWidget : public QWidget {
public slots:
void fileSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected);
+ void cd(const QString &to);
private slots:
void gatherData();
void selectDir();
void filter();
void clearFilter();
- void itemDoubleClicked(const QModelIndex &idx);
+ void itemSelected(const QModelIndex &idx);
protected:
virtual void keyPressEvent(QKeyEvent *e);
private:
void setupGui();
+ void fileData(const QString &fullPath, const QString &md5);
int md5Count(const QString &md5);
void readHeaderData();
void writeHeaderData();