diff options
author | Arno <am@disconnect.de> | 2013-04-10 21:36:26 +0200 |
---|---|---|
committer | Arno <am@disconnect.de> | 2013-04-10 21:36:26 +0200 |
commit | a39a1118320c2c2e291f9e771ab75d32549431a7 (patch) | |
tree | a82ae27aa4e0e398e99b1127b51d65da36f1c5b9 /filestreewidget.cpp | |
parent | 69791ade746638180a959c190fa5db6519c83a38 (diff) | |
download | SheMov-a39a1118320c2c2e291f9e771ab75d32549431a7.tar.gz SheMov-a39a1118320c2c2e291f9e771ab75d32549431a7.tar.bz2 SheMov-a39a1118320c2c2e291f9e771ab75d32549431a7.zip |
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<QWidget*> 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...
Diffstat (limited to 'filestreewidget.cpp')
-rw-r--r-- | filestreewidget.cpp | 27 |
1 files changed, 14 insertions, 13 deletions
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); |