mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
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:
parent
831fe3d7f9
commit
e8c918622f
6 changed files with 44 additions and 2 deletions
|
@ -51,6 +51,7 @@ PrintDialog::PrintDialog(QWidget *parent, Qt::WindowFlags f) :
|
||||||
templateOptions.font_size = s.value("font_size", 9).toDouble();
|
templateOptions.font_size = s.value("font_size", 9).toDouble();
|
||||||
templateOptions.color_palette_index = s.value("color_palette", SSRF_COLORS).toInt();
|
templateOptions.color_palette_index = s.value("color_palette", SSRF_COLORS).toInt();
|
||||||
templateOptions.line_spacing = s.value("line_spacing", 1).toDouble();
|
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.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.color2 = QColor(s.value("custom_color_2", ssrf_colors.color2).toString());
|
||||||
custom_colors.color3 = QColor(s.value("custom_color_3", ssrf_colors.color3).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("font_size", templateOptions.font_size);
|
||||||
s.setValue("color_palette", templateOptions.color_palette_index);
|
s.setValue("color_palette", templateOptions.color_palette_index);
|
||||||
s.setValue("line_spacing", templateOptions.line_spacing);
|
s.setValue("line_spacing", templateOptions.line_spacing);
|
||||||
|
s.setValue("border_width", templateOptions.border_width);
|
||||||
|
|
||||||
// save custom colors
|
// save custom colors
|
||||||
s.setValue("custom_color_1", custom_colors.color1.name());
|
s.setValue("custom_color_1", custom_colors.color1.name());
|
||||||
|
|
|
@ -237,7 +237,7 @@ void Printer::print()
|
||||||
webView->page()->mainFrame()->setScrollBarPolicy(Qt::Vertical, Qt::ScrollBarAlwaysOff);
|
webView->page()->mainFrame()->setScrollBarPolicy(Qt::Vertical, Qt::ScrollBarAlwaysOff);
|
||||||
#endif
|
#endif
|
||||||
// export border width with at least 1 pixel
|
// 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) {
|
if (printOptions->type == print_options::DIVELIST) {
|
||||||
webView->setHtml(t.generate());
|
webView->setHtml(t.generate());
|
||||||
} else if (printOptions->type == print_options::STATISTICS ) {
|
} else if (printOptions->type == print_options::STATISTICS ) {
|
||||||
|
@ -284,7 +284,7 @@ void Printer::previewOnePage()
|
||||||
webView->page()->setViewportSize(pageSize);
|
webView->page()->setViewportSize(pageSize);
|
||||||
#endif
|
#endif
|
||||||
// initialize the border settings
|
// 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) {
|
if (printOptions->type == print_options::DIVELIST) {
|
||||||
webView->setHtml(t.generate());
|
webView->setHtml(t.generate());
|
||||||
} else if (printOptions->type == print_options::STATISTICS ) {
|
} else if (printOptions->type == print_options::STATISTICS ) {
|
||||||
|
|
|
@ -43,6 +43,7 @@ struct template_options {
|
||||||
|| other.color_palette_index != color_palette_index
|
|| other.color_palette_index != color_palette_index
|
||||||
|| other.font_size != font_size
|
|| other.font_size != font_size
|
||||||
|| other.line_spacing != line_spacing
|
|| other.line_spacing != line_spacing
|
||||||
|
|| other.border_width != border_width
|
||||||
|| other.color_palette != color_palette;
|
|| other.color_palette != color_palette;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -20,6 +20,7 @@ TemplateEdit::TemplateEdit(QWidget *parent, struct print_options *printOptions,
|
||||||
ui->fontsize->setValue(templateOptions->font_size);
|
ui->fontsize->setValue(templateOptions->font_size);
|
||||||
ui->colorpalette->setCurrentIndex(templateOptions->color_palette_index);
|
ui->colorpalette->setCurrentIndex(templateOptions->color_palette_index);
|
||||||
ui->linespacing->setValue(templateOptions->line_spacing);
|
ui->linespacing->setValue(templateOptions->line_spacing);
|
||||||
|
ui->borderwidth->setValue(templateOptions->border_width);
|
||||||
|
|
||||||
grantlee_template = TemplateLayout::readTemplate(printOptions->p_template);
|
grantlee_template = TemplateLayout::readTemplate(printOptions->p_template);
|
||||||
if (printOptions->type == print_options::DIVELIST)
|
if (printOptions->type == print_options::DIVELIST)
|
||||||
|
@ -97,6 +98,12 @@ void TemplateEdit::on_linespacing_valueChanged(double line_spacing)
|
||||||
updatePreview();
|
updatePreview();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TemplateEdit::on_borderwidth_valueChanged(double border_width)
|
||||||
|
{
|
||||||
|
newTemplateOptions.border_width = (int)border_width;
|
||||||
|
updatePreview();
|
||||||
|
}
|
||||||
|
|
||||||
void TemplateEdit::on_fontSelection_currentIndexChanged(int index)
|
void TemplateEdit::on_fontSelection_currentIndexChanged(int index)
|
||||||
{
|
{
|
||||||
newTemplateOptions.font_index = index;
|
newTemplateOptions.font_index = index;
|
||||||
|
|
|
@ -20,6 +20,8 @@ private slots:
|
||||||
|
|
||||||
void on_linespacing_valueChanged(double line_spacing);
|
void on_linespacing_valueChanged(double line_spacing);
|
||||||
|
|
||||||
|
void on_borderwidth_valueChanged(double border_width);
|
||||||
|
|
||||||
void on_fontSelection_currentIndexChanged(int index);
|
void on_fontSelection_currentIndexChanged(int index);
|
||||||
|
|
||||||
void on_colorpalette_currentIndexChanged(int index);
|
void on_colorpalette_currentIndexChanged(int index);
|
||||||
|
|
|
@ -219,6 +219,36 @@
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</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>
|
<item>
|
||||||
<spacer name="verticalSpacer">
|
<spacer name="verticalSpacer">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
|
|
Loading…
Add table
Reference in a new issue