diff options
author | Arno <am@disconnect.de> | 2012-03-24 15:24:12 +0100 |
---|---|---|
committer | Arno <am@disconnect.de> | 2012-03-24 15:24:12 +0100 |
commit | c425bb0c2b8f8d1fc2884ced9979eb39ee522846 (patch) | |
tree | aac0aab88c3fcd19cd2e5998aa00edd51764e52f /pictureviewer2.cpp | |
parent | 13ce3cb8d433499eb81a4fc750d7d90027ea4a62 (diff) | |
download | SheMov-c425bb0c2b8f8d1fc2884ced9979eb39ee522846.tar.gz SheMov-c425bb0c2b8f8d1fc2884ced9979eb39ee522846.tar.bz2 SheMov-c425bb0c2b8f8d1fc2884ced9979eb39ee522846.zip |
Made FileInfoItem configurable
Create copious options for FileInfoItem, reintroducing the Pictures tab
in ConfigurationDialog.
Also fixed a long standing bug in SeriesTreeWidget: don't static_cast()
an event. It'll succeed even when called from a destructor.
Diffstat (limited to 'pictureviewer2.cpp')
-rw-r--r-- | pictureviewer2.cpp | 42 |
1 files changed, 38 insertions, 4 deletions
diff --git a/pictureviewer2.cpp b/pictureviewer2.cpp index 8c6d831..f397b57 100644 --- a/pictureviewer2.cpp +++ b/pictureviewer2.cpp @@ -27,6 +27,7 @@ #include "smglobals.h" #include "mappingtreemodel.h" #include "smtreeitem.h" +#include "configurationdialog.h" PictureViewer2::PictureViewer2(QWidget *parent) : QGraphicsView(parent), mCur(0), mCurPos(0), mDefaultFile(":/picgone.png"), mFnItem(0), mMappingItem(0) { //behave like QDialog, but don't be one... @@ -118,6 +119,8 @@ void PictureViewer2::readSettings(){ mUseGradient = s.value("ui/pvgradient").toBool(); QVariant t = s.value("ui/pvbgcolor"); mBgColor = t.value<QColor>(); + mShowInfoItem = s.value("ui/showinfoitem").toBool(); + mConfigPos = s.value("ui/infoposition").toInt(); mInfoPos = s.value("ui/pvinfopos", QPointF(20, 20)).toPointF(); } @@ -205,8 +208,15 @@ void PictureViewer2::showFile(const PicData &file){ mScene->addItem(mCur); mCur->setPos(cX, cY); setWindowTitle(constructWindowTitle()); - //TODO: configure! - constructInfoItem(file, pixmap.size()); + if(mShowInfoItem){ + constructInfoItem(file, pixmap.size()); + }else{ + if(mFnItem){ + mScene->removeItem(mFnItem); + delete mFnItem; + mFnItem = 0; + } + } constructMappingItem(file); } @@ -217,7 +227,7 @@ void PictureViewer2::constructInfoItem(const PicData &data, QSize picSize){ delete mFnItem; } mFnItem = new PictureViewer2Item(data, mFiles.size(), picSize); - mFnItem->setPos(mInfoPos); + mFnItem->setPos(getPos(mFnItem->boundingRect())); mScene->addItem(mFnItem); } @@ -301,6 +311,30 @@ void PictureViewer2::treeToStringRecursive(const SmTreeItem *parent, QTextCursor } } +QPointF PictureViewer2::getPos(const QRectF &boundingRect) const{ + QSizeF curSize = size(); + mFnItem->setFlags(0); + if(mConfigPos == ConfigurationDialog::TopLeft){ + return QPointF(5, 5); + } + int rightOffset = curSize.width() - 15 - boundingRect.width(); + int bottomOffset = curSize.height() - 15 - boundingRect.height(); + if(mConfigPos == ConfigurationDialog::TopRight){ + return QPointF(rightOffset, 5); + } + if(mConfigPos == ConfigurationDialog::BottomLeft){ + return QPointF(5, bottomOffset); + } + if(mConfigPos == ConfigurationDialog::BottomRigth){ + return QPointF(rightOffset, bottomOffset); + } + if(mConfigPos == ConfigurationDialog::Moveable){ + mFnItem->setFlags(QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemIsMovable); + return mInfoPos; + } + return QPointF(5, 5); +} + QString PictureViewer2::constructWindowTitle() const { QString retval = QString(tr("PicViewer 2 - [%1]")).arg(mFiles.at(mCurPos).at(PicFilesModel::FileName).toString()); return retval; @@ -318,7 +352,7 @@ PictureViewer2Item::PictureViewer2Item(const PicData &data, const int numSelecte textList << data.at(PicFilesModel::MimeType).toString(); textList << QString(QObject::tr("%1 files selected")).arg(QString::number(numSelected)); mText = QStaticText(textList.join("<br/>")); - setFlags(QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemIsMovable); + //setFlags(QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemIsMovable); setZValue(1); } |