diff options
-rw-r--r-- | archivetreeview.cpp | 8 | ||||
-rw-r--r-- | archivetreeview.h | 1 | ||||
-rw-r--r-- | filestreemodel.cpp | 11 | ||||
-rw-r--r-- | filestreemodel.h | 6 | ||||
-rw-r--r-- | filestreewidget.cpp | 2 | ||||
-rw-r--r-- | filestreewidget.h | 2 | ||||
-rw-r--r-- | seriestreewidget.cpp | 2 | ||||
-rw-r--r-- | shemov.cpp | 14 | ||||
-rw-r--r-- | shemov.h | 2 |
9 files changed, 35 insertions, 13 deletions
diff --git a/archivetreeview.cpp b/archivetreeview.cpp index 372e841..9b7807a 100644 --- a/archivetreeview.cpp +++ b/archivetreeview.cpp @@ -144,6 +144,14 @@ void ArchiveTreeView::showAllFiles(bool toggled){ } } +void ArchiveTreeView::showForBurn(bool toggled){ + if(toggled){ + mFilesModel->setForBurn(); + mFilesWidget->filesTree()->expandAll(); + mFilesWidget->filesTree()->resizeColumnToContents(0); + } +} + void ArchiveTreeView::cleanDatabase(const QString &table){ MappingTableModel *model = 0; if(table == "genres"){ diff --git a/archivetreeview.h b/archivetreeview.h index 5013414..9abbb44 100644 --- a/archivetreeview.h +++ b/archivetreeview.h @@ -48,6 +48,7 @@ class ArchiveTreeView : public QWidget public slots: void setFileViewMode(int mode); void showAllFiles(bool toggled); + void showForBurn(bool toggled); void cleanDatabase(const QString &table); void selectMoviePart(int seriespartId, int seriesId); void copyPath(int type); diff --git a/filestreemodel.cpp b/filestreemodel.cpp index dd954ac..96f1ba4 100644 --- a/filestreemodel.cpp +++ b/filestreemodel.cpp @@ -25,7 +25,7 @@ #include "seriestreemodel.h" #include "smglobals.h" -FilesTreeModel::FilesTreeModel(QStringList &headers, QObject *parent) : SmTreeModel(headers, parent), /*mMode(Normal),*/ mMagic(0xAABBCCDD){ +FilesTreeModel::FilesTreeModel(QStringList &headers, QObject *parent) : SmTreeModel(headers, parent), mMagic(0xAABBCCDD), mDisplayMode(Ids){ //database setup mDb = QSqlDatabase::database("treedb"); mUpdateDvdQuery = new QSqlQuery(mDb); @@ -81,6 +81,7 @@ FilesTreeModel::~FilesTreeModel(){ } void FilesTreeModel::setIds(const QList<int> &seriesPartIds){ + mDisplayMode = Ids; mCurrentIds = seriesPartIds; QStringList ids; foreach(int s, seriesPartIds){ @@ -92,6 +93,14 @@ void FilesTreeModel::setIds(const QList<int> &seriesPartIds){ populate(filesQuery); } +void FilesTreeModel::setForBurn(){ + mDisplayMode = Burn; + QString query = QString("SELECT iseriespart_id, tfilename, cmd5sum, bisize, idvd, sifiletype, sifileno, siquality, ifiles_id, series.tseries_name, seriesparts.iseriespart, seriesparts.bfavorite FROM files, seriesparts, series WHERE iseriespart_id IN (SELECT iseriesparts_id from seriesparts where bfavorite = false) AND files.iseriespart_id = seriesparts.iseriesparts_id AND seriesparts.iseries_id = series.iseries_id AND sifiletype = 1 AND idvd < 0 ORDER BY tfilename, sifileno ASC"); + QSqlQuery filesQuery(mDb); + filesQuery.prepare(query); + populate(filesQuery); +} + QVariant FilesTreeModel::data(const QModelIndex &index, int role) const{ if(!index.isValid()){ return QVariant(); diff --git a/filestreemodel.h b/filestreemodel.h index 278f257..88dc81f 100644 --- a/filestreemodel.h +++ b/filestreemodel.h @@ -26,15 +26,18 @@ class FilesTreeModel : public SmTreeModel { enum CustomRoles { FileNameRole = Qt::UserRole + 1, FullPathRole = Qt::UserRole + 2, SizeRole = Qt::UserRole + 3, DvdNoRole = Qt::UserRole + 4, SizeDisplayRole = Qt::UserRole + 5, FileTypeRole = Qt::UserRole + 6, Md5SumRole = Qt::UserRole + 7, PartNoRole = Qt::UserRole + 8, SeriesPartIdRole = Qt::UserRole + 9, QualityRole = Qt::UserRole + 10, FilesIdRole = Qt::UserRole + 11, SeriesPartRole = Qt::UserRole + 12, DisplayNameRole = Qt::UserRole + 13, SizeDurationRole = Qt::UserRole + 14, SeriesNameRole = Qt::UserRole + 15, FavoriteRole = Qt::UserRole + 16 }; enum FileTypes { Movie = 1, FrontCover = 2, BackCover = 3, GeneralCover = 4 }; enum Fields { FileName = 0, PartNo = 1, SizeDisplay = 2, Quality = 3, DvdNo = 4, FullPath = 5, Size = 6, FileType = 7, Md5Sum = 8, SeriesPartId = 9, FilesId = 10, SeriesPart = 11, DisplayName = 12, SizeDuration = 13, SeriesName = 14, Favorite = 15 }; + enum Mode { Ids, Burn }; explicit FilesTreeModel(QStringList &headers, QObject *parent = 0); const QHash<int, QString> fileTypes() const { return mFileTypes; } const QHash<int, QString> coverTypes() const { return mCoverTypes; } const QHash<QString, int> editableColumns() const { return mEditableColumns; } int mode() const { return mMode; } + int displayMode() const { return mDisplayMode; } ~FilesTreeModel(); //data + flags void setIds(const QList<int> &seriesPartIds); + void setForBurn(); void setMode(int mode) { mMode = mode; } QVariant data(const QModelIndex &index, int role) const; bool setData(const QModelIndex &index, const QVariant &value, int role); @@ -85,13 +88,14 @@ class FilesTreeModel : public SmTreeModel { QHash<QString, QString> mPicsDurationCache; QHash<QString, int> mEditableColumns; SeriesTreeModel *mSeriesModel; - int mMode; + int mMode; const int mMagic; QColor mLocalColor; QColor mArchivedColor; QColor mFavoriteColor; qint64 mDvdSize; QList<int> mCurrentIds; + int mDisplayMode; }; #endif // FILESTREEMODEL_H diff --git a/filestreewidget.cpp b/filestreewidget.cpp index 9422268..c2a5d5f 100644 --- a/filestreewidget.cpp +++ b/filestreewidget.cpp @@ -492,7 +492,7 @@ void FilesTreeView::doHover(const QModelIndex &idx){ } scale = false; FilesTreeModel *filesModel = qobject_cast<FilesTreeModel*>(SmGlobals::instance()->model("FilesModel")); - if(filesModel->mode() == SeriesTreeModel::Local){ + if(filesModel->displayMode() == FilesTreeModel::Burn){ QString filesData = fileNameText(idx); pm = annotateHover(pm, filesData); } diff --git a/filestreewidget.h b/filestreewidget.h index 036ee0e..77c1da3 100644 --- a/filestreewidget.h +++ b/filestreewidget.h @@ -30,7 +30,7 @@ class QEvent; class FilesTreeWidget : public QWidget { Q_OBJECT public: - explicit FilesTreeWidget(QWidget *parent = 0); + explicit FilesTreeWidget(QWidget *parent = 0); FilesTreeView *filesTree() { return mView; } void resetSize(); diff --git a/seriestreewidget.cpp b/seriestreewidget.cpp index ca18672..50f06c0 100644 --- a/seriestreewidget.cpp +++ b/seriestreewidget.cpp @@ -518,7 +518,7 @@ bool SeriesTreeSortModel::filterAcceptsRow(int source_row, const QModelIndex &so child = curIdx.child(++row, 0); } }else if(type == SeriesTreeModel::Part){ - bool accept = ((curIdx.data(SeriesTreeModel::IsLocalRole).toBool() == filterLocal) && (curIdx.data(SeriesTreeModel::FavoriteRole).toBool() == false)); + bool accept = ((curIdx.data(SeriesTreeModel::IsLocalRole).toBool() == filterLocal)); // && (curIdx.data(SeriesTreeModel::FavoriteRole).toBool() == false)); if(accept){ return (filterRe.indexIn(name) != -1); } @@ -507,10 +507,10 @@ void SheMov::createActions(){ connect(mShowNormalA, SIGNAL(triggered()), viewMapper, SLOT(map())); mShowNormalA->setCheckable(true); mShowNormalA->setChecked(true); - mShowAllFilesA = new QAction(QIcon(":/male_chastity_belt.png"), tr("Show All files"), this); - mShowAllFilesA->setCheckable(true); - mShowTreeGroup->addAction(mShowAllFilesA); - connect(mShowAllFilesA, SIGNAL(toggled(bool)), mATree, SLOT(showAllFiles(bool))); + mShowBurnFilesA = new QAction(QIcon(":/male_chastity_belt.png"), tr("Show Files to Burn"), this); + mShowBurnFilesA->setCheckable(true); + mShowTreeGroup->addAction(mShowBurnFilesA); + connect(mShowBurnFilesA, SIGNAL(toggled(bool)), mATree, SLOT(showForBurn(bool))); //headers mFilesTreeHeadersGroup = new QActionGroup(this); @@ -798,7 +798,7 @@ void SheMov::createMenus(){ mTreeViewMenu->addAction(mShowNormalA); mTreeViewMenu->addAction(mShowLocalA); mTreeViewMenu->addAction(mShowArchivedA); - mTreeViewMenu->addAction(mShowAllFilesA); + mTreeViewMenu->addAction(mShowBurnFilesA); mTreeViewMenu->addAction(mSuggestFileA); mTreeViewMenu->addSeparator(); @@ -918,7 +918,7 @@ void SheMov::createMenus(){ mATree->filesWidget()->filesTree()->addActions(mEditGroup->actions()); mATree->filesWidget()->filesTree()->addAction(createSeparator()); - mATree->filesWidget()->filesTree()->addAction(mShowAllFilesA); + mATree->filesWidget()->filesTree()->addAction(mShowBurnFilesA); mATree->filesWidget()->filesTree()->addAction(mSuggestFileA); mATree->filesWidget()->filesTree()->addAction(createSeparator()); @@ -1000,7 +1000,7 @@ void SheMov::createToolBar(){ toolBar->addAction(mShowNormalA); toolBar->addAction(mShowArchivedA); toolBar->addAction(mShowLocalA); - toolBar->addAction(mShowAllFilesA); + toolBar->addAction(mShowBurnFilesA); toolBar->addAction(mSuggestFileA); toolBar->addSeparator(); toolBar->addActions(mFilterGroup->actions()); @@ -131,7 +131,7 @@ class SheMov : public QMainWindow { QAction *mShowLocalA; QAction *mShowArchivedA; QAction *mShowNormalA; - QAction *mShowAllFilesA; + QAction *mShowBurnFilesA; QActionGroup *mShowTreeGroup; QAction *mHoverPicsA; QAction *mHoverArchiveA; |