diff options
author | Arno <am@disconnect.de> | 2012-10-20 04:36:10 +0200 |
---|---|---|
committer | Arno <am@disconnect.de> | 2012-10-20 04:36:10 +0200 |
commit | 9d3de3499af4a03177b9c0bb211da763e5dcbb2d (patch) | |
tree | 98cbec732e2cd7f8b9c26c633654210aa274c76a /configurationdialog.cpp | |
parent | fb1794ee67a31ecad8257563dd176e4ee03fac00 (diff) | |
download | SheMov-9d3de3499af4a03177b9c0bb211da763e5dcbb2d.tar.gz SheMov-9d3de3499af4a03177b9c0bb211da763e5dcbb2d.tar.bz2 SheMov-9d3de3499af4a03177b9c0bb211da763e5dcbb2d.zip |
Make PictureViewer2 size configurable
Several bug fixes on the way:
* set fixed size policy for PictureViewer2 -> makes resizing much easier
* don't set Y-offset when showing a pic. The scene takes care of it
* don't deliver SIGNAL configChanged() twice to PictureViewer2
* center Widget on current screen when calling Helper::centerWidget
Diffstat (limited to 'configurationdialog.cpp')
-rw-r--r-- | configurationdialog.cpp | 47 |
1 files changed, 45 insertions, 2 deletions
diff --git a/configurationdialog.cpp b/configurationdialog.cpp index 3f654e1..82623e8 100644 --- a/configurationdialog.cpp +++ b/configurationdialog.cpp @@ -36,13 +36,14 @@ #include <QPainter> #include <QStandardItemModel> #include <QStandardItem> +#include <QDesktopWidget> #include "configurationdialog.h" #include "programconfigurator.h" #include "smglobals.h" #include "helper.h" -ConfigurationDialog::ConfigurationDialog(QWidget *parent, Qt::WindowFlags f) : SmDialog(parent, f){ +ConfigurationDialog::ConfigurationDialog(QWidget *parent, Qt::WindowFlags f) : SmDialog(parent, f), mPVMinSize(SmGlobals::instance()->minPVSize()){ //setup mTab = new QTabWidget; QDirModel *model = new QDirModel(this); @@ -184,12 +185,36 @@ ConfigurationDialog::ConfigurationDialog(QWidget *parent, Qt::WindowFlags f) : S pvInfoL->addRow(tr("Picture mapping information"), mMapBox); picInfoBox->setLayout(pvInfoL); + //picture viewer - size + QDesktopWidget *dw = QApplication::desktop(); + QSize dSize = dw->availableGeometry().size(); + QFormLayout *pvSizeWHL = new QFormLayout; + QGroupBox *pvSizeBox = new QGroupBox(tr("Size")); + mPVWidth = new QSpinBox; + mPVWidth->setRange(mPVMinSize.width(), dSize.width()); + mPVHeight = new QSpinBox; + mPVHeight->setRange(mPVMinSize.height(), dSize.height()); + pvSizeWHL->addRow(tr("Width"), mPVWidth); + pvSizeWHL->addRow(tr("Height"), mPVHeight); + QHBoxLayout *pvSizeButtonLayout = new QHBoxLayout; + pvSizeButtonLayout->addStretch(); + mPVSizeReset = new QPushButton(tr("Reset")); + connect(mPVSizeReset, SIGNAL(clicked()), this, SLOT(resetPvSize())); + pvSizeButtonLayout->addWidget(mPVSizeReset); + pvSizeButtonLayout->addStretch(); + QVBoxLayout *pvSizeL = new QVBoxLayout; + pvSizeL->addLayout(pvSizeWHL); + pvSizeL->addLayout(pvSizeButtonLayout); + pvSizeBox->setLayout(pvSizeL); + //picture viewer - layout QWidget *picWidget = new QWidget; QVBoxLayout *picLayout = new QVBoxLayout; picLayout->addWidget(picInfoBox); - picWidget->setLayout(picLayout); + picLayout->addWidget(pvSizeBox); picLayout->addStretch(); + picWidget->setLayout(picLayout); + mTab->addTab(picWidget, tr("Pictures")); //database tab @@ -387,6 +412,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())); + mPVWidth->setValue(s.value("ui/pvwidth", mPVMinSize.width()).toInt()); + mPVHeight->setValue(s.value("ui/pvheight", mPVMinSize.height()).toInt()); //read database mDatabaseHost->setText(s.value("database/hostname").toString()); @@ -463,6 +490,8 @@ void ConfigurationDialog::writeSettings(){ s.setValue("ui/infoposition", mPositionMap.value(curPos)); curPos = mMapBox->currentText(); s.setValue("ui/mappingposition", mPositionMap.value(curPos)); + s.setValue("ui/pvwidth", mPVWidth->value()); + s.setValue("ui/pvheight", mPVHeight->value()); //write database s.setValue("database/hostname", mDatabaseHost->text()); @@ -558,6 +587,20 @@ void ConfigurationDialog::randomGradientChanged(int state){ mPVBgColor->setEnabled(state == Qt::Unchecked); } +void ConfigurationDialog::resetPvSize(){ + QDesktopWidget *dw = QApplication::desktop(); + int width = dw->availableGeometry().width() - 100; + if(width < mPVMinSize.width()){ + width = mPVMinSize.width(); + } + int height = dw->availableGeometry().height() - 100; + if(height < mPVMinSize.height()){ + height = mPVMinSize.height(); + } + mPVWidth->setValue(width); + mPVHeight->setValue(height); +} + void ConfigurationDialog::setColor(QWidget *label){ QLabel *curLabel = qobject_cast<QLabel*>(label); if(!curLabel){ |