diff --git a/core/qthelper.cpp b/core/qthelper.cpp index 1ae9ecfa7..2e6536892 100644 --- a/core/qthelper.cpp +++ b/core/qthelper.cpp @@ -358,10 +358,10 @@ extern "C" char *move_away(const char *old_path) return copy_qstring(newPath); } -extern "C" char *get_file_name(const char *fileName) +std::string get_file_name(const char *fileName) { QFileInfo fileInfo(fileName); - return copy_qstring(fileInfo.fileName()); + return fileInfo.fileName().toStdString(); } extern "C" void copy_image_and_overwrite(const char *cfileName, const char *path, const char *cnewName) diff --git a/core/qthelper.h b/core/qthelper.h index 66bbce5c8..d0601ef49 100644 --- a/core/qthelper.h +++ b/core/qthelper.h @@ -104,6 +104,7 @@ void uiNotification(const QString &msg); std::string get_changes_made(); std::string subsurface_user_agent(); std::string normalize_cloud_name(const char *remote_in); +std::string get_file_name(const char *fileName); #if defined __APPLE__ #define TITLE_OR_TEXT(_t, _m) "", _t + "\n" + _m @@ -125,7 +126,6 @@ bool getProxyString(char **buffer); bool canReachCloudServer(struct git_info *); void updateWindowTitle(); void subsurface_mkdir(const char *dir); -char *get_file_name(const char *fileName); void copy_image_and_overwrite(const char *cfileName, const char *path, const char *cnewName); char *move_away(const char *path); const char *local_file_path(struct picture *picture); diff --git a/core/save-html.cpp b/core/save-html.cpp index 13dd66c65..eaa3f9103 100644 --- a/core/save-html.cpp +++ b/core/save-html.cpp @@ -40,12 +40,11 @@ static void save_photos(struct membuffer *b, const char *photos_dir, struct dive FOR_EACH_PICTURE(dive) { put_string(b, separator); separator = ", "; - char *fname = get_file_name(local_file_path(picture)); + std::string fname = get_file_name(local_file_path(picture)); put_string(b, "{\"filename\":\""); - put_quoted(b, fname, 1, 0); + put_quoted(b, fname.c_str(), 1, 0); put_string(b, "\"}"); - copy_image_and_overwrite(local_file_path(picture), photos_dir, fname); - free(fname); + copy_image_and_overwrite(local_file_path(picture), photos_dir, fname.c_str()); } put_string(b, "],"); } @@ -483,7 +482,7 @@ void export_HTML(const char *file_name, const char *photos_dir, const bool selec { FILE *f; - struct membuffer buf = { 0 }; + struct membufferpp buf; export_list(&buf, photos_dir, selected_only, list_only); f = subsurface_fopen(file_name, "w+"); @@ -493,88 +492,86 @@ void export_HTML(const char *file_name, const char *photos_dir, const bool selec flush_buffer(&buf, f); /*check for writing errors? */ fclose(f); } - free_buffer(&buf); } void export_translation(const char *file_name) { FILE *f; - struct membuffer buf = { 0 }; - struct membuffer *b = &buf; + struct membufferpp buf; //export translated words here - put_format(b, "translate={"); + put_format(&buf, "translate={"); //Dive list view - write_attribute(b, "Number", translate("gettextFromC", "Number"), ", "); - write_attribute(b, "Date", translate("gettextFromC", "Date"), ", "); - write_attribute(b, "Time", translate("gettextFromC", "Time"), ", "); - write_attribute(b, "Location", translate("gettextFromC", "Location"), ", "); - write_attribute(b, "Air_Temp", translate("gettextFromC", "Air temp."), ", "); - write_attribute(b, "Water_Temp", translate("gettextFromC", "Water temp."), ", "); - write_attribute(b, "dives", translate("gettextFromC", "Dives"), ", "); - write_attribute(b, "Expand_All", translate("gettextFromC", "Expand all"), ", "); - write_attribute(b, "Collapse_All", translate("gettextFromC", "Collapse all"), ", "); - write_attribute(b, "trips", translate("gettextFromC", "Trips"), ", "); - write_attribute(b, "Statistics", translate("gettextFromC", "Statistics"), ", "); - write_attribute(b, "Advanced_Search", translate("gettextFromC", "Advanced search"), ", "); + write_attribute(&buf, "Number", translate("gettextFromC", "Number"), ", "); + write_attribute(&buf, "Date", translate("gettextFromC", "Date"), ", "); + write_attribute(&buf, "Time", translate("gettextFromC", "Time"), ", "); + write_attribute(&buf, "Location", translate("gettextFromC", "Location"), ", "); + write_attribute(&buf, "Air_Temp", translate("gettextFromC", "Air temp."), ", "); + write_attribute(&buf, "Water_Temp", translate("gettextFromC", "Water temp."), ", "); + write_attribute(&buf, "dives", translate("gettextFromC", "Dives"), ", "); + write_attribute(&buf, "Expand_All", translate("gettextFromC", "Expand all"), ", "); + write_attribute(&buf, "Collapse_All", translate("gettextFromC", "Collapse all"), ", "); + write_attribute(&buf, "trips", translate("gettextFromC", "Trips"), ", "); + write_attribute(&buf, "Statistics", translate("gettextFromC", "Statistics"), ", "); + write_attribute(&buf, "Advanced_Search", translate("gettextFromC", "Advanced search"), ", "); //Dive expanded view - write_attribute(b, "Rating", translate("gettextFromC", "Rating"), ", "); - write_attribute(b, "WaveSize", translate("gettextFromC", "WaveSize"), ", "); - write_attribute(b, "Visibility", translate("gettextFromC", "Visibility"), ", "); - write_attribute(b, "Current", translate("gettextFromC", "Current"), ", "); - write_attribute(b, "Surge", translate("gettextFromC", "Surge"), ", "); - write_attribute(b, "Chill", translate("gettextFromC", "Chill"), ", "); - write_attribute(b, "Duration", translate("gettextFromC", "Duration"), ", "); - write_attribute(b, "DiveGuide", translate("gettextFromC", "Diveguide"), ", "); - write_attribute(b, "DiveMaster", translate("gettextFromC", "Divemaster"), ", "); - write_attribute(b, "Buddy", translate("gettextFromC", "Buddy"), ", "); - write_attribute(b, "Suit", translate("gettextFromC", "Suit"), ", "); - write_attribute(b, "Tags", translate("gettextFromC", "Tags"), ", "); - write_attribute(b, "Notes", translate("gettextFromC", "Notes"), ", "); - write_attribute(b, "Show_more_details", translate("gettextFromC", "Show more details"), ", "); + write_attribute(&buf, "Rating", translate("gettextFromC", "Rating"), ", "); + write_attribute(&buf, "WaveSize", translate("gettextFromC", "WaveSize"), ", "); + write_attribute(&buf, "Visibility", translate("gettextFromC", "Visibility"), ", "); + write_attribute(&buf, "Current", translate("gettextFromC", "Current"), ", "); + write_attribute(&buf, "Surge", translate("gettextFromC", "Surge"), ", "); + write_attribute(&buf, "Chill", translate("gettextFromC", "Chill"), ", "); + write_attribute(&buf, "Duration", translate("gettextFromC", "Duration"), ", "); + write_attribute(&buf, "DiveGuide", translate("gettextFromC", "Diveguide"), ", "); + write_attribute(&buf, "DiveMaster", translate("gettextFromC", "Divemaster"), ", "); + write_attribute(&buf, "Buddy", translate("gettextFromC", "Buddy"), ", "); + write_attribute(&buf, "Suit", translate("gettextFromC", "Suit"), ", "); + write_attribute(&buf, "Tags", translate("gettextFromC", "Tags"), ", "); + write_attribute(&buf, "Notes", translate("gettextFromC", "Notes"), ", "); + write_attribute(&buf, "Show_more_details", translate("gettextFromC", "Show more details"), ", "); //Yearly statistics view - write_attribute(b, "Yearly_statistics", translate("gettextFromC", "Yearly statistics"), ", "); - write_attribute(b, "Year", translate("gettextFromC", "Year"), ", "); - write_attribute(b, "Total_Time", translate("gettextFromC", "Total time"), ", "); - write_attribute(b, "Average_Time", translate("gettextFromC", "Average time"), ", "); - write_attribute(b, "Shortest_Time", translate("gettextFromC", "Shortest time"), ", "); - write_attribute(b, "Longest_Time", translate("gettextFromC", "Longest time"), ", "); - write_attribute(b, "Average_Depth", translate("gettextFromC", "Average depth"), ", "); - write_attribute(b, "Min_Depth", translate("gettextFromC", "Min. depth"), ", "); - write_attribute(b, "Max_Depth", translate("gettextFromC", "Max. depth"), ", "); - write_attribute(b, "Average_SAC", translate("gettextFromC", "Average SAC"), ", "); - write_attribute(b, "Min_SAC", translate("gettextFromC", "Min. SAC"), ", "); - write_attribute(b, "Max_SAC", translate("gettextFromC", "Max. SAC"), ", "); - write_attribute(b, "Average_Temp", translate("gettextFromC", "Average temp."), ", "); - write_attribute(b, "Min_Temp", translate("gettextFromC", "Min. temp."), ", "); - write_attribute(b, "Max_Temp", translate("gettextFromC", "Max. temp."), ", "); - write_attribute(b, "Back_to_List", translate("gettextFromC", "Back to list"), ", "); + write_attribute(&buf, "Yearly_statistics", translate("gettextFromC", "Yearly statistics"), ", "); + write_attribute(&buf, "Year", translate("gettextFromC", "Year"), ", "); + write_attribute(&buf, "Total_Time", translate("gettextFromC", "Total time"), ", "); + write_attribute(&buf, "Average_Time", translate("gettextFromC", "Average time"), ", "); + write_attribute(&buf, "Shortest_Time", translate("gettextFromC", "Shortest time"), ", "); + write_attribute(&buf, "Longest_Time", translate("gettextFromC", "Longest time"), ", "); + write_attribute(&buf, "Average_Depth", translate("gettextFromC", "Average depth"), ", "); + write_attribute(&buf, "Min_Depth", translate("gettextFromC", "Min. depth"), ", "); + write_attribute(&buf, "Max_Depth", translate("gettextFromC", "Max. depth"), ", "); + write_attribute(&buf, "Average_SAC", translate("gettextFromC", "Average SAC"), ", "); + write_attribute(&buf, "Min_SAC", translate("gettextFromC", "Min. SAC"), ", "); + write_attribute(&buf, "Max_SAC", translate("gettextFromC", "Max. SAC"), ", "); + write_attribute(&buf, "Average_Temp", translate("gettextFromC", "Average temp."), ", "); + write_attribute(&buf, "Min_Temp", translate("gettextFromC", "Min. temp."), ", "); + write_attribute(&buf, "Max_Temp", translate("gettextFromC", "Max. temp."), ", "); + write_attribute(&buf, "Back_to_List", translate("gettextFromC", "Back to list"), ", "); //dive detailed view - write_attribute(b, "Dive_No", translate("gettextFromC", "Dive #"), ", "); - write_attribute(b, "Dive_profile", translate("gettextFromC", "Dive profile"), ", "); - write_attribute(b, "Dive_information", translate("gettextFromC", "Dive information"), ", "); - write_attribute(b, "Dive_equipment", translate("gettextFromC", "Dive equipment"), ", "); - write_attribute(b, "Type", translate("gettextFromC", "Type"), ", "); - write_attribute(b, "Size", translate("gettextFromC", "Size"), ", "); - write_attribute(b, "Work_Pressure", translate("gettextFromC", "Work pressure"), ", "); - write_attribute(b, "Start_Pressure", translate("gettextFromC", "Start pressure"), ", "); - write_attribute(b, "End_Pressure", translate("gettextFromC", "End pressure"), ", "); - write_attribute(b, "Gas", translate("gettextFromC", "Gas"), ", "); - write_attribute(b, "Weight", translate("gettextFromC", "Weight"), ", "); - write_attribute(b, "Type", translate("gettextFromC", "Type"), ", "); - write_attribute(b, "Events", translate("gettextFromC", "Events"), ", "); - write_attribute(b, "Name", translate("gettextFromC", "Name"), ", "); - write_attribute(b, "Value", translate("gettextFromC", "Value"), ", "); - write_attribute(b, "Coordinates", translate("gettextFromC", "Coordinates"), ", "); - write_attribute(b, "Dive_Status", translate("gettextFromC", "Dive status"), " "); + write_attribute(&buf, "Dive_No", translate("gettextFromC", "Dive #"), ", "); + write_attribute(&buf, "Dive_profile", translate("gettextFromC", "Dive profile"), ", "); + write_attribute(&buf, "Dive_information", translate("gettextFromC", "Dive information"), ", "); + write_attribute(&buf, "Dive_equipment", translate("gettextFromC", "Dive equipment"), ", "); + write_attribute(&buf, "Type", translate("gettextFromC", "Type"), ", "); + write_attribute(&buf, "Size", translate("gettextFromC", "Size"), ", "); + write_attribute(&buf, "Work_Pressure", translate("gettextFromC", "Work pressure"), ", "); + write_attribute(&buf, "Start_Pressure", translate("gettextFromC", "Start pressure"), ", "); + write_attribute(&buf, "End_Pressure", translate("gettextFromC", "End pressure"), ", "); + write_attribute(&buf, "Gas", translate("gettextFromC", "Gas"), ", "); + write_attribute(&buf, "Weight", translate("gettextFromC", "Weight"), ", "); + write_attribute(&buf, "Type", translate("gettextFromC", "Type"), ", "); + write_attribute(&buf, "Events", translate("gettextFromC", "Events"), ", "); + write_attribute(&buf, "Name", translate("gettextFromC", "Name"), ", "); + write_attribute(&buf, "Value", translate("gettextFromC", "Value"), ", "); + write_attribute(&buf, "Coordinates", translate("gettextFromC", "Coordinates"), ", "); + write_attribute(&buf, "Dive_Status", translate("gettextFromC", "Dive status"), " "); - put_format(b, "}"); + put_format(&buf, "}"); f = subsurface_fopen(file_name, "w+"); if (!f) { @@ -583,5 +580,4 @@ void export_translation(const char *file_name) flush_buffer(&buf, f); /*check for writing errors? */ fclose(f); } - free_buffer(&buf); }