[PATCH] Printing: support the "Border width" setting for templates
Lubomir I. Ivanov
neolit123 at gmail.com
Mon Mar 6 08:41:54 PST 2017
From: "Lubomir I. Ivanov" <neolit123 at gmail.com>
Going to "Template -> Edit" now has a field to enter the
border width (in pixels as only that makes sense in CSS as a flexible
unit, TMK).
This field modifies the template_options.borderwidth Grantlee
property which is part of the bundled templates already
and allows the users to modify the borders of tables.
The C++ implementation was missing, while the HTML (template)
implementation was already in place. Overlooked during GSoC.
Reported-by: Willem Ferguson <willemferguson at zoology.up.ac.za>
Signed-off-by: Lubomir I. Ivanov <neolit123 at gmail.com>
---
desktop-widgets/printdialog.cpp | 2 ++
desktop-widgets/printer.cpp | 4 ++--
desktop-widgets/printoptions.h | 1 +
desktop-widgets/templateedit.cpp | 7 +++++++
desktop-widgets/templateedit.h | 2 ++
desktop-widgets/templateedit.ui | 30 ++++++++++++++++++++++++++++++
6 files changed, 44 insertions(+), 2 deletions(-)
diff --git a/desktop-widgets/printdialog.cpp b/desktop-widgets/printdialog.cpp
index 5fdc781..e9f11ca 100644
--- a/desktop-widgets/printdialog.cpp
+++ b/desktop-widgets/printdialog.cpp
@@ -51,6 +51,7 @@ PrintDialog::PrintDialog(QWidget *parent, Qt::WindowFlags f) :
templateOptions.font_size = s.value("font_size", 9).toDouble();
templateOptions.color_palette_index = s.value("color_palette", SSRF_COLORS).toInt();
templateOptions.line_spacing = s.value("line_spacing", 1).toDouble();
+ templateOptions.border_width = s.value("border_width", 1).toInt();
custom_colors.color1 = QColor(s.value("custom_color_1", ssrf_colors.color1).toString());
custom_colors.color2 = QColor(s.value("custom_color_2", ssrf_colors.color2).toString());
custom_colors.color3 = QColor(s.value("custom_color_3", ssrf_colors.color3).toString());
@@ -148,6 +149,7 @@ void PrintDialog::onFinished()
s.setValue("font_size", templateOptions.font_size);
s.setValue("color_palette", templateOptions.color_palette_index);
s.setValue("line_spacing", templateOptions.line_spacing);
+ s.setValue("border_width", templateOptions.border_width);
// save custom colors
s.setValue("custom_color_1", custom_colors.color1.name());
diff --git a/desktop-widgets/printer.cpp b/desktop-widgets/printer.cpp
index bad1c27..49a9a18 100644
--- a/desktop-widgets/printer.cpp
+++ b/desktop-widgets/printer.cpp
@@ -237,7 +237,7 @@ void Printer::print()
webView->page()->mainFrame()->setScrollBarPolicy(Qt::Vertical, Qt::ScrollBarAlwaysOff);
#endif
// export border width with at least 1 pixel
- templateOptions->border_width = std::max(1, pageSize.width() / 1000);
+ // templateOptions->borderwidth = std::max(1, pageSize.width() / 1000);
if (printOptions->type == print_options::DIVELIST) {
webView->setHtml(t.generate());
} else if (printOptions->type == print_options::STATISTICS ) {
@@ -284,7 +284,7 @@ void Printer::previewOnePage()
webView->page()->setViewportSize(pageSize);
#endif
// initialize the border settings
- templateOptions->border_width = std::max(1, pageSize.width() / 1000);
+ // templateOptions->border_width = std::max(1, pageSize.width() / 1000);
if (printOptions->type == print_options::DIVELIST) {
webView->setHtml(t.generate());
} else if (printOptions->type == print_options::STATISTICS ) {
diff --git a/desktop-widgets/printoptions.h b/desktop-widgets/printoptions.h
index 9c50b10..b8248b7 100644
--- a/desktop-widgets/printoptions.h
+++ b/desktop-widgets/printoptions.h
@@ -43,6 +43,7 @@ struct template_options {
|| other.color_palette_index != color_palette_index
|| other.font_size != font_size
|| other.line_spacing != line_spacing
+ || other.border_width != border_width
|| other.color_palette != color_palette;
}
};
diff --git a/desktop-widgets/templateedit.cpp b/desktop-widgets/templateedit.cpp
index 4964016..ea63140 100644
--- a/desktop-widgets/templateedit.cpp
+++ b/desktop-widgets/templateedit.cpp
@@ -20,6 +20,7 @@ TemplateEdit::TemplateEdit(QWidget *parent, struct print_options *printOptions,
ui->fontsize->setValue(templateOptions->font_size);
ui->colorpalette->setCurrentIndex(templateOptions->color_palette_index);
ui->linespacing->setValue(templateOptions->line_spacing);
+ ui->borderwidth->setValue(templateOptions->border_width);
grantlee_template = TemplateLayout::readTemplate(printOptions->p_template);
if (printOptions->type == print_options::DIVELIST)
@@ -97,6 +98,12 @@ void TemplateEdit::on_linespacing_valueChanged(double line_spacing)
updatePreview();
}
+void TemplateEdit::on_borderwidth_valueChanged(double border_width)
+{
+ newTemplateOptions.border_width = (int)border_width;
+ updatePreview();
+}
+
void TemplateEdit::on_fontSelection_currentIndexChanged(int index)
{
newTemplateOptions.font_index = index;
diff --git a/desktop-widgets/templateedit.h b/desktop-widgets/templateedit.h
index 5e548ae..abbe8e2 100644
--- a/desktop-widgets/templateedit.h
+++ b/desktop-widgets/templateedit.h
@@ -20,6 +20,8 @@ private slots:
void on_linespacing_valueChanged(double line_spacing);
+ void on_borderwidth_valueChanged(double border_width);
+
void on_fontSelection_currentIndexChanged(int index);
void on_colorpalette_currentIndexChanged(int index);
diff --git a/desktop-widgets/templateedit.ui b/desktop-widgets/templateedit.ui
index 60a0fc7..616d135 100644
--- a/desktop-widgets/templateedit.ui
+++ b/desktop-widgets/templateedit.ui
@@ -220,6 +220,36 @@
</layout>
</item>
<item>
+ <layout class="QHBoxLayout" name="horizontalLayout_3">
+ <item>
+ <widget class="QLabel" name="borderwidth_label">
+ <property name="text">
+ <string>Border width</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QDoubleSpinBox" name="borderwidth">
+ <property name="decimals">
+ <number>0</number>
+ </property>
+ <property name="minimum">
+ <double>0.000000000000000</double>
+ </property>
+ <property name="maximum">
+ <double>100.000000000000000</double>
+ </property>
+ <property name="singleStep">
+ <double>1.000000000000000</double>
+ </property>
+ <property name="value">
+ <double>1.000000000000000</double>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
--
1.7.11.msysgit.0
More information about the subsurface
mailing list