summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2012-03-24 17:21:49 +0100
committerArno <am@disconnect.de>2012-03-24 17:21:49 +0100
commit3405dbb9a1b6601bf7c343d676a4abe4e5981a29 (patch)
treeac872d096e626d13e7270383ac7bf8b076bc72da
parentc425bb0c2b8f8d1fc2884ced9979eb39ee522846 (diff)
downloadSheMov-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.
-rw-r--r--configurationdialog.cpp41
-rw-r--r--configurationdialog.h4
-rw-r--r--pictureviewer2.cpp50
-rw-r--r--pictureviewer2.h7
4 files changed, 70 insertions, 32 deletions
diff --git a/configurationdialog.cpp b/configurationdialog.cpp
index d05bc91..95e0f89 100644
--- a/configurationdialog.cpp
+++ b/configurationdialog.cpp
@@ -172,22 +172,37 @@ ConfigurationDialog::ConfigurationDialog(QWidget *parent, Qt::WindowFlags f) : S
movieWidget->setLayout(movieWidgetLayout);
mTab->addTab(movieWidget, tr("Movies"));
- //picture viewer
+ //picture viewer - info item
QGroupBox *picInfoBox = new QGroupBox(tr("Picture info item"));
- mPositionBox = new QComboBox;
+ mInfoPositionBox = new QComboBox;
createPositionMap();
- fillPositions(mPositionBox);
- mPositionBox->removeItem(mPositionBox->findData(SideBySide));
+ fillPositions(mInfoPositionBox);
+ mInfoPositionBox->removeItem(mInfoPositionBox->findData(SideBySide));
QFormLayout *pvInfoL = new QFormLayout;
- pvInfoL->addRow(tr("Picture info position"), mPositionBox);
+ pvInfoL->addRow(tr("Picture info position"), mInfoPositionBox);
mShowInfoItem = new QCheckBox(tr("Show info item"));
- connect(mShowInfoItem, SIGNAL(toggled(bool)), mPositionBox, SLOT(setEnabled(bool)));
- pvInfoL->addRow(tr("Show info item"), mShowInfoItem);
+ connect(mShowInfoItem, SIGNAL(toggled(bool)), mInfoPositionBox, SLOT(setEnabled(bool)));
+ pvInfoL->addRow(QString(), mShowInfoItem);
picInfoBox->setLayout(pvInfoL);
+
+ //picture viewer - mapping item
+ QGroupBox *picMapBox = new QGroupBox(tr("Picture mappings"));
+ mMapPositionBox = new QComboBox;
+ fillPositions(mMapPositionBox);
+ QFormLayout *pvMapL = new QFormLayout;
+ pvMapL->addRow(tr("Picture mapping position"), mMapPositionBox);
+ mShowMapItem = new QCheckBox(tr("Show mapping item"));
+ connect(mShowMapItem, SIGNAL(toggled(bool)), mMapPositionBox, SLOT(setEnabled(bool)));
+ pvMapL->addRow(QString(), mShowMapItem);
+ picMapBox->setLayout(pvMapL);
+
+ //picture viewer - layout
QWidget *picWidget = new QWidget;
QVBoxLayout *picLayout = new QVBoxLayout;
picLayout->addWidget(picInfoBox);
+ picLayout->addWidget(picMapBox);
picWidget->setLayout(picLayout);
+ picLayout->addStretch();
mTab->addTab(picWidget, tr("Pictures"));
//database tab
@@ -384,8 +399,11 @@ void ConfigurationDialog::readSettings(){
//read pictures
mShowInfoItem->setChecked(s.value("ui/showinfoitem", true).toBool());
- mPositionBox->setCurrentIndex(mPositionBox->findData(s.value("ui/infoposition", TopLeft).toInt()));
- mPositionBox->setEnabled(mShowInfoItem->checkState());
+ mInfoPositionBox->setCurrentIndex(mInfoPositionBox->findData(s.value("ui/infoposition", TopLeft).toInt()));
+ mInfoPositionBox->setEnabled(mShowInfoItem->checkState());
+ mShowMapItem->setChecked(s.value("ui/showmapitem", true).toBool());
+ mMapPositionBox->setCurrentIndex(mMapPositionBox->findData(s.value("ui/mappingposition", TopRight).toInt()));
+ mMapPositionBox->setEnabled(mShowMapItem->checkState());
//read database
mDatabaseHost->setText(s.value("database/hostname").toString());
@@ -459,8 +477,11 @@ void ConfigurationDialog::writeSettings(){
//write pictures
s.setValue("ui/showinfoitem", (mShowInfoItem->checkState() == Qt::Checked));
- QString curPos = mPositionBox->currentText();
+ QString curPos = mInfoPositionBox->currentText();
s.setValue("ui/infoposition", mPositionMap.value(curPos));
+ s.setValue("ui/showmapitem", (mShowMapItem->checkState() == Qt::Checked));
+ curPos = mMapPositionBox->currentText();
+ s.setValue("ui/mappingposition", mPositionMap.value(curPos));
//write database
s.setValue("database/hostname", mDatabaseHost->text());
diff --git a/configurationdialog.h b/configurationdialog.h
index 3d83bcd..751cfb5 100644
--- a/configurationdialog.h
+++ b/configurationdialog.h
@@ -66,7 +66,8 @@ class ConfigurationDialog : public SmDialog {
QLineEdit *mStripPath;
QLineEdit *mGrabFrameFrom;
QComboBox *mIconForFolder;
- QComboBox *mPositionBox;
+ QComboBox *mInfoPositionBox;
+ QComboBox *mMapPositionBox;
QCheckBox *mHoverPics;
QCheckBox *mHoverArchive;
QCheckBox *mHoverMovies;
@@ -95,6 +96,7 @@ class ConfigurationDialog : public SmDialog {
QCheckBox *mAlternateColors;
QCheckBox *mPVGradient;
QCheckBox *mShowInfoItem;
+ QCheckBox *mShowMapItem;
QHash<QWidget*, QColor> mColors;
QMap<QString, int> mPositionMap;
QStandardItemModel *mIconModel;
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);
}
diff --git a/pictureviewer2.h b/pictureviewer2.h
index 47e0292..c776c53 100644
--- a/pictureviewer2.h
+++ b/pictureviewer2.h
@@ -22,6 +22,7 @@ class QTimer;
class QTextDocument;
class QTextCursor;
class PictureViewer2Item;
+class QGraphicsItem;
class SmTreeItem;
class MappingTreeModel;
@@ -62,20 +63,22 @@ class PictureViewer2 : public QGraphicsView {
void setGradient(const QPixmap &pic);
QTextDocument *treeToString(const SmTreeItem *root) const;
void treeToStringRecursive(const SmTreeItem *parent, QTextCursor *cursor) const;
- QPointF getPos(const QRectF &boundingRect) const;
+ QPointF getPos(PictureViewer2Item *item, int pos, const QPointF &movPos);
QString constructWindowTitle() const;
PicDataList mFiles;
QGraphicsScene *mScene;
QSize mMinimunSize;
QGraphicsPixmapItem *mCur;
int mCurPos;
- int mConfigPos;
+ int mConfigInfoPos;
+ int mConfigMapPos;
QTimer *mSlideTimer;
const QString mDefaultFile;
PictureViewer2Item *mFnItem;
PictureViewer2Item *mMappingItem;
bool mUseGradient;
bool mShowInfoItem;
+ bool mShowMapItem;
QColor mBgColor;
QPointF mInfoPos;
QPointF mMappingPos;