summaryrefslogtreecommitdiffstats
path: root/qt-ui/printoptions.cpp
diff options
context:
space:
mode:
authorGravatar Lubomir I. Ivanov <neolit123@gmail.com>2013-07-10 10:54:25 +0300
committerGravatar Lubomir I. Ivanov <neolit123@gmail.com>2013-07-10 11:06:01 +0300
commit74f989bc46a06c124283fa851a06dd093f817c96 (patch)
tree68f8d82be089e03a208de555d30f3cce3d546903 /qt-ui/printoptions.cpp
parent01ef9f217519cbbcbf4bdce074635a29cfab7152 (diff)
downloadsubsurface-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.cpp92
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;
+}