summaryrefslogtreecommitdiffstats
path: root/desktop-widgets/printoptions.h
diff options
context:
space:
mode:
Diffstat (limited to 'desktop-widgets/printoptions.h')
-rw-r--r--desktop-widgets/printoptions.h88
1 files changed, 88 insertions, 0 deletions
diff --git a/desktop-widgets/printoptions.h b/desktop-widgets/printoptions.h
new file mode 100644
index 000000000..9c50b10f3
--- /dev/null
+++ b/desktop-widgets/printoptions.h
@@ -0,0 +1,88 @@
+#ifndef PRINTOPTIONS_H
+#define PRINTOPTIONS_H
+
+#include <QWidget>
+
+#include "ui_printoptions.h"
+
+struct print_options {
+ enum print_type {
+ DIVELIST,
+ STATISTICS
+ } type;
+ QString p_template;
+ bool print_selected;
+ bool color_selected;
+ bool landscape;
+};
+
+struct template_options {
+ int font_index;
+ int color_palette_index;
+ int border_width;
+ double font_size;
+ double line_spacing;
+ struct color_palette_struct {
+ QColor color1;
+ QColor color2;
+ QColor color3;
+ QColor color4;
+ QColor color5;
+ QColor color6;
+ bool operator!=(const color_palette_struct &other) const {
+ return other.color1 != color1
+ || other.color2 != color2
+ || other.color3 != color3
+ || other.color4 != color4
+ || other.color5 != color5
+ || other.color6 != color6;
+ }
+ } color_palette;
+ bool operator!=(const template_options &other) const {
+ return other.font_index != font_index
+ || other.color_palette_index != color_palette_index
+ || other.font_size != font_size
+ || other.line_spacing != line_spacing
+ || other.color_palette != color_palette;
+ }
+ };
+
+extern template_options::color_palette_struct ssrf_colors, almond_colors, blueshades_colors, custom_colors;
+
+enum color_palette {
+ SSRF_COLORS,
+ ALMOND,
+ BLUESHADES,
+ CUSTOM
+};
+
+// should be based on a custom QPrintDialog class
+class PrintOptions : public QWidget {
+ Q_OBJECT
+
+public:
+ explicit PrintOptions(QWidget *parent, struct print_options *printOpt, struct template_options *templateOpt);
+ void setup();
+ QString getSelectedTemplate();
+
+private:
+ Ui::PrintOptions ui;
+ struct print_options *printOptions;
+ struct template_options *templateOptions;
+ bool hasSetupSlots;
+ void setupTemplates();
+
+private
+slots:
+ void printInColorClicked(bool check);
+ void printSelectedClicked(bool check);
+ void on_radioStatisticsPrint_toggled(bool check);
+ void on_radioDiveListPrint_toggled(bool check);
+ void on_printTemplate_currentIndexChanged(int index);
+ void on_editButton_clicked();
+ void on_importButton_clicked();
+ void on_exportButton_clicked();
+ void on_deleteButton_clicked();
+};
+
+#endif // PRINTOPTIONS_H