summaryrefslogtreecommitdiffstats
path: root/pictureviewer2.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'pictureviewer2.cpp')
-rw-r--r--pictureviewer2.cpp42
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);
}