diff options
author | Lubomir I. Ivanov <neolit123@gmail.com> | 2013-07-10 10:54:25 +0300 |
---|---|---|
committer | Lubomir I. Ivanov <neolit123@gmail.com> | 2013-07-10 11:06:01 +0300 |
commit | 74f989bc46a06c124283fa851a06dd093f817c96 (patch) | |
tree | 68f8d82be089e03a208de555d30f3cce3d546903 /qt-ui/printoptions.cpp | |
parent | 01ef9f217519cbbcbf4bdce074635a29cfab7152 (diff) | |
download | subsurface-74f989bc46a06c124283fa851a06dd093f817c96.tar.gz |
Print: connect all the options widgets to slots
By connecting to slots we always modify values at a previously
set 'struct options' pointer.
Also have the setup of slots and pre-set values in a
separate setup(struct options *) function.
Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Diffstat (limited to 'qt-ui/printoptions.cpp')
-rw-r--r-- | qt-ui/printoptions.cpp | 92 |
1 files changed, 87 insertions, 5 deletions
diff --git a/qt-ui/printoptions.cpp b/qt-ui/printoptions.cpp index 75218e96d..005c4dc84 100644 --- a/qt-ui/printoptions.cpp +++ b/qt-ui/printoptions.cpp @@ -4,21 +4,65 @@ PrintOptions::PrintOptions(QWidget *parent, struct options *printOpt) : ui( new Ui::PrintOptions()) { + hasSetupSlots = false; + ui->setupUi(this); if (parent) setParent(parent); if (!printOpt) return; + setup(printOpt); +} + +void PrintOptions::setup(struct options *printOpt) +{ 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))); + // layout height sliders initSliderWithLabel(ui->sliderPHeight, ui->valuePHeight, printOptions->profile_height); initSliderWithLabel(ui->sliderOHeight, ui->valueOHeight, printOptions->notes_height); initSliderWithLabel(ui->sliderNHeight, ui->valueNHeight, printOptions->tanks_height); + // print type radio buttons + switch (printOptions->type) { + case options::PRETTY: + ui->radioSixDives->setChecked(true); + break; + case options::TWOPERPAGE: + ui->radioTwoDives->setChecked(true); + break; + case options::TABLE: + ui->radioTablePrint->setChecked(true); + break; + } + // general print option checkboxes + if (printOptions->color_selected) + ui->printInColor->setChecked(true); + if (printOptions->print_selected) + ui->printSelected->setChecked(true); + // ordering + if (printOptions->notes_up) + ui->notesOnTop->setChecked(true); + else + ui->profileOnTop->setChecked(true); + + // connect slots only once + if (hasSetupSlots) + return; + 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))); + + connect(ui->radioSixDives, SIGNAL(clicked(bool)), this, SLOT(radioSixDivesClicked(bool))); + connect(ui->radioTwoDives, SIGNAL(clicked(bool)), this, SLOT(radioTwoDivesClicked(bool))); + connect(ui->radioTablePrint, SIGNAL(clicked(bool)), this, SLOT(radioTablePrintClicked(bool))); + + connect(ui->printInColor, SIGNAL(clicked(bool)), this, SLOT(printInColorClicked(bool))); + connect(ui->printSelected, SIGNAL(clicked(bool)), this, SLOT(printSelectedClicked(bool))); + + connect(ui->notesOnTop, SIGNAL(clicked(bool)), this, SLOT(notesOnTopClicked(bool))); + connect(ui->profileOnTop, SIGNAL(clicked(bool)), this, SLOT(profileOnTopClicked(bool))); + hasSetupSlots = true; } +// layout height sliders void PrintOptions::initSliderWithLabel(QSlider *slider, QLabel *label, int value) { slider->setValue(value); @@ -48,3 +92,41 @@ void PrintOptions::sliderNHeightMoved(int value) ui->valueNHeight->setText(formatSliderValueText(value)); printOptions->tanks_height = value; } + +// print type radio buttons +void PrintOptions::radioSixDivesClicked(bool check) +{ + printOptions->type = options::PRETTY; +} + +void PrintOptions::radioTwoDivesClicked(bool check) +{ + printOptions->type = options::TWOPERPAGE; +} + +void PrintOptions::radioTablePrintClicked(bool check) +{ + printOptions->type = options::TABLE; +} + +// general print option checkboxes +void PrintOptions::printInColorClicked(bool check) +{ + printOptions->color_selected = (int)check; +} + +void PrintOptions::printSelectedClicked(bool check) +{ + printOptions->print_selected = (int)check; +} + +// ordering +void PrintOptions::notesOnTopClicked(bool check) +{ + printOptions->notes_up = true; +} + +void PrintOptions::profileOnTopClicked(bool check) +{ + printOptions->notes_up = false; +} |