summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2013-02-07 14:08:52 +0100
committerArno <am@disconnect.de>2013-02-07 14:08:52 +0100
commit9fbf13241d8a2aa0698f23c8e8f0626f3f237fb3 (patch)
tree8f575d52a82d1bcb9afd91d7b18b61f8a38364c7
parentd9a730de4fd67671204aded5078f4bcf36fb4acb (diff)
downloadSheMov-9fbf13241d8a2aa0698f23c8e8f0626f3f237fb3.tar.gz
SheMov-9fbf13241d8a2aa0698f23c8e8f0626f3f237fb3.tar.bz2
SheMov-9fbf13241d8a2aa0698f23c8e8f0626f3f237fb3.zip
Revamp Show all Files Action
Change action to show all local movies, no favorites, no pictures, to ease selection of files to burn.
-rw-r--r--archivetreeview.cpp8
-rw-r--r--archivetreeview.h1
-rw-r--r--filestreemodel.cpp11
-rw-r--r--filestreemodel.h6
-rw-r--r--filestreewidget.cpp2
-rw-r--r--filestreewidget.h2
-rw-r--r--seriestreewidget.cpp2
-rw-r--r--shemov.cpp14
-rw-r--r--shemov.h2
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);
}
diff --git a/shemov.cpp b/shemov.cpp
index 085f8c9..73d016a 100644
--- a/shemov.cpp
+++ b/shemov.cpp
@@ -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());
diff --git a/shemov.h b/shemov.h
index 791415a..a96b02d 100644
--- a/shemov.h
+++ b/shemov.h
@@ -131,7 +131,7 @@ class SheMov : public QMainWindow {
QAction *mShowLocalA;
QAction *mShowArchivedA;
QAction *mShowNormalA;
- QAction *mShowAllFilesA;
+ QAction *mShowBurnFilesA;
QActionGroup *mShowTreeGroup;
QAction *mHoverPicsA;
QAction *mHoverArchiveA;