mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Use unit selection for XSL transformation on CSV export
Signed-off-by: Miika Turkia <miika.turkia@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
c1d9055948
commit
5d68c7d4a1
3 changed files with 12 additions and 4 deletions
2
dive.h
2
dive.h
|
@ -638,7 +638,7 @@ extern int parse_manual_file(const char *filename, int separator_index, int unit
|
||||||
extern int save_dives(const char *filename);
|
extern int save_dives(const char *filename);
|
||||||
extern int save_dives_logic(const char *filename, bool select_only);
|
extern int save_dives_logic(const char *filename, bool select_only);
|
||||||
extern int save_dive(FILE *f, struct dive *dive);
|
extern int save_dive(FILE *f, struct dive *dive);
|
||||||
extern int export_dives_xslt(const char *filename, const bool selected, const char *export_xslt);
|
extern int export_dives_xslt(const char *filename, const bool selected, const int units, const char *export_xslt);
|
||||||
|
|
||||||
struct git_oid;
|
struct git_oid;
|
||||||
struct git_repository;
|
struct git_repository;
|
||||||
|
|
|
@ -318,7 +318,7 @@ void DiveLogExportDialog::on_buttonBox_accepted()
|
||||||
settings.endGroup();
|
settings.endGroup();
|
||||||
// the non XSLT exports are called directly above, the XSLT based ons are called here
|
// the non XSLT exports are called directly above, the XSLT based ons are called here
|
||||||
if (!stylesheet.isEmpty())
|
if (!stylesheet.isEmpty())
|
||||||
export_dives_xslt(filename.toUtf8(), ui->exportSelected->isChecked(), stylesheet.toUtf8());
|
export_dives_xslt(filename.toUtf8(), ui->exportSelected->isChecked(), ui->CSVUnits_2->currentIndex(), stylesheet.toUtf8());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
12
save-xml.c
12
save-xml.c
|
@ -638,7 +638,7 @@ int save_dives_logic(const char *filename, const bool select_only)
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
int export_dives_xslt(const char *filename, const bool selected, const char *export_xslt)
|
int export_dives_xslt(const char *filename, const bool selected, const int units, const char *export_xslt)
|
||||||
{
|
{
|
||||||
FILE *f;
|
FILE *f;
|
||||||
struct membuffer buf = { 0 };
|
struct membuffer buf = { 0 };
|
||||||
|
@ -646,6 +646,9 @@ int export_dives_xslt(const char *filename, const bool selected, const char *exp
|
||||||
xsltStylesheetPtr xslt = NULL;
|
xsltStylesheetPtr xslt = NULL;
|
||||||
xmlDoc *transformed;
|
xmlDoc *transformed;
|
||||||
int res = 0;
|
int res = 0;
|
||||||
|
char *params[3];
|
||||||
|
int pnr = 0;
|
||||||
|
char unitstr[3];
|
||||||
|
|
||||||
if (verbose)
|
if (verbose)
|
||||||
fprintf(stderr, "export_dives_xslt with stylesheet %s\n", export_xslt);
|
fprintf(stderr, "export_dives_xslt with stylesheet %s\n", export_xslt);
|
||||||
|
@ -671,7 +674,12 @@ int export_dives_xslt(const char *filename, const bool selected, const char *exp
|
||||||
if (!xslt)
|
if (!xslt)
|
||||||
return report_error("Failed to open export conversion stylesheet");
|
return report_error("Failed to open export conversion stylesheet");
|
||||||
|
|
||||||
transformed = xsltApplyStylesheet(xslt, doc, NULL);
|
snprintf(unitstr, 3, "%d", units);
|
||||||
|
params[pnr++] = "units";
|
||||||
|
params[pnr++] = unitstr;
|
||||||
|
params[pnr++] = NULL;
|
||||||
|
|
||||||
|
transformed = xsltApplyStylesheet(xslt, doc, (const char **)params);
|
||||||
xmlFreeDoc(doc);
|
xmlFreeDoc(doc);
|
||||||
|
|
||||||
/* Write the transformed export to file */
|
/* Write the transformed export to file */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue