diff options
-rw-r--r-- | archiveeditdialog.cpp | 3 | ||||
-rw-r--r-- | archivefilewidget.cpp | 10 | ||||
-rw-r--r-- | archivefilewidget.h | 3 | ||||
-rw-r--r-- | archiveviewwidget.cpp | 1 | ||||
-rw-r--r-- | filesystemwidget.cpp | 5 | ||||
-rw-r--r-- | listeditor.cpp | 9 | ||||
-rw-r--r-- | moviemodel.cpp | 1 | ||||
-rw-r--r-- | moviemodel.h | 3 |
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; |