summaryrefslogtreecommitdiffstats
path: root/archivetreeview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'archivetreeview.cpp')
-rw-r--r--archivetreeview.cpp61
1 files changed, 43 insertions, 18 deletions
diff --git a/archivetreeview.cpp b/archivetreeview.cpp
index 65eb11f..0fa471d 100644
--- a/archivetreeview.cpp
+++ b/archivetreeview.cpp
@@ -46,7 +46,7 @@
#include "seriesmetadatamodel.h"
#include "helper.h"
-ArchiveTreeView::ArchiveTreeView(QWidget *parent) : QWidget(parent){
+ArchiveTreeView::ArchiveTreeView(QWidget *parent) : QWidget(parent), mShowAllFiles(false){
// models
mActorsModel = static_cast<MappingTableModel*>(SmGlobals::instance()->model("actors"));
mGenresModel = static_cast<MappingTableModel*>(SmGlobals::instance()->model("genres"));
@@ -106,28 +106,43 @@ ArchiveTreeView::ArchiveTreeView(QWidget *parent) : QWidget(parent){
void ArchiveTreeView::setFileViewMode(int mode){
mSeriesModel->setRowFilter(mode);
mSeriesWidget->seriesProxy()->invalidate();
+ mFilesModel->setMode(mode);
+ showAllFiles(mShowAllFiles);
constructWindowTitle();
mSeriesWidget->expandItems();
}
-void ArchiveTreeView::showAllFiles(){
- int seriesRow = 0;
- QModelIndex series = mSeriesModel->index(seriesRow, 0, QModelIndex());
- QList<int> ids;
- while(series.isValid()){
- int childRow = 0;
- QModelIndex child = mSeriesModel->index(childRow, 0, series);
- while(child.isValid()){
- if(mSeriesWidget->seriesProxy()->acceptedByFilter(child.row(), child.parent())){
- ids << child.data(SeriesTreeModel::SeriesPartIdRole).toInt();
+void ArchiveTreeView::showAllFiles(bool toggled){
+ mShowAllFiles = toggled;
+ if(mShowAllFiles){
+ int seriesRow = 0;
+ QModelIndex series = mSeriesModel->index(seriesRow, 0, QModelIndex());
+ QList<int> ids;
+ while(series.isValid()){
+ int childRow = 0;
+ QModelIndex child = mSeriesModel->index(childRow, 0, series);
+ while(child.isValid()){
+ if(mSeriesWidget->seriesProxy()->acceptedByFilter(child.row(), child.parent())){
+ ids << child.data(SeriesTreeModel::SeriesPartIdRole).toInt();
+ }
+ child = mSeriesModel->index(++childRow, 0, child.parent());
}
- child = mSeriesModel->index(++childRow, 0, child.parent());
+ series = mSeriesModel->index(++seriesRow, 0, series.parent());
+ }
+ mFilesModel->setIds(ids);
+ mFilesWidget->filesTree()->expandAll();
+ mFilesWidget->filesTree()->resizeColumnToContents(0);
+ }else{
+ QModelIndexList selectedSeries = mSeriesWidget->seriesTree()->selectionModel()->selectedRows();
+ QModelIndex selected;
+ if(selectedSeries.isEmpty()){
+ selected = mSeriesWidget->seriesProxy()->index(0, 0);
+ }else{
+ selected = selectedSeries.at(0);
}
- series = mSeriesModel->index(++seriesRow, 0, series.parent());
+ mSeriesWidget->seriesTree()->selectionModel()->setCurrentIndex(selected, QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows);
+ currentChanged(QItemSelection(), QItemSelection());
}
- mFilesModel->setIds(ids);
- mFilesWidget->filesTree()->expandAll();
- mFilesWidget->filesTree()->resizeColumnToContents(0);
}
void ArchiveTreeView::cleanDatabase(const QString &table){
@@ -312,8 +327,18 @@ void ArchiveTreeView::invalidateSorting(){
}
void ArchiveTreeView::constructWindowTitle(){
- QString modeString = mFilesModel->modeName(mFilesModel->mode());
- mWindowTitle = QString("Movie Archive - [%1]").arg(modeString);
+ int rowFilter = mSeriesModel->rowFilter();
+ mWindowTitle = QString(tr("Movie Archive"));
+ switch(rowFilter){
+ case SeriesTreeModel::Archived:
+ mWindowTitle.append(tr(" - [Archived]"));
+ break;
+ case SeriesTreeModel::Local:
+ mWindowTitle.append(tr(" - [Local]"));
+ break;
+ default:
+ ;
+ }
emit needWindowTitleChange(mWindowTitle);
}