From a39a1118320c2c2e291f9e771ab75d32549431a7 Mon Sep 17 00:00:00 2001 From: Arno Date: Wed, 10 Apr 2013 21:36:26 +0200 Subject: Fix setAlternatignRowColors Well, what started as a try to simplify QTreeView ended in a mass header murder... What happened: * I searched for a way to let every QTreeView honor the setAlternatingRowcolors() setting. Unfortunately it isn't enough to just set the global palette and set it to true. So every QTreeView is now derived from SmTreeView * SmTreeView registers itself with SmGlobals, so the property is set _after_ it's constructed. It's definitely not enough to call it in the constructor. I guess that's a bug. But it's enough to append the SmTreeView to a QList in SmGlobals and call it _after_ the painting is done. * As an added Bonus we can add virt. funcs to every SmTreeView at will While at it I realized that most of the included headers were void, so remove them. No idea what impact it has on the bin size... --- archivetreeview.cpp | 24 ------------------------ archivetreeview.h | 12 ------------ dbanalyzer.cpp | 28 ++++++++-------------------- dbanalyzer.h | 19 +++++++------------ filepropertiesdialog.cpp | 15 +++------------ filepropertiesdialog.h | 15 +++++---------- filestreewidget.cpp | 27 ++++++++++++++------------- filestreewidget.h | 4 +++- filesystemwidget.cpp | 13 ++----------- filesystemwidget.h | 18 +++++------------- fileview.cpp | 11 +++++------ fileview.h | 2 -- mappingtableeditor.cpp | 5 +---- mappingtableeditor.h | 9 ++------- mappingtablewidget.cpp | 8 ++------ mappingtablewidget.h | 10 +++------- mappingtreewidget.cpp | 5 ++--- mappingtreewidget.h | 11 ++++------- newmoviewizard.cpp | 14 +------------- newmoviewizard.h | 10 +--------- newpicsdialog.cpp | 25 +++++++++---------------- newpicsdialog.h | 10 +++------- pictureswidget.cpp | 7 +++---- seriesmetadatamodel.cpp | 9 ++------- seriesmetadatamodel.h | 4 ++-- seriestreewidget.cpp | 25 ++++--------------------- seriestreewidget.h | 14 ++------------ shemov.cpp | 32 +++++++++++++------------------- shemov.h | 4 ++-- smglobals.cpp | 2 +- smtreeview.cpp | 9 +++++++++ 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 #include -#include -#include -#include -#include -#include -#include #include -#include -#include -#include -#include -#include -#include #include -#include -#include -#include #include -#include #include -#include #include #include #include @@ -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 -#include -#include -#include -#include - -#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 -#include -#include #include -#include -#include -#include -#include -#include #include -#include #include -#include #include #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 > &data, const QHash &marks){ +void DbAnalyzerDialog::populate(SmTreeView *view, SmTreeModel *model, const QList > &data, const QHash &marks){ if(data.isEmpty()){ return; } @@ -314,7 +302,7 @@ void DbAnalyzerDialog::populate(QTreeView *view, SmTreeModel *model, const QList } const QList DbAnalyzerDialog::currentIds() const { - QTreeView *curView = qobject_cast(mCurrentView); + SmTreeView *curView = qobject_cast(mCurrentView); Q_ASSERT(curView); QModelIndexList curIdxs = curView->selectionModel()->selectedRows(4); QList 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 -#include -#include -#include #include #include #include #include -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 > &data, const QHash &marks = QHash()); + void populate(SmTreeView *view ,SmTreeModel *model, const QList > &data, const QHash &marks = QHash()); const QList 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 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 #include #include -#include #include #include -#include -#include -#include -#include #include #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 -#include - #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 > &streamData); void addData(const QString &caption, const QMap &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 #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 > 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 > fileData = mModel->streamInfo(real); + mPropDlg->setFileName(real.data(FilesTreeModel::FileNameRole).toString()); + mPropDlg->setStreamData(fileData); }else if(mimeType.startsWith("image")){ QMap imageData = mModel->pictureInfo(real); - dlg.addData("Image data", imageData); + mPropDlg->addData("Image data", imageData); QMap 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(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, QListaddWidget(l1); - mTree = new QTreeView; + mTree = new SmTreeView; mModel = static_cast(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 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 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 -#include #include #include -#include #include #include #include @@ -17,9 +14,7 @@ #include #include #include -#include #include -#include #include #include #include @@ -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 -#include #include -#include #include #include -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 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(model); mModel = qobject_cast(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(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(){ diff --git a/fileview.h b/fileview.h index 2ddf3dd..ad2b522 100644 --- a/fileview.h +++ b/fileview.h @@ -8,8 +8,6 @@ #ifndef FILEVIEW_H #define FILEVIEW_H -#include - #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 #include #include #include -#include #include #include #include #include #include -#include #include #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 #include #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 -#include #include #include -#include #include #include #include @@ -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(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 #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 -#include #include +#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 -#include -#include -#include #include #include #include #include -#include #include -#include -#include #include #include #include -#include #include -#include #include #include #include @@ -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 #include -#include -#include #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 -#include #include -#include -#include #include #include #include -#include #include -#include -#include #include -#include #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 #include -#include #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(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 #include #include #include @@ -13,15 +12,12 @@ #include #include #include -#include #include #include -#include -#include -#include #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 -#include #include -#include #include -#include -#include -#include #include -#include #include -#include #include #include -#include #include #include -#include -#include #include -#include #include #include #include -#include #include #include #include #include #include -#include #include #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(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 -#include #include #include -#include -#include #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); diff --git a/shemov.cpp b/shemov.cpp index eed20df..a2fd195 100644 --- a/shemov.cpp +++ b/shemov.cpp @@ -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&)), this, SLOT(analyzeDelete(int,QList&))); + 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(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(); } diff --git a/shemov.h b/shemov.h index 106d81f..cb3d3d3 100644 --- a/shemov.h +++ b/shemov.h @@ -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 #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; } -- cgit v1.2.3-70-g09d2