2017-04-27 18:26:05 +00:00
|
|
|
// SPDX-License-Identifier: GPL-2.0
|
2015-04-21 15:23:13 +00:00
|
|
|
#ifndef TEMPLATELAYOUT_H
|
|
|
|
#define TEMPLATELAYOUT_H
|
|
|
|
|
2017-11-24 20:54:54 +00:00
|
|
|
#include <QStringList>
|
2015-04-21 15:23:13 +00:00
|
|
|
#include <grantlee_templates.h>
|
|
|
|
#include "mainwindow.h"
|
2015-06-14 04:25:35 +00:00
|
|
|
#include "printoptions.h"
|
2016-04-05 16:40:03 +00:00
|
|
|
#include "core/statistics.h"
|
|
|
|
#include "core/qthelper.h"
|
2016-04-05 05:02:03 +00:00
|
|
|
#include "core/subsurface-qt/DiveObjectHelper.h"
|
2015-04-21 15:23:13 +00:00
|
|
|
|
2015-06-21 04:13:22 +00:00
|
|
|
int getTotalWork(print_options *printOptions);
|
2015-07-24 07:26:25 +00:00
|
|
|
void find_all_templates();
|
2017-11-22 23:59:26 +00:00
|
|
|
void set_bundled_templates_as_read_only();
|
2017-11-24 20:54:54 +00:00
|
|
|
void copy_bundled_templates(QString src, QString dst, QStringList *templateBackupList);
|
2015-07-24 07:26:25 +00:00
|
|
|
|
2015-08-21 17:03:42 +00:00
|
|
|
extern QList<QString> grantlee_templates, grantlee_statistics_templates;
|
2015-06-10 11:39:15 +00:00
|
|
|
|
2015-04-21 15:23:13 +00:00
|
|
|
class TemplateLayout : public QObject {
|
|
|
|
Q_OBJECT
|
|
|
|
public:
|
2015-07-02 20:26:31 +00:00
|
|
|
TemplateLayout(print_options *PrintOptions, template_options *templateOptions);
|
2015-04-21 15:23:13 +00:00
|
|
|
QString generate();
|
2015-08-21 17:03:42 +00:00
|
|
|
QString generateStatistics();
|
2015-07-05 04:21:39 +00:00
|
|
|
static QString readTemplate(QString template_name);
|
|
|
|
static void writeTemplate(QString template_name, QString grantlee_template);
|
2015-04-21 15:23:13 +00:00
|
|
|
|
|
|
|
private:
|
2015-06-14 04:25:35 +00:00
|
|
|
print_options *PrintOptions;
|
2015-07-02 20:26:31 +00:00
|
|
|
template_options *templateOptions;
|
2015-05-30 13:32:15 +00:00
|
|
|
|
|
|
|
signals:
|
|
|
|
void progressUpdated(int value);
|
2015-04-21 15:23:13 +00:00
|
|
|
};
|
|
|
|
|
2015-08-21 17:00:46 +00:00
|
|
|
class YearInfo {
|
|
|
|
public:
|
|
|
|
stats_t *year;
|
|
|
|
YearInfo(stats_t& year)
|
|
|
|
:year(&year)
|
|
|
|
{
|
|
|
|
|
|
|
|
}
|
|
|
|
YearInfo();
|
|
|
|
~YearInfo();
|
|
|
|
};
|
|
|
|
|
2015-07-02 20:26:31 +00:00
|
|
|
Q_DECLARE_METATYPE(template_options)
|
2015-07-16 09:39:27 +00:00
|
|
|
Q_DECLARE_METATYPE(print_options)
|
2015-08-21 17:00:46 +00:00
|
|
|
Q_DECLARE_METATYPE(YearInfo)
|
2015-04-21 15:23:13 +00:00
|
|
|
|
2015-07-02 20:37:14 +00:00
|
|
|
GRANTLEE_BEGIN_LOOKUP(template_options)
|
|
|
|
if (property == "font") {
|
|
|
|
switch (object.font_index) {
|
|
|
|
case 0:
|
|
|
|
return "Arial, Helvetica, sans-serif";
|
|
|
|
case 1:
|
|
|
|
return "Impact, Charcoal, sans-serif";
|
|
|
|
case 2:
|
|
|
|
return "Georgia, serif";
|
|
|
|
case 3:
|
|
|
|
return "Courier, monospace";
|
|
|
|
case 4:
|
|
|
|
return "Verdana, Geneva, sans-serif";
|
|
|
|
}
|
2015-08-11 20:50:27 +00:00
|
|
|
} else if (property == "borderwidth") {
|
|
|
|
return object.border_width;
|
2015-07-02 20:37:14 +00:00
|
|
|
} else if (property == "font_size") {
|
|
|
|
return object.font_size / 9.0;
|
|
|
|
} else if (property == "line_spacing") {
|
|
|
|
return object.line_spacing;
|
2015-07-13 09:19:03 +00:00
|
|
|
} else if (property == "color1") {
|
|
|
|
return object.color_palette.color1.name();
|
|
|
|
} else if (property == "color2") {
|
|
|
|
return object.color_palette.color2.name();
|
|
|
|
} else if (property == "color3") {
|
|
|
|
return object.color_palette.color3.name();
|
|
|
|
} else if (property == "color4") {
|
|
|
|
return object.color_palette.color4.name();
|
|
|
|
} else if (property == "color5") {
|
|
|
|
return object.color_palette.color5.name();
|
2015-08-07 07:54:09 +00:00
|
|
|
} else if (property == "color6") {
|
|
|
|
return object.color_palette.color6.name();
|
2015-07-02 20:37:14 +00:00
|
|
|
}
|
|
|
|
GRANTLEE_END_LOOKUP
|
|
|
|
|
2015-07-16 09:39:27 +00:00
|
|
|
GRANTLEE_BEGIN_LOOKUP(print_options)
|
|
|
|
if (property == "grayscale") {
|
|
|
|
if (object.color_selected) {
|
|
|
|
return "";
|
|
|
|
} else {
|
|
|
|
return "-webkit-filter: grayscale(100%)";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
GRANTLEE_END_LOOKUP
|
|
|
|
|
2015-08-21 17:00:46 +00:00
|
|
|
GRANTLEE_BEGIN_LOOKUP(YearInfo)
|
|
|
|
if (property == "year") {
|
|
|
|
return object.year->period;
|
|
|
|
} else if (property == "dives") {
|
|
|
|
return object.year->selection_size;
|
|
|
|
} else if (property == "min_temp") {
|
2018-02-18 20:55:57 +00:00
|
|
|
return object.year->min_temp.mkelvin == 0 ? "0" : get_temperature_string(object.year->min_temp, true);
|
2015-08-21 17:00:46 +00:00
|
|
|
} else if (property == "max_temp") {
|
2018-02-18 20:55:57 +00:00
|
|
|
return object.year->max_temp.mkelvin == 0 ? "0" : get_temperature_string(object.year->max_temp, true);
|
2015-08-21 17:00:46 +00:00
|
|
|
} else if (property == "total_time") {
|
2018-07-03 14:52:20 +00:00
|
|
|
return get_dive_duration_string(object.year->total_time.seconds, gettextFromC::tr("h"),
|
|
|
|
gettextFromC::tr("min"), gettextFromC::tr("sec"), " ");
|
2015-08-21 17:00:46 +00:00
|
|
|
} else if (property == "avg_time") {
|
|
|
|
return get_minutes(object.year->total_time.seconds / object.year->selection_size);
|
|
|
|
} else if (property == "shortest_time") {
|
|
|
|
return get_minutes(object.year->shortest_time.seconds);
|
|
|
|
} else if (property == "longest_time") {
|
|
|
|
return get_minutes(object.year->longest_time.seconds);
|
|
|
|
} else if (property == "avg_depth") {
|
|
|
|
return get_depth_string(object.year->avg_depth);
|
|
|
|
} else if (property == "min_depth") {
|
|
|
|
return get_depth_string(object.year->min_depth);
|
|
|
|
} else if (property == "max_depth") {
|
|
|
|
return get_depth_string(object.year->max_depth);
|
|
|
|
} else if (property == "avg_sac") {
|
|
|
|
return get_volume_string(object.year->avg_sac);
|
|
|
|
} else if (property == "min_sac") {
|
|
|
|
return get_volume_string(object.year->min_sac);
|
|
|
|
} else if (property == "max_sac") {
|
|
|
|
return get_volume_string(object.year->max_sac);
|
|
|
|
}
|
|
|
|
GRANTLEE_END_LOOKUP
|
|
|
|
|
2015-04-21 15:23:13 +00:00
|
|
|
#endif
|