summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArno <arno@disconnect.de>2022-07-02 21:14:23 +0200
committerArno <arno@disconnect.de>2022-07-02 21:14:23 +0200
commit3f14c4198dd29b3428e37befe5aec5fa8c5bcf68 (patch)
tree88aeb8a644da487cfaaa9b8c71550faebd5c3b7d
parente47954d9333c329b47a35ebbf63ee2a65e40d055 (diff)
downloadSheMov-3f14c4198dd29b3428e37befe5aec5fa8c5bcf68.tar.gz
SheMov-3f14c4198dd29b3428e37befe5aec5fa8c5bcf68.tar.bz2
SheMov-3f14c4198dd29b3428e37befe5aec5fa8c5bcf68.zip
Set fixed size for viewer.cpp
While adding new pictures to my collection, I realized that the simple viewer didn't obey it's size restrictions and grew out of proportions. So make the maximum size configurable.
-rw-r--r--configurationdialog.cpp19
-rw-r--r--configurationdialog.h2
-rw-r--r--viewer.cpp9
-rw-r--r--viewer.h1
4 files changed, 24 insertions, 7 deletions
diff --git a/configurationdialog.cpp b/configurationdialog.cpp
index acb7b46..9f49e8e 100644
--- a/configurationdialog.cpp
+++ b/configurationdialog.cpp
@@ -244,16 +244,21 @@ ConfigurationDialog::ConfigurationDialog(QWidget *parent, Qt::WindowFlags f) : S
fillPositions(mMapBox);
pvInfoL->addRow(tr("Picture mapping information"), mMapBox);
picInfoBox->setLayout(pvInfoL);
-
- //picture viewer - size
- QFormLayout *pvSizeWHL = new QFormLayout;
- QVBoxLayout *pvSizeL = new QVBoxLayout;
- pvSizeL->addLayout(pvSizeWHL);
+ QFormLayout *pvMaxSizeL = new QFormLayout;
+ QGroupBox *maxSizeBox = new QGroupBox(tr("Max. picture size"));
+ mPicMaxHeight = new QSpinBox;
+ mPicMaxHeight->setMaximum(10000);
+ mPicMaxWidth = new QSpinBox;
+ mPicMaxWidth->setMaximum(10000);
+ pvMaxSizeL->addRow(tr("Max. picture height"), mPicMaxHeight);
+ pvMaxSizeL->addRow(tr("Max. picture width"), mPicMaxWidth);
+ maxSizeBox->setLayout(pvMaxSizeL);
//picture viewer - layout
QWidget *picWidget = new QWidget;
QVBoxLayout *picLayout = new QVBoxLayout;
picLayout->addWidget(picInfoBox);
+ picLayout->addWidget(maxSizeBox);
picLayout->addStretch();
picWidget->setLayout(picLayout);
@@ -449,6 +454,8 @@ void ConfigurationDialog::readSettings(){
//read pictures
mInfoBox->setCurrentIndex(mInfoBox->findData(s.value("ui/infoposition", TopLeft).toInt()));
mMapBox->setCurrentIndex(mMapBox->findData(s.value("ui/mappingposition", TopRight).toInt()));
+ mPicMaxHeight->setValue(s.value("ui/maxheight", 1100).toInt());
+ mPicMaxWidth->setValue(s.value("ui/maxwidth", 1800).toInt());
//read database
mDatabaseHost->setText(s.value("database/hostname").toString());
@@ -529,6 +536,8 @@ void ConfigurationDialog::writeSettings(){
s.setValue("ui/infoposition", mPositionMap.value(curPos));
curPos = mMapBox->currentText();
s.setValue("ui/mappingposition", mPositionMap.value(curPos));
+ s.setValue("ui/maxheight", mPicMaxHeight->value());
+ s.setValue("ui/maxwidth", mPicMaxWidth->value());
//write database
s.setValue("database/hostname", mDatabaseHost->text());
diff --git a/configurationdialog.h b/configurationdialog.h
index 8a76051..704074f 100644
--- a/configurationdialog.h
+++ b/configurationdialog.h
@@ -78,6 +78,8 @@ class ConfigurationDialog : public SmDialog {
QCheckBox *mExpensive;
QCheckBox *mClearNewMovieWizard;
QSpinBox *mAutoRefreshValue;
+ QSpinBox *mPicMaxHeight;
+ QSpinBox *mPicMaxWidth;
QLabel *mClipboardColor;
QLabel *mBaseColor;
QLabel *mAlternateBaseColor;
diff --git a/viewer.cpp b/viewer.cpp
index cba6314..e11a02f 100644
--- a/viewer.cpp
+++ b/viewer.cpp
@@ -5,6 +5,7 @@
#include <QMimeDatabase>
#include <QDir>
#include <QWheelEvent>
+#include <QSettings>
#include "helper.h"
#include "viewer.h"
@@ -14,6 +15,10 @@ Viewer::Viewer(QWidget *parent, Qt::WindowFlags f) : QWidget(parent, f), mCurInd
setBackgroundRole(QPalette::AlternateBase);
mLabel = new QLabel;
mLabel->setAlignment(Qt::AlignCenter);
+ QSettings s;
+ int maxHeight = s.value("ui/maxheight").toInt();
+ int maxWidth = s.value("ui/maxwidth").toInt();
+ mMaxSize = QSize(maxWidth, maxHeight);
QHBoxLayout *mainLayout = new QHBoxLayout;
mainLayout->addWidget(mLabel);
setLayout(mainLayout);
@@ -92,8 +97,8 @@ void Viewer::displayFile(int index){
setBackgroundRole(QPalette::AlternateBase);
}
QPixmap pm(mFiles.at(mCurIndex));
- if((pm.height() > height()) || (pm.width() > width())){
- pm = pm.scaled(QSize(width() - 20, height() - 20), Qt::KeepAspectRatio, Qt::SmoothTransformation);
+ if(pm.height() > mMaxSize.height() || pm.width() > mMaxSize.width()){
+ pm = pm.scaled(mMaxSize, Qt::KeepAspectRatio, Qt::SmoothTransformation);
}
mLabel->setPixmap(pm);
QString winTitle = QString(tr("%1 Viewer [%2]")).arg(qApp->applicationName(), mFiles.at(mCurIndex));
diff --git a/viewer.h b/viewer.h
index e5a8a02..c3980c8 100644
--- a/viewer.h
+++ b/viewer.h
@@ -22,6 +22,7 @@ class Viewer : public QWidget {
int mCurIndex;
QLabel *mLabel;
QStringList mFiles;
+ QSize mMaxSize;
};
#endif // VIEWER_H