diff options
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; +} |