mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	Print: add a class for print layouting
PrintLayout is a class that will handle the layouting part of dive profiles, text, tables depending on the settings of a QPrinter and the PrinterDialog and PrintOptions instances. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
This commit is contained in:
		
							parent
							
								
									74f989bc46
								
							
						
					
					
						commit
						41bad7695e
					
				
					 6 changed files with 91 additions and 1 deletions
				
			
		
							
								
								
									
										2
									
								
								Makefile
									
										
									
									
									
								
							
							
						
						
									
										2
									
								
								Makefile
									
										
									
									
									
								
							|  | @ -55,6 +55,7 @@ HEADERS = \ | |||
| 	qt-ui/graphicsview-common.h \
 | ||||
| 	qt-ui/printdialog.h \
 | ||||
| 	qt-ui/printoptions.h \
 | ||||
| 	qt-ui/printlayout.h \
 | ||||
| 
 | ||||
| 
 | ||||
| SOURCES = \
 | ||||
|  | @ -98,6 +99,7 @@ SOURCES = \ | |||
| 	qt-ui/graphicsview-common.cpp \
 | ||||
| 	qt-ui/printdialog.cpp \
 | ||||
| 	qt-ui/printoptions.cpp \
 | ||||
| 	qt-ui/printlayout.cpp \
 | ||||
| 	$(RESFILE) | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -16,6 +16,10 @@ PrintDialog::PrintDialog(QWidget *parent, Qt::WindowFlags f) | |||
| 	// options template (are we storing these in the settings?)
 | ||||
| 	struct options tempOptions = {options::PRETTY, 0, 2, false, 65, 15, 12}; | ||||
| 	printOptions = tempOptions; | ||||
| 
 | ||||
| 	// create a print layout and pass the printer and options
 | ||||
| 	printLayout = new PrintLayout(this, &printer, &printOptions); | ||||
| 
 | ||||
| 	/* temporary.
 | ||||
| 	 * add the PrintOptions widget and a Print button for testing purposes. */ | ||||
| 	optionsWidget = new PrintOptions(this, &printOptions); | ||||
|  | @ -40,4 +44,5 @@ void PrintDialog::runDialog() | |||
| void PrintDialog::printClicked(void) | ||||
| { | ||||
| 	// nop for now
 | ||||
| 	printLayout->print(); | ||||
| } | ||||
|  |  | |||
|  | @ -2,8 +2,10 @@ | |||
| #define PRINTDIALOG_H | ||||
| 
 | ||||
| #include <QDialog> | ||||
| #include <QPrinter> | ||||
| #include "../display.h" | ||||
| #include "printoptions.h" | ||||
| #include "printlayout.h" | ||||
| 
 | ||||
| // should be based on a custom QPrintDialog class
 | ||||
| class PrintDialog : public QDialog { | ||||
|  | @ -17,6 +19,8 @@ public: | |||
| private: | ||||
| 	explicit PrintDialog(QWidget *parent = 0, Qt::WindowFlags f = 0); | ||||
| 	PrintOptions *optionsWidget; | ||||
| 	PrintLayout *printLayout; | ||||
| 	QPrinter printer; | ||||
| 
 | ||||
| private slots: | ||||
| 	void printClicked(); | ||||
|  |  | |||
							
								
								
									
										50
									
								
								qt-ui/printlayout.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								qt-ui/printlayout.cpp
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,50 @@ | |||
| #include <QPainter> | ||||
| #include "mainwindow.h" | ||||
| #include "printlayout.h" | ||||
| 
 | ||||
| /*
 | ||||
| struct options { | ||||
| 	enum { PRETTY, TABLE, TWOPERPAGE } type; | ||||
| 	int print_selected; | ||||
| 	int color_selected; | ||||
| 	bool notes_up; | ||||
| 	int profile_height, notes_height, tanks_height; | ||||
| }; | ||||
| */ | ||||
| 
 | ||||
| PrintLayout::PrintLayout(PrintDialog *dialogPtr, QPrinter *printerPtr, struct options *optionsPtr) | ||||
| { | ||||
| 	dialog = dialogPtr; | ||||
| 	printer = printerPtr; | ||||
| 	printOptions = optionsPtr; | ||||
| } | ||||
| 
 | ||||
| void PrintLayout::print() | ||||
| { | ||||
| 	switch (printOptions->type) { | ||||
| 	case options::PRETTY: | ||||
| 		printSixDives(); | ||||
| 		break; | ||||
| 	case options::TWOPERPAGE: | ||||
| 		printTwoDives(); | ||||
| 		break; | ||||
| 	case options::TABLE: | ||||
| 		printTable(); | ||||
| 		break; | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| void PrintLayout::printSixDives() | ||||
| { | ||||
| 	// nop
 | ||||
| } | ||||
| 
 | ||||
| void PrintLayout::printTwoDives() | ||||
| { | ||||
| 	// nop
 | ||||
| } | ||||
| 
 | ||||
| void PrintLayout::printTable() | ||||
| { | ||||
| 	// nop
 | ||||
| } | ||||
							
								
								
									
										29
									
								
								qt-ui/printlayout.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								qt-ui/printlayout.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,29 @@ | |||
| #ifndef PRINTLAYOUT_H | ||||
| #define PRINTLAYOUT_H | ||||
| 
 | ||||
| #include <QPrinter> | ||||
| #include <QPainter> | ||||
| #include "../display.h" | ||||
| 
 | ||||
| class PrintDialog; | ||||
| 
 | ||||
| class PrintLayout : public QObject { | ||||
| 	Q_OBJECT | ||||
| 
 | ||||
| public: | ||||
| 	PrintLayout(PrintDialog *, QPrinter *, struct options *); | ||||
| 	void print(); | ||||
| 
 | ||||
| private: | ||||
| 	PrintDialog *dialog; | ||||
| 	QPrinter *printer; | ||||
| 	struct options *printOptions; | ||||
| 
 | ||||
| 	QPainter painter; | ||||
| 
 | ||||
| 	void printSixDives(); | ||||
| 	void printTwoDives(); | ||||
| 	void printTable(); | ||||
| }; | ||||
| 
 | ||||
| #endif | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue