diff options
author | Arno <am@disconnect.de> | 2012-03-24 17:21:49 +0100 |
---|---|---|
committer | Arno <am@disconnect.de> | 2012-03-24 17:21:49 +0100 |
commit | 3405dbb9a1b6601bf7c343d676a4abe4e5981a29 (patch) | |
tree | ac872d096e626d13e7270383ac7bf8b076bc72da /pictureviewer2.cpp | |
parent | c425bb0c2b8f8d1fc2884ced9979eb39ee522846 (diff) | |
download | SheMov-3405dbb9a1b6601bf7c343d676a4abe4e5981a29.tar.gz SheMov-3405dbb9a1b6601bf7c343d676a4abe4e5981a29.tar.bz2 SheMov-3405dbb9a1b6601bf7c343d676a4abe4e5981a29.zip |
Make Mapping widget configurable
Make mappingwidget behave according to settings. SideBySide doesn't work
yet, maybe it should be canned.
Diffstat (limited to 'pictureviewer2.cpp')
-rw-r--r-- | pictureviewer2.cpp | 50 |
1 files changed, 31 insertions, 19 deletions
diff --git a/pictureviewer2.cpp b/pictureviewer2.cpp index f397b57..848fd00 100644 --- a/pictureviewer2.cpp +++ b/pictureviewer2.cpp @@ -120,8 +120,11 @@ void PictureViewer2::readSettings(){ QVariant t = s.value("ui/pvbgcolor"); mBgColor = t.value<QColor>(); mShowInfoItem = s.value("ui/showinfoitem").toBool(); - mConfigPos = s.value("ui/infoposition").toInt(); + mConfigInfoPos = s.value("ui/infoposition").toInt(); mInfoPos = s.value("ui/pvinfopos", QPointF(20, 20)).toPointF(); + mShowMapItem = s.value("ui/showmapitem").toBool(); + mConfigMapPos = s.value("ui/mappingposition").toInt(); + mMappingPos = s.value("ui/pvmappingpos", QPointF(20, 20)).toPointF(); } void PictureViewer2::writeSettings(){ @@ -217,7 +220,15 @@ void PictureViewer2::showFile(const PicData &file){ mFnItem = 0; } } - constructMappingItem(file); + if(mShowMapItem){ + constructMappingItem(file); + }else{ + if(mMappingItem){ + mScene->removeItem(mMappingItem); + delete mMappingItem; + mMappingItem = 0; + } + } } void PictureViewer2::constructInfoItem(const PicData &data, QSize picSize){ @@ -227,7 +238,7 @@ void PictureViewer2::constructInfoItem(const PicData &data, QSize picSize){ delete mFnItem; } mFnItem = new PictureViewer2Item(data, mFiles.size(), picSize); - mFnItem->setPos(getPos(mFnItem->boundingRect())); + mFnItem->setPos(getPos(mFnItem, mConfigInfoPos, mInfoPos)); mScene->addItem(mFnItem); } @@ -247,10 +258,12 @@ void PictureViewer2::constructMappingItem(const PicData &file){ } QTextDocument *mapString = treeToString(mappingTree); mMappingItem = new PictureViewer2Item(mapString); - if(mFnItem){ - QPointF fnRect = mFnItem->scenePos(); - QPointF myPos = QPointF(fnRect.x(), fnRect.y() + mFnItem->boundingRect().height() + 10); - mMappingItem->setPos(myPos); + if(mConfigMapPos != ConfigurationDialog::SideBySide){ + mMappingItem->setPos(getPos(mMappingItem, mConfigMapPos, mMappingPos)); + }else{ + if(!mShowInfoItem){ + return; + } } mScene->addItem(mMappingItem); } @@ -311,26 +324,26 @@ void PictureViewer2::treeToStringRecursive(const SmTreeItem *parent, QTextCursor } } -QPointF PictureViewer2::getPos(const QRectF &boundingRect) const{ +QPointF PictureViewer2::getPos(PictureViewer2Item *item, int pos, const QPointF &movPos){ QSizeF curSize = size(); - mFnItem->setFlags(0); - if(mConfigPos == ConfigurationDialog::TopLeft){ + item->setFlags(0); + if(pos == ConfigurationDialog::TopLeft){ return QPointF(5, 5); } - int rightOffset = curSize.width() - 15 - boundingRect.width(); - int bottomOffset = curSize.height() - 15 - boundingRect.height(); - if(mConfigPos == ConfigurationDialog::TopRight){ + int rightOffset = curSize.width() - 15 - item->boundingRect().width(); + int bottomOffset = curSize.height() - 15 - item->boundingRect().height(); + if(pos == ConfigurationDialog::TopRight){ return QPointF(rightOffset, 5); } - if(mConfigPos == ConfigurationDialog::BottomLeft){ + if(pos == ConfigurationDialog::BottomLeft){ return QPointF(5, bottomOffset); } - if(mConfigPos == ConfigurationDialog::BottomRigth){ + if(pos == ConfigurationDialog::BottomRigth){ return QPointF(rightOffset, bottomOffset); } - if(mConfigPos == ConfigurationDialog::Moveable){ - mFnItem->setFlags(QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemIsMovable); - return mInfoPos; + if(pos == ConfigurationDialog::Moveable){ + item->setFlags(QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemIsMovable); + return movPos; } return QPointF(5, 5); } @@ -352,7 +365,6 @@ 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); setZValue(1); } |