Printing: support the "Border width" setting for templates

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@zoology.up.ac.za>
Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Lubomir I. Ivanov 2017-03-06 18:41:54 +02:00 committed by Dirk Hohndel
parent 831fe3d7f9
commit e8c918622f
6 changed files with 44 additions and 2 deletions

View file

@ -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());

View file

@ -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 ) {

View file

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

View file

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

View file

@ -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);

View file

@ -219,6 +219,36 @@
</item>
</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">