diff options
author | Lubomir I. Ivanov <neolit123@gmail.com> | 2013-07-09 23:43:21 +0300 |
---|---|---|
committer | Lubomir I. Ivanov <neolit123@gmail.com> | 2013-07-10 09:57:24 +0300 |
commit | 2c7a208bc1500fc6b0bdcafe17e4ebfb94deb05a (patch) | |
tree | 9e1e28f6a2573a41bf551a2e0b57eb6c82d64c94 /qt-ui/printoptions.cpp | |
parent | 5d81eee0da2d7dc2cb06a74fb4e7551fc76ca14d (diff) | |
download | subsurface-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.cpp | 48 |
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; } |