diff options
-rw-r--r-- | archivetreeview.cpp | 24 | ||||
-rw-r--r-- | archivetreeview.h | 12 | ||||
-rw-r--r-- | dbanalyzer.cpp | 28 | ||||
-rw-r--r-- | dbanalyzer.h | 19 | ||||
-rw-r--r-- | filepropertiesdialog.cpp | 15 | ||||
-rw-r--r-- | filepropertiesdialog.h | 15 | ||||
-rw-r--r-- | filestreewidget.cpp | 27 | ||||
-rw-r--r-- | filestreewidget.h | 4 | ||||
-rw-r--r-- | filesystemwidget.cpp | 13 | ||||
-rw-r--r-- | filesystemwidget.h | 18 | ||||
-rw-r--r-- | fileview.cpp | 11 | ||||
-rw-r--r-- | fileview.h | 2 | ||||
-rw-r--r-- | mappingtableeditor.cpp | 5 | ||||
-rw-r--r-- | mappingtableeditor.h | 9 | ||||
-rw-r--r-- | mappingtablewidget.cpp | 8 | ||||
-rw-r--r-- | mappingtablewidget.h | 10 | ||||
-rw-r--r-- | mappingtreewidget.cpp | 5 | ||||
-rw-r--r-- | mappingtreewidget.h | 11 | ||||
-rw-r--r-- | newmoviewizard.cpp | 14 | ||||
-rw-r--r-- | newmoviewizard.h | 10 | ||||
-rw-r--r-- | newpicsdialog.cpp | 25 | ||||
-rw-r--r-- | newpicsdialog.h | 10 | ||||
-rw-r--r-- | pictureswidget.cpp | 7 | ||||
-rw-r--r-- | seriesmetadatamodel.cpp | 9 | ||||
-rw-r--r-- | seriesmetadatamodel.h | 4 | ||||
-rw-r--r-- | seriestreewidget.cpp | 25 | ||||
-rw-r--r-- | seriestreewidget.h | 14 | ||||
-rw-r--r-- | shemov.cpp | 32 | ||||
-rw-r--r-- | shemov.h | 4 | ||||
-rw-r--r-- | smglobals.cpp | 2 | ||||
-rw-r--r-- | smtreeview.cpp | 9 | ||||
-rw-r--r-- | smtreeview.h | 2 |
32 files changed, 119 insertions, 284 deletions
diff --git a/archivetreeview.cpp b/archivetreeview.cpp index fbda038..2eb0b14 100644 --- a/archivetreeview.cpp +++ b/archivetreeview.cpp @@ -5,29 +5,11 @@ 2 of the License, or (at your option) any later version. */ -#include <QtWidgets/QTreeView> #include <QtWidgets/QSplitter> -#include <QtWidgets/QHBoxLayout> -#include <QtWidgets/QVBoxLayout> -#include <QItemSelectionModel> -#include <QAbstractItemModel> -#include <QItemSelection> -#include <QFileInfoList> #include <QSettings> -#include <QHash> -#include <QProcess> -#include <QtWidgets/QMessageBox> -#include <QSqlDatabase> -#include <QSqlQuery> -#include <QtWidgets/QMenu> #include <QtWidgets/QAction> -#include <QContextMenuEvent> -#include <QtWidgets/QLabel> -#include <QtWidgets/QPushButton> #include <QtWidgets/QHBoxLayout> -#include <QtWidgets/QVBoxLayout> #include <QProcess> -#include <QUrl> #include <QtWidgets/QMessageBox> #include <QClipboard> #include <QtWidgets/QApplication> @@ -35,8 +17,6 @@ #include "archivetreeview.h" #include "smglobals.h" -#include "smtreemodel.h" -#include "smtreeitem.h" #include "seriestreewidget.h" #include "filestreewidget.h" #include "filestreemodel.h" @@ -83,10 +63,6 @@ ArchiveTreeView::ArchiveTreeView(QWidget *parent) : QWidget(parent), mShowAllFil verticalSplitter->setStretchFactor(0, 3); verticalSplitter->setStretchFactor(1, 1); - // misc - mFilesWidget->filesTree()->setAlternatingRowColors(true); - mSeriesWidget->seriesTree()->setAlternatingRowColors(true); - // layout QHBoxLayout *mainLayout = new QHBoxLayout; QSplitter *splitter = new QSplitter; diff --git a/archivetreeview.h b/archivetreeview.h index 08173db..ac70f16 100644 --- a/archivetreeview.h +++ b/archivetreeview.h @@ -9,13 +9,6 @@ #define ARCHIVETREEVIEW_H #include <QtWidgets/QWidget> -#include <QModelIndexList> -#include <QList> -#include <QSqlDatabase> -#include <QtWidgets/QTreeView> - -#include "smtreemodel.h" -#include "smdialog.h" class SeriesTreeWidget; class FilesTreeWidget; @@ -26,11 +19,6 @@ class MappingTableModel; class NoCoverMovieDialog; class MetadataDisplay; class QItemSelection; -class QSqlQuery; -class QPushButton; -class QContextMenuEvent; -class QLabel; -class QAction; class ArchiveTreeView : public QWidget { diff --git a/dbanalyzer.cpp b/dbanalyzer.cpp index 90debeb..f9e3830 100644 --- a/dbanalyzer.cpp +++ b/dbanalyzer.cpp @@ -6,24 +6,16 @@ */ #include <QSqlQuery> -#include <QtWidgets/QTableWidget> -#include <QtWidgets/QTreeView> #include <QtWidgets/QPushButton> -#include <QtWidgets/QHBoxLayout> -#include <QtWidgets/QVBoxLayout> -#include <QMutexLocker> -#include <QtWidgets/QTableWidget> -#include <QModelIndex> #include <QtWidgets/QLabel> -#include <QColor> #include <QtWidgets/QMenu> -#include <QtWidgets/QAction> #include <QtWidgets/QStackedLayout> #include "dbanalyzer.h" #include "smtreemodel.h" #include "smtreeitem.h" #include "smglobals.h" +#include "smtreeview.h" DbAnalyzerDialog::DbAnalyzerDialog(QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f), mMarkMode(DbAnalyzer::NOMARKS), mCurrentView(0){ //create tab widget @@ -35,7 +27,7 @@ DbAnalyzerDialog::DbAnalyzerDialog(QWidget *parent, Qt::WindowFlags f) : QDialog //no actors QWidget *noActorsT = new QWidget; QStringList noActorsHeaders = QStringList() << tr("Series") << tr("Part/Subtitle") << tr("Series Part") << tr("Seriespart Id") << tr("Series Id") << tr("Seriespart"); - mNoActorsV = new QTreeView; + mNoActorsV = new SmTreeView; mNoActorsM = new SmTreeModel(noActorsHeaders, this); mNoActorsV->setModel(mNoActorsM); QVBoxLayout *noActorsL = new QVBoxLayout; @@ -52,12 +44,11 @@ DbAnalyzerDialog::DbAnalyzerDialog(QWidget *parent, Qt::WindowFlags f) : QDialog noActorsT->setLayout(noActorsL); mCurrentView = mNoActorsV; mMarkMode = DbAnalyzer::MARKS_ACTORS; - SmGlobals::instance()->treeWidgets().append(mNoActorsV); //no covers QWidget *noCoversT = new QWidget; QStringList noCoversHeaders = QStringList() << tr("Series") << tr("Part/Subtitle") << tr("Series Part") << tr("Seriespart Id") << tr("Series Id") << tr("Seriespart"); - mNoCoversV = new QTreeView; + mNoCoversV = new SmTreeView; mNoCoversM = new SmTreeModel(noCoversHeaders, this); mNoCoversV->setModel(mNoCoversM); QVBoxLayout *noCoversL = new QVBoxLayout; @@ -72,12 +63,11 @@ DbAnalyzerDialog::DbAnalyzerDialog(QWidget *parent, Qt::WindowFlags f) : QDialog mNoCoversV->setAlternatingRowColors(true); connect(mNoCoversV, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(noDataDoubleClicked(QModelIndex))); noCoversT->setLayout(noCoversL); - SmGlobals::instance()->treeWidgets().append(mNoCoversV); //stray actors QWidget *strayActorsT = new QWidget; QStringList strayActorsHeaders = QStringList() << tr("Actor") << tr("Actor Id") << tr("Count"); - mStrayActorsV = new QTreeView; + mStrayActorsV = new SmTreeView; mStrayActorsM = new SmTreeModel(strayActorsHeaders, this); mStrayActorsV->setModel(mStrayActorsM); QVBoxLayout *strayActorsL = new QVBoxLayout; @@ -88,12 +78,11 @@ DbAnalyzerDialog::DbAnalyzerDialog(QWidget *parent, Qt::WindowFlags f) : QDialog mStrayActorsV->setSelectionMode(QAbstractItemView::ExtendedSelection); mStrayActorsV->setAlternatingRowColors(true); strayActorsT->setLayout(strayActorsL); - SmGlobals::instance()->treeWidgets().append(mStrayActorsV); //stray genres QWidget *strayGenresT = new QWidget; QStringList strayGenresHeaders = QStringList() << tr("Genre") << tr("Genre Id") << tr("Count"); - mStrayGenresV = new QTreeView; + mStrayGenresV = new SmTreeView; mStrayGenresM = new SmTreeModel(strayGenresHeaders, this); mStrayGenresV->setModel(mStrayGenresM); QVBoxLayout *strayGenresL = new QVBoxLayout; @@ -104,7 +93,6 @@ DbAnalyzerDialog::DbAnalyzerDialog(QWidget *parent, Qt::WindowFlags f) : QDialog mStrayGenresV->setSelectionMode(QAbstractItemView::ExtendedSelection); mStrayGenresV->setAlternatingRowColors(true); strayGenresT->setLayout(strayGenresL); - SmGlobals::instance()->treeWidgets().append(mStrayGenresV); //buttons mCancel = new QPushButton(tr("Cancel")); @@ -214,7 +202,7 @@ void DbAnalyzerDialog::noDataDoubleClicked(const QModelIndex &idx){ } void DbAnalyzerDialog::deleteItems(){ - QTreeView *view = 0; + SmTreeView *view = 0; int deleteMode; switch(mTab->currentIndex()){ case 0: @@ -288,7 +276,7 @@ void DbAnalyzerDialog::deleteMarks(){ } } -void DbAnalyzerDialog::populate(QTreeView *view, SmTreeModel *model, const QList<QList<QVariant> > &data, const QHash<int, QVariant> &marks){ +void DbAnalyzerDialog::populate(SmTreeView *view, SmTreeModel *model, const QList<QList<QVariant> > &data, const QHash<int, QVariant> &marks){ if(data.isEmpty()){ return; } @@ -314,7 +302,7 @@ void DbAnalyzerDialog::populate(QTreeView *view, SmTreeModel *model, const QList } const QList<int> DbAnalyzerDialog::currentIds() const { - QTreeView *curView = qobject_cast<QTreeView*>(mCurrentView); + SmTreeView *curView = qobject_cast<SmTreeView*>(mCurrentView); Q_ASSERT(curView); QModelIndexList curIdxs = curView->selectionModel()->selectedRows(4); QList<int> retval; diff --git a/dbanalyzer.h b/dbanalyzer.h index eec9f5a..cc88bbc 100644 --- a/dbanalyzer.h +++ b/dbanalyzer.h @@ -9,18 +9,13 @@ #define DBANALYZER_H #include <QThread> -#include <QVariant> -#include <QList> -#include <QHash> #include <QtWidgets/QDialog> #include <QSqlDatabase> #include <QMutex> #include <QModelIndex> -class QSqlQuery; class QTabWidget; -class QTreeView; -class QPushButton; +class SmTreeView; class SmTreeModel; class DbAnalyzer; class QLabel; @@ -50,13 +45,13 @@ class DbAnalyzerDialog : public QDialog { void deleteMarks(); private: - void populate(QTreeView *view ,SmTreeModel *model, const QList<QList<QVariant> > &data, const QHash<int, QVariant> &marks = QHash<int, QVariant>()); + void populate(SmTreeView *view ,SmTreeModel *model, const QList<QList<QVariant> > &data, const QHash<int, QVariant> &marks = QHash<int, QVariant>()); const QList<int> currentIds() const; QTabWidget *mTab; - QTreeView *mNoActorsV; - QTreeView *mNoCoversV; - QTreeView *mStrayActorsV; - QTreeView *mStrayGenresV; + SmTreeView *mNoActorsV; + SmTreeView *mNoCoversV; + SmTreeView *mStrayActorsV; + SmTreeView *mStrayGenresV; SmTreeModel *mNoActorsM; SmTreeModel *mNoCoversM; SmTreeModel *mStrayActorsM; @@ -70,7 +65,7 @@ class DbAnalyzerDialog : public QDialog { QList<QString> mTotals; DbAnalyzer *mAnalyzer; int mMarkMode; - QTreeView *mCurrentView; + SmTreeView *mCurrentView; QStackedLayout *mButtonStack; }; diff --git a/filepropertiesdialog.cpp b/filepropertiesdialog.cpp index a36517a..a22076c 100644 --- a/filepropertiesdialog.cpp +++ b/filepropertiesdialog.cpp @@ -5,25 +5,19 @@ 2 of the License, or (at your option) any later version. */ -#include <QtWidgets/QVBoxLayout> #include <QtWidgets/QHBoxLayout> #include <QtWidgets/QLabel> -#include <QtWidgets/QTreeView> #include <QtWidgets/QPushButton> #include <QSettings> -#include <QColor> -#include <QVariant> -#include <QPalette> -#include <QtWidgets/QTabWidget> #include <QApplication> #include "filepropertiesdialog.h" #include "seriesmetadatamodel.h" -#include "smtreemodel.h" #include "smtreeitem.h" +#include "smtreeview.h" #include "helper.h" -FilePropertiesDialog::FilePropertiesDialog(int seriesPartId, QWidget *parent, Qt::WindowFlags f) : SmDialog(parent, f){ +FilePropertiesDialog::FilePropertiesDialog(/*int seriesPartId, */QWidget *parent, Qt::WindowFlags f) : SmDialog(parent, f){ //tab mTab = new QTabWidget; @@ -45,19 +39,16 @@ FilePropertiesDialog::FilePropertiesDialog(int seriesPartId, QWidget *parent, Qt //the view + model mModel = new SmTreeModel((QStringList() << QString() << QString()), this); - mView = new QTreeView; + mView = new SmTreeView; mView->setHeaderHidden(true); - mView->setAlternatingRowColors(true); mView->setEditTriggers(QAbstractItemView::NoEditTriggers); mView->setModel(mModel); streamDataLayout->addWidget(mView); streamData->setLayout(streamDataLayout); mTab->addTab(streamData, tr("Stream data")); - mView->setPalette(qApp->palette()); //metadata widget mMetadata = new MetadataWidget; - mMetadata->setSeriesPartId(seriesPartId); mTab->addTab(mMetadata, tr("Metadata")); //buttons diff --git a/filepropertiesdialog.h b/filepropertiesdialog.h index d03eb86..ee9aa96 100644 --- a/filepropertiesdialog.h +++ b/filepropertiesdialog.h @@ -8,32 +8,27 @@ #ifndef FILEPROPERTIESDIALOG_H #define FILEPROPERTIESDIALOG_H -#include <QList> -#include <QMap> - #include "smdialog.h" -class QPushButton; -class QTreeView; +class SmTreeView; class QLabel; class QTabWidget; class SmTreeModel; class MetadataWidget; -class QShowEvent; -class FilePropertiesDialog : public SmDialog -{ +class FilePropertiesDialog : public SmDialog { Q_OBJECT public: - explicit FilePropertiesDialog(int seriesPartId, QWidget *parent = 0, Qt::WindowFlags f = 0); + explicit FilePropertiesDialog(/*int seriesPartId, */QWidget *parent = 0, Qt::WindowFlags f = 0); void setFileName(const QString &fileName); void setStreamData(const QList<QMap<QString, QString> > &streamData); void addData(const QString &caption, const QMap<QString, QString> &data); + MetadataWidget *metaWidget() { return mMetadata; }; private: QTabWidget *mTab; MetadataWidget *mMetadata; - QTreeView *mView; + SmTreeView *mView; QPushButton *mOk; QPushButton *mCancel; QLabel *mDescriptionLabel; diff --git a/filestreewidget.cpp b/filestreewidget.cpp index 0bf50da..65564f6 100644 --- a/filestreewidget.cpp +++ b/filestreewidget.cpp @@ -33,6 +33,7 @@ #include <QDate> #include "filestreewidget.h" +#include "filepropertiesdialog.h" #include "smglobals.h" #include "filestreemodel.h" #include "seriestreewidget.h" @@ -55,6 +56,7 @@ FilesTreeWidget::FilesTreeWidget(QWidget *parent) : QWidget(parent), mSelectedSi mProxy->setSourceModel(mModel); mView->setModel(mProxy); mView->setSortingEnabled(true); + mPropDlg = new FilePropertiesDialog(this); QItemSelectionModel *selModel = mView->selectionModel(); connect(selModel, SIGNAL(selectionChanged(QItemSelection,QItemSelection)), this, SLOT(fileSelectionChanged())); connect(mView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(itemDoubleClicked(QModelIndex))); @@ -172,26 +174,26 @@ void FilesTreeWidget::fileProperties(){ } QString fullPath = real.data(FilesTreeModel::FullPathRole).toString(); QString mimeType = Helper::mimeType(fullPath); - FilePropertiesDialog dlg(real.data(FilesTreeModel::SeriesPartIdRole).toInt(), this); - if(mimeType.startsWith("video")){ - QList<QMap<QString, QString> > fileData = mModel->streamInfo(real); - dlg.setFileName(real.data(FilesTreeModel::FileNameRole).toString()); - dlg.setStreamData(fileData); + mPropDlg->metaWidget()->setSeriesPartId(real.data(FilesTreeModel::SeriesPartIdRole).toInt()); + if(mimeType.startsWith("video")){ + QList<QMap<QString, QString> > fileData = mModel->streamInfo(real); + mPropDlg->setFileName(real.data(FilesTreeModel::FileNameRole).toString()); + mPropDlg->setStreamData(fileData); }else if(mimeType.startsWith("image")){ QMap<QString, QString> imageData = mModel->pictureInfo(real); - dlg.addData("Image data", imageData); + mPropDlg->addData("Image data", imageData); QMap<QString, QString> textData = mModel->pictureMetaInfo(real); if(!textData.isEmpty()){ - dlg.addData("Meta data", textData); + mPropDlg->addData("Meta data", textData); } int fileType = real.data(FilesTreeModel::FileTypeRole).toInt(); QString fileTypeName = mModel->fileTypes().value(fileType); QString seriesName = real.data(FilesTreeModel::SeriesNameRole).toString(); QString seriesPart = QString::number(real.data(FilesTreeModel::SeriesPartRole).toInt()); QString label = QString(tr("%1\n%2 for %3 %4")).arg(real.data(FilesTreeModel::FileNameRole).toString()).arg(fileTypeName).arg(seriesName).arg(seriesPart); - dlg.setFileName(label); + mPropDlg->setFileName(label); } - dlg.exec(); + mPropDlg->exec(); } } @@ -361,7 +363,6 @@ void FilesTreeWidget::playItems(const QStringList &paths){ FilesTreeView::FilesTreeView(QWidget *parent) : SmTreeView("ui/headerpos", parent), mHoverPics(false){ setAttribute(Qt::WA_Hover); mHoverWin = new HoverWindow(this); - SmGlobals::instance()->treeWidgets().append(this); } void FilesTreeView::readSettings(){ @@ -389,7 +390,7 @@ void FilesTreeView::contextMenuEvent(QContextMenuEvent *event){ bool FilesTreeView::event(QEvent *e){ QHoverEvent *hEvent = static_cast<QHoverEvent*>(e); if(!hEvent){ - return QTreeView::event(e); + return SmTreeView::event(e); } QPoint hotSpot(hEvent->pos().x(), hEvent->pos().y() + mCursorOffest); QModelIndex curIdx = indexAt(hotSpot); @@ -433,7 +434,7 @@ bool FilesTreeView::event(QEvent *e){ if(e->type() == QEvent::HoverLeave){ return exitHover(); } - return QTreeView::event(e); + return SmTreeView::event(e); } bool FilesTreeView::exitHover(bool exitVal){ @@ -574,7 +575,7 @@ FileMoveDialog::FileMoveDialog(QPersistentModelIndex selected, QList<QPersistent QLabel *l1 = new QLabel(tr("Select destination")); QVBoxLayout *selectionLayout = new QVBoxLayout; selectionLayout->addWidget(l1); - mTree = new QTreeView; + mTree = new SmTreeView; mModel = static_cast<SeriesTreeModel*>(SmGlobals::instance()->model("SeriesModel")); mTree->setModel(mModel); selectionLayout->addWidget(mTree); diff --git a/filestreewidget.h b/filestreewidget.h index 6369300..abb2872 100644 --- a/filestreewidget.h +++ b/filestreewidget.h @@ -19,6 +19,7 @@ typedef QList<QPersistentModelIndex> PersistenModelIndexList; class FilesTreeView; class FilesTreeModel; +class FilePropertiesDialog; class FilesTreeSortModel; class SeriesTreeModel; class PictureViewer2; @@ -62,6 +63,7 @@ class FilesTreeWidget : public QWidget { SeriesTreeModel *mSeriesModel; PictureViewer2 *mPictureViewer; QModelIndexList mSelectedFiles; + FilePropertiesDialog *mPropDlg; qint64 mSelectedSize; }; @@ -112,7 +114,7 @@ class FileMoveDialog : public QDialog { private: QPushButton *mOk; QPushButton *mCancel; - QTreeView *mTree; + SmTreeView *mTree; SeriesTreeModel *mModel; QList<QPersistentModelIndex> mFiles; }; diff --git a/filesystemwidget.cpp b/filesystemwidget.cpp index dce3b19..7ded048 100644 --- a/filesystemwidget.cpp +++ b/filesystemwidget.cpp @@ -5,11 +5,8 @@ 2 of the License, or (at your option) any later version. */ -#include <QtWidgets/QFileSystemModel> -#include <QtWidgets/QTreeView> #include <QSettings> #include <QtWidgets/QSplitter> -#include <QtWidgets/QVBoxLayout> #include <QtWidgets/QHBoxLayout> #include <QtWidgets/QLineEdit> #include <QtWidgets/QLabel> @@ -17,9 +14,7 @@ #include <QProcess> #include <QtWidgets/QApplication> #include <QtWidgets/QMessageBox> -#include <QtWidgets/QAction> #include <QTextStream> -#include <QSqlQuery> #include <QClipboard> #include <QMimeData> #include <QUrl> @@ -30,7 +25,6 @@ #include "fileview.h" #include "shemoviconprovider.h" #include "filesystemfileproxy.h" -#include "helper.h" #include "pictureviewer2.h" #include "smglobals.h" #include "smdirmodel.h" @@ -41,7 +35,7 @@ FilesystemWidget::FilesystemWidget(QWidget *parent) : QWidget(parent), mClipboar mModel->setFilter(QDir::AllEntries | QDir::NoDot); mModel->setReadOnly(false); mIconProvider = new SheMovIconProvider; - mModel->setIconProvider(mIconProvider); + mModel->setIconProvider(mIconProvider); QStringList fHeaders = QStringList() << tr("Name") << tr("Size") << tr("Type") << tr("Created") << tr("Md5Sum") << tr("Dur./Size") << tr("Bitrate") << tr("Full Path") << tr("Present"); mFileModel = new SmDirModel(fHeaders, this); @@ -49,7 +43,7 @@ FilesystemWidget::FilesystemWidget(QWidget *parent) : QWidget(parent), mClipboar mDirProxy = new FilesystemDirProxy; mDirProxy->setSourceModel(mModel); - mDirView = new QTreeView; + mDirView = new SmTreeView; mDirView->setModel(mDirProxy); mDirView->setColumnHidden(1, true); mDirView->setColumnHidden(2, true); @@ -59,8 +53,6 @@ FilesystemWidget::FilesystemWidget(QWidget *parent) : QWidget(parent), mClipboar mDirView->setEditTriggers(QAbstractItemView::NoEditTriggers); mDirView->setSortingEnabled(true); mDirView->sortByColumn(0, Qt::AscendingOrder); - mDirView->setAlternatingRowColors(true); - SmGlobals::instance()->treeWidgets().append(mDirView); mFileView = new FileView; mFileProxy = new FilesystemFileProxy; @@ -74,7 +66,6 @@ FilesystemWidget::FilesystemWidget(QWidget *parent) : QWidget(parent), mClipboar mFileView->setSelectionMode(QAbstractItemView::ExtendedSelection); mFileView->setSelectionBehavior(QAbstractItemView::SelectRows); - mFileView->setAlternatingRowColors(true); mFileProxy->setDynamicSortFilter(true); connect(mFileView->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), mFileView, SLOT(selectedFilesChanged())); connect(mFileModel, SIGNAL(modelAboutToBeReset()), mFileView, SLOT(saveSelection())); diff --git a/filesystemwidget.h b/filesystemwidget.h index eaa6348..62c42db 100644 --- a/filesystemwidget.h +++ b/filesystemwidget.h @@ -9,25 +9,17 @@ #define FILESYSTEMWIDGET_H #include <QtWidgets/QWidget> -#include <QPair> #include <QtWidgets/QFileSystemModel> -#include <QHash> #include <QSqlDatabase> #include <QDateTime> -class QTreeView; +class SmTreeView; class FilesystemDirProxy; class FileView; -class QModelIndex; class FilesystemFileProxy; class QLineEdit; -class QFileInfo; -class QAction; -class QVariant; class PictureViewer2; -class QStringList; class FileSystemModel; -class QSqlQuery; class SheMovIconProvider; class SmDirModel; @@ -39,7 +31,7 @@ class FilesystemWidget : public QWidget { ~FilesystemWidget() {} FileView *fileView() { return mFileView; } FilesystemFileProxy *fileProxy() { return mFileProxy; } - FileSystemModel *dirModel() { return mModel; } + FileSystemModel *dirModel() { return mModel; } SmDirModel *fileModel() { return mFileModel; } const QString windowTitle() const { return mWindowTitle; } PictureViewer2 *pictureViewer() { return mPicViewer; } @@ -84,9 +76,9 @@ class FilesystemWidget : public QWidget { QPair<QString, QStringList> programData(const QString &prefix, const QString &preferred); QStringList selectedFiles(); QStringList mExpandedDirs; - FileSystemModel *mModel; + FileSystemModel *mModel; SmDirModel *mFileModel; - QTreeView *mDirView; + SmTreeView *mDirView; FileView *mFileView; FilesystemDirProxy *mDirProxy; FilesystemFileProxy *mFileProxy; @@ -104,7 +96,7 @@ class FileSystemModel : public QFileSystemModel { Q_OBJECT public: FileSystemModel(QObject *parent = 0); - ~FileSystemModel() {}; + ~FileSystemModel() {} public slots: void markForClipboard(const QPersistentModelIndex &idx); diff --git a/fileview.cpp b/fileview.cpp index a6108bb..1720552 100644 --- a/fileview.cpp +++ b/fileview.cpp @@ -42,13 +42,12 @@ FileView::FileView(QWidget *parent) : SmTreeView("ui/fsheaderpos", parent), mDel mHoverWin = new HoverWindow(this); QSize curSize = SmGlobals::instance()->cursorSize(); mHoverWin->setHoverOffset(QPoint(curSize.width() + 30, 0)); - SmGlobals::instance()->treeWidgets().append(this); } void FileView::setModel(QAbstractItemModel *model){ mProxy = qobject_cast<FilesystemFileProxy*>(model); mModel = qobject_cast<SmDirModel*>(mProxy->sourceModel()); - QTreeView::setModel(model); + SmTreeView::setModel(model); } const QVariant FileView::duration() const { @@ -119,7 +118,7 @@ void FileView::writeConfig(){ } void FileView::closeEditor(QWidget *editor, QAbstractItemDelegate::EndEditHint hint){ - QTreeView::closeEditor(editor, hint); + SmTreeView::closeEditor(editor, hint); QSortFilterProxyModel *proxy = qobject_cast<QSortFilterProxyModel*>(model()); QModelIndex sourceIdx = proxy->mapToSource(currentIndex()); emit editorClosed(sourceIdx); @@ -137,7 +136,7 @@ void FileView::contextMenuEvent(QContextMenuEvent *e){ void FileView::keyPressEvent(QKeyEvent *e){ if(!hasFocus()){ - QTreeView::keyPressEvent(e); + SmTreeView::keyPressEvent(e); return; } switch(e->key()){ @@ -155,7 +154,7 @@ void FileView::keyPressEvent(QKeyEvent *e){ e->accept(); break; default: - QTreeView::keyPressEvent(e); + SmTreeView::keyPressEvent(e); } } @@ -222,7 +221,7 @@ bool FileView::event(QEvent *e){ }else if(e->type() == QEvent::HoverLeave){ return exitHover(); } - return QTreeView::event(e); + return SmTreeView::event(e); } void FileView::selectedFilesChanged(){ @@ -8,8 +8,6 @@ #ifndef FILEVIEW_H #define FILEVIEW_H -#include <QtWidgets/QTreeView> - #include "smtreeview.h" #include "helper.h" diff --git a/mappingtableeditor.cpp b/mappingtableeditor.cpp index f7ac64c..1f6d19d 100644 --- a/mappingtableeditor.cpp +++ b/mappingtableeditor.cpp @@ -5,17 +5,14 @@ 2 of the License, or (at your option) any later version. */ -#include <QSqlDatabase> #include <QSqlQuery> #include <QContextMenuEvent> #include <QtWidgets/QMenu> -#include <QtWidgets/QVBoxLayout> #include <QtWidgets/QHBoxLayout> #include <QtWidgets/QLineEdit> #include <QtWidgets/QPushButton> #include <QtWidgets/QLabel> #include <QtWidgets/QMessageBox> -#include <QtWidgets/QAction> #include <QSortFilterProxyModel> #include "mappingtableeditor.h" @@ -129,7 +126,7 @@ void MappingTableEditor::editItem(){ } //view -MappingTableEditorView::MappingTableEditorView(QWidget *parent) : QTreeView(parent) {} +MappingTableEditorView::MappingTableEditorView(QWidget *parent) : SmTreeView(parent) {} void MappingTableEditorView::contextMenuEvent(QContextMenuEvent *e){ QMenu contextMenu(this); diff --git a/mappingtableeditor.h b/mappingtableeditor.h index a87e636..cbdacf9 100644 --- a/mappingtableeditor.h +++ b/mappingtableeditor.h @@ -8,18 +8,13 @@ #ifndef MAPPINGTABLEEDITOR_H #define MAPPINGTABLEEDITOR_H -#include <QtWidgets/QTreeView> #include <QSqlDatabase> #include "smdialog.h" #include "smtreemodel.h" #include "smtreeitem.h" +#include "smtreeview.h" -class QSqlQuery; -class QContextMenuEvent; -class QPushButton; -class QLineEdit; -class QAction; class MappingTableEditorView; class MappingTableEditorModel; @@ -46,7 +41,7 @@ class MappingTableEditor : public SmDialog { MappingTableEditorModel *mModel; }; -class MappingTableEditorView : public QTreeView { +class MappingTableEditorView : public SmTreeView { Q_OBJECT public: explicit MappingTableEditorView(QWidget *parent = 0); diff --git a/mappingtablewidget.cpp b/mappingtablewidget.cpp index 991b09d..593fd75 100644 --- a/mappingtablewidget.cpp +++ b/mappingtablewidget.cpp @@ -5,11 +5,8 @@ 2 of the License, or (at your option) any later version. */ -#include <QIcon> -#include <QtWidgets/QTreeView> #include <QtWidgets/QPushButton> #include <QtWidgets/QLineEdit> -#include <QtWidgets/QHBoxLayout> #include <QtWidgets/QVBoxLayout> #include <QtWidgets/QLabel> #include <QtWidgets/QCompleter> @@ -22,13 +19,12 @@ MappingTableWidget::MappingTableWidget(const QString &table, QWidget *parent) : QWidget(parent), mTable(table), mCurrentId(-1){ //the view - mView = new QTreeView; + mView = new SmTreeView; mView->setHeaderHidden(true); mModel = new MappingTableItemModel(this); mModel->setHeaderData(0, Qt::Horizontal, mTable); mView->setModel(mModel); mView->setAlternatingRowColors(true); - SmGlobals::instance()->treeWidgets().append(mView); //mapping model mMappingModel = static_cast<MappingTableModel*>(SmGlobals::instance()->model(mTable)); @@ -169,7 +165,7 @@ QModelIndex MappingTableItemModel::find(const QString &value) const{ MappingTableResultDialog::MappingTableResultDialog(const QStringList &results, QWidget *parent, Qt::WindowFlags f) : SmDialog(parent, f){ mModel = new QStringListModel(results, this); - mView = new QTreeView(this); + mView = new SmTreeView(this); mView->setModel(mModel); mView->setRootIsDecorated(false); mView->setSelectionMode(QAbstractItemView::SingleSelection); diff --git a/mappingtablewidget.h b/mappingtablewidget.h index 7c9e893..787d7f6 100644 --- a/mappingtablewidget.h +++ b/mappingtablewidget.h @@ -13,12 +13,8 @@ #include <QIcon> #include "smdialog.h" +#include "smtreeview.h" -class QTreeView; -class QLineEdit; -class QPushButton; -class QLabel; -class QComboBox; class MappingTableItemModel; class MappingTableModel; @@ -39,7 +35,7 @@ class MappingTableWidget : public QWidget{ void removeItem(); private: - QTreeView *mView; + SmTreeView* mView; QPushButton *mAddItem; QPushButton *mRemoveItem; QPushButton *mSearchItem; @@ -79,7 +75,7 @@ class MappingTableResultDialog : public SmDialog { void accept(); private: - QTreeView *mView; + SmTreeView *mView; QStringListModel *mModel; QPushButton *mOk; QPushButton *mCancel; diff --git a/mappingtreewidget.cpp b/mappingtreewidget.cpp index e026537..39bece7 100644 --- a/mappingtreewidget.cpp +++ b/mappingtreewidget.cpp @@ -44,7 +44,6 @@ MappingTreeWidget::MappingTreeWidget(QWidget *parent) : QWidget(parent){ mTree->setColumnHidden(4, true); mTree->setAlternatingRowColors(true); mTree->expandAll(); - SmGlobals::instance()->treeWidgets().append(mTree); connect(mModel, SIGNAL(needExpansion()), mTree, SLOT(expandAll())); connect(mTree->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), this, SLOT(selectionChanged())); mTypeBox = new QComboBox; @@ -257,7 +256,7 @@ const QModelIndex MappingTreeWidget::selected() const{ } -MappingTreeView::MappingTreeView(QWidget *parent) : QTreeView(parent) {} +MappingTreeView::MappingTreeView(QWidget *parent) : SmTreeView(parent) {} void MappingTreeView::contextMenuEvent(QContextMenuEvent *e){ QMenu ctxMenu(this); @@ -265,7 +264,7 @@ void MappingTreeView::contextMenuEvent(QContextMenuEvent *e){ ctxMenu.exec(e->globalPos()); } -MappingTreeResultView::MappingTreeResultView(QWidget *parent) : QTreeView(parent) { +MappingTreeResultView::MappingTreeResultView(QWidget *parent) : SmTreeView(parent) { setAlternatingRowColors(true); setPalette(qApp->palette()); } diff --git a/mappingtreewidget.h b/mappingtreewidget.h index 1bd77f4..d72dffa 100644 --- a/mappingtreewidget.h +++ b/mappingtreewidget.h @@ -8,19 +8,16 @@ #ifndef MAPPINGTREEWIDGET_H #define MAPPINGTREEWIDGET_H -#include <QtWidgets/QWidget> -#include <QtWidgets/QTreeView> #include <QtWidgets/QDialog> +#include "smtreeview.h" + class MappingTreeView; class MappingTreeModel; class QComboBox; -class QPushButton; -class QLabel; class QCheckBox; class QSortFilterProxyModel; class QStringListModel; -class QAction; class MappingTreeResultModel; // defined in mappingtreemodel.h @@ -66,7 +63,7 @@ class MappingTreeWidget : public QWidget { QAction *mMoveChildA; }; -class MappingTreeView : public QTreeView { +class MappingTreeView : public SmTreeView { Q_OBJECT public: MappingTreeView(QWidget *parent = 0); @@ -75,7 +72,7 @@ class MappingTreeView : public QTreeView { virtual void contextMenuEvent(QContextMenuEvent *e); }; -class MappingTreeResultView : public QTreeView { +class MappingTreeResultView : public SmTreeView { Q_OBJECT public: explicit MappingTreeResultView(QWidget *parent = 0); diff --git a/newmoviewizard.cpp b/newmoviewizard.cpp index d098f87..1115145 100644 --- a/newmoviewizard.cpp +++ b/newmoviewizard.cpp @@ -6,23 +6,15 @@ */ #include <QtWidgets/QLabel> -#include <QtWidgets/QTreeView> -#include <QtWidgets/QHBoxLayout> -#include <QtWidgets/QVBoxLayout> #include <QtWidgets/QPushButton> #include <QtWidgets/QComboBox> #include <QtWidgets/QLineEdit> #include <QtWidgets/QSpinBox> -#include <QSettings> #include <QtWidgets/QFileDialog> -#include <QFileInfo> -#include <QLocale> #include <QtWidgets/QCompleter> #include <QtWidgets/QCheckBox> #include <QtWidgets/QMessageBox> -#include <QFile> #include <QSettings> -#include <QtWidgets/QFormLayout> #include <QDate> #include <QtWidgets/QPlainTextEdit> #include <QtWidgets/QFormLayout> @@ -30,9 +22,7 @@ #include "newmoviewizard.h" #include "smtreeitem.h" #include "seriestreemodel.h" -#include "filestreemodel.h" #include "smglobals.h" -#include "mappingtablewidget.h" #include "mappingtablemodel.h" #include "seriesmetadatamodel.h" #include "filestreemodel.h" @@ -217,11 +207,9 @@ void MovieInfoPage::setupGui(){ initModel(); //files view - mFileView = new QTreeView; + mFileView = new SmTreeView; mFileView->setModel(mFileModel); connect(mFileView->selectionModel(), SIGNAL(currentRowChanged(QModelIndex,QModelIndex)), this, SLOT(fileSelectionChanged(QModelIndex,QModelIndex))); - mFileView->setAlternatingRowColors(true); - SmGlobals::instance()->treeWidgets().append(mFileView); //add + remove files QHBoxLayout *fileButtonLayout = new QHBoxLayout; diff --git a/newmoviewizard.h b/newmoviewizard.h index 9717a2d..ecc416a 100644 --- a/newmoviewizard.h +++ b/newmoviewizard.h @@ -8,25 +8,17 @@ #ifndef NEWMOVIEWIZARD_H #define NEWMOVIEWIZARD_H -#include <QtWidgets/QWizard> #include <QtWidgets/QWizardPage> -#include <QHash> -#include <QList> #include "smtreemodel.h" #include "mappingtablewidget.h" -class QTreeView; -class QLineEdit; class QSpinBox; -class QPushButton; class QComboBox; class QCheckBox; -class QStringListModel; class QPlainTextEdit; class SeriesMetadataModel; class WizardTreeModel; -class SmTreeItem; class MovieInfoPage; class MovieMappingPage; class MovieMetadataPage; @@ -78,7 +70,7 @@ class MovieInfoPage : public QWizardPage { private: void setupGui(); - QTreeView *mFileView; + SmTreeView *mFileView; QLineEdit *mTitle; QLineEdit *mSubtitle; QSpinBox *mSeriesNo; diff --git a/newpicsdialog.cpp b/newpicsdialog.cpp index 37a9cba..36fdfe1 100644 --- a/newpicsdialog.cpp +++ b/newpicsdialog.cpp @@ -5,36 +5,24 @@ 2 of the License, or (at your option) any later version. */ -#include <QFileInfo> -#include <QSqlDatabase> #include <QSqlQuery> -#include <QtWidgets/QLabel> -#include <QtWidgets/QTreeView> #include <QSortFilterProxyModel> #include <QtWidgets/QPushButton> #include <QSettings> -#include <QDir> #include <QtWidgets/QFileDialog> -#include <QPersistentModelIndex> -#include <QtWidgets/QHBoxLayout> #include <QtWidgets/QVBoxLayout> -#include <QApplication> #include "newpicsdialog.h" #include "smtreeitem.h" #include "helper.h" #include "mappingtreewidget.h" #include "mappingtreemodel.h" +#include "smglobals.h" NewPicsDialog::NewPicsDialog(QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f) { setupDlg(); } -NewPicsDialog::NewPicsDialog(const QStringList &files, QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f){ - setupDlg(); - addFiles(files); -} - void NewPicsDialog::setupDlg(){ //setup database mDb = QSqlDatabase::database("treedb"); @@ -45,16 +33,14 @@ void NewPicsDialog::setupDlg(){ //files widget mFilesWidget = new QWidget; - mFilesV = new QTreeView; + mFilesV = new SmTreeView; mFilesProxy = new QSortFilterProxyModel(this); mFilesModel = new NewPicFilesModel(QStringList() << tr("Filename") << tr("Size") << tr("Val.") << tr("Md5") << tr("Mime type") << tr("Full path"), this); mFilesProxy->setSourceModel(mFilesModel); mFilesV->setModel(mFilesProxy); mFilesV->setSortingEnabled(true); - mFilesV->setAlternatingRowColors(true); mFilesV->setColumnHidden(2, true); mFilesV->setAlternatingRowColors(true); - mFilesV->setPalette(qApp->palette()); mAddFiles = new QPushButton(tr("Select...")); connect(mAddFiles, SIGNAL(clicked()), this, SLOT(selectFiles())); mRemoveFiles = new QPushButton(tr("Remove")); @@ -118,6 +104,13 @@ void NewPicsDialog::addFiles(const QStringList &files){ } } +void NewPicsDialog::clearFiles(){ + mFilesV->setSortingEnabled(false); + SmTreeItem *rootItem = new SmTreeItem(NewPicFilesModel::NumFields); + mFilesModel->setRoot(rootItem); + mFilesV->setSortingEnabled(true); +} + void NewPicsDialog::removeFiles(){ QModelIndexList selected = mFilesV->selectionModel()->selectedRows(); if(selected.isEmpty()){ diff --git a/newpicsdialog.h b/newpicsdialog.h index 148795a..87db4f3 100644 --- a/newpicsdialog.h +++ b/newpicsdialog.h @@ -10,17 +10,13 @@ #include <QtWidgets/QDialog> #include <QSqlDatabase> -#include <QtWidgets/QTreeView> #include "smtreemodel.h" class QTabWidget; -class QSqlDatabase; -class QSqlQuery; -class QTreeView; +class SmTreeView; class NewPicFilesModel; class QSortFilterProxyModel; -class QPushButton; class MappingTreeWidget; class MappingEditWidget; @@ -30,12 +26,12 @@ class NewPicsDialog : public QDialog { Q_OBJECT public: explicit NewPicsDialog(QWidget *parent = 0, Qt::WindowFlags f = 0); - explicit NewPicsDialog(const QStringList &files, QWidget *parent = 0, Qt::WindowFlags f = 0); public slots: void selectFiles(); void removeFiles(); void addFiles(const QStringList &files); + void clearFiles(); void accept(); private: @@ -43,7 +39,7 @@ class NewPicsDialog : public QDialog { QTabWidget *mTab; QWidget *mFilesWidget; MappingEditWidget *mMappingEditWidget; - QTreeView *mFilesV; + SmTreeView *mFilesV; NewPicFilesModel *mFilesModel; QSortFilterProxyModel *mFilesProxy; QPushButton *mAddFiles; diff --git a/pictureswidget.cpp b/pictureswidget.cpp index 7951df5..287c493 100644 --- a/pictureswidget.cpp +++ b/pictureswidget.cpp @@ -154,7 +154,6 @@ PictureView::PictureView(QWidget *parent) : SmTreeView("ui/picheaderpos", parent setAlternatingRowColors(true); setColumnHidden(1, true); setColumnHidden(4, true); - SmGlobals::instance()->treeWidgets().append(this); } void PictureView::mappingChanged(int pMapId){ @@ -214,11 +213,11 @@ void PictureView::hideEvent(QHideEvent *){ bool PictureView::event(QEvent *e){ if(e->type() == QEvent::Leave){ mHoverWin->setVisible(false); - return QTreeView::event(e); + return SmTreeView::event(e); } QHoverEvent *hEvent = static_cast<QHoverEvent*>(e); if(!hEvent){ - return QTreeView::event(e); + return SmTreeView::event(e); } QPoint hotSpot(hEvent->pos().x(), hEvent->pos().y() + mCursorOffset); QModelIndex curIdx = indexAt(hotSpot); @@ -251,7 +250,7 @@ bool PictureView::event(QEvent *e){ return true; } } - return QTreeView::event(e); + return SmTreeView::event(e); } void PictureView::contextMenuEvent(QContextMenuEvent *e){ diff --git a/seriesmetadatamodel.cpp b/seriesmetadatamodel.cpp index d00dc40..21a9c3d 100644 --- a/seriesmetadatamodel.cpp +++ b/seriesmetadatamodel.cpp @@ -5,7 +5,6 @@ 2 of the License, or (at your option) any later version. */ -#include <QSqlDatabase> #include <QSqlQuery> #include <QtWidgets/QSpinBox> #include <QtWidgets/QLineEdit> @@ -13,15 +12,12 @@ #include <QtWidgets/QPlainTextEdit> #include <QtWidgets/QDateEdit> #include <QtWidgets/QFormLayout> -#include <QtWidgets/QVBoxLayout> #include <QtWidgets/QLabel> #include <QtWidgets/QGroupBox> -#include <QSettings> -#include <QColor> -#include <QtWidgets/QTreeView> #include "seriesmetadatamodel.h" #include "smtreeitem.h" +#include "smtreeview.h" #include "smglobals.h" #include "helper.h" @@ -284,7 +280,7 @@ MetadataDisplay::MetadataDisplay(QWidget *parent) : QWidget(parent){ //display QGroupBox *gb = new QGroupBox(tr("Metadata")); QHBoxLayout *gbLayout = new QHBoxLayout; - mDisplay = new QTreeView; + mDisplay = new SmTreeView; mDisplay->setModel(mModel); mDisplay->setSelectionBehavior(QAbstractItemView::SelectRows); mDisplay->setAlternatingRowColors(true); @@ -296,7 +292,6 @@ MetadataDisplay::MetadataDisplay(QWidget *parent) : QWidget(parent){ QVBoxLayout *mainLayout = new QVBoxLayout; mainLayout->addWidget(gb); setLayout(mainLayout); - SmGlobals::instance()->treeWidgets().append(mDisplay); } void MetadataDisplay::setSeriesPartId(int seriesPartId){ diff --git a/seriesmetadatamodel.h b/seriesmetadatamodel.h index 2bf0665..4aaa3e1 100644 --- a/seriesmetadatamodel.h +++ b/seriesmetadatamodel.h @@ -19,7 +19,7 @@ class QLineEdit; class QPlainTextEdit; class QDateEdit; class QLabel; -class QTreeView; +class SmTreeView; #include "smtreemodel.h" @@ -96,7 +96,7 @@ class MetadataDisplay : public QWidget { private: SeriesMetadataModel *mModel; - QTreeView *mDisplay; + SmTreeView *mDisplay; }; diff --git a/seriestreewidget.cpp b/seriestreewidget.cpp index b977c08..096d814 100644 --- a/seriestreewidget.cpp +++ b/seriestreewidget.cpp @@ -5,41 +5,26 @@ 2 of the License, or (at your option) any later version. */ -#include <QtWidgets/QHBoxLayout> -#include <QtWidgets/QVBoxLayout> #include <QtWidgets/QPushButton> -#include <QtWidgets/QLineEdit> #include <QtWidgets/QLabel> -#include <QSortFilterProxyModel> -#include <QRegExp> -#include <QContextMenuEvent> #include <QtWidgets/QMenu> -#include <QtWidgets/QAction> #include <QtWidgets/QMessageBox> -#include <QSettings> #include <QtWidgets/QFileDialog> #include <QSettings> -#include <QFileInfo> #include <QtWidgets/QComboBox> #include <QtWidgets/QInputDialog> -#include <QFile> -#include <QEvent> #include <QHoverEvent> -#include <QPalette> #include <QtWidgets/QCompleter> #include <QStringListModel> #include <QSqlQuery> -#include <QSqlDatabase> #include <QThread> #include <QtWidgets/QGroupBox> #include <QtWidgets/QFormLayout> #include <QtWidgets/QCheckBox> #include <QtWidgets/QSpinBox> -#include <QFontMetrics> #include <QtWidgets/QApplication> #include "seriestreewidget.h" -#include "smtreemodel.h" #include "smglobals.h" #include "seriestreemodel.h" #include "filestreemodel.h" @@ -396,10 +381,9 @@ void SeriesTreeWidget::setFilterMode(int mode){ mCompleterProducerThread->start(); } -SeriesTreeView::SeriesTreeView(QWidget *parent) : QTreeView(parent), mHover(false) { +SeriesTreeView::SeriesTreeView(QWidget *parent) : SmTreeView(parent), mHover(false) { setAttribute(Qt::WA_Hover); mHoverWin = new HoverWindow(this); - SmGlobals::instance()->treeWidgets().append(this); readSettings(); } @@ -421,7 +405,7 @@ void SeriesTreeView::contextMenuEvent(QContextMenuEvent *e){ bool SeriesTreeView::event(QEvent *e){ QHoverEvent *hEvent = dynamic_cast<QHoverEvent*>(e); if(!hEvent){ - return QTreeView::event(e); + return SmTreeView::event(e); } if(!mHover){ return true; @@ -444,8 +428,7 @@ bool SeriesTreeView::event(QEvent *e){ if(curIdx != mCurHover){ mCurHover = curIdx; mHoverWin->setContent(curIdx.data(Qt::DisplayRole).toString(), children(curIdx)); - //mHoverWin->setVisible(false); - mHoverWin->setPos(); + mHoverWin->setPos(); mHoverWin->setVisible(true); return true; }else{ @@ -456,7 +439,7 @@ bool SeriesTreeView::event(QEvent *e){ if(e->type() == QEvent::HoverLeave){ return exitHover(); } - return QTreeView::event(e); + return SmTreeView::event(e); } bool SeriesTreeView::exitHover(bool exitVal){ diff --git a/seriestreewidget.h b/seriestreewidget.h index 39de162..9740c02 100644 --- a/seriestreewidget.h +++ b/seriestreewidget.h @@ -9,30 +9,20 @@ #define SERIESTREEWIDGET_H #include <QtWidgets/QWidget> -#include <QtWidgets/QTreeView> #include <QSortFilterProxyModel> #include <QSqlDatabase> -#include <QHash> -#include <QPersistentModelIndex> #include "smdialog.h" +#include "smtreeview.h" -class QLineEdit; -class QPushButton; -class QSortFilterProxyModel; class QComboBox; -class QEvent; -class QLabel; class QCompleter; class QStringListModel; -class QSqlQuery; -class QThread; class QCheckBox; class QSpinBox; class SeriesTreeModel; class SeriesTreeView; class SeriesTreeSortModel; -class HoverWindow; class FilesTreeModel; class AddCoverDialog; class HoverWindow; @@ -87,7 +77,7 @@ class SeriesTreeWidget : public QWidget { QString mOldFilterText; }; -class SeriesTreeView : public QTreeView { +class SeriesTreeView : public SmTreeView { Q_OBJECT public: explicit SeriesTreeView(QWidget *parent = 0); @@ -59,6 +59,7 @@ #include "pictureviewer2.h" #include "helper.h" #include "smdirmodel.h" +#include "smtreeview.h" SheMov::SheMov(QWidget *parent, Qt::WindowFlags flags) : QMainWindow(parent, flags), mOpenWithGroupFS(0), mOpenWithGroupAV(0) { //application icon @@ -104,7 +105,7 @@ SheMov::SheMov(QWidget *parent, Qt::WindowFlags flags) : QMainWindow(parent, fla connect(mPicWidget->picView(), SIGNAL(selectedSize(qint64)), this, SLOT(setSize(qint64))); PictureViewer2 *picViewer = SmGlobals::instance()->pictureViewer(); - //newmoviewizard + dbanalyzer + //newmoviewizard + dbanalyzer + newpicsdialog splash.showMessage(tr("Creating misc. Dialogs..."), Qt::AlignHCenter, Qt::yellow); qApp->processEvents(); mNewMovieWizard = new NewMovieWizard(this); @@ -112,6 +113,7 @@ SheMov::SheMov(QWidget *parent, Qt::WindowFlags flags) : QMainWindow(parent, fla mDbAnalyzerDialog = new DbAnalyzerDialog(this); connect(mDbAnalyzerDialog, SIGNAL(partClicked(int, int)), mATree, SLOT(selectMoviePart(int, int))); connect(mDbAnalyzerDialog, SIGNAL(delItems(int,QList<int>&)), this, SLOT(analyzeDelete(int,QList<int>&))); + mNewPicsDialog = new NewPicsDialog(this); QVBoxLayout *mainLayout = new QVBoxLayout; mainLayout->addWidget(mTab); @@ -144,6 +146,7 @@ SheMov::SheMov(QWidget *parent, Qt::WindowFlags flags) : QMainWindow(parent, fla QWidget *centralWidget = new QWidget; centralWidget->setLayout(mainLayout); setCentralWidget(centralWidget); + show(); splash.finish(this); mATree->readSettings(); @@ -398,8 +401,6 @@ void SheMov::createActions(){ connect(mConsistencyA, SIGNAL(triggered()), this, SLOT(checkConsistency())); mAnalyzerA = new QAction(QIcon(":/higheels.png"), tr("Analyze Db..."), this); connect(mAnalyzerA, SIGNAL(triggered()), this, SLOT(analyzeDb())); - mMappingEditorA = new QAction(tr("Mapping editor..."), this); - connect(mMappingEditorA, SIGNAL(triggered()), this, SLOT(mappingEditor())); mNewPicsA = new QAction(tr("Archive pics...."), this); connect(mNewPicsA, SIGNAL(triggered()), this, SLOT(newPicsDialog())); @@ -765,7 +766,7 @@ void SheMov::createMenus(){ fileMenu->addSeparator(); fileMenu->addAction(mConsistencyA); fileMenu->addAction(mAnalyzerA); - fileMenu->addAction(mMappingEditorA); + //fileMenu->addAction(mMappingEditorA); fileMenu->addSeparator(); fileMenu->addAction(mQuitA); menuBar()->addMenu(fileMenu); @@ -1110,9 +1111,11 @@ void SheMov::createPalette(){ pal.setColor(QPalette::Base, Qt::white); pal.setColor(QPalette::AlternateBase, Qt::white); } - qApp->setPalette(pal); foreach(QWidget *w, SmGlobals::instance()->treeWidgets()){ - w->setPalette(pal); + SmTreeView *aiv = qobject_cast<SmTreeView*>(w); + if(aiv){ + aiv->setPalette(pal); + } } } @@ -1171,18 +1174,8 @@ void SheMov::editMappings(QString table){ ed.exec(); } -void SheMov::mappingEditor(){ - QDialog dlg(this); - QHBoxLayout *dlgLayout = new QHBoxLayout; - MappingTreeWidget *mtw = new MappingTreeWidget; - dlgLayout->addWidget(mtw); - dlg.setLayout(dlgLayout); - dlg.exec(); -} - void SheMov::newPicsDialog(){ - NewPicsDialog npd(this); - npd.exec(); + mNewPicsDialog->exec(); } void SheMov::newPicsDialogWithFiles(){ @@ -1194,6 +1187,7 @@ void SheMov::newPicsDialogWithFiles(){ foreach(QModelIndex idx, selected){ files << idx.data(SmDirModel::FullPathRole).toString(); } - NewPicsDialog npd(files, this); - npd.exec(); + mNewPicsDialog->clearFiles(); + mNewPicsDialog->addFiles(files); + mNewPicsDialog->exec(); } @@ -27,6 +27,7 @@ class DbAnalyzerDialog; class MappingTreeWidget; class PicturesWidget; class SmTreeModel; +class NewPicsDialog; class SheMov : public QMainWindow { Q_OBJECT @@ -57,7 +58,6 @@ class SheMov : public QMainWindow { void checkMount(bool mounted); void toggleFilterGroup(bool checked); void editMappings(QString table); - void mappingEditor(); void newPicsDialog(); void newPicsDialogWithFiles(); @@ -111,7 +111,6 @@ class SheMov : public QMainWindow { QAction *mArchiveSelectedPicsA; QAction *mConsistencyA; QAction *mAnalyzerA; - QAction *mMappingEditorA; QAction *mNewPicsA; QAction *mHoverDirectoriesA; @@ -217,6 +216,7 @@ class SheMov : public QMainWindow { FilesystemWidget *mFSWidget; ArchiveTreeView *mATree; NewMovieWizard *mNewMovieWizard; + NewPicsDialog *mNewPicsDialog; DbAnalyzerDialog *mDbAnalyzerDialog; PicturesWidget *mPicWidget; }; diff --git a/smglobals.cpp b/smglobals.cpp index 9240bf2..9f52854 100644 --- a/smglobals.cpp +++ b/smglobals.cpp @@ -1,4 +1,4 @@ - /* +/* This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version diff --git a/smtreeview.cpp b/smtreeview.cpp index 36d7c07..405f6a0 100644 --- a/smtreeview.cpp +++ b/smtreeview.cpp @@ -11,9 +11,18 @@ #include <QActionGroup> #include "smtreeview.h" +#include "smglobals.h" + +SmTreeView::SmTreeView(QWidget *parent) : QTreeView(parent) { + header()->setSectionResizeMode(QHeaderView::ResizeToContents); + SmGlobals::instance()->treeWidgets().append(this); + setAlternatingRowColors(true); +} SmTreeView::SmTreeView(const QString &hSetting, QWidget *parent) : QTreeView(parent), mHeaderSetting(hSetting){ header()->setSectionResizeMode(QHeaderView::ResizeToContents); + SmGlobals::instance()->treeWidgets().append(this); + setAlternatingRowColors(true); } void SmTreeView::readHeaderConfig(){ diff --git a/smtreeview.h b/smtreeview.h index eff41d5..67ba844 100644 --- a/smtreeview.h +++ b/smtreeview.h @@ -15,7 +15,7 @@ class QActionGroup; class SmTreeView : public QTreeView { Q_OBJECT public: - SmTreeView(QWidget *parent = 0) : QTreeView(parent) {} + SmTreeView(QWidget *parent = 0); SmTreeView(const QString &hSetting, QWidget *parent = 0); virtual void setHeaderGroup(QActionGroup *ag) { mHeaderGroup = ag; } |