diff options
author | Arno <arno@disconnect.de> | 2022-07-02 21:14:23 +0200 |
---|---|---|
committer | Arno <arno@disconnect.de> | 2022-07-02 21:14:23 +0200 |
commit | 3f14c4198dd29b3428e37befe5aec5fa8c5bcf68 (patch) | |
tree | 88aeb8a644da487cfaaa9b8c71550faebd5c3b7d | |
parent | e47954d9333c329b47a35ebbf63ee2a65e40d055 (diff) | |
download | SheMov-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.cpp | 19 | ||||
-rw-r--r-- | configurationdialog.h | 2 | ||||
-rw-r--r-- | viewer.cpp | 9 | ||||
-rw-r--r-- | viewer.h | 1 |
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; @@ -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));
@@ -22,6 +22,7 @@ class Viewer : public QWidget { int mCurIndex;
QLabel *mLabel;
QStringList mFiles;
+ QSize mMaxSize;
};
#endif // VIEWER_H
|