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