summaryrefslogtreecommitdiffstats
path: root/qt-ui/printoptions.cpp
diff options
context:
space:
mode:
authorGravatar Lubomir I. Ivanov <neolit123@gmail.com>2013-07-09 23:43:21 +0300
committerGravatar Lubomir I. Ivanov <neolit123@gmail.com>2013-07-10 09:57:24 +0300
commit2c7a208bc1500fc6b0bdcafe17e4ebfb94deb05a (patch)
tree9e1e28f6a2573a41bf551a2e0b57eb6c82d64c94 /qt-ui/printoptions.cpp
parent5d81eee0da2d7dc2cb06a74fb4e7551fc76ca14d (diff)
downloadsubsurface-2c7a208bc1500fc6b0bdcafe17e4ebfb94deb05a.tar.gz
Print: label update on height slider move
The PrintOptions widget has value labels next to the horizontal sliders. Add slots to update these labels when a slider moves. Patch also makes a modification so that the PrintOptions constructor requires a 'struct options' pointer. If an options struct is not received we do not set predefined values and do not connect signals to slots, where options will be updated immediately. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Diffstat (limited to 'qt-ui/printoptions.cpp')
-rw-r--r--qt-ui/printoptions.cpp48
1 files changed, 42 insertions, 6 deletions
diff --git a/qt-ui/printoptions.cpp b/qt-ui/printoptions.cpp
index 6d1910303..75218e96d 100644
--- a/qt-ui/printoptions.cpp
+++ b/qt-ui/printoptions.cpp
@@ -1,14 +1,50 @@
#include "printoptions.h"
#include "ui_printoptions.h"
-PrintOptions *PrintOptions::instance()
+PrintOptions::PrintOptions(QWidget *parent, struct options *printOpt)
+: ui( new Ui::PrintOptions())
{
- static PrintOptions *self = new PrintOptions();
- return self;
+ if (parent)
+ setParent(parent);
+ if (!printOpt)
+ return;
+ printOptions = printOpt;
+ ui->setupUi(this);
+ // make height sliders update the labels next to them
+ connect(ui->sliderPHeight, SIGNAL(sliderMoved(int)), this, SLOT(sliderPHeightMoved(int)));
+ connect(ui->sliderOHeight, SIGNAL(sliderMoved(int)), this, SLOT(sliderOHeightMoved(int)));
+ connect(ui->sliderNHeight, SIGNAL(sliderMoved(int)), this, SLOT(sliderNHeightMoved(int)));
+ initSliderWithLabel(ui->sliderPHeight, ui->valuePHeight, printOptions->profile_height);
+ initSliderWithLabel(ui->sliderOHeight, ui->valueOHeight, printOptions->notes_height);
+ initSliderWithLabel(ui->sliderNHeight, ui->valueNHeight, printOptions->tanks_height);
}
-PrintOptions::PrintOptions(QWidget *parent, Qt::WindowFlags f)
-: ui( new Ui::PrintOptions())
+void PrintOptions::initSliderWithLabel(QSlider *slider, QLabel *label, int value)
{
- ui->setupUi(this);
+ slider->setValue(value);
+ label->setText(formatSliderValueText(value));
+}
+
+QString PrintOptions::formatSliderValueText(int value)
+{
+ QString str = QString("%1%").arg(QString::number(value));
+ return str;
+}
+
+void PrintOptions::sliderPHeightMoved(int value)
+{
+ ui->valuePHeight->setText(formatSliderValueText(value));
+ printOptions->profile_height = value;
+}
+
+void PrintOptions::sliderOHeightMoved(int value)
+{
+ ui->valueOHeight->setText(formatSliderValueText(value));
+ printOptions->notes_height = value;
+}
+
+void PrintOptions::sliderNHeightMoved(int value)
+{
+ ui->valueNHeight->setText(formatSliderValueText(value));
+ printOptions->tanks_height = value;
}