summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--archiveeditdialog.cpp3
-rw-r--r--archivefilewidget.cpp10
-rw-r--r--archivefilewidget.h3
-rw-r--r--archiveviewwidget.cpp1
-rw-r--r--filesystemwidget.cpp5
-rw-r--r--listeditor.cpp9
-rw-r--r--moviemodel.cpp1
-rw-r--r--moviemodel.h3
8 files changed, 31 insertions, 4 deletions
diff --git a/archiveeditdialog.cpp b/archiveeditdialog.cpp
index 350597f..eae336d 100644
--- a/archiveeditdialog.cpp
+++ b/archiveeditdialog.cpp
@@ -62,6 +62,7 @@ ArchiveEditDialog::ArchiveEditDialog(ListModel *genre, ListModel *actors, QWidge
mFileWidget->setMovieModel(mMovieModel);
mFileWidget->setGenreModel(mGenreModel);
mFileWidget->setActorsModel(mActorsModel);
+ connect(mActorsEditor, SIGNAL(itemAdded(const QString &)), mFileWidget, SLOT(setActor(const QString &)));
//join splitters
hSplitter->addWidget(mFileWidget);
@@ -183,7 +184,7 @@ bool ArchiveEditDialog::checkInput(int genre, const QList<int> &actors, const QS
foreach(QString f, files){
QFileInfo info(f);
if(!info.isFile()){
- QString msg = QString(tr("%1 does not seem to be a file. Aborting")).arg(info.fileName());
+ QString msg = QString(tr("%1 does not seem to be a file. Aborting")).arg(info.absoluteFilePath());
QMessageBox::critical(this, tr("Error"), msg);
return false;
}
diff --git a/archivefilewidget.cpp b/archivefilewidget.cpp
index c8c2644..bc68382 100644
--- a/archivefilewidget.cpp
+++ b/archivefilewidget.cpp
@@ -120,6 +120,8 @@ void ArchiveFileWidget::setFiles(const QStringList &files){
}
html.append("</table></body></html>");
mFiles->setHtml(html);
+ mSelectedActors->clear();
+ mTitle->clear();
}
const QList<int> ArchiveFileWidget::actorIds() const{
@@ -144,6 +146,14 @@ int ArchiveFileWidget::genreId() const{
return retval;
}
+void ArchiveFileWidget::setActor(const QString &actor){
+ int idx = mActors->findText(actor);
+ if(idx != -1){
+ mActors->setCurrentIndex(idx);
+ addActor();
+ }
+}
+
void ArchiveFileWidget::addActor(){
QString selectedActor = mActors->currentText();
if(!selectedActor.isEmpty() && !mActorIdMap.contains(selectedActor)){
diff --git a/archivefilewidget.h b/archivefilewidget.h
index 57a9d52..5dbf339 100644
--- a/archivefilewidget.h
+++ b/archivefilewidget.h
@@ -40,6 +40,9 @@ class ArchiveFileWidget : public QWidget {
void statusbarMessage(const QString &message);
void archive();
+ public slots:
+ void setActor(const QString &actor);
+
private slots:
void addActor();
void removeActor();
diff --git a/archiveviewwidget.cpp b/archiveviewwidget.cpp
index 1353dbb..1bc7902 100644
--- a/archiveviewwidget.cpp
+++ b/archiveviewwidget.cpp
@@ -69,6 +69,7 @@ ArchiveViewWidget::ArchiveViewWidget(MovieModel *model, ListModel *genre, ListMo
mFileView->setRootIsDecorated(false);
mFileView->setColumnHidden(MovieItem::Md5Sum, true);
connect(mClearFilter, SIGNAL(clicked()), mProxy, SLOT(clearFilter()));
+ connect(mMovieModel, SIGNAL(moviesChanged()), mProxy, SLOT(invalidate()));
//main layout
QVBoxLayout *mainLayout = new QVBoxLayout;
diff --git a/filesystemwidget.cpp b/filesystemwidget.cpp
index d15feeb..182ab77 100644
--- a/filesystemwidget.cpp
+++ b/filesystemwidget.cpp
@@ -51,6 +51,7 @@ FilesystemWidget::FilesystemWidget(QWidget *parent) : QWidget(parent) {
mDirView->setColumnHidden(3, true);
mDirView->setRootIsDecorated(false);
mDirView->setSelectionMode(QAbstractItemView::SingleSelection);
+ mDirView->setEditTriggers(QAbstractItemView::NoEditTriggers);
mFileView = new FileView;
mFileProxy = new FilesystemFileProxy;
@@ -60,6 +61,7 @@ FilesystemWidget::FilesystemWidget(QWidget *parent) : QWidget(parent) {
mFileView->sortByColumn(0, Qt::AscendingOrder);
mFileView->setItemsExpandable(false);
mFileView->setSelectionMode(QAbstractItemView::MultiSelection);
+ mFileView->setEditTriggers(QAbstractItemView::NoEditTriggers);
QString title = QString(tr("%1 - Rename file")).arg(qApp->applicationName());
mRenameDialog = new MessageDialog(tr("Rename dummy to:"), title, this);
@@ -150,6 +152,7 @@ void FilesystemWidget::directoryEdited(){
void FilesystemWidget::fileViewActivated(const QModelIndex &idx){
QModelIndex real = mFileProxy->mapToSource(idx);
if(mModel->isDir(real)){
+ fileView()->selectionModel()->select(idx, QItemSelectionModel::Deselect);
mDirView->setCurrentIndex(mDirProxy->mapFromSource(real));
return;
}
@@ -377,7 +380,7 @@ void FilesystemWidget::archiveFiles(){
if(selected.isEmpty()){
return;
}
- QSortFilterProxyModel *proxy = static_cast<QSortFilterProxyModel*>(mFileView->model());
+ QSortFilterProxyModel *proxy = static_cast<QSortFilterProxyModel*>(fileView()->model());
QStringList files;
foreach(QModelIndex idx, selected){
QModelIndex src = proxy->mapToSource(idx);
diff --git a/listeditor.cpp b/listeditor.cpp
index ac001c9..53f58d6 100644
--- a/listeditor.cpp
+++ b/listeditor.cpp
@@ -10,6 +10,7 @@
#include <QPushButton>
#include <QHBoxLayout>
#include <QVBoxLayout>
+#include <QCompleter>
#include "listeditor.h"
#include "listmodel.h"
@@ -19,6 +20,10 @@ ListEditor::ListEditor(ListModel *model, QWidget *parent) : QWidget(parent), mMo
mItems->setModel(mModel);
mEdit = new QLineEdit;
+ QCompleter *completer = new QCompleter(this);
+ completer->setModel(mModel);
+ completer->setCompletionRole(Qt::DisplayRole);
+ mEdit->setCompleter(completer);
mAdd = new QPushButton(tr("Add"));
connect(mAdd, SIGNAL(clicked()), this, SLOT(addItem()));
@@ -36,8 +41,6 @@ ListEditor::ListEditor(ListModel *model, QWidget *parent) : QWidget(parent), mMo
mainLayout->addWidget(mEdit);
mainLayout->addLayout(buttonLayout);
- connect(mItems, SIGNAL(currentIndexChanged(const QString&)), this, SLOT(itemChanged(const QString &)));
-
setLayout(mainLayout);
}
@@ -50,6 +53,8 @@ void ListEditor::addItem(){
if(idx == QModelIndex()){
mModel->addItem(newItem);
emit itemAdded(newItem);
+ }else{
+ emit itemAdded(idx.data().toString());
}
}
diff --git a/moviemodel.cpp b/moviemodel.cpp
index 7fbac31..28399de 100644
--- a/moviemodel.cpp
+++ b/moviemodel.cpp
@@ -253,6 +253,7 @@ void MovieModel::addMovie(const QList<QVariant> &data, const QList<QVariant> &ac
insertRows(row, 1, QModelIndex());
QModelIndex i = index(row, 0, QModelIndex());
setRow(i, data, actors, covers);
+ emit moviesChanged();
}
void MovieModel::removeMovie(const QModelIndex &idx){
diff --git a/moviemodel.h b/moviemodel.h
index a3bfa34..c8e6dd1 100644
--- a/moviemodel.h
+++ b/moviemodel.h
@@ -41,6 +41,9 @@ class MovieModel : public QAbstractItemModel {
void addMovie(const QList<QVariant> &data, const QList<QVariant> &actors, const QList<CoverItem> &covers);
void removeMovie(const QModelIndex &idx);
+ signals:
+ void moviesChanged();
+
private:
void populate();
QList<MovieItem*> mItems;