summaryrefslogblamecommitdiffstats
path: root/qt-ui/printoptions.cpp
blob: 818e89c3370a93054d7ffe3a15aac90e24e00274 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
                         
                       
 
                                                                     
 
                              
                         


                                  



                                                  
                                
                                   
                                     
                             
                                                   
                                 
                                                   
                      

                                                  
                            
                                                     


                                          
                                                  
                                         
                                                   
                                   
                                                
            
                                                  


                                  
 
                                                                                                 
                                                                                               
                                                                                                     
 
                                                                                                 
 
                                                                                               
                             
 









                                                   



                                                  
























                                                     
#include "printoptions.h"
#include "../display.h"

PrintOptions::PrintOptions(QWidget *parent, struct options *printOpt)
{
	hasSetupSlots = false;
	ui.setupUi(this);
	if (parent)
		setParent(parent);
	if (!printOpt)
		return;
	setup(printOpt);
}

void PrintOptions::setup(struct options *printOpt)
{
	printOptions = printOpt;
	// 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::ONEPERPAGE:
		ui.radioOneDive->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.radioSixDives, SIGNAL(clicked(bool)), this, SLOT(radioSixDivesClicked(bool)));
	connect(ui.radioTwoDives, SIGNAL(clicked(bool)), this, SLOT(radioTwoDivesClicked(bool)));
	connect(ui.radioOneDive, SIGNAL(clicked(bool)), this, SLOT(radioOneDiveClicked(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;
}

// print type radio buttons
void PrintOptions::radioSixDivesClicked(bool check)
{
	printOptions->type = options::PRETTY;
}

void PrintOptions::radioTwoDivesClicked(bool check)
{
	printOptions->type = options::TWOPERPAGE;
}

void PrintOptions::radioOneDiveClicked(bool check)
{
	printOptions->type = options::ONEPERPAGE;
}

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;
}