From a3f7aa71f9ef90fdb69a20b5eb29c3119af68b11 Mon Sep 17 00:00:00 2001 From: Omari Stephens Date: Tue, 28 May 2024 23:42:55 +0000 Subject: [PATCH 01/15] Moves filedata.cc to filedata/filedata.cc --- src/{ => filedata}/filedata.cc | 0 src/filedata/meson.build | 24 ++++++++++++++++++++++++ src/meson.build | 1 + 3 files changed, 25 insertions(+) rename src/{ => filedata}/filedata.cc (100%) create mode 100644 src/filedata/meson.build diff --git a/src/filedata.cc b/src/filedata/filedata.cc similarity index 100% rename from src/filedata.cc rename to src/filedata/filedata.cc diff --git a/src/filedata/meson.build b/src/filedata/meson.build new file mode 100644 index 000000000..03a8ab87b --- /dev/null +++ b/src/filedata/meson.build @@ -0,0 +1,24 @@ +# +# Copyright (C) 2024 The Geeqie Team +# +# Author: Omari Stephens +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Build file for filedata sub-components. + +filedata_sources = files('filedata.cc') + +project_sources += filedata_sources diff --git a/src/meson.build b/src/meson.build index e39330e77..5ecaeb11f 100644 --- a/src/meson.build +++ b/src/meson.build @@ -303,6 +303,7 @@ endif project_sources += main_sources subdir('authors') +subdir('filedata') subdir('icons') subdir('pan-view') subdir('third-party') From 7745d455848a884b9544fefb3d3556c52b3ee185 Mon Sep 17 00:00:00 2001 From: Omari Stephens Date: Fri, 31 May 2024 03:08:48 +0000 Subject: [PATCH 02/15] Step 1 of a 2-step copy of filedata.h to filedata.cc This is required to maintain history for both branches of the file. --- src/{filedata.h => filedata.cc} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/{filedata.h => filedata.cc} (100%) diff --git a/src/filedata.h b/src/filedata.cc similarity index 100% rename from src/filedata.h rename to src/filedata.cc From cd1583f1e0c43dd7e23df91f2eec408b26c5ed00 Mon Sep 17 00:00:00 2001 From: Omari Stephens Date: Fri, 31 May 2024 07:05:47 +0000 Subject: [PATCH 03/15] Adds `src/filedata/` subdir to clang-tidy-check.sh --- scripts/clang-tidy-check.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/clang-tidy-check.sh b/scripts/clang-tidy-check.sh index 474a1a710..fb430ae50 100755 --- a/scripts/clang-tidy-check.sh +++ b/scripts/clang-tidy-check.sh @@ -120,12 +120,12 @@ then $(find src -name "*.cc" | sort) EOF else - total_files=$(git diff --name-only ./src/*.cc ./src/pan-view/*.cc ./src/view-file/*.cc | wc --lines) + total_files=$(git diff --name-only ./src/*.cc ./src/filedata/*.cc ./src/pan-view/*.cc ./src/view-file/*.cc | wc --lines) while read -r file do process_file done << EOF -$(git diff --name-only ./src/*.cc ./src/pan-view/*.cc ./src/view-file/*.cc | sort) +$(git diff --name-only ./src/*.cc ./src/filedata/*.cc ./src/pan-view/*.cc ./src/view-file/*.cc | sort) EOF fi From 81724baf30c032ee66073a3f006d8b05ffe3fcdc Mon Sep 17 00:00:00 2001 From: Omari Stephens Date: Fri, 31 May 2024 03:08:48 +0000 Subject: [PATCH 04/15] Step 2 of a 2-step copy of filedata.h to filedata.cc This is required to maintain history for both branches of the file. --- src/filedata.h | 295 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 295 insertions(+) create mode 100644 src/filedata.h diff --git a/src/filedata.h b/src/filedata.h new file mode 100644 index 000000000..547a9fbcf --- /dev/null +++ b/src/filedata.h @@ -0,0 +1,295 @@ +/* + * Copyright (C) 2004 John Ellis + * Copyright (C) 2008 - 2016 The Geeqie Team + * + * Author: John Ellis + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef FILEDATA_H +#define FILEDATA_H + +#include + +#include +#include + +#include + +#include "typedefs.h" + +struct ExifData; +struct HistMap; + +#ifdef DEBUG +#define DEBUG_FILEDATA +#endif + +#define FD_MAGICK 0x12345678u + +gchar *text_from_size(gint64 size); +gchar *text_from_size_abrev(gint64 size); +const gchar *text_from_time(time_t t); + +enum FileDataChangeType { + FILEDATA_CHANGE_DELETE, + FILEDATA_CHANGE_MOVE, + FILEDATA_CHANGE_RENAME, + FILEDATA_CHANGE_COPY, + FILEDATA_CHANGE_UNSPECIFIED, + FILEDATA_CHANGE_WRITE_METADATA +}; + +enum NotifyPriority { + NOTIFY_PRIORITY_HIGH = 0, + NOTIFY_PRIORITY_MEDIUM, + NOTIFY_PRIORITY_LOW +}; + +enum SelectionType { + SELECTION_NONE = 0, + SELECTION_SELECTED = 1 << 0, + SELECTION_PRELIGHT = 1 << 1, + SELECTION_FOCUS = 1 << 2 +}; + +struct FileDataChangeInfo { + FileDataChangeType type; + gchar *source; + gchar *dest; + gint error; + gboolean regroup_when_finished; +}; + +struct FileData { + guint magick; + gint type; + gchar *original_path; /**< key to file_data_pool hash table */ + gchar *path; + const gchar *name; + const gchar *extension; + gchar *extended_extension; + FileFormatClass format_class; + gchar *format_name; /**< set by the image loader */ + gchar *collate_key_name; + gchar *collate_key_name_nocase; + gchar *collate_key_name_natural; + gchar *collate_key_name_nocase_natural; + gint64 size; + time_t date; + time_t cdate; + mode_t mode; /**< this is needed at least for notification in view_dir because it is preserved after the file/directory is deleted */ + gint sidecar_priority; + + guint marks; /**< each bit represents one mark */ + guint valid_marks; /**< zero bit means that the corresponding mark needs to be reread */ + + + GList *sidecar_files; + FileData *parent; /**< parent file if this is a sidecar file, NULL otherwise */ + FileDataChangeInfo *change; /**< for rename, move ... */ + GdkPixbuf *thumb_pixbuf; + + GdkPixbuf *pixbuf; /**< full-size image, only complete images, NULL during loading + all FileData with non-NULL pixbuf are referenced by image_cache */ + + HistMap *histmap; + + gboolean locked; + gint ref; + gint version; /**< increased when any field in this structure is changed */ + gboolean disable_grouping; + + gint user_orientation; + gint exif_orientation; + + ExifData *exif; + time_t exifdate; + time_t exifdate_digitized; + GHashTable *modified_xmp; /**< hash table which contains unwritten xmp metadata in format: key->list of string values */ + GList *cached_metadata; + gint rating; + gboolean metadata_in_idle_loaded; + + gchar *owner; + gchar *group; + gchar *sym_link; + + SelectionType selected; /**< Used by view-file-icon. */ + + gint page_num; + gint page_total; +}; + +/** + * @headerfile file_data_new_group + * scan for sidecar files - expensive + */ +FileData *file_data_new_group(const gchar *path_utf8); + +/** + * @headerfile file_data_new_no_grouping + * should be used on helper files which can't have sidecars + */ +FileData *file_data_new_no_grouping(const gchar *path_utf8); + +/** + * @headerfile file_data_new_dir + * should be used on dirs + */ +FileData *file_data_new_dir(const gchar *path_utf8); + +FileData *file_data_new_simple(const gchar *path_utf8); + +#ifdef DEBUG_FILEDATA +FileData *file_data_ref_debug(const gchar *file, gint line, FileData *fd); +void file_data_unref_debug(const gchar *file, gint line, FileData *fd); +#define file_data_ref(fd) file_data_ref_debug(__FILE__, __LINE__, fd) +#define file_data_unref(fd) file_data_unref_debug(__FILE__, __LINE__, fd) +#else +FileData *file_data_ref(FileData *fd); +void file_data_unref(FileData *fd); +#endif + +void file_data_lock(FileData *fd); +void file_data_unlock(FileData *fd); +void file_data_lock_list(GList *list); +void file_data_unlock_list(GList *list); + +gboolean file_data_check_changed_files(FileData *fd); + +void file_data_increment_version(FileData *fd); + +gboolean file_data_add_change_info(FileData *fd, FileDataChangeType type, const gchar *src, const gchar *dest); +void file_data_change_info_free(FileDataChangeInfo *fdci, FileData *fd); + +void file_data_disable_grouping(FileData *fd, gboolean disable); +void file_data_disable_grouping_list(GList *fd_list, gboolean disable); + +gint filelist_sort_compare_filedata(FileData *fa, FileData *fb); +gint filelist_sort_compare_filedata_full(FileData *fa, FileData *fb, SortType method, gboolean ascend); +GList *filelist_sort(GList *list, SortType method, gboolean ascend, gboolean case_sensitive); +GList *filelist_sort_full(GList *list, SortType method, gboolean ascend, gboolean case_sensitive, GCompareFunc cb); +GList *filelist_insert_sort_full(GList *list, gpointer data, SortType method, gboolean ascend, gboolean case_sensitive, GCompareFunc cb); + +gboolean filelist_read(FileData *dir_fd, GList **files, GList **dirs); +gboolean filelist_read_lstat(FileData *dir_fd, GList **files, GList **dirs); +void filelist_free(GList *list); +GList *filelist_copy(GList *list); +GList *filelist_from_path_list(GList *list); +GList *filelist_to_path_list(GList *list); + +GList *filelist_filter(GList *list, gboolean is_dir_list); + +GList *filelist_sort_path(GList *list); +GList *filelist_recursive(FileData *dir_fd); +GList *filelist_recursive_full(FileData *dir_fd, SortType method, gboolean ascend, gboolean case_sensitive); + +using FileDataGetMarkFunc = gboolean (*)(FileData *, gint, gpointer); +using FileDataSetMarkFunc = gboolean (*)(FileData *, gint, gboolean, gpointer); +gboolean file_data_register_mark_func(gint n, FileDataGetMarkFunc get_mark_func, FileDataSetMarkFunc set_mark_func, gpointer data, GDestroyNotify notify); +void file_data_get_registered_mark_func(gint n, FileDataGetMarkFunc *get_mark_func, FileDataSetMarkFunc *set_mark_func, gpointer *data); + + +gboolean file_data_get_mark(FileData *fd, gint n); +guint file_data_get_marks(FileData *fd); +void file_data_set_mark(FileData *fd, gint n, gboolean value); +gboolean file_data_filter_marks(FileData *fd, guint filter); +GList *file_data_filter_marks_list(GList *list, guint filter); + +gboolean file_data_mark_to_selection(FileData *fd, gint mark, MarkToSelectionMode mode, gboolean selected); +void file_data_selection_to_mark(FileData *fd, gint mark, SelectionToMarkMode mode); + +gboolean file_data_filter_file_filter(FileData *fd, GRegex *filter); +GList *file_data_filter_file_filter_list(GList *list, GRegex *filter); + +GList *file_data_filter_class_list(GList *list, guint filter); + +gchar *file_data_sc_list_to_string(FileData *fd); + +gchar *file_data_get_sidecar_path(FileData *fd, gboolean existing_only); + + +gboolean file_data_add_ci(FileData *fd, FileDataChangeType type, const gchar *src, const gchar *dest); +gboolean file_data_sc_add_ci_copy(FileData *fd, const gchar *dest_path); +gboolean file_data_sc_add_ci_move(FileData *fd, const gchar *dest_path); +gboolean file_data_sc_add_ci_rename(FileData *fd, const gchar *dest_path); +gboolean file_data_sc_add_ci_delete(FileData *fd); +gboolean file_data_sc_add_ci_unspecified(FileData *fd, const gchar *dest_path); + +gboolean file_data_sc_add_ci_delete_list(GList *fd_list); +gboolean file_data_sc_add_ci_copy_list(GList *fd_list, const gchar *dest); +gboolean file_data_sc_add_ci_move_list(GList *fd_list, const gchar *dest); +gboolean file_data_sc_add_ci_rename_list(GList *fd_list, const gchar *dest); +gboolean file_data_sc_add_ci_unspecified_list(GList *fd_list, const gchar *dest); +gboolean file_data_add_ci_write_metadata_list(GList *fd_list); + +gboolean file_data_sc_update_ci_copy_list(GList *fd_list, const gchar *dest); +gboolean file_data_sc_update_ci_move_list(GList *fd_list, const gchar *dest); +gboolean file_data_sc_update_ci_unspecified_list(GList *fd_list, const gchar *dest); + + +gboolean file_data_sc_update_ci_copy(FileData *fd, const gchar *dest_path); +gboolean file_data_sc_update_ci_move(FileData *fd, const gchar *dest_path); +gboolean file_data_sc_update_ci_rename(FileData *fd, const gchar *dest_path); +gboolean file_data_sc_update_ci_unspecified(FileData *fd, const gchar *dest_path); + +gchar *file_data_get_error_string(gint error); + +gint file_data_verify_ci(FileData *fd, GList *list); +gint file_data_verify_ci_list(GList *list, gchar **desc, gboolean with_sidecars); + +gboolean file_data_perform_ci(FileData *fd); +gboolean file_data_apply_ci(FileData *fd); +void file_data_free_ci(FileData *fd); +void file_data_free_ci_list(GList *fd_list); + +void file_data_set_regroup_when_finished(FileData *fd, gboolean enable); + +gint file_data_sc_verify_ci(FileData *fd, GList *list); + +gboolean file_data_sc_perform_ci(FileData *fd); +gboolean file_data_sc_apply_ci(FileData *fd); +void file_data_sc_free_ci(FileData *fd); +void file_data_sc_free_ci_list(GList *fd_list); + +GList *file_data_process_groups_in_selection(GList *list, gboolean ungroup, GList **ungrouped); + + +using FileDataNotifyFunc = void (*)(FileData *, NotifyType, gpointer); +gboolean file_data_register_notify_func(FileDataNotifyFunc func, gpointer data, NotifyPriority priority); +gboolean file_data_unregister_notify_func(FileDataNotifyFunc func, gpointer data); +void file_data_send_notification(FileData *fd, NotifyType type); + +gboolean file_data_register_real_time_monitor(FileData *fd); +gboolean file_data_unregister_real_time_monitor(FileData *fd); + +void read_exif_time_data(FileData *file); +void read_exif_time_digitized_data(FileData *file); + +gboolean marks_list_save(gchar *path, gboolean save); +gboolean marks_list_load(const gchar *path); +void marks_clear_all(); +void read_rating_data(FileData *file); + +void file_data_inc_page_num(FileData *fd); +void file_data_dec_page_num(FileData *fd); +void file_data_set_page_total(FileData *fd, gint page_total); +void file_data_set_page_num(FileData *fd, gint page_num); + +void file_data_dump(); +#endif +/* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */ From 971622c61f1ddbcbbe70fa3ebe20dece12cc2bca Mon Sep 17 00:00:00 2001 From: Omari Stephens Date: Fri, 31 May 2024 07:06:11 +0000 Subject: [PATCH 05/15] Updates path to `src/filedata/filedata.cc` in translation files. --- po/POTFILES | 2 +- po/ar.po | 36 ++++++++++++++++++------------------ po/be.po | 36 ++++++++++++++++++------------------ po/bg.po | 36 ++++++++++++++++++------------------ po/ca.po | 36 ++++++++++++++++++------------------ po/cs.po | 36 ++++++++++++++++++------------------ po/da.po | 36 ++++++++++++++++++------------------ po/de.po | 36 ++++++++++++++++++------------------ po/el.po | 36 ++++++++++++++++++------------------ po/en_GB.po | 36 ++++++++++++++++++------------------ po/eo.po | 36 ++++++++++++++++++------------------ po/es.po | 36 ++++++++++++++++++------------------ po/et.po | 36 ++++++++++++++++++------------------ po/eu.po | 36 ++++++++++++++++++------------------ po/fi.po | 36 ++++++++++++++++++------------------ po/fr.po | 36 ++++++++++++++++++------------------ po/hu.po | 36 ++++++++++++++++++------------------ po/id.po | 36 ++++++++++++++++++------------------ po/it.po | 36 ++++++++++++++++++------------------ po/ja.po | 36 ++++++++++++++++++------------------ po/ko.po | 36 ++++++++++++++++++------------------ po/nb.po | 36 ++++++++++++++++++------------------ po/nl.po | 36 ++++++++++++++++++------------------ po/pl.po | 36 ++++++++++++++++++------------------ po/pt_BR.po | 36 ++++++++++++++++++------------------ po/ro.po | 36 ++++++++++++++++++------------------ po/ru.po | 36 ++++++++++++++++++------------------ po/sk.po | 36 ++++++++++++++++++------------------ po/sl.po | 36 ++++++++++++++++++------------------ po/sr.po | 36 ++++++++++++++++++------------------ po/sr@latin.po | 36 ++++++++++++++++++------------------ po/sv.po | 36 ++++++++++++++++++------------------ po/th.po | 36 ++++++++++++++++++------------------ po/tlh.po | 36 ++++++++++++++++++------------------ po/tr.po | 36 ++++++++++++++++++------------------ po/uk.po | 36 ++++++++++++++++++------------------ po/vi.po | 36 ++++++++++++++++++------------------ po/zh_CN.po | 36 ++++++++++++++++++------------------ po/zh_TW.po | 36 ++++++++++++++++++------------------ 39 files changed, 685 insertions(+), 685 deletions(-) diff --git a/po/POTFILES b/po/POTFILES index f6cba4026..5997d5fc7 100644 --- a/po/POTFILES +++ b/po/POTFILES @@ -40,7 +40,7 @@ src/exif.cc src/exif-common.cc src/exiv2.cc src/filecache.cc -src/filedata.cc +src/filedata/filedata.cc src/filefilter.cc src/format-canon.cc src/format-fuji.cc diff --git a/po/ar.po b/po/ar.po index 4ed674e09..a6c6fe807 100644 --- a/po/ar.po +++ b/po/ar.po @@ -2664,31 +2664,31 @@ msgstr "تاريخ الملف" msgid "Lens" msgstr "" -#: src/filedata.cc:134 +#: src/filedata/filedata.cc:134 #, c-format msgid "%d bytes" msgstr "%d بايت" -#: src/filedata.cc:138 +#: src/filedata/filedata.cc:138 #, fuzzy, c-format msgid "%.1f KiB" msgstr "%.1f ك" -#: src/filedata.cc:142 +#: src/filedata/filedata.cc:142 #, fuzzy, c-format msgid "%.1f MiB" msgstr "%.1f ميجابايت" -#: src/filedata.cc:147 +#: src/filedata/filedata.cc:147 #, fuzzy, c-format msgid "%.1f GiB" msgstr "%.1f جيجابايت" -#: src/filedata.cc:2826 +#: src/filedata/filedata.cc:2826 msgid "file or directory does not exist" msgstr "" -#: src/filedata.cc:2832 +#: src/filedata/filedata.cc:2832 #, fuzzy msgid "destination already exists" msgstr "" @@ -2696,54 +2696,54 @@ msgstr "" "%s \n" " موجود بالفعل." -#: src/filedata.cc:2838 +#: src/filedata/filedata.cc:2838 msgid "destination can't be overwritten" msgstr "" -#: src/filedata.cc:2844 +#: src/filedata/filedata.cc:2844 msgid "destination directory is not writable" msgstr "" -#: src/filedata.cc:2850 +#: src/filedata/filedata.cc:2850 msgid "destination directory does not exist" msgstr "" -#: src/filedata.cc:2856 +#: src/filedata/filedata.cc:2856 msgid "source directory is not writable" msgstr "" -#: src/filedata.cc:2862 +#: src/filedata/filedata.cc:2862 #, fuzzy msgid "no read permission" msgstr "(غير مصرّح للقراءة) %s بايتات" -#: src/filedata.cc:2868 +#: src/filedata/filedata.cc:2868 msgid "file is readonly" msgstr "" -#: src/filedata.cc:2874 +#: src/filedata/filedata.cc:2874 msgid "destination already exists and will be overwritten" msgstr "" -#: src/filedata.cc:2880 +#: src/filedata/filedata.cc:2880 #, fuzzy msgid "source and destination are the same" msgstr "الملف المصدر هو الملف المهدف. تم إلغاء العملية." -#: src/filedata.cc:2886 +#: src/filedata/filedata.cc:2886 #, fuzzy msgid "source and destination have different extension" msgstr "الملف المصدر هو الملف المهدف. تم إلغاء العملية." -#: src/filedata.cc:2892 +#: src/filedata/filedata.cc:2892 msgid "there are unsaved metadata changes for the file" msgstr "" -#: src/filedata.cc:2898 +#: src/filedata/filedata.cc:2898 msgid "another destination file has the same filename" msgstr "" -#: src/filedata.cc:3460 +#: src/filedata/filedata.cc:3460 #, fuzzy, c-format msgid "Error: Unable to write marks lists to: %s\n" msgstr "فشل عملية حفظ قائمة تاريخ إستخدام البرنامج إلى %s \n" diff --git a/po/be.po b/po/be.po index 30060ffed..5666acb74 100644 --- a/po/be.po +++ b/po/be.po @@ -2604,31 +2604,31 @@ msgstr "Старонка %d" msgid "Lens" msgstr "" -#: src/filedata.cc:134 +#: src/filedata/filedata.cc:134 #, c-format msgid "%d bytes" msgstr "%d байтаў" -#: src/filedata.cc:138 +#: src/filedata/filedata.cc:138 #, fuzzy, c-format msgid "%.1f KiB" msgstr "%.1f K" -#: src/filedata.cc:142 +#: src/filedata/filedata.cc:142 #, fuzzy, c-format msgid "%.1f MiB" msgstr "%.1f MB" -#: src/filedata.cc:147 +#: src/filedata/filedata.cc:147 #, fuzzy, c-format msgid "%.1f GiB" msgstr "%.1f GB" -#: src/filedata.cc:2826 +#: src/filedata/filedata.cc:2826 msgid "file or directory does not exist" msgstr "" -#: src/filedata.cc:2832 +#: src/filedata/filedata.cc:2832 #, fuzzy msgid "destination already exists" msgstr "" @@ -2636,54 +2636,54 @@ msgstr "" "%s\n" "ужо існуе." -#: src/filedata.cc:2838 +#: src/filedata/filedata.cc:2838 msgid "destination can't be overwritten" msgstr "" -#: src/filedata.cc:2844 +#: src/filedata/filedata.cc:2844 msgid "destination directory is not writable" msgstr "" -#: src/filedata.cc:2850 +#: src/filedata/filedata.cc:2850 msgid "destination directory does not exist" msgstr "" -#: src/filedata.cc:2856 +#: src/filedata/filedata.cc:2856 msgid "source directory is not writable" msgstr "" -#: src/filedata.cc:2862 +#: src/filedata/filedata.cc:2862 #, fuzzy msgid "no read permission" msgstr "(няма правоў для чытання) %s байтаў" -#: src/filedata.cc:2868 +#: src/filedata/filedata.cc:2868 msgid "file is readonly" msgstr "" -#: src/filedata.cc:2874 +#: src/filedata/filedata.cc:2874 msgid "destination already exists and will be overwritten" msgstr "" -#: src/filedata.cc:2880 +#: src/filedata/filedata.cc:2880 #, fuzzy msgid "source and destination are the same" msgstr "Крыніца і пазначэнне аднолькавыя, аперацыя перарвана" -#: src/filedata.cc:2886 +#: src/filedata/filedata.cc:2886 #, fuzzy msgid "source and destination have different extension" msgstr "Крыніца і пазначэнне аднолькавыя, аперацыя перарвана" -#: src/filedata.cc:2892 +#: src/filedata/filedata.cc:2892 msgid "there are unsaved metadata changes for the file" msgstr "" -#: src/filedata.cc:2898 +#: src/filedata/filedata.cc:2898 msgid "another destination file has the same filename" msgstr "" -#: src/filedata.cc:3460 +#: src/filedata/filedata.cc:3460 #, fuzzy, c-format msgid "Error: Unable to write marks lists to: %s\n" msgstr "Немагчыма запісаць спісы гісторыі ў: %s\n" diff --git a/po/bg.po b/po/bg.po index 70b7e2e03..ee3fb9c45 100644 --- a/po/bg.po +++ b/po/bg.po @@ -2646,31 +2646,31 @@ msgstr "Страница %d" msgid "Lens" msgstr "" -#: src/filedata.cc:134 +#: src/filedata/filedata.cc:134 #, c-format msgid "%d bytes" msgstr "%d байта" -#: src/filedata.cc:138 +#: src/filedata/filedata.cc:138 #, fuzzy, c-format msgid "%.1f KiB" msgstr "%.1f K" -#: src/filedata.cc:142 +#: src/filedata/filedata.cc:142 #, fuzzy, c-format msgid "%.1f MiB" msgstr "%.1f МБ" -#: src/filedata.cc:147 +#: src/filedata/filedata.cc:147 #, fuzzy, c-format msgid "%.1f GiB" msgstr "%.1f ГБ" -#: src/filedata.cc:2826 +#: src/filedata/filedata.cc:2826 msgid "file or directory does not exist" msgstr "" -#: src/filedata.cc:2832 +#: src/filedata/filedata.cc:2832 #, fuzzy msgid "destination already exists" msgstr "" @@ -2678,54 +2678,54 @@ msgstr "" "%s\n" "вече съществува." -#: src/filedata.cc:2838 +#: src/filedata/filedata.cc:2838 msgid "destination can't be overwritten" msgstr "" -#: src/filedata.cc:2844 +#: src/filedata/filedata.cc:2844 msgid "destination directory is not writable" msgstr "" -#: src/filedata.cc:2850 +#: src/filedata/filedata.cc:2850 msgid "destination directory does not exist" msgstr "" -#: src/filedata.cc:2856 +#: src/filedata/filedata.cc:2856 msgid "source directory is not writable" msgstr "" -#: src/filedata.cc:2862 +#: src/filedata/filedata.cc:2862 #, fuzzy msgid "no read permission" msgstr "(няма право за четене) %s байта" -#: src/filedata.cc:2868 +#: src/filedata/filedata.cc:2868 msgid "file is readonly" msgstr "" -#: src/filedata.cc:2874 +#: src/filedata/filedata.cc:2874 msgid "destination already exists and will be overwritten" msgstr "" -#: src/filedata.cc:2880 +#: src/filedata/filedata.cc:2880 #, fuzzy msgid "source and destination are the same" msgstr "Източникът и целта са еднакви, операцията е прекъсната." -#: src/filedata.cc:2886 +#: src/filedata/filedata.cc:2886 #, fuzzy msgid "source and destination have different extension" msgstr "Източникът и целта са еднакви, операцията е прекъсната." -#: src/filedata.cc:2892 +#: src/filedata/filedata.cc:2892 msgid "there are unsaved metadata changes for the file" msgstr "" -#: src/filedata.cc:2898 +#: src/filedata/filedata.cc:2898 msgid "another destination file has the same filename" msgstr "" -#: src/filedata.cc:3460 +#: src/filedata/filedata.cc:3460 #, fuzzy, c-format msgid "Error: Unable to write marks lists to: %s\n" msgstr "Невъзможно е да бъдат записани списъците с историята в: %s\n" diff --git a/po/ca.po b/po/ca.po index 796f2deda..73b4cb667 100644 --- a/po/ca.po +++ b/po/ca.po @@ -2513,79 +2513,79 @@ msgstr "Pàgina número" msgid "Lens" msgstr "Lents" -#: src/filedata.cc:134 +#: src/filedata/filedata.cc:134 #, c-format msgid "%d bytes" msgstr "%d bytes" -#: src/filedata.cc:138 +#: src/filedata/filedata.cc:138 #, c-format msgid "%.1f KiB" msgstr "%.1f KB" -#: src/filedata.cc:142 +#: src/filedata/filedata.cc:142 #, c-format msgid "%.1f MiB" msgstr "%.1f MB" -#: src/filedata.cc:147 +#: src/filedata/filedata.cc:147 #, c-format msgid "%.1f GiB" msgstr "%.1f GB" -#: src/filedata.cc:2826 +#: src/filedata/filedata.cc:2826 msgid "file or directory does not exist" msgstr "el fitxer o el directori no existeix" -#: src/filedata.cc:2832 +#: src/filedata/filedata.cc:2832 msgid "destination already exists" msgstr "el destí ja existeix" -#: src/filedata.cc:2838 +#: src/filedata/filedata.cc:2838 msgid "destination can't be overwritten" msgstr "el destí no es pot sobreescriure" -#: src/filedata.cc:2844 +#: src/filedata/filedata.cc:2844 msgid "destination directory is not writable" msgstr "no es pot escriure al directori destí" -#: src/filedata.cc:2850 +#: src/filedata/filedata.cc:2850 msgid "destination directory does not exist" msgstr "el directori de destí no existeix" -#: src/filedata.cc:2856 +#: src/filedata/filedata.cc:2856 msgid "source directory is not writable" msgstr "no es pot escriure al directori font" -#: src/filedata.cc:2862 +#: src/filedata/filedata.cc:2862 msgid "no read permission" msgstr "no teniu permís de lectura" -#: src/filedata.cc:2868 +#: src/filedata/filedata.cc:2868 msgid "file is readonly" msgstr "el fitxer és de només lectura" -#: src/filedata.cc:2874 +#: src/filedata/filedata.cc:2874 msgid "destination already exists and will be overwritten" msgstr "el destí ja existeix i es sobreescriurà" -#: src/filedata.cc:2880 +#: src/filedata/filedata.cc:2880 msgid "source and destination are the same" msgstr "l'origen i el destí son els mateixos" -#: src/filedata.cc:2886 +#: src/filedata/filedata.cc:2886 msgid "source and destination have different extension" msgstr "l'origen i el destí tenen extensió diferent" -#: src/filedata.cc:2892 +#: src/filedata/filedata.cc:2892 msgid "there are unsaved metadata changes for the file" msgstr "hi ha canvis a les metadades del fitxer que no s'han desat" -#: src/filedata.cc:2898 +#: src/filedata/filedata.cc:2898 msgid "another destination file has the same filename" msgstr "un altre fitxer del destí té el mateix nom" -#: src/filedata.cc:3460 +#: src/filedata/filedata.cc:3460 #, c-format msgid "Error: Unable to write marks lists to: %s\n" msgstr "Error: No és possible escriure la llista de marques a: %s\n" diff --git a/po/cs.po b/po/cs.po index e3c9dc69e..c420bf015 100644 --- a/po/cs.po +++ b/po/cs.po @@ -2490,79 +2490,79 @@ msgstr "Strana č." msgid "Lens" msgstr "Objektiv" -#: src/filedata.cc:134 +#: src/filedata/filedata.cc:134 #, c-format msgid "%d bytes" msgstr "bajtů: %d" -#: src/filedata.cc:138 +#: src/filedata/filedata.cc:138 #, c-format msgid "%.1f KiB" msgstr "%.1f KiB" -#: src/filedata.cc:142 +#: src/filedata/filedata.cc:142 #, c-format msgid "%.1f MiB" msgstr "%.1f MiB" -#: src/filedata.cc:147 +#: src/filedata/filedata.cc:147 #, c-format msgid "%.1f GiB" msgstr "%.1f GiB" -#: src/filedata.cc:2826 +#: src/filedata/filedata.cc:2826 msgid "file or directory does not exist" msgstr "soubor nebo adresář neexistuje" -#: src/filedata.cc:2832 +#: src/filedata/filedata.cc:2832 msgid "destination already exists" msgstr "cílový soubor již existuje" -#: src/filedata.cc:2838 +#: src/filedata/filedata.cc:2838 msgid "destination can't be overwritten" msgstr "cílový soubor nemůže být přepsán" -#: src/filedata.cc:2844 +#: src/filedata/filedata.cc:2844 msgid "destination directory is not writable" msgstr "cílový adresář je jen pro čtení" -#: src/filedata.cc:2850 +#: src/filedata/filedata.cc:2850 msgid "destination directory does not exist" msgstr "cílový adresář neexistuje" -#: src/filedata.cc:2856 +#: src/filedata/filedata.cc:2856 msgid "source directory is not writable" msgstr "cílový adresář je jen pro čtení" -#: src/filedata.cc:2862 +#: src/filedata/filedata.cc:2862 msgid "no read permission" msgstr "chybí právo ke čtení" -#: src/filedata.cc:2868 +#: src/filedata/filedata.cc:2868 msgid "file is readonly" msgstr "soubor je jen pro čtení" -#: src/filedata.cc:2874 +#: src/filedata/filedata.cc:2874 msgid "destination already exists and will be overwritten" msgstr "cílový soubor již existuje a bude přepsán" -#: src/filedata.cc:2880 +#: src/filedata/filedata.cc:2880 msgid "source and destination are the same" msgstr "zdroj a cíl jsou totožné" -#: src/filedata.cc:2886 +#: src/filedata/filedata.cc:2886 msgid "source and destination have different extension" msgstr "zdroj a cíl mají různé přípony souboru" -#: src/filedata.cc:2892 +#: src/filedata/filedata.cc:2892 msgid "there are unsaved metadata changes for the file" msgstr "metadata pro soubor čekají na zapsání" -#: src/filedata.cc:2898 +#: src/filedata/filedata.cc:2898 msgid "another destination file has the same filename" msgstr "jiný cílový soubor má stejné jméno" -#: src/filedata.cc:3460 +#: src/filedata/filedata.cc:3460 #, c-format msgid "Error: Unable to write marks lists to: %s\n" msgstr "Chyba: Nelze zapsat seznam značek do: %s\n" diff --git a/po/da.po b/po/da.po index a39f093a4..5eb569fbc 100644 --- a/po/da.po +++ b/po/da.po @@ -2693,80 +2693,80 @@ msgstr "Filter:" msgid "Lens" msgstr "" -#: src/filedata.cc:134 +#: src/filedata/filedata.cc:134 #, fuzzy, c-format msgid "%d bytes" msgstr "%d filer" -#: src/filedata.cc:138 +#: src/filedata/filedata.cc:138 #, c-format msgid "%.1f KiB" msgstr "" -#: src/filedata.cc:142 +#: src/filedata/filedata.cc:142 #, c-format msgid "%.1f MiB" msgstr "" -#: src/filedata.cc:147 +#: src/filedata/filedata.cc:147 #, c-format msgid "%.1f GiB" msgstr "" -#: src/filedata.cc:2826 +#: src/filedata/filedata.cc:2826 msgid "file or directory does not exist" msgstr "" -#: src/filedata.cc:2832 +#: src/filedata/filedata.cc:2832 #, fuzzy msgid "destination already exists" msgstr "Fil ved navn %s findes allerede." -#: src/filedata.cc:2838 +#: src/filedata/filedata.cc:2838 msgid "destination can't be overwritten" msgstr "" -#: src/filedata.cc:2844 +#: src/filedata/filedata.cc:2844 msgid "destination directory is not writable" msgstr "" -#: src/filedata.cc:2850 +#: src/filedata/filedata.cc:2850 msgid "destination directory does not exist" msgstr "" -#: src/filedata.cc:2856 +#: src/filedata/filedata.cc:2856 msgid "source directory is not writable" msgstr "" -#: src/filedata.cc:2862 +#: src/filedata/filedata.cc:2862 msgid "no read permission" msgstr "" -#: src/filedata.cc:2868 +#: src/filedata/filedata.cc:2868 msgid "file is readonly" msgstr "" -#: src/filedata.cc:2874 +#: src/filedata/filedata.cc:2874 msgid "destination already exists and will be overwritten" msgstr "" -#: src/filedata.cc:2880 +#: src/filedata/filedata.cc:2880 msgid "source and destination are the same" msgstr "" -#: src/filedata.cc:2886 +#: src/filedata/filedata.cc:2886 msgid "source and destination have different extension" msgstr "" -#: src/filedata.cc:2892 +#: src/filedata/filedata.cc:2892 msgid "there are unsaved metadata changes for the file" msgstr "" -#: src/filedata.cc:2898 +#: src/filedata/filedata.cc:2898 msgid "another destination file has the same filename" msgstr "" -#: src/filedata.cc:3460 +#: src/filedata/filedata.cc:3460 #, fuzzy, c-format msgid "Error: Unable to write marks lists to: %s\n" msgstr "" diff --git a/po/de.po b/po/de.po index aded95f2f..a4daea406 100644 --- a/po/de.po +++ b/po/de.po @@ -2526,79 +2526,79 @@ msgstr "Seite Nr." msgid "Lens" msgstr "Linse" -#: src/filedata.cc:134 +#: src/filedata/filedata.cc:134 #, c-format msgid "%d bytes" msgstr "%d Byte" -#: src/filedata.cc:138 +#: src/filedata/filedata.cc:138 #, fuzzy, c-format msgid "%.1f KiB" msgstr "%.1f kB" -#: src/filedata.cc:142 +#: src/filedata/filedata.cc:142 #, fuzzy, c-format msgid "%.1f MiB" msgstr "%.1f MB" -#: src/filedata.cc:147 +#: src/filedata/filedata.cc:147 #, fuzzy, c-format msgid "%.1f GiB" msgstr "%.1f GB" -#: src/filedata.cc:2826 +#: src/filedata/filedata.cc:2826 msgid "file or directory does not exist" msgstr "Datei oder Verzeichnis existiert nicht" -#: src/filedata.cc:2832 +#: src/filedata/filedata.cc:2832 msgid "destination already exists" msgstr "Ziel existiert bereits" -#: src/filedata.cc:2838 +#: src/filedata/filedata.cc:2838 msgid "destination can't be overwritten" msgstr "Ziel kann nicht überschrieben werden" -#: src/filedata.cc:2844 +#: src/filedata/filedata.cc:2844 msgid "destination directory is not writable" msgstr "Zielverzeichnis ist nicht schreibbar" -#: src/filedata.cc:2850 +#: src/filedata/filedata.cc:2850 msgid "destination directory does not exist" msgstr "Zielverzeichnis existiert nicht" -#: src/filedata.cc:2856 +#: src/filedata/filedata.cc:2856 msgid "source directory is not writable" msgstr "Quellverzeichnis ist nicht schreibbar" -#: src/filedata.cc:2862 +#: src/filedata/filedata.cc:2862 msgid "no read permission" msgstr "keine Leserechte" -#: src/filedata.cc:2868 +#: src/filedata/filedata.cc:2868 msgid "file is readonly" msgstr "Datei ist schreibgeschützt" -#: src/filedata.cc:2874 +#: src/filedata/filedata.cc:2874 msgid "destination already exists and will be overwritten" msgstr "Ziel existiert bereits und wird überschrieben" -#: src/filedata.cc:2880 +#: src/filedata/filedata.cc:2880 msgid "source and destination are the same" msgstr "Quelle und Ziel sind gleich" -#: src/filedata.cc:2886 +#: src/filedata/filedata.cc:2886 msgid "source and destination have different extension" msgstr "Quelle und Ziel haben unterschiedliche Dateierweiterung" -#: src/filedata.cc:2892 +#: src/filedata/filedata.cc:2892 msgid "there are unsaved metadata changes for the file" msgstr "es gibt ungespeicherte Metadatenänderungen für die Datei" -#: src/filedata.cc:2898 +#: src/filedata/filedata.cc:2898 msgid "another destination file has the same filename" msgstr "Eine andere Zieldatei hat den selben Dateinamen" -#: src/filedata.cc:3460 +#: src/filedata/filedata.cc:3460 #, c-format msgid "Error: Unable to write marks lists to: %s\n" msgstr "Fehler: Markierungslisten können nicht geschrieben werden an: %s\n" diff --git a/po/el.po b/po/el.po index 5687e6189..02e16b86f 100644 --- a/po/el.po +++ b/po/el.po @@ -2549,79 +2549,79 @@ msgstr "Σελίδα %d" msgid "Lens" msgstr "" -#: src/filedata.cc:134 +#: src/filedata/filedata.cc:134 #, c-format msgid "%d bytes" msgstr "%d bytes" -#: src/filedata.cc:138 +#: src/filedata/filedata.cc:138 #, fuzzy, c-format msgid "%.1f KiB" msgstr "%.1f K" -#: src/filedata.cc:142 +#: src/filedata/filedata.cc:142 #, fuzzy, c-format msgid "%.1f MiB" msgstr "%.1f MB" -#: src/filedata.cc:147 +#: src/filedata/filedata.cc:147 #, fuzzy, c-format msgid "%.1f GiB" msgstr "%.1f GB" -#: src/filedata.cc:2826 +#: src/filedata/filedata.cc:2826 msgid "file or directory does not exist" msgstr "το αρχείο ή ο κατάλογος δεν υπάρχει" -#: src/filedata.cc:2832 +#: src/filedata/filedata.cc:2832 msgid "destination already exists" msgstr "ο προορισμός υπάρχει ήδη" -#: src/filedata.cc:2838 +#: src/filedata/filedata.cc:2838 msgid "destination can't be overwritten" msgstr "ο προορισμός δεν μπορεί να αντικατασταθεί" -#: src/filedata.cc:2844 +#: src/filedata/filedata.cc:2844 msgid "destination directory is not writable" msgstr "ο κατάλογος προορισμού δεν είναι εγγράψιμος" -#: src/filedata.cc:2850 +#: src/filedata/filedata.cc:2850 msgid "destination directory does not exist" msgstr "ο κατάλογος προορισμού δεν υπάρχει" -#: src/filedata.cc:2856 +#: src/filedata/filedata.cc:2856 msgid "source directory is not writable" msgstr "ο πηγαίος κατάλογος δεν είναι εγγράψιμος" -#: src/filedata.cc:2862 +#: src/filedata/filedata.cc:2862 msgid "no read permission" msgstr "χωρίς δικαιώματα ανάγνωσης" -#: src/filedata.cc:2868 +#: src/filedata/filedata.cc:2868 msgid "file is readonly" msgstr "το αρχείο είναι μόνο για ανάγνωση" -#: src/filedata.cc:2874 +#: src/filedata/filedata.cc:2874 msgid "destination already exists and will be overwritten" msgstr "ο προορισμός υπάρχει ήδη και θα αντικατασταθεί" -#: src/filedata.cc:2880 +#: src/filedata/filedata.cc:2880 msgid "source and destination are the same" msgstr "η πηγή και ο προορισμός είναι τα ίδια" -#: src/filedata.cc:2886 +#: src/filedata/filedata.cc:2886 msgid "source and destination have different extension" msgstr "η πηγή και ο προορισμός έχουν διαφορετική επέκταση" -#: src/filedata.cc:2892 +#: src/filedata/filedata.cc:2892 msgid "there are unsaved metadata changes for the file" msgstr "υπάρχουν μη αποθηκευμένα μεταδεδομένα για το αρχείο" -#: src/filedata.cc:2898 +#: src/filedata/filedata.cc:2898 msgid "another destination file has the same filename" msgstr "ένα άλλο αρχείου προορισμού έχει το ίδιο όνομα αρχείου" -#: src/filedata.cc:3460 +#: src/filedata/filedata.cc:3460 #, fuzzy, c-format msgid "Error: Unable to write marks lists to: %s\n" msgstr "Αδυναμία εγγραφής κατάστιχων ιστορικού στο: %s\n" diff --git a/po/en_GB.po b/po/en_GB.po index f546d0fa0..6b4f39669 100644 --- a/po/en_GB.po +++ b/po/en_GB.po @@ -2505,79 +2505,79 @@ msgstr "Page no." msgid "Lens" msgstr "Lens" -#: src/filedata.cc:134 +#: src/filedata/filedata.cc:134 #, c-format msgid "%d bytes" msgstr "%d bytes" -#: src/filedata.cc:138 +#: src/filedata/filedata.cc:138 #, c-format msgid "%.1f KiB" msgstr "%.1f KiB" -#: src/filedata.cc:142 +#: src/filedata/filedata.cc:142 #, c-format msgid "%.1f MiB" msgstr "%.1f MiB" -#: src/filedata.cc:147 +#: src/filedata/filedata.cc:147 #, c-format msgid "%.1f GiB" msgstr "%.1f GiB" -#: src/filedata.cc:2826 +#: src/filedata/filedata.cc:2826 msgid "file or directory does not exist" msgstr "file or directory does not exist" -#: src/filedata.cc:2832 +#: src/filedata/filedata.cc:2832 msgid "destination already exists" msgstr "destination already exists" -#: src/filedata.cc:2838 +#: src/filedata/filedata.cc:2838 msgid "destination can't be overwritten" msgstr "destination can't be overwritten" -#: src/filedata.cc:2844 +#: src/filedata/filedata.cc:2844 msgid "destination directory is not writable" msgstr "destination directory is not writable" -#: src/filedata.cc:2850 +#: src/filedata/filedata.cc:2850 msgid "destination directory does not exist" msgstr "destination directory does not exist" -#: src/filedata.cc:2856 +#: src/filedata/filedata.cc:2856 msgid "source directory is not writable" msgstr "source directory is not writable" -#: src/filedata.cc:2862 +#: src/filedata/filedata.cc:2862 msgid "no read permission" msgstr "no read permission" -#: src/filedata.cc:2868 +#: src/filedata/filedata.cc:2868 msgid "file is readonly" msgstr "file is readonly" -#: src/filedata.cc:2874 +#: src/filedata/filedata.cc:2874 msgid "destination already exists and will be overwritten" msgstr "destination already exists and will be overwritten" -#: src/filedata.cc:2880 +#: src/filedata/filedata.cc:2880 msgid "source and destination are the same" msgstr "source and destination are the same" -#: src/filedata.cc:2886 +#: src/filedata/filedata.cc:2886 msgid "source and destination have different extension" msgstr "source and destination have different extension" -#: src/filedata.cc:2892 +#: src/filedata/filedata.cc:2892 msgid "there are unsaved metadata changes for the file" msgstr "there are unsaved metadata changes for the file" -#: src/filedata.cc:2898 +#: src/filedata/filedata.cc:2898 msgid "another destination file has the same filename" msgstr "another destination file has the same filename" -#: src/filedata.cc:3460 +#: src/filedata/filedata.cc:3460 #, c-format msgid "Error: Unable to write marks lists to: %s\n" msgstr "Error: Unable to write marks lists to: %s\n" diff --git a/po/eo.po b/po/eo.po index 65e048c03..76b1ed3da 100644 --- a/po/eo.po +++ b/po/eo.po @@ -2646,31 +2646,31 @@ msgstr "Paĝo %d" msgid "Lens" msgstr "" -#: src/filedata.cc:134 +#: src/filedata/filedata.cc:134 #, c-format msgid "%d bytes" msgstr "%d bajtoj" -#: src/filedata.cc:138 +#: src/filedata/filedata.cc:138 #, fuzzy, c-format msgid "%.1f KiB" msgstr "%.1f K " -#: src/filedata.cc:142 +#: src/filedata/filedata.cc:142 #, fuzzy, c-format msgid "%.1f MiB" msgstr "%.1f MB " -#: src/filedata.cc:147 +#: src/filedata/filedata.cc:147 #, fuzzy, c-format msgid "%.1f GiB" msgstr "%.1f GB " -#: src/filedata.cc:2826 +#: src/filedata/filedata.cc:2826 msgid "file or directory does not exist" msgstr "" -#: src/filedata.cc:2832 +#: src/filedata/filedata.cc:2832 #, fuzzy msgid "destination already exists" msgstr "" @@ -2678,54 +2678,54 @@ msgstr "" "%s\n" "jam ekzistas." -#: src/filedata.cc:2838 +#: src/filedata/filedata.cc:2838 msgid "destination can't be overwritten" msgstr "" -#: src/filedata.cc:2844 +#: src/filedata/filedata.cc:2844 msgid "destination directory is not writable" msgstr "" -#: src/filedata.cc:2850 +#: src/filedata/filedata.cc:2850 msgid "destination directory does not exist" msgstr "" -#: src/filedata.cc:2856 +#: src/filedata/filedata.cc:2856 msgid "source directory is not writable" msgstr "" -#: src/filedata.cc:2862 +#: src/filedata/filedata.cc:2862 #, fuzzy msgid "no read permission" msgstr "(neniu rajtigo por lego) %s bajtoj" -#: src/filedata.cc:2868 +#: src/filedata/filedata.cc:2868 msgid "file is readonly" msgstr "" -#: src/filedata.cc:2874 +#: src/filedata/filedata.cc:2874 msgid "destination already exists and will be overwritten" msgstr "" -#: src/filedata.cc:2880 +#: src/filedata/filedata.cc:2880 #, fuzzy msgid "source and destination are the same" msgstr "Fonto kaj celpunkto estas samaj: do ĉi ago estis nuligita." -#: src/filedata.cc:2886 +#: src/filedata/filedata.cc:2886 #, fuzzy msgid "source and destination have different extension" msgstr "Fonto kaj celpunkto estas samaj: do ĉi ago estis nuligita." -#: src/filedata.cc:2892 +#: src/filedata/filedata.cc:2892 msgid "there are unsaved metadata changes for the file" msgstr "" -#: src/filedata.cc:2898 +#: src/filedata/filedata.cc:2898 msgid "another destination file has the same filename" msgstr "" -#: src/filedata.cc:3460 +#: src/filedata/filedata.cc:3460 #, fuzzy, c-format msgid "Error: Unable to write marks lists to: %s\n" msgstr "Estas neeble skribi historion en: %s\n" diff --git a/po/es.po b/po/es.po index 43e048e3e..85a9371fd 100644 --- a/po/es.po +++ b/po/es.po @@ -2570,79 +2570,79 @@ msgstr "Página %d" msgid "Lens" msgstr "" -#: src/filedata.cc:134 +#: src/filedata/filedata.cc:134 #, c-format msgid "%d bytes" msgstr "" -#: src/filedata.cc:138 +#: src/filedata/filedata.cc:138 #, c-format msgid "%.1f KiB" msgstr "" -#: src/filedata.cc:142 +#: src/filedata/filedata.cc:142 #, c-format msgid "%.1f MiB" msgstr "" -#: src/filedata.cc:147 +#: src/filedata/filedata.cc:147 #, c-format msgid "%.1f GiB" msgstr "" -#: src/filedata.cc:2826 +#: src/filedata/filedata.cc:2826 msgid "file or directory does not exist" msgstr "el archivo o directorio no existe" -#: src/filedata.cc:2832 +#: src/filedata/filedata.cc:2832 msgid "destination already exists" msgstr "el destino ya existe" -#: src/filedata.cc:2838 +#: src/filedata/filedata.cc:2838 msgid "destination can't be overwritten" msgstr "el destino no puede ser sobrescrito" -#: src/filedata.cc:2844 +#: src/filedata/filedata.cc:2844 msgid "destination directory is not writable" msgstr "no se puede escribir en el directorio de destino" -#: src/filedata.cc:2850 +#: src/filedata/filedata.cc:2850 msgid "destination directory does not exist" msgstr "el directorio de destino no existe" -#: src/filedata.cc:2856 +#: src/filedata/filedata.cc:2856 msgid "source directory is not writable" msgstr "no se puede escribir en el directorio de origen" -#: src/filedata.cc:2862 +#: src/filedata/filedata.cc:2862 msgid "no read permission" msgstr "sin permiso de lectura" -#: src/filedata.cc:2868 +#: src/filedata/filedata.cc:2868 msgid "file is readonly" msgstr "archivo de sólo lectura" -#: src/filedata.cc:2874 +#: src/filedata/filedata.cc:2874 msgid "destination already exists and will be overwritten" msgstr "el destino ya existe y será sobrescrito" -#: src/filedata.cc:2880 +#: src/filedata/filedata.cc:2880 msgid "source and destination are the same" msgstr "origen y destino son iguales" -#: src/filedata.cc:2886 +#: src/filedata/filedata.cc:2886 msgid "source and destination have different extension" msgstr "origen y destino tienen diferente extensión" -#: src/filedata.cc:2892 +#: src/filedata/filedata.cc:2892 msgid "there are unsaved metadata changes for the file" msgstr "hay cambios de metadatos sin guardar para el archivo" -#: src/filedata.cc:2898 +#: src/filedata/filedata.cc:2898 msgid "another destination file has the same filename" msgstr "otro archivo tiene el mismo nombre en el destino" -#: src/filedata.cc:3460 +#: src/filedata/filedata.cc:3460 #, c-format msgid "Error: Unable to write marks lists to: %s\n" msgstr "Error: no se pueden escribir listas de historial en: %s\n" diff --git a/po/et.po b/po/et.po index 61e86fce8..45ec9ab5b 100644 --- a/po/et.po +++ b/po/et.po @@ -2693,83 +2693,83 @@ msgstr "Faili kuupäev:" msgid "Lens" msgstr "" -#: src/filedata.cc:134 +#: src/filedata/filedata.cc:134 #, c-format msgid "%d bytes" msgstr "%d baiti" -#: src/filedata.cc:138 +#: src/filedata/filedata.cc:138 #, fuzzy, c-format msgid "%.1f KiB" msgstr "%.1f K" -#: src/filedata.cc:142 +#: src/filedata/filedata.cc:142 #, fuzzy, c-format msgid "%.1f MiB" msgstr "%.1f MB" -#: src/filedata.cc:147 +#: src/filedata/filedata.cc:147 #, fuzzy, c-format msgid "%.1f GiB" msgstr "%.1f MB" -#: src/filedata.cc:2826 +#: src/filedata/filedata.cc:2826 msgid "file or directory does not exist" msgstr "" -#: src/filedata.cc:2832 +#: src/filedata/filedata.cc:2832 #, fuzzy msgid "destination already exists" msgstr "Fail nimega %s on juba olemas." -#: src/filedata.cc:2838 +#: src/filedata/filedata.cc:2838 msgid "destination can't be overwritten" msgstr "" -#: src/filedata.cc:2844 +#: src/filedata/filedata.cc:2844 msgid "destination directory is not writable" msgstr "" -#: src/filedata.cc:2850 +#: src/filedata/filedata.cc:2850 msgid "destination directory does not exist" msgstr "" -#: src/filedata.cc:2856 +#: src/filedata/filedata.cc:2856 msgid "source directory is not writable" msgstr "" -#: src/filedata.cc:2862 +#: src/filedata/filedata.cc:2862 #, fuzzy msgid "no read permission" msgstr "(puudub lugemisõigus) %s baiti" -#: src/filedata.cc:2868 +#: src/filedata/filedata.cc:2868 msgid "file is readonly" msgstr "" -#: src/filedata.cc:2874 +#: src/filedata/filedata.cc:2874 msgid "destination already exists and will be overwritten" msgstr "" -#: src/filedata.cc:2880 +#: src/filedata/filedata.cc:2880 #, fuzzy msgid "source and destination are the same" msgstr "Allikas ja sihtkoht ühtivad, operatsioonist loobuti." -#: src/filedata.cc:2886 +#: src/filedata/filedata.cc:2886 #, fuzzy msgid "source and destination have different extension" msgstr "Allikas ja sihtkoht ühtivad, operatsioonist loobuti." -#: src/filedata.cc:2892 +#: src/filedata/filedata.cc:2892 msgid "there are unsaved metadata changes for the file" msgstr "" -#: src/filedata.cc:2898 +#: src/filedata/filedata.cc:2898 msgid "another destination file has the same filename" msgstr "" -#: src/filedata.cc:3460 +#: src/filedata/filedata.cc:3460 #, fuzzy, c-format msgid "Error: Unable to write marks lists to: %s\n" msgstr "Ajaloonimekirjade kirjutamine ebaõnnestus: %s\n" diff --git a/po/eu.po b/po/eu.po index 04c77d269..9338c118b 100644 --- a/po/eu.po +++ b/po/eu.po @@ -2644,31 +2644,31 @@ msgstr "%d orrialdea" msgid "Lens" msgstr "" -#: src/filedata.cc:134 +#: src/filedata/filedata.cc:134 #, c-format msgid "%d bytes" msgstr "%d byte" -#: src/filedata.cc:138 +#: src/filedata/filedata.cc:138 #, fuzzy, c-format msgid "%.1f KiB" msgstr "%.1f K" -#: src/filedata.cc:142 +#: src/filedata/filedata.cc:142 #, fuzzy, c-format msgid "%.1f MiB" msgstr "%.1f MB" -#: src/filedata.cc:147 +#: src/filedata/filedata.cc:147 #, fuzzy, c-format msgid "%.1f GiB" msgstr "%.1f GB" -#: src/filedata.cc:2826 +#: src/filedata/filedata.cc:2826 msgid "file or directory does not exist" msgstr "" -#: src/filedata.cc:2832 +#: src/filedata/filedata.cc:2832 #, fuzzy msgid "destination already exists" msgstr "" @@ -2676,54 +2676,54 @@ msgstr "" "%s\n" "badago dagoeneko." -#: src/filedata.cc:2838 +#: src/filedata/filedata.cc:2838 msgid "destination can't be overwritten" msgstr "" -#: src/filedata.cc:2844 +#: src/filedata/filedata.cc:2844 msgid "destination directory is not writable" msgstr "" -#: src/filedata.cc:2850 +#: src/filedata/filedata.cc:2850 msgid "destination directory does not exist" msgstr "" -#: src/filedata.cc:2856 +#: src/filedata/filedata.cc:2856 msgid "source directory is not writable" msgstr "" -#: src/filedata.cc:2862 +#: src/filedata/filedata.cc:2862 #, fuzzy msgid "no read permission" msgstr "(irakurketa baimenik ez) %s byte" -#: src/filedata.cc:2868 +#: src/filedata/filedata.cc:2868 msgid "file is readonly" msgstr "" -#: src/filedata.cc:2874 +#: src/filedata/filedata.cc:2874 msgid "destination already exists and will be overwritten" msgstr "" -#: src/filedata.cc:2880 +#: src/filedata/filedata.cc:2880 #, fuzzy msgid "source and destination are the same" msgstr "Jatorria eta helburua berdina da, alde batetara utzia." -#: src/filedata.cc:2886 +#: src/filedata/filedata.cc:2886 #, fuzzy msgid "source and destination have different extension" msgstr "Jatorria eta helburua berdina da, alde batetara utzia." -#: src/filedata.cc:2892 +#: src/filedata/filedata.cc:2892 msgid "there are unsaved metadata changes for the file" msgstr "" -#: src/filedata.cc:2898 +#: src/filedata/filedata.cc:2898 msgid "another destination file has the same filename" msgstr "" -#: src/filedata.cc:3460 +#: src/filedata/filedata.cc:3460 #, fuzzy, c-format msgid "Error: Unable to write marks lists to: %s\n" msgstr "Ezin da historioa zerrenda hemen idatzi: %s\n" diff --git a/po/fi.po b/po/fi.po index c9d67fc86..2ac84e6f5 100644 --- a/po/fi.po +++ b/po/fi.po @@ -2925,87 +2925,87 @@ msgid "Lens" msgstr "" # src/dupe.cc:67 src/dupe.cc:1449 -#: src/filedata.cc:134 +#: src/filedata/filedata.cc:134 #, c-format msgid "%d bytes" msgstr "%d tavua" -#: src/filedata.cc:138 +#: src/filedata/filedata.cc:138 #, fuzzy, c-format msgid "%.1f KiB" msgstr "%.1f kt" -#: src/filedata.cc:142 +#: src/filedata/filedata.cc:142 #, fuzzy, c-format msgid "%.1f MiB" msgstr "%.1f Mt" -#: src/filedata.cc:147 +#: src/filedata/filedata.cc:147 #, fuzzy, c-format msgid "%.1f GiB" msgstr "%.1f Gt" -#: src/filedata.cc:2826 +#: src/filedata/filedata.cc:2826 msgid "file or directory does not exist" msgstr "" # src/filelist.c:816 -#: src/filedata.cc:2832 +#: src/filedata/filedata.cc:2832 #, fuzzy msgid "destination already exists" msgstr "Tiedosto %s on jo olemassa." -#: src/filedata.cc:2838 +#: src/filedata/filedata.cc:2838 msgid "destination can't be overwritten" msgstr "" -#: src/filedata.cc:2844 +#: src/filedata/filedata.cc:2844 msgid "destination directory is not writable" msgstr "" -#: src/filedata.cc:2850 +#: src/filedata/filedata.cc:2850 msgid "destination directory does not exist" msgstr "" -#: src/filedata.cc:2856 +#: src/filedata/filedata.cc:2856 msgid "source directory is not writable" msgstr "" -#: src/filedata.cc:2862 +#: src/filedata/filedata.cc:2862 #, fuzzy msgid "no read permission" msgstr "(ei lukuoikeutta) %s tavua" -#: src/filedata.cc:2868 +#: src/filedata/filedata.cc:2868 msgid "file is readonly" msgstr "" -#: src/filedata.cc:2874 +#: src/filedata/filedata.cc:2874 msgid "destination already exists and will be overwritten" msgstr "" # src/utilops.cc:451 -#: src/filedata.cc:2880 +#: src/filedata/filedata.cc:2880 #, fuzzy msgid "source and destination are the same" msgstr "Lähde ja kohde ovat samat, toiminto peruutettu." # src/utilops.cc:451 -#: src/filedata.cc:2886 +#: src/filedata/filedata.cc:2886 #, fuzzy msgid "source and destination have different extension" msgstr "Lähde ja kohde ovat samat, toiminto peruutettu." -#: src/filedata.cc:2892 +#: src/filedata/filedata.cc:2892 msgid "there are unsaved metadata changes for the file" msgstr "" -#: src/filedata.cc:2898 +#: src/filedata/filedata.cc:2898 msgid "another destination file has the same filename" msgstr "" # src/ui-tabcomp.cc:171 -#: src/filedata.cc:3460 +#: src/filedata/filedata.cc:3460 #, fuzzy, c-format msgid "Error: Unable to write marks lists to: %s\n" msgstr "Historialistojen kirjoitus ei onnistunut kohteeseen: %s\n" diff --git a/po/fr.po b/po/fr.po index 238844317..ec6327c44 100644 --- a/po/fr.po +++ b/po/fr.po @@ -2561,80 +2561,80 @@ msgid "Lens" msgstr "" # c-format -#: src/filedata.cc:134 +#: src/filedata/filedata.cc:134 #, c-format msgid "%d bytes" msgstr "%d octets" -#: src/filedata.cc:138 +#: src/filedata/filedata.cc:138 #, fuzzy, c-format msgid "%.1f KiB" msgstr "%.1f Ko" -#: src/filedata.cc:142 +#: src/filedata/filedata.cc:142 #, fuzzy, c-format msgid "%.1f MiB" msgstr "%.1f Mo" -#: src/filedata.cc:147 +#: src/filedata/filedata.cc:147 #, fuzzy, c-format msgid "%.1f GiB" msgstr "%.1f Go" -#: src/filedata.cc:2826 +#: src/filedata/filedata.cc:2826 msgid "file or directory does not exist" msgstr "fichier ou dossier inexistant" -#: src/filedata.cc:2832 +#: src/filedata/filedata.cc:2832 msgid "destination already exists" msgstr "la destination existe déjà." -#: src/filedata.cc:2838 +#: src/filedata/filedata.cc:2838 msgid "destination can't be overwritten" msgstr "la destination ne peut être écrasée" -#: src/filedata.cc:2844 +#: src/filedata/filedata.cc:2844 msgid "destination directory is not writable" msgstr "impossible d'écrire dans le dossier de destination" -#: src/filedata.cc:2850 +#: src/filedata/filedata.cc:2850 msgid "destination directory does not exist" msgstr "le dossier de destination n'existe pas" -#: src/filedata.cc:2856 +#: src/filedata/filedata.cc:2856 msgid "source directory is not writable" msgstr "impossible d'écrire dans le dossier source " -#: src/filedata.cc:2862 +#: src/filedata/filedata.cc:2862 msgid "no read permission" msgstr "pas de permission en lecture" -#: src/filedata.cc:2868 +#: src/filedata/filedata.cc:2868 msgid "file is readonly" msgstr "fichier en lecture seule" -#: src/filedata.cc:2874 +#: src/filedata/filedata.cc:2874 msgid "destination already exists and will be overwritten" msgstr "la destination existe déjà et sera écrasée" -#: src/filedata.cc:2880 +#: src/filedata/filedata.cc:2880 msgid "source and destination are the same" msgstr "source et destination sont identiques" -#: src/filedata.cc:2886 +#: src/filedata/filedata.cc:2886 msgid "source and destination have different extension" msgstr "source et destination ont des extensions différentes" -#: src/filedata.cc:2892 +#: src/filedata/filedata.cc:2892 msgid "there are unsaved metadata changes for the file" msgstr "Il y a des méta-données modifiées non sauvées pour ce fichier" -#: src/filedata.cc:2898 +#: src/filedata/filedata.cc:2898 #, fuzzy msgid "another destination file has the same filename" msgstr "source et destination sont identiques" -#: src/filedata.cc:3460 +#: src/filedata/filedata.cc:3460 #, fuzzy, c-format msgid "Error: Unable to write marks lists to: %s\n" msgstr "Impossible d'écrire l'historique dans : %s\n" diff --git a/po/hu.po b/po/hu.po index 06b75ce63..4201d9069 100644 --- a/po/hu.po +++ b/po/hu.po @@ -2960,32 +2960,32 @@ msgid "Lens" msgstr "" # src/dupe.cc:67 src/dupe.cc:1449 -#: src/filedata.cc:134 +#: src/filedata/filedata.cc:134 #, c-format msgid "%d bytes" msgstr "%d byte" -#: src/filedata.cc:138 +#: src/filedata/filedata.cc:138 #, fuzzy, c-format msgid "%.1f KiB" msgstr "%.1f K" -#: src/filedata.cc:142 +#: src/filedata/filedata.cc:142 #, fuzzy, c-format msgid "%.1f MiB" msgstr "%.1f MB" -#: src/filedata.cc:147 +#: src/filedata/filedata.cc:147 #, fuzzy, c-format msgid "%.1f GiB" msgstr "%.1f GB" -#: src/filedata.cc:2826 +#: src/filedata/filedata.cc:2826 msgid "file or directory does not exist" msgstr "" # src/utilops.cc:1144 -#: src/filedata.cc:2832 +#: src/filedata/filedata.cc:2832 #, fuzzy msgid "destination already exists" msgstr "" @@ -2993,57 +2993,57 @@ msgstr "" "%s\n" "már létezik." -#: src/filedata.cc:2838 +#: src/filedata/filedata.cc:2838 msgid "destination can't be overwritten" msgstr "" -#: src/filedata.cc:2844 +#: src/filedata/filedata.cc:2844 msgid "destination directory is not writable" msgstr "" -#: src/filedata.cc:2850 +#: src/filedata/filedata.cc:2850 msgid "destination directory does not exist" msgstr "" -#: src/filedata.cc:2856 +#: src/filedata/filedata.cc:2856 msgid "source directory is not writable" msgstr "" -#: src/filedata.cc:2862 +#: src/filedata/filedata.cc:2862 #, fuzzy msgid "no read permission" msgstr "(nincs olvasási jog) %s byte" -#: src/filedata.cc:2868 +#: src/filedata/filedata.cc:2868 msgid "file is readonly" msgstr "" -#: src/filedata.cc:2874 +#: src/filedata/filedata.cc:2874 msgid "destination already exists and will be overwritten" msgstr "" # src/utilops.cc:451 -#: src/filedata.cc:2880 +#: src/filedata/filedata.cc:2880 #, fuzzy msgid "source and destination are the same" msgstr "Forrás és cél ugyanaz, művelet megszakítva." # src/utilops.cc:451 -#: src/filedata.cc:2886 +#: src/filedata/filedata.cc:2886 #, fuzzy msgid "source and destination have different extension" msgstr "Forrás és cél ugyanaz, művelet megszakítva." -#: src/filedata.cc:2892 +#: src/filedata/filedata.cc:2892 msgid "there are unsaved metadata changes for the file" msgstr "" -#: src/filedata.cc:2898 +#: src/filedata/filedata.cc:2898 msgid "another destination file has the same filename" msgstr "" # src/ui-tabcomp.cc:171 -#: src/filedata.cc:3460 +#: src/filedata/filedata.cc:3460 #, fuzzy, c-format msgid "Error: Unable to write marks lists to: %s\n" msgstr "Nem lehet előzmények listát létrehozni: %s\n" diff --git a/po/id.po b/po/id.po index 847bc5e34..ebbae1f70 100644 --- a/po/id.po +++ b/po/id.po @@ -2694,83 +2694,83 @@ msgstr "Tanggal file:" msgid "Lens" msgstr "" -#: src/filedata.cc:134 +#: src/filedata/filedata.cc:134 #, c-format msgid "%d bytes" msgstr "%d bytes" -#: src/filedata.cc:138 +#: src/filedata/filedata.cc:138 #, fuzzy, c-format msgid "%.1f KiB" msgstr "%.1f K" -#: src/filedata.cc:142 +#: src/filedata/filedata.cc:142 #, fuzzy, c-format msgid "%.1f MiB" msgstr "%.1f MB" -#: src/filedata.cc:147 +#: src/filedata/filedata.cc:147 #, fuzzy, c-format msgid "%.1f GiB" msgstr "%.1f MB" -#: src/filedata.cc:2826 +#: src/filedata/filedata.cc:2826 msgid "file or directory does not exist" msgstr "" -#: src/filedata.cc:2832 +#: src/filedata/filedata.cc:2832 #, fuzzy msgid "destination already exists" msgstr "File bernama %s sudah ada." -#: src/filedata.cc:2838 +#: src/filedata/filedata.cc:2838 msgid "destination can't be overwritten" msgstr "" -#: src/filedata.cc:2844 +#: src/filedata/filedata.cc:2844 msgid "destination directory is not writable" msgstr "" -#: src/filedata.cc:2850 +#: src/filedata/filedata.cc:2850 msgid "destination directory does not exist" msgstr "" -#: src/filedata.cc:2856 +#: src/filedata/filedata.cc:2856 msgid "source directory is not writable" msgstr "" -#: src/filedata.cc:2862 +#: src/filedata/filedata.cc:2862 #, fuzzy msgid "no read permission" msgstr "(tidak ada ijin membaca) %s byte" -#: src/filedata.cc:2868 +#: src/filedata/filedata.cc:2868 msgid "file is readonly" msgstr "" -#: src/filedata.cc:2874 +#: src/filedata/filedata.cc:2874 msgid "destination already exists and will be overwritten" msgstr "" -#: src/filedata.cc:2880 +#: src/filedata/filedata.cc:2880 #, fuzzy msgid "source and destination are the same" msgstr "Sumber dan tujuan sama, operasi dibatalkan." -#: src/filedata.cc:2886 +#: src/filedata/filedata.cc:2886 #, fuzzy msgid "source and destination have different extension" msgstr "Sumber dan tujuan sama, operasi dibatalkan." -#: src/filedata.cc:2892 +#: src/filedata/filedata.cc:2892 msgid "there are unsaved metadata changes for the file" msgstr "" -#: src/filedata.cc:2898 +#: src/filedata/filedata.cc:2898 msgid "another destination file has the same filename" msgstr "" -#: src/filedata.cc:3460 +#: src/filedata/filedata.cc:3460 #, fuzzy, c-format msgid "Error: Unable to write marks lists to: %s\n" msgstr "Tidak dapat menulis daftar sejarah ke: %s\n" diff --git a/po/it.po b/po/it.po index 1b8f3d291..c7d22f45e 100644 --- a/po/it.po +++ b/po/it.po @@ -2644,31 +2644,31 @@ msgstr "Pagina %d" msgid "Lens" msgstr "" -#: src/filedata.cc:134 +#: src/filedata/filedata.cc:134 #, c-format msgid "%d bytes" msgstr "%d byte" -#: src/filedata.cc:138 +#: src/filedata/filedata.cc:138 #, fuzzy, c-format msgid "%.1f KiB" msgstr "%.1f K " -#: src/filedata.cc:142 +#: src/filedata/filedata.cc:142 #, fuzzy, c-format msgid "%.1f MiB" msgstr "%.1f MB " -#: src/filedata.cc:147 +#: src/filedata/filedata.cc:147 #, fuzzy, c-format msgid "%.1f GiB" msgstr "%.1f GB " -#: src/filedata.cc:2826 +#: src/filedata/filedata.cc:2826 msgid "file or directory does not exist" msgstr "" -#: src/filedata.cc:2832 +#: src/filedata/filedata.cc:2832 #, fuzzy msgid "destination already exists" msgstr "" @@ -2676,58 +2676,58 @@ msgstr "" "%s\n" "esiste già." -#: src/filedata.cc:2838 +#: src/filedata/filedata.cc:2838 msgid "destination can't be overwritten" msgstr "" -#: src/filedata.cc:2844 +#: src/filedata/filedata.cc:2844 msgid "destination directory is not writable" msgstr "" -#: src/filedata.cc:2850 +#: src/filedata/filedata.cc:2850 msgid "destination directory does not exist" msgstr "" -#: src/filedata.cc:2856 +#: src/filedata/filedata.cc:2856 msgid "source directory is not writable" msgstr "" -#: src/filedata.cc:2862 +#: src/filedata/filedata.cc:2862 #, fuzzy msgid "no read permission" msgstr "(nessun permesso di lettura) %s byte" -#: src/filedata.cc:2868 +#: src/filedata/filedata.cc:2868 msgid "file is readonly" msgstr "" -#: src/filedata.cc:2874 +#: src/filedata/filedata.cc:2874 msgid "destination already exists and will be overwritten" msgstr "" -#: src/filedata.cc:2880 +#: src/filedata/filedata.cc:2880 #, fuzzy msgid "source and destination are the same" msgstr "" "La sorgente e la destinazione coincidono: l'operazione è stata quindi " "annullata." -#: src/filedata.cc:2886 +#: src/filedata/filedata.cc:2886 #, fuzzy msgid "source and destination have different extension" msgstr "" "La sorgente e la destinazione coincidono: l'operazione è stata quindi " "annullata." -#: src/filedata.cc:2892 +#: src/filedata/filedata.cc:2892 msgid "there are unsaved metadata changes for the file" msgstr "" -#: src/filedata.cc:2898 +#: src/filedata/filedata.cc:2898 msgid "another destination file has the same filename" msgstr "" -#: src/filedata.cc:3460 +#: src/filedata/filedata.cc:3460 #, fuzzy, c-format msgid "Error: Unable to write marks lists to: %s\n" msgstr "Non è possibile scrivere la cronologia in: %s\n" diff --git a/po/ja.po b/po/ja.po index 417ea900c..f114ded5b 100644 --- a/po/ja.po +++ b/po/ja.po @@ -2605,31 +2605,31 @@ msgstr "%d ページ" msgid "Lens" msgstr "" -#: src/filedata.cc:134 +#: src/filedata/filedata.cc:134 #, c-format msgid "%d bytes" msgstr "%d バイト" -#: src/filedata.cc:138 +#: src/filedata/filedata.cc:138 #, fuzzy, c-format msgid "%.1f KiB" msgstr "%.1f Kバイト" -#: src/filedata.cc:142 +#: src/filedata/filedata.cc:142 #, fuzzy, c-format msgid "%.1f MiB" msgstr "%.1f Mバイト" -#: src/filedata.cc:147 +#: src/filedata/filedata.cc:147 #, fuzzy, c-format msgid "%.1f GiB" msgstr "%.1f Gバイト" -#: src/filedata.cc:2826 +#: src/filedata/filedata.cc:2826 msgid "file or directory does not exist" msgstr "" -#: src/filedata.cc:2832 +#: src/filedata/filedata.cc:2832 #, fuzzy msgid "destination already exists" msgstr "" @@ -2637,52 +2637,52 @@ msgstr "" "%s\n" "は既に存在しています。" -#: src/filedata.cc:2838 +#: src/filedata/filedata.cc:2838 msgid "destination can't be overwritten" msgstr "" -#: src/filedata.cc:2844 +#: src/filedata/filedata.cc:2844 msgid "destination directory is not writable" msgstr "" -#: src/filedata.cc:2850 +#: src/filedata/filedata.cc:2850 msgid "destination directory does not exist" msgstr "" -#: src/filedata.cc:2856 +#: src/filedata/filedata.cc:2856 msgid "source directory is not writable" msgstr "" -#: src/filedata.cc:2862 +#: src/filedata/filedata.cc:2862 #, fuzzy msgid "no read permission" msgstr "(読み込み権限なし) %s バイト" -#: src/filedata.cc:2868 +#: src/filedata/filedata.cc:2868 msgid "file is readonly" msgstr "" -#: src/filedata.cc:2874 +#: src/filedata/filedata.cc:2874 msgid "destination already exists and will be overwritten" msgstr "" -#: src/filedata.cc:2880 +#: src/filedata/filedata.cc:2880 msgid "source and destination are the same" msgstr "移動元と移動先が同じです" -#: src/filedata.cc:2886 +#: src/filedata/filedata.cc:2886 msgid "source and destination have different extension" msgstr "移動元と移動先の拡張子が異なります" -#: src/filedata.cc:2892 +#: src/filedata/filedata.cc:2892 msgid "there are unsaved metadata changes for the file" msgstr "ファイルには保存されていないメタデータの変更があります" -#: src/filedata.cc:2898 +#: src/filedata/filedata.cc:2898 msgid "another destination file has the same filename" msgstr "同じ名前の、別の移動先ファイルがあります" -#: src/filedata.cc:3460 +#: src/filedata/filedata.cc:3460 #, c-format msgid "Error: Unable to write marks lists to: %s\n" msgstr "エラー: マークのリストを書き込めません: %s\n" diff --git a/po/ko.po b/po/ko.po index 7a1b0ed2c..3ce9b38a9 100644 --- a/po/ko.po +++ b/po/ko.po @@ -2491,79 +2491,79 @@ msgstr "페이지 번호." msgid "Lens" msgstr "렌즈" -#: src/filedata.cc:134 +#: src/filedata/filedata.cc:134 #, c-format msgid "%d bytes" msgstr "%d 바이트" -#: src/filedata.cc:138 +#: src/filedata/filedata.cc:138 #, c-format msgid "%.1f KiB" msgstr "%.1f KiB" -#: src/filedata.cc:142 +#: src/filedata/filedata.cc:142 #, c-format msgid "%.1f MiB" msgstr "%.1f MiB" -#: src/filedata.cc:147 +#: src/filedata/filedata.cc:147 #, c-format msgid "%.1f GiB" msgstr "%.1f GiB" -#: src/filedata.cc:2826 +#: src/filedata/filedata.cc:2826 msgid "file or directory does not exist" msgstr "파일 또는 디렉터리가 존재하지 않습니다" -#: src/filedata.cc:2832 +#: src/filedata/filedata.cc:2832 msgid "destination already exists" msgstr "대상이 이미 존재합니다" -#: src/filedata.cc:2838 +#: src/filedata/filedata.cc:2838 msgid "destination can't be overwritten" msgstr "대상을 덮어쓸 수 없습니다" -#: src/filedata.cc:2844 +#: src/filedata/filedata.cc:2844 msgid "destination directory is not writable" msgstr "대상 디렉터리는 기록할 수 없습니다" -#: src/filedata.cc:2850 +#: src/filedata/filedata.cc:2850 msgid "destination directory does not exist" msgstr "대상 디렉터리가 존재하지 않습니다" -#: src/filedata.cc:2856 +#: src/filedata/filedata.cc:2856 msgid "source directory is not writable" msgstr "소스 디렉터리는 기록할 수 없습니다" -#: src/filedata.cc:2862 +#: src/filedata/filedata.cc:2862 msgid "no read permission" msgstr "읽기 권한이 없습니다" -#: src/filedata.cc:2868 +#: src/filedata/filedata.cc:2868 msgid "file is readonly" msgstr "파일이 읽기 전용입니다" -#: src/filedata.cc:2874 +#: src/filedata/filedata.cc:2874 msgid "destination already exists and will be overwritten" msgstr "대상이 이미 존재하며 덮어쓰게 됩니다" -#: src/filedata.cc:2880 +#: src/filedata/filedata.cc:2880 msgid "source and destination are the same" msgstr "소스와 대상이 같습니다" -#: src/filedata.cc:2886 +#: src/filedata/filedata.cc:2886 msgid "source and destination have different extension" msgstr "소스와 대상의 확장자가 다릅니다" -#: src/filedata.cc:2892 +#: src/filedata/filedata.cc:2892 msgid "there are unsaved metadata changes for the file" msgstr "파일에 대해 저장되지 않은 메타데이터 변경사항이 있습니다" -#: src/filedata.cc:2898 +#: src/filedata/filedata.cc:2898 msgid "another destination file has the same filename" msgstr "다른 대상 파일의 파일이름이 같습니다" -#: src/filedata.cc:3460 +#: src/filedata/filedata.cc:3460 #, c-format msgid "Error: Unable to write marks lists to: %s\n" msgstr "오류: 다음 위치에 마크 목록을 기록할 수 없음: %s\n" diff --git a/po/nb.po b/po/nb.po index e6380f308..d895143c2 100644 --- a/po/nb.po +++ b/po/nb.po @@ -2693,82 +2693,82 @@ msgstr "Filter:" msgid "Lens" msgstr "" -#: src/filedata.cc:134 +#: src/filedata/filedata.cc:134 #, fuzzy, c-format msgid "%d bytes" msgstr "%d filer" -#: src/filedata.cc:138 +#: src/filedata/filedata.cc:138 #, c-format msgid "%.1f KiB" msgstr "" -#: src/filedata.cc:142 +#: src/filedata/filedata.cc:142 #, c-format msgid "%.1f MiB" msgstr "" -#: src/filedata.cc:147 +#: src/filedata/filedata.cc:147 #, c-format msgid "%.1f GiB" msgstr "" -#: src/filedata.cc:2826 +#: src/filedata/filedata.cc:2826 msgid "file or directory does not exist" msgstr "" -#: src/filedata.cc:2832 +#: src/filedata/filedata.cc:2832 #, fuzzy msgid "destination already exists" msgstr "Fil ved navn %s finnes allerede." -#: src/filedata.cc:2838 +#: src/filedata/filedata.cc:2838 msgid "destination can't be overwritten" msgstr "" -#: src/filedata.cc:2844 +#: src/filedata/filedata.cc:2844 msgid "destination directory is not writable" msgstr "" -#: src/filedata.cc:2850 +#: src/filedata/filedata.cc:2850 msgid "destination directory does not exist" msgstr "" -#: src/filedata.cc:2856 +#: src/filedata/filedata.cc:2856 msgid "source directory is not writable" msgstr "" -#: src/filedata.cc:2862 +#: src/filedata/filedata.cc:2862 msgid "no read permission" msgstr "" -#: src/filedata.cc:2868 +#: src/filedata/filedata.cc:2868 msgid "file is readonly" msgstr "" -#: src/filedata.cc:2874 +#: src/filedata/filedata.cc:2874 msgid "destination already exists and will be overwritten" msgstr "" -#: src/filedata.cc:2880 +#: src/filedata/filedata.cc:2880 #, fuzzy msgid "source and destination are the same" msgstr "Bane og destinasjon er den samme, operasjonen ble avbrutt." -#: src/filedata.cc:2886 +#: src/filedata/filedata.cc:2886 #, fuzzy msgid "source and destination have different extension" msgstr "Bane og destinasjon er den samme, operasjonen ble avbrutt." -#: src/filedata.cc:2892 +#: src/filedata/filedata.cc:2892 msgid "there are unsaved metadata changes for the file" msgstr "" -#: src/filedata.cc:2898 +#: src/filedata/filedata.cc:2898 msgid "another destination file has the same filename" msgstr "" -#: src/filedata.cc:3460 +#: src/filedata/filedata.cc:3460 #, fuzzy, c-format msgid "Error: Unable to write marks lists to: %s\n" msgstr "Kunne ikke skrive historieliste til: %s\n" diff --git a/po/nl.po b/po/nl.po index cdcfa2588..75d87e70c 100644 --- a/po/nl.po +++ b/po/nl.po @@ -2517,79 +2517,79 @@ msgstr "Pagina nr." msgid "Lens" msgstr "Lens" -#: src/filedata.cc:134 +#: src/filedata/filedata.cc:134 #, c-format msgid "%d bytes" msgstr "%d bytes" -#: src/filedata.cc:138 +#: src/filedata/filedata.cc:138 #, c-format msgid "%.1f KiB" msgstr "%.1f KiB" -#: src/filedata.cc:142 +#: src/filedata/filedata.cc:142 #, c-format msgid "%.1f MiB" msgstr "%.1f MiB" -#: src/filedata.cc:147 +#: src/filedata/filedata.cc:147 #, c-format msgid "%.1f GiB" msgstr "%.1f GiB" -#: src/filedata.cc:2826 +#: src/filedata/filedata.cc:2826 msgid "file or directory does not exist" msgstr "bestand of map bestaat niet" -#: src/filedata.cc:2832 +#: src/filedata/filedata.cc:2832 msgid "destination already exists" msgstr "doel bestaat al" -#: src/filedata.cc:2838 +#: src/filedata/filedata.cc:2838 msgid "destination can't be overwritten" msgstr "doel kan niet overschreven worden" -#: src/filedata.cc:2844 +#: src/filedata/filedata.cc:2844 msgid "destination directory is not writable" msgstr "doelmap is niet beschrijfbaar" -#: src/filedata.cc:2850 +#: src/filedata/filedata.cc:2850 msgid "destination directory does not exist" msgstr "doelmap bestaat niet" -#: src/filedata.cc:2856 +#: src/filedata/filedata.cc:2856 msgid "source directory is not writable" msgstr "bronmap is niet beschrijfbaar" -#: src/filedata.cc:2862 +#: src/filedata/filedata.cc:2862 msgid "no read permission" msgstr "geen leespermissie" -#: src/filedata.cc:2868 +#: src/filedata/filedata.cc:2868 msgid "file is readonly" msgstr "bestand is niet beschrijfbaar" -#: src/filedata.cc:2874 +#: src/filedata/filedata.cc:2874 msgid "destination already exists and will be overwritten" msgstr "doel bestaat al en zal overschreven worden" -#: src/filedata.cc:2880 +#: src/filedata/filedata.cc:2880 msgid "source and destination are the same" msgstr "bron is gelijk aan doel" -#: src/filedata.cc:2886 +#: src/filedata/filedata.cc:2886 msgid "source and destination have different extension" msgstr "bron en doel heben verschillende extensie" -#: src/filedata.cc:2892 +#: src/filedata/filedata.cc:2892 msgid "there are unsaved metadata changes for the file" msgstr "er zijn niet-opgeslagen wijzigingen in de metagegevens van het bestand" -#: src/filedata.cc:2898 +#: src/filedata/filedata.cc:2898 msgid "another destination file has the same filename" msgstr "ander doelbestand heeft al dezelfde naam" -#: src/filedata.cc:3460 +#: src/filedata/filedata.cc:3460 #, c-format msgid "Error: Unable to write marks lists to: %s\n" msgstr "Fout: Kon markeerlijst niet wegschrijven naar: %s\n" diff --git a/po/pl.po b/po/pl.po index 2af312760..a1ab884d1 100644 --- a/po/pl.po +++ b/po/pl.po @@ -2564,79 +2564,79 @@ msgstr "Strona %d" msgid "Lens" msgstr "" -#: src/filedata.cc:134 +#: src/filedata/filedata.cc:134 #, c-format msgid "%d bytes" msgstr "%d bajtów" -#: src/filedata.cc:138 +#: src/filedata/filedata.cc:138 #, fuzzy, c-format msgid "%.1f KiB" msgstr "%.1f K" -#: src/filedata.cc:142 +#: src/filedata/filedata.cc:142 #, fuzzy, c-format msgid "%.1f MiB" msgstr "%.1f MB" -#: src/filedata.cc:147 +#: src/filedata/filedata.cc:147 #, fuzzy, c-format msgid "%.1f GiB" msgstr "%.1f GB" -#: src/filedata.cc:2826 +#: src/filedata/filedata.cc:2826 msgid "file or directory does not exist" msgstr "plik lub katalog nie istnieją" -#: src/filedata.cc:2832 +#: src/filedata/filedata.cc:2832 msgid "destination already exists" msgstr "cel już istnieje" -#: src/filedata.cc:2838 +#: src/filedata/filedata.cc:2838 msgid "destination can't be overwritten" msgstr "cel nie może być nadpisany" -#: src/filedata.cc:2844 +#: src/filedata/filedata.cc:2844 msgid "destination directory is not writable" msgstr "docelowy katalog nie jest zapisywalny" -#: src/filedata.cc:2850 +#: src/filedata/filedata.cc:2850 msgid "destination directory does not exist" msgstr "docelowy katalog nie istnieje" -#: src/filedata.cc:2856 +#: src/filedata/filedata.cc:2856 msgid "source directory is not writable" msgstr "katalog źródłowy nie istnieje" -#: src/filedata.cc:2862 +#: src/filedata/filedata.cc:2862 msgid "no read permission" msgstr "brak uprawnień do odczytu" -#: src/filedata.cc:2868 +#: src/filedata/filedata.cc:2868 msgid "file is readonly" msgstr "plik jest tylko do odczytu" -#: src/filedata.cc:2874 +#: src/filedata/filedata.cc:2874 msgid "destination already exists and will be overwritten" msgstr "cel już istnieje i zostanie nadpisany" -#: src/filedata.cc:2880 +#: src/filedata/filedata.cc:2880 msgid "source and destination are the same" msgstr "źródło i cel są takie same" -#: src/filedata.cc:2886 +#: src/filedata/filedata.cc:2886 msgid "source and destination have different extension" msgstr "źródło i cel mają różne rozszerzenia" -#: src/filedata.cc:2892 +#: src/filedata/filedata.cc:2892 msgid "there are unsaved metadata changes for the file" msgstr "istnieją nie zapisane metadane dla tego pliku" -#: src/filedata.cc:2898 +#: src/filedata/filedata.cc:2898 msgid "another destination file has the same filename" msgstr "inny plik docelowy ma taką samą nazwę" -#: src/filedata.cc:3460 +#: src/filedata/filedata.cc:3460 #, fuzzy, c-format msgid "Error: Unable to write marks lists to: %s\n" msgstr "Nie można zapisać list historii w: %s\n" diff --git a/po/pt_BR.po b/po/pt_BR.po index 00d96f298..10c3e29ed 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -2555,80 +2555,80 @@ msgstr "Página %d" msgid "Lens" msgstr "" -#: src/filedata.cc:134 +#: src/filedata/filedata.cc:134 #, c-format msgid "%d bytes" msgstr "%d bytes" -#: src/filedata.cc:138 +#: src/filedata/filedata.cc:138 #, fuzzy, c-format msgid "%.1f KiB" msgstr "%.1f KB" -#: src/filedata.cc:142 +#: src/filedata/filedata.cc:142 #, fuzzy, c-format msgid "%.1f MiB" msgstr "%.1f MB" -#: src/filedata.cc:147 +#: src/filedata/filedata.cc:147 #, fuzzy, c-format msgid "%.1f GiB" msgstr "%.1f GB" -#: src/filedata.cc:2826 +#: src/filedata/filedata.cc:2826 msgid "file or directory does not exist" msgstr "o arquivo ou o diretório não existe" -#: src/filedata.cc:2832 +#: src/filedata/filedata.cc:2832 msgid "destination already exists" msgstr "o destino já existe" -#: src/filedata.cc:2838 +#: src/filedata/filedata.cc:2838 msgid "destination can't be overwritten" msgstr "o destino não pode ser sobre-escrito" -#: src/filedata.cc:2844 +#: src/filedata/filedata.cc:2844 msgid "destination directory is not writable" msgstr "o diretório de destino não é escrevível" -#: src/filedata.cc:2850 +#: src/filedata/filedata.cc:2850 msgid "destination directory does not exist" msgstr "o diretório de destino não existe" -#: src/filedata.cc:2856 +#: src/filedata/filedata.cc:2856 msgid "source directory is not writable" msgstr "o diretório de origem não é escrevível" -#: src/filedata.cc:2862 +#: src/filedata/filedata.cc:2862 msgid "no read permission" msgstr "sem permissão de leitura" -#: src/filedata.cc:2868 +#: src/filedata/filedata.cc:2868 msgid "file is readonly" msgstr "o arquivo é somente leitura" -#: src/filedata.cc:2874 +#: src/filedata/filedata.cc:2874 msgid "destination already exists and will be overwritten" msgstr "o destino já existe e será sobre-escrito" -#: src/filedata.cc:2880 +#: src/filedata/filedata.cc:2880 msgid "source and destination are the same" msgstr "a origem e o destino são o mesmo" -#: src/filedata.cc:2886 +#: src/filedata/filedata.cc:2886 msgid "source and destination have different extension" msgstr "a origem e o destino têm diferentes extensões" -#: src/filedata.cc:2892 +#: src/filedata/filedata.cc:2892 msgid "there are unsaved metadata changes for the file" msgstr "há modificações nos metadados não salvas para o arquivo" -#: src/filedata.cc:2898 +#: src/filedata/filedata.cc:2898 #, fuzzy msgid "another destination file has the same filename" msgstr "a origem e o destino são o mesmo" -#: src/filedata.cc:3460 +#: src/filedata/filedata.cc:3460 #, fuzzy, c-format msgid "Error: Unable to write marks lists to: %s\n" msgstr "Incapaz de escrever as listas do histórico em: %s\n" diff --git a/po/ro.po b/po/ro.po index 470b5a2dc..75195a039 100644 --- a/po/ro.po +++ b/po/ro.po @@ -2557,80 +2557,80 @@ msgstr "Pagina %d" msgid "Lens" msgstr "" -#: src/filedata.cc:134 +#: src/filedata/filedata.cc:134 #, c-format msgid "%d bytes" msgstr "%d bytes" -#: src/filedata.cc:138 +#: src/filedata/filedata.cc:138 #, fuzzy, c-format msgid "%.1f KiB" msgstr "%.1f K" -#: src/filedata.cc:142 +#: src/filedata/filedata.cc:142 #, fuzzy, c-format msgid "%.1f MiB" msgstr "%.1f MB" -#: src/filedata.cc:147 +#: src/filedata/filedata.cc:147 #, fuzzy, c-format msgid "%.1f GiB" msgstr "%.1f GB" -#: src/filedata.cc:2826 +#: src/filedata/filedata.cc:2826 msgid "file or directory does not exist" msgstr "fișierul sau directorul nu există" -#: src/filedata.cc:2832 +#: src/filedata/filedata.cc:2832 msgid "destination already exists" msgstr "destinația există deja" -#: src/filedata.cc:2838 +#: src/filedata/filedata.cc:2838 msgid "destination can't be overwritten" msgstr "destinația nu poate fi suprascrisă" -#: src/filedata.cc:2844 +#: src/filedata/filedata.cc:2844 msgid "destination directory is not writable" msgstr "nu se poate scrie în directorul destinație" -#: src/filedata.cc:2850 +#: src/filedata/filedata.cc:2850 msgid "destination directory does not exist" msgstr "directorul destinație nu există" -#: src/filedata.cc:2856 +#: src/filedata/filedata.cc:2856 msgid "source directory is not writable" msgstr "nu se poate scrie în directorul sursă" -#: src/filedata.cc:2862 +#: src/filedata/filedata.cc:2862 msgid "no read permission" msgstr "nu există permisiune de citire) %s byte" -#: src/filedata.cc:2868 +#: src/filedata/filedata.cc:2868 msgid "file is readonly" msgstr "fișierul este read-only" -#: src/filedata.cc:2874 +#: src/filedata/filedata.cc:2874 msgid "destination already exists and will be overwritten" msgstr "destinația există deja și va fi suprascrisă" -#: src/filedata.cc:2880 +#: src/filedata/filedata.cc:2880 msgid "source and destination are the same" msgstr "sursa se suprapune cu destinaţia" -#: src/filedata.cc:2886 +#: src/filedata/filedata.cc:2886 msgid "source and destination have different extension" msgstr "sursa și destinaţia au extensii diferite" -#: src/filedata.cc:2892 +#: src/filedata/filedata.cc:2892 msgid "there are unsaved metadata changes for the file" msgstr "metadatele fișierului conțin modificări nesalvate" -#: src/filedata.cc:2898 +#: src/filedata/filedata.cc:2898 #, fuzzy msgid "another destination file has the same filename" msgstr "sursa se suprapune cu destinaţia" -#: src/filedata.cc:3460 +#: src/filedata/filedata.cc:3460 #, fuzzy, c-format msgid "Error: Unable to write marks lists to: %s\n" msgstr "Nu pot scrie istoricul în: %s\n" diff --git a/po/ru.po b/po/ru.po index 36fb15672..0a4a2d081 100644 --- a/po/ru.po +++ b/po/ru.po @@ -2503,79 +2503,79 @@ msgstr "Номер страницы." msgid "Lens" msgstr "Линзы" -#: src/filedata.cc:134 +#: src/filedata/filedata.cc:134 #, c-format msgid "%d bytes" msgstr "%d байт" -#: src/filedata.cc:138 +#: src/filedata/filedata.cc:138 #, fuzzy, c-format msgid "%.1f KiB" msgstr "%.1f КБ" -#: src/filedata.cc:142 +#: src/filedata/filedata.cc:142 #, fuzzy, c-format msgid "%.1f MiB" msgstr "%.1f МБ" -#: src/filedata.cc:147 +#: src/filedata/filedata.cc:147 #, fuzzy, c-format msgid "%.1f GiB" msgstr "%.1f ГБ" -#: src/filedata.cc:2826 +#: src/filedata/filedata.cc:2826 msgid "file or directory does not exist" msgstr "файл или каталог не существует" -#: src/filedata.cc:2832 +#: src/filedata/filedata.cc:2832 msgid "destination already exists" msgstr "конечный файл уже существует" -#: src/filedata.cc:2838 +#: src/filedata/filedata.cc:2838 msgid "destination can't be overwritten" msgstr "невозможно перезаписать каталог назначения" -#: src/filedata.cc:2844 +#: src/filedata/filedata.cc:2844 msgid "destination directory is not writable" msgstr "нет прав на запись в каталог назначения" -#: src/filedata.cc:2850 +#: src/filedata/filedata.cc:2850 msgid "destination directory does not exist" msgstr "каталог назначения не существует" -#: src/filedata.cc:2856 +#: src/filedata/filedata.cc:2856 msgid "source directory is not writable" msgstr "нет прав на запись в исходную директорию" -#: src/filedata.cc:2862 +#: src/filedata/filedata.cc:2862 msgid "no read permission" msgstr "нет прав на чтение" -#: src/filedata.cc:2868 +#: src/filedata/filedata.cc:2868 msgid "file is readonly" msgstr "файл доступен только для чтения" -#: src/filedata.cc:2874 +#: src/filedata/filedata.cc:2874 msgid "destination already exists and will be overwritten" msgstr "конечный файл уже существует и будет перезаписан" -#: src/filedata.cc:2880 +#: src/filedata/filedata.cc:2880 msgid "source and destination are the same" msgstr "исходный и конечный файлы совпадают" -#: src/filedata.cc:2886 +#: src/filedata/filedata.cc:2886 msgid "source and destination have different extension" msgstr "исходный и конечный файлы имеют различные расширения" -#: src/filedata.cc:2892 +#: src/filedata/filedata.cc:2892 msgid "there are unsaved metadata changes for the file" msgstr "для файла есть несохраненные изменения в метаданных" -#: src/filedata.cc:2898 +#: src/filedata/filedata.cc:2898 msgid "another destination file has the same filename" msgstr "исходный и конечный файлы совпадают" -#: src/filedata.cc:3460 +#: src/filedata/filedata.cc:3460 #, c-format msgid "Error: Unable to write marks lists to: %s\n" msgstr "Ошибка: Невозможно записать списки меток в: %s\n" diff --git a/po/sk.po b/po/sk.po index e6338146a..43d9eac22 100644 --- a/po/sk.po +++ b/po/sk.po @@ -2768,84 +2768,84 @@ msgid "Lens" msgstr "Šošovky" # src/dupe.cc:67 src/dupe.cc:1449 -#: src/filedata.cc:134 +#: src/filedata/filedata.cc:134 #, c-format msgid "%d bytes" msgstr "%d bajtov" -#: src/filedata.cc:138 +#: src/filedata/filedata.cc:138 #, c-format msgid "%.1f KiB" msgstr "%.1f KiB" -#: src/filedata.cc:142 +#: src/filedata/filedata.cc:142 #, c-format msgid "%.1f MiB" msgstr "%.1f MiB" -#: src/filedata.cc:147 +#: src/filedata/filedata.cc:147 #, c-format msgid "%.1f GiB" msgstr "%.1f GiB" -#: src/filedata.cc:2826 +#: src/filedata/filedata.cc:2826 msgid "file or directory does not exist" msgstr "súbor alebo adresár neexistuje" # src/filelist.c:814 -#: src/filedata.cc:2832 +#: src/filedata/filedata.cc:2832 msgid "destination already exists" msgstr "cieľ už existuje" -#: src/filedata.cc:2838 +#: src/filedata/filedata.cc:2838 msgid "destination can't be overwritten" msgstr "cieľové umiestnenie sa nedá prepísať" -#: src/filedata.cc:2844 +#: src/filedata/filedata.cc:2844 msgid "destination directory is not writable" msgstr "do cieľového adresára nie je možné zapisovať" -#: src/filedata.cc:2850 +#: src/filedata/filedata.cc:2850 msgid "destination directory does not exist" msgstr "cieľový adresár neexistuje" -#: src/filedata.cc:2856 +#: src/filedata/filedata.cc:2856 msgid "source directory is not writable" msgstr "do zdrojového adresára nie je možné zapisovať" -#: src/filedata.cc:2862 +#: src/filedata/filedata.cc:2862 msgid "no read permission" msgstr "chýbajúce práva na čítanie" -#: src/filedata.cc:2868 +#: src/filedata/filedata.cc:2868 msgid "file is readonly" msgstr "súbor je určený len na čítanie" -#: src/filedata.cc:2874 +#: src/filedata/filedata.cc:2874 msgid "destination already exists and will be overwritten" msgstr "cieľ už existuje a bude prepísaný" # src/utilops.cc:451 -#: src/filedata.cc:2880 +#: src/filedata/filedata.cc:2880 msgid "source and destination are the same" msgstr "zdroj a cieľ sú totožné" # src/utilops.cc:451 -#: src/filedata.cc:2886 +#: src/filedata/filedata.cc:2886 msgid "source and destination have different extension" msgstr "zdroj a cieľ majú rozdielne prípony" -#: src/filedata.cc:2892 +#: src/filedata/filedata.cc:2892 msgid "there are unsaved metadata changes for the file" msgstr "metadáta súboru čakajú na uloženie" # src/utilops.cc:451 -#: src/filedata.cc:2898 +#: src/filedata/filedata.cc:2898 msgid "another destination file has the same filename" msgstr "iný cieľový súbor má rovnaké meno" # src/ui-tabcomp.cc:171 -#: src/filedata.cc:3460 +#: src/filedata/filedata.cc:3460 #, c-format msgid "Error: Unable to write marks lists to: %s\n" msgstr "Chyba: Nemožno zapísať zoznamy značiek do: %s\n" diff --git a/po/sl.po b/po/sl.po index 70f8b5d21..fe7c58fdd 100644 --- a/po/sl.po +++ b/po/sl.po @@ -2694,82 +2694,82 @@ msgstr "Filter:" msgid "Lens" msgstr "" -#: src/filedata.cc:134 +#: src/filedata/filedata.cc:134 #, fuzzy, c-format msgid "%d bytes" msgstr "%d datotek" -#: src/filedata.cc:138 +#: src/filedata/filedata.cc:138 #, c-format msgid "%.1f KiB" msgstr "" -#: src/filedata.cc:142 +#: src/filedata/filedata.cc:142 #, c-format msgid "%.1f MiB" msgstr "" -#: src/filedata.cc:147 +#: src/filedata/filedata.cc:147 #, c-format msgid "%.1f GiB" msgstr "" -#: src/filedata.cc:2826 +#: src/filedata/filedata.cc:2826 msgid "file or directory does not exist" msgstr "" -#: src/filedata.cc:2832 +#: src/filedata/filedata.cc:2832 #, fuzzy msgid "destination already exists" msgstr "Datoteka z imenom %s že obstaja." -#: src/filedata.cc:2838 +#: src/filedata/filedata.cc:2838 msgid "destination can't be overwritten" msgstr "" -#: src/filedata.cc:2844 +#: src/filedata/filedata.cc:2844 msgid "destination directory is not writable" msgstr "" -#: src/filedata.cc:2850 +#: src/filedata/filedata.cc:2850 msgid "destination directory does not exist" msgstr "" -#: src/filedata.cc:2856 +#: src/filedata/filedata.cc:2856 msgid "source directory is not writable" msgstr "" -#: src/filedata.cc:2862 +#: src/filedata/filedata.cc:2862 msgid "no read permission" msgstr "" -#: src/filedata.cc:2868 +#: src/filedata/filedata.cc:2868 msgid "file is readonly" msgstr "" -#: src/filedata.cc:2874 +#: src/filedata/filedata.cc:2874 msgid "destination already exists and will be overwritten" msgstr "" -#: src/filedata.cc:2880 +#: src/filedata/filedata.cc:2880 #, fuzzy msgid "source and destination are the same" msgstr "Izvor in cilj sta enaka, operacija preklicana." -#: src/filedata.cc:2886 +#: src/filedata/filedata.cc:2886 #, fuzzy msgid "source and destination have different extension" msgstr "Izvor in cilj sta enaka, operacija preklicana." -#: src/filedata.cc:2892 +#: src/filedata/filedata.cc:2892 msgid "there are unsaved metadata changes for the file" msgstr "" -#: src/filedata.cc:2898 +#: src/filedata/filedata.cc:2898 msgid "another destination file has the same filename" msgstr "" -#: src/filedata.cc:3460 +#: src/filedata/filedata.cc:3460 #, fuzzy, c-format msgid "Error: Unable to write marks lists to: %s\n" msgstr "Ne morem napisati seznama zgodovine v: %s\n" diff --git a/po/sr.po b/po/sr.po index a5e026e1c..4a2558e64 100644 --- a/po/sr.po +++ b/po/sr.po @@ -2566,80 +2566,80 @@ msgstr "%d. страница" msgid "Lens" msgstr "" -#: src/filedata.cc:134 +#: src/filedata/filedata.cc:134 #, c-format msgid "%d bytes" msgstr "%d бајтова" -#: src/filedata.cc:138 +#: src/filedata/filedata.cc:138 #, fuzzy, c-format msgid "%.1f KiB" msgstr "%.1f K" -#: src/filedata.cc:142 +#: src/filedata/filedata.cc:142 #, fuzzy, c-format msgid "%.1f MiB" msgstr "%.1f MB" -#: src/filedata.cc:147 +#: src/filedata/filedata.cc:147 #, fuzzy, c-format msgid "%.1f GiB" msgstr "%.1f GB" -#: src/filedata.cc:2826 +#: src/filedata/filedata.cc:2826 msgid "file or directory does not exist" msgstr "не постоји датотека или директоријум" -#: src/filedata.cc:2832 +#: src/filedata/filedata.cc:2832 msgid "destination already exists" msgstr "одредиште већ постоји" -#: src/filedata.cc:2838 +#: src/filedata/filedata.cc:2838 msgid "destination can't be overwritten" msgstr "не могу да препишем преко одредишта" -#: src/filedata.cc:2844 +#: src/filedata/filedata.cc:2844 msgid "destination directory is not writable" msgstr "не могу да пишем у циљни директиријум" -#: src/filedata.cc:2850 +#: src/filedata/filedata.cc:2850 msgid "destination directory does not exist" msgstr "циљни директоријум не постоји" -#: src/filedata.cc:2856 +#: src/filedata/filedata.cc:2856 msgid "source directory is not writable" msgstr "не могу да пишем у изворни директоријум" -#: src/filedata.cc:2862 +#: src/filedata/filedata.cc:2862 msgid "no read permission" msgstr "немате овлашћења за читање" -#: src/filedata.cc:2868 +#: src/filedata/filedata.cc:2868 msgid "file is readonly" msgstr "можете само читати ову датотеку" -#: src/filedata.cc:2874 +#: src/filedata/filedata.cc:2874 msgid "destination already exists and will be overwritten" msgstr "већ постоји одредиште и нећу га преписати" -#: src/filedata.cc:2880 +#: src/filedata/filedata.cc:2880 msgid "source and destination are the same" msgstr "извор и одредиште су исти" -#: src/filedata.cc:2886 +#: src/filedata/filedata.cc:2886 msgid "source and destination have different extension" msgstr "извор и одредиште имају различите екстензије" -#: src/filedata.cc:2892 +#: src/filedata/filedata.cc:2892 msgid "there are unsaved metadata changes for the file" msgstr "има несачуваних измена у метаподацима датотеке" -#: src/filedata.cc:2898 +#: src/filedata/filedata.cc:2898 #, fuzzy msgid "another destination file has the same filename" msgstr "извор и одредиште су исти" -#: src/filedata.cc:3460 +#: src/filedata/filedata.cc:3460 #, fuzzy, c-format msgid "Error: Unable to write marks lists to: %s\n" msgstr "Не могу да упишем историјат у %s\n" diff --git a/po/sr@latin.po b/po/sr@latin.po index 036a32922..2bafee1b6 100644 --- a/po/sr@latin.po +++ b/po/sr@latin.po @@ -2566,80 +2566,80 @@ msgstr "%d. stranica" msgid "Lens" msgstr "" -#: src/filedata.cc:134 +#: src/filedata/filedata.cc:134 #, c-format msgid "%d bytes" msgstr "%d bajtova" -#: src/filedata.cc:138 +#: src/filedata/filedata.cc:138 #, fuzzy, c-format msgid "%.1f KiB" msgstr "%.1f K" -#: src/filedata.cc:142 +#: src/filedata/filedata.cc:142 #, fuzzy, c-format msgid "%.1f MiB" msgstr "%.1f MB" -#: src/filedata.cc:147 +#: src/filedata/filedata.cc:147 #, fuzzy, c-format msgid "%.1f GiB" msgstr "%.1f GB" -#: src/filedata.cc:2826 +#: src/filedata/filedata.cc:2826 msgid "file or directory does not exist" msgstr "ne postoji datoteka ili direktorijum" -#: src/filedata.cc:2832 +#: src/filedata/filedata.cc:2832 msgid "destination already exists" msgstr "odredište već postoji" -#: src/filedata.cc:2838 +#: src/filedata/filedata.cc:2838 msgid "destination can't be overwritten" msgstr "ne mogu da prepišem preko odredišta" -#: src/filedata.cc:2844 +#: src/filedata/filedata.cc:2844 msgid "destination directory is not writable" msgstr "ne mogu da pišem u ciljni direktirijum" -#: src/filedata.cc:2850 +#: src/filedata/filedata.cc:2850 msgid "destination directory does not exist" msgstr "ciljni direktorijum ne postoji" -#: src/filedata.cc:2856 +#: src/filedata/filedata.cc:2856 msgid "source directory is not writable" msgstr "ne mogu da pišem u izvorni direktorijum" -#: src/filedata.cc:2862 +#: src/filedata/filedata.cc:2862 msgid "no read permission" msgstr "nemate ovlašćenja za čitanje" -#: src/filedata.cc:2868 +#: src/filedata/filedata.cc:2868 msgid "file is readonly" msgstr "možete samo čitati ovu datoteku" -#: src/filedata.cc:2874 +#: src/filedata/filedata.cc:2874 msgid "destination already exists and will be overwritten" msgstr "već postoji odredište i neću ga prepisati" -#: src/filedata.cc:2880 +#: src/filedata/filedata.cc:2880 msgid "source and destination are the same" msgstr "izvor i odredište su isti" -#: src/filedata.cc:2886 +#: src/filedata/filedata.cc:2886 msgid "source and destination have different extension" msgstr "izvor i odredište imaju različite ekstenzije" -#: src/filedata.cc:2892 +#: src/filedata/filedata.cc:2892 msgid "there are unsaved metadata changes for the file" msgstr "ima nesačuvanih izmena u metapodacima datoteke" -#: src/filedata.cc:2898 +#: src/filedata/filedata.cc:2898 #, fuzzy msgid "another destination file has the same filename" msgstr "izvor i odredište su isti" -#: src/filedata.cc:3460 +#: src/filedata/filedata.cc:3460 #, fuzzy, c-format msgid "Error: Unable to write marks lists to: %s\n" msgstr "Ne mogu da upišem istorijat u %s\n" diff --git a/po/sv.po b/po/sv.po index f123e65ca..da1018bdf 100644 --- a/po/sv.po +++ b/po/sv.po @@ -2494,79 +2494,79 @@ msgstr "Sida nr." msgid "Lens" msgstr "Lins" -#: src/filedata.cc:134 +#: src/filedata/filedata.cc:134 #, c-format msgid "%d bytes" msgstr "%d byte" -#: src/filedata.cc:138 +#: src/filedata/filedata.cc:138 #, c-format msgid "%.1f KiB" msgstr "%.1f KiB" -#: src/filedata.cc:142 +#: src/filedata/filedata.cc:142 #, c-format msgid "%.1f MiB" msgstr "%.1f MiB" -#: src/filedata.cc:147 +#: src/filedata/filedata.cc:147 #, c-format msgid "%.1f GiB" msgstr "%.1f GiB" -#: src/filedata.cc:2826 +#: src/filedata/filedata.cc:2826 msgid "file or directory does not exist" msgstr "filen eller mappen finns inte" -#: src/filedata.cc:2832 +#: src/filedata/filedata.cc:2832 msgid "destination already exists" msgstr "filen finns redan" -#: src/filedata.cc:2838 +#: src/filedata/filedata.cc:2838 msgid "destination can't be overwritten" msgstr "målfilen kan inte skrivas över" -#: src/filedata.cc:2844 +#: src/filedata/filedata.cc:2844 msgid "destination directory is not writable" msgstr "målmappen är skrivskyddad" -#: src/filedata.cc:2850 +#: src/filedata/filedata.cc:2850 msgid "destination directory does not exist" msgstr "målmappen finns inte" -#: src/filedata.cc:2856 +#: src/filedata/filedata.cc:2856 msgid "source directory is not writable" msgstr "källmappen är skrivskyddad" -#: src/filedata.cc:2862 +#: src/filedata/filedata.cc:2862 msgid "no read permission" msgstr "läsrättighet saknas" -#: src/filedata.cc:2868 +#: src/filedata/filedata.cc:2868 msgid "file is readonly" msgstr "filen är skrivskyddad" -#: src/filedata.cc:2874 +#: src/filedata/filedata.cc:2874 msgid "destination already exists and will be overwritten" msgstr "målfilen finns redan men kommer att skrivas över" -#: src/filedata.cc:2880 +#: src/filedata/filedata.cc:2880 msgid "source and destination are the same" msgstr "källa och mål är desamma" -#: src/filedata.cc:2886 +#: src/filedata/filedata.cc:2886 msgid "source and destination have different extension" msgstr "källa och mål har oliks filnamntillägg" -#: src/filedata.cc:2892 +#: src/filedata/filedata.cc:2892 msgid "there are unsaved metadata changes for the file" msgstr "det finns osparade ändrade metadata för filen" -#: src/filedata.cc:2898 +#: src/filedata/filedata.cc:2898 msgid "another destination file has the same filename" msgstr "en annan destinationsfil har samma filnamn" -#: src/filedata.cc:3460 +#: src/filedata/filedata.cc:3460 #, c-format msgid "Error: Unable to write marks lists to: %s\n" msgstr "Fel: Kan inte skriva märkeslistor till: %s\n" diff --git a/po/th.po b/po/th.po index 79a534fd7..d5b5df24e 100644 --- a/po/th.po +++ b/po/th.po @@ -2694,82 +2694,82 @@ msgstr "ฟิลเตอร์:" msgid "Lens" msgstr "" -#: src/filedata.cc:134 +#: src/filedata/filedata.cc:134 #, fuzzy, c-format msgid "%d bytes" msgstr "%d แฟ้ม" -#: src/filedata.cc:138 +#: src/filedata/filedata.cc:138 #, c-format msgid "%.1f KiB" msgstr "" -#: src/filedata.cc:142 +#: src/filedata/filedata.cc:142 #, c-format msgid "%.1f MiB" msgstr "" -#: src/filedata.cc:147 +#: src/filedata/filedata.cc:147 #, c-format msgid "%.1f GiB" msgstr "" -#: src/filedata.cc:2826 +#: src/filedata/filedata.cc:2826 msgid "file or directory does not exist" msgstr "" -#: src/filedata.cc:2832 +#: src/filedata/filedata.cc:2832 #, fuzzy msgid "destination already exists" msgstr "แฟ้มชื่อ %s มีอยู่แล้ว" -#: src/filedata.cc:2838 +#: src/filedata/filedata.cc:2838 msgid "destination can't be overwritten" msgstr "" -#: src/filedata.cc:2844 +#: src/filedata/filedata.cc:2844 msgid "destination directory is not writable" msgstr "" -#: src/filedata.cc:2850 +#: src/filedata/filedata.cc:2850 msgid "destination directory does not exist" msgstr "" -#: src/filedata.cc:2856 +#: src/filedata/filedata.cc:2856 msgid "source directory is not writable" msgstr "" -#: src/filedata.cc:2862 +#: src/filedata/filedata.cc:2862 msgid "no read permission" msgstr "" -#: src/filedata.cc:2868 +#: src/filedata/filedata.cc:2868 msgid "file is readonly" msgstr "" -#: src/filedata.cc:2874 +#: src/filedata/filedata.cc:2874 msgid "destination already exists and will be overwritten" msgstr "" -#: src/filedata.cc:2880 +#: src/filedata/filedata.cc:2880 #, fuzzy msgid "source and destination are the same" msgstr "ต้นทางและปลายทางเหมือนกัน, การดำเนินการถูกยกเลิก" -#: src/filedata.cc:2886 +#: src/filedata/filedata.cc:2886 #, fuzzy msgid "source and destination have different extension" msgstr "ต้นทางและปลายทางเหมือนกัน, การดำเนินการถูกยกเลิก" -#: src/filedata.cc:2892 +#: src/filedata/filedata.cc:2892 msgid "there are unsaved metadata changes for the file" msgstr "" -#: src/filedata.cc:2898 +#: src/filedata/filedata.cc:2898 msgid "another destination file has the same filename" msgstr "" -#: src/filedata.cc:3460 +#: src/filedata/filedata.cc:3460 #, fuzzy, c-format msgid "Error: Unable to write marks lists to: %s\n" msgstr "ไม่สามารถเขียนรายการประวัติศาสตร์สู่:-%s\n" diff --git a/po/tlh.po b/po/tlh.po index 1e051829d..49735518d 100644 --- a/po/tlh.po +++ b/po/tlh.po @@ -2421,79 +2421,79 @@ msgstr "" msgid "Lens" msgstr "" -#: src/filedata.cc:134 +#: src/filedata/filedata.cc:134 #, c-format msgid "%d bytes" msgstr "" -#: src/filedata.cc:138 +#: src/filedata/filedata.cc:138 #, c-format msgid "%.1f KiB" msgstr "" -#: src/filedata.cc:142 +#: src/filedata/filedata.cc:142 #, c-format msgid "%.1f MiB" msgstr "" -#: src/filedata.cc:147 +#: src/filedata/filedata.cc:147 #, c-format msgid "%.1f GiB" msgstr "" -#: src/filedata.cc:2826 +#: src/filedata/filedata.cc:2826 msgid "file or directory does not exist" msgstr "" -#: src/filedata.cc:2832 +#: src/filedata/filedata.cc:2832 msgid "destination already exists" msgstr "" -#: src/filedata.cc:2838 +#: src/filedata/filedata.cc:2838 msgid "destination can't be overwritten" msgstr "" -#: src/filedata.cc:2844 +#: src/filedata/filedata.cc:2844 msgid "destination directory is not writable" msgstr "" -#: src/filedata.cc:2850 +#: src/filedata/filedata.cc:2850 msgid "destination directory does not exist" msgstr "" -#: src/filedata.cc:2856 +#: src/filedata/filedata.cc:2856 msgid "source directory is not writable" msgstr "" -#: src/filedata.cc:2862 +#: src/filedata/filedata.cc:2862 msgid "no read permission" msgstr "" -#: src/filedata.cc:2868 +#: src/filedata/filedata.cc:2868 msgid "file is readonly" msgstr "" -#: src/filedata.cc:2874 +#: src/filedata/filedata.cc:2874 msgid "destination already exists and will be overwritten" msgstr "" -#: src/filedata.cc:2880 +#: src/filedata/filedata.cc:2880 msgid "source and destination are the same" msgstr "" -#: src/filedata.cc:2886 +#: src/filedata/filedata.cc:2886 msgid "source and destination have different extension" msgstr "" -#: src/filedata.cc:2892 +#: src/filedata/filedata.cc:2892 msgid "there are unsaved metadata changes for the file" msgstr "" -#: src/filedata.cc:2898 +#: src/filedata/filedata.cc:2898 msgid "another destination file has the same filename" msgstr "" -#: src/filedata.cc:3460 +#: src/filedata/filedata.cc:3460 #, c-format msgid "Error: Unable to write marks lists to: %s\n" msgstr "" diff --git a/po/tr.po b/po/tr.po index 15f1bb90f..70da26c19 100644 --- a/po/tr.po +++ b/po/tr.po @@ -2560,79 +2560,79 @@ msgstr "%d sayfası" msgid "Lens" msgstr "" -#: src/filedata.cc:134 +#: src/filedata/filedata.cc:134 #, c-format msgid "%d bytes" msgstr "%d bayt" -#: src/filedata.cc:138 +#: src/filedata/filedata.cc:138 #, fuzzy, c-format msgid "%.1f KiB" msgstr "%.1f K" -#: src/filedata.cc:142 +#: src/filedata/filedata.cc:142 #, fuzzy, c-format msgid "%.1f MiB" msgstr "%.1f MB" -#: src/filedata.cc:147 +#: src/filedata/filedata.cc:147 #, fuzzy, c-format msgid "%.1f GiB" msgstr "%.1f GB" -#: src/filedata.cc:2826 +#: src/filedata/filedata.cc:2826 msgid "file or directory does not exist" msgstr "dosya veya dizin yok" -#: src/filedata.cc:2832 +#: src/filedata/filedata.cc:2832 msgid "destination already exists" msgstr "Hedef zaten var" -#: src/filedata.cc:2838 +#: src/filedata/filedata.cc:2838 msgid "destination can't be overwritten" msgstr "hedefin üzerine yazılamaz" -#: src/filedata.cc:2844 +#: src/filedata/filedata.cc:2844 msgid "destination directory is not writable" msgstr "hedef dizin yazılabilir değil" -#: src/filedata.cc:2850 +#: src/filedata/filedata.cc:2850 msgid "destination directory does not exist" msgstr "hedef dizin yok" -#: src/filedata.cc:2856 +#: src/filedata/filedata.cc:2856 msgid "source directory is not writable" msgstr "kaynak dizin yazılabilir değil" -#: src/filedata.cc:2862 +#: src/filedata/filedata.cc:2862 msgid "no read permission" msgstr "okuma izni yok" -#: src/filedata.cc:2868 +#: src/filedata/filedata.cc:2868 msgid "file is readonly" msgstr "dosya salt okunur" -#: src/filedata.cc:2874 +#: src/filedata/filedata.cc:2874 msgid "destination already exists and will be overwritten" msgstr "hedef zaten var ve üzerine yazılacak" -#: src/filedata.cc:2880 +#: src/filedata/filedata.cc:2880 msgid "source and destination are the same" msgstr "kaynak ve hedef aynı" -#: src/filedata.cc:2886 +#: src/filedata/filedata.cc:2886 msgid "source and destination have different extension" msgstr "kaynak ve hedef farklı uzantılara sahip" -#: src/filedata.cc:2892 +#: src/filedata/filedata.cc:2892 msgid "there are unsaved metadata changes for the file" msgstr "dosya için kaydedilmemiş meta veri değişiklikleri var" -#: src/filedata.cc:2898 +#: src/filedata/filedata.cc:2898 msgid "another destination file has the same filename" msgstr "başka bir hedef dosya aynı dosya adına sahip" -#: src/filedata.cc:3460 +#: src/filedata/filedata.cc:3460 #, fuzzy, c-format msgid "Error: Unable to write marks lists to: %s\n" msgstr "Geçmiş listeleri yazılamıyor: %s\n" diff --git a/po/uk.po b/po/uk.po index 19fed832e..4d894b88f 100644 --- a/po/uk.po +++ b/po/uk.po @@ -2694,82 +2694,82 @@ msgstr "Фільтр:" msgid "Lens" msgstr "" -#: src/filedata.cc:134 +#: src/filedata/filedata.cc:134 #, c-format msgid "%d bytes" msgstr "байтів: %d" -#: src/filedata.cc:138 +#: src/filedata/filedata.cc:138 #, fuzzy, c-format msgid "%.1f KiB" msgstr "%.1f K" -#: src/filedata.cc:142 +#: src/filedata/filedata.cc:142 #, fuzzy, c-format msgid "%.1f MiB" msgstr "%.1f Mб" -#: src/filedata.cc:147 +#: src/filedata/filedata.cc:147 #, fuzzy, c-format msgid "%.1f GiB" msgstr "%.1f Mб" -#: src/filedata.cc:2826 +#: src/filedata/filedata.cc:2826 msgid "file or directory does not exist" msgstr "" -#: src/filedata.cc:2832 +#: src/filedata/filedata.cc:2832 #, fuzzy msgid "destination already exists" msgstr "Файл з назвою %s вже існує." -#: src/filedata.cc:2838 +#: src/filedata/filedata.cc:2838 msgid "destination can't be overwritten" msgstr "" -#: src/filedata.cc:2844 +#: src/filedata/filedata.cc:2844 msgid "destination directory is not writable" msgstr "" -#: src/filedata.cc:2850 +#: src/filedata/filedata.cc:2850 msgid "destination directory does not exist" msgstr "" -#: src/filedata.cc:2856 +#: src/filedata/filedata.cc:2856 msgid "source directory is not writable" msgstr "" -#: src/filedata.cc:2862 +#: src/filedata/filedata.cc:2862 msgid "no read permission" msgstr "" -#: src/filedata.cc:2868 +#: src/filedata/filedata.cc:2868 msgid "file is readonly" msgstr "" -#: src/filedata.cc:2874 +#: src/filedata/filedata.cc:2874 msgid "destination already exists and will be overwritten" msgstr "" -#: src/filedata.cc:2880 +#: src/filedata/filedata.cc:2880 #, fuzzy msgid "source and destination are the same" msgstr "Джерело і ціль це одне і те ж, операція припинена." -#: src/filedata.cc:2886 +#: src/filedata/filedata.cc:2886 #, fuzzy msgid "source and destination have different extension" msgstr "Джерело і ціль це одне і те ж, операція припинена." -#: src/filedata.cc:2892 +#: src/filedata/filedata.cc:2892 msgid "there are unsaved metadata changes for the file" msgstr "" -#: src/filedata.cc:2898 +#: src/filedata/filedata.cc:2898 msgid "another destination file has the same filename" msgstr "" -#: src/filedata.cc:3460 +#: src/filedata/filedata.cc:3460 #, fuzzy, c-format msgid "Error: Unable to write marks lists to: %s\n" msgstr "Не можу записати файл історії в: %s\n" diff --git a/po/vi.po b/po/vi.po index 4e1a9ebeb..415816acd 100644 --- a/po/vi.po +++ b/po/vi.po @@ -2643,83 +2643,83 @@ msgstr "Trang %d" msgid "Lens" msgstr "" -#: src/filedata.cc:134 +#: src/filedata/filedata.cc:134 #, c-format msgid "%d bytes" msgstr "%d byte" -#: src/filedata.cc:138 +#: src/filedata/filedata.cc:138 #, fuzzy, c-format msgid "%.1f KiB" msgstr "%.1f K" -#: src/filedata.cc:142 +#: src/filedata/filedata.cc:142 #, fuzzy, c-format msgid "%.1f MiB" msgstr "%.1f MB" -#: src/filedata.cc:147 +#: src/filedata/filedata.cc:147 #, fuzzy, c-format msgid "%.1f GiB" msgstr "%.1f GB" -#: src/filedata.cc:2826 +#: src/filedata/filedata.cc:2826 msgid "file or directory does not exist" msgstr "" -#: src/filedata.cc:2832 +#: src/filedata/filedata.cc:2832 #, fuzzy msgid "destination already exists" msgstr "Tập tin tên %s đã có rồi." -#: src/filedata.cc:2838 +#: src/filedata/filedata.cc:2838 msgid "destination can't be overwritten" msgstr "" -#: src/filedata.cc:2844 +#: src/filedata/filedata.cc:2844 msgid "destination directory is not writable" msgstr "" -#: src/filedata.cc:2850 +#: src/filedata/filedata.cc:2850 msgid "destination directory does not exist" msgstr "" -#: src/filedata.cc:2856 +#: src/filedata/filedata.cc:2856 msgid "source directory is not writable" msgstr "" -#: src/filedata.cc:2862 +#: src/filedata/filedata.cc:2862 #, fuzzy msgid "no read permission" msgstr "(không có quyền đọc) %s byte" -#: src/filedata.cc:2868 +#: src/filedata/filedata.cc:2868 msgid "file is readonly" msgstr "" -#: src/filedata.cc:2874 +#: src/filedata/filedata.cc:2874 msgid "destination already exists and will be overwritten" msgstr "" -#: src/filedata.cc:2880 +#: src/filedata/filedata.cc:2880 #, fuzzy msgid "source and destination are the same" msgstr "Nguồn và đích trùng nhau, thao tác bị hủy bỏ." -#: src/filedata.cc:2886 +#: src/filedata/filedata.cc:2886 #, fuzzy msgid "source and destination have different extension" msgstr "Nguồn và đích trùng nhau, thao tác bị hủy bỏ." -#: src/filedata.cc:2892 +#: src/filedata/filedata.cc:2892 msgid "there are unsaved metadata changes for the file" msgstr "" -#: src/filedata.cc:2898 +#: src/filedata/filedata.cc:2898 msgid "another destination file has the same filename" msgstr "" -#: src/filedata.cc:3460 +#: src/filedata/filedata.cc:3460 #, fuzzy, c-format msgid "Error: Unable to write marks lists to: %s\n" msgstr "Không thể lưu danh sách lượt sử vào: %s\n" diff --git a/po/zh_CN.po b/po/zh_CN.po index bb6e47235..af33f4b28 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -2619,80 +2619,80 @@ msgstr "第 %d 页" msgid "Lens" msgstr "" -#: src/filedata.cc:134 +#: src/filedata/filedata.cc:134 #, c-format msgid "%d bytes" msgstr "%d 字节" -#: src/filedata.cc:138 +#: src/filedata/filedata.cc:138 #, c-format msgid "%.1f KiB" msgstr "" -#: src/filedata.cc:142 +#: src/filedata/filedata.cc:142 #, c-format msgid "%.1f MiB" msgstr "" -#: src/filedata.cc:147 +#: src/filedata/filedata.cc:147 #, c-format msgid "%.1f GiB" msgstr "" -#: src/filedata.cc:2826 +#: src/filedata/filedata.cc:2826 msgid "file or directory does not exist" msgstr "文件或目录不存在" -#: src/filedata.cc:2832 +#: src/filedata/filedata.cc:2832 msgid "destination already exists" msgstr "目标文件已存在" -#: src/filedata.cc:2838 +#: src/filedata/filedata.cc:2838 msgid "destination can't be overwritten" msgstr "目标文件不能覆盖" -#: src/filedata.cc:2844 +#: src/filedata/filedata.cc:2844 msgid "destination directory is not writable" msgstr "目标目录不可写" -#: src/filedata.cc:2850 +#: src/filedata/filedata.cc:2850 msgid "destination directory does not exist" msgstr "目标目录不存在" -#: src/filedata.cc:2856 +#: src/filedata/filedata.cc:2856 msgid "source directory is not writable" msgstr "源目录不可写" -#: src/filedata.cc:2862 +#: src/filedata/filedata.cc:2862 msgid "no read permission" msgstr "无读取权限" -#: src/filedata.cc:2868 +#: src/filedata/filedata.cc:2868 msgid "file is readonly" msgstr "文件为只读" -#: src/filedata.cc:2874 +#: src/filedata/filedata.cc:2874 msgid "destination already exists and will be overwritten" msgstr "目标文件已存在并将被覆盖" -#: src/filedata.cc:2880 +#: src/filedata/filedata.cc:2880 msgid "source and destination are the same" msgstr "源和目标相同" -#: src/filedata.cc:2886 +#: src/filedata/filedata.cc:2886 msgid "source and destination have different extension" msgstr "源和目标扩展名不一致" -#: src/filedata.cc:2892 +#: src/filedata/filedata.cc:2892 msgid "there are unsaved metadata changes for the file" msgstr "文件有未保存的元数据更改" -#: src/filedata.cc:2898 +#: src/filedata/filedata.cc:2898 #, fuzzy msgid "another destination file has the same filename" msgstr "源和目标相同" -#: src/filedata.cc:3460 +#: src/filedata/filedata.cc:3460 #, fuzzy, c-format msgid "Error: Unable to write marks lists to: %s\n" msgstr "无法保存历史记录至: %s\n" diff --git a/po/zh_TW.po b/po/zh_TW.po index 9951d5779..a048597bc 100644 --- a/po/zh_TW.po +++ b/po/zh_TW.po @@ -2956,32 +2956,32 @@ msgid "Lens" msgstr "" # src/dupe.cc:67 src/dupe.cc:1449 -#: src/filedata.cc:134 +#: src/filedata/filedata.cc:134 #, c-format msgid "%d bytes" msgstr "%d bytes" -#: src/filedata.cc:138 +#: src/filedata/filedata.cc:138 #, fuzzy, c-format msgid "%.1f KiB" msgstr "%.1f K" -#: src/filedata.cc:142 +#: src/filedata/filedata.cc:142 #, fuzzy, c-format msgid "%.1f MiB" msgstr "%.1f MB" -#: src/filedata.cc:147 +#: src/filedata/filedata.cc:147 #, fuzzy, c-format msgid "%.1f GiB" msgstr "%.1f GB" -#: src/filedata.cc:2826 +#: src/filedata/filedata.cc:2826 msgid "file or directory does not exist" msgstr "" # src/utilops.cc:1144 -#: src/filedata.cc:2832 +#: src/filedata/filedata.cc:2832 #, fuzzy msgid "destination already exists" msgstr "" @@ -2989,60 +2989,60 @@ msgstr "" "%s\n" "已經存在。" -#: src/filedata.cc:2838 +#: src/filedata/filedata.cc:2838 msgid "destination can't be overwritten" msgstr "" -#: src/filedata.cc:2844 +#: src/filedata/filedata.cc:2844 msgid "destination directory is not writable" msgstr "" -#: src/filedata.cc:2850 +#: src/filedata/filedata.cc:2850 msgid "destination directory does not exist" msgstr "" -#: src/filedata.cc:2856 +#: src/filedata/filedata.cc:2856 msgid "source directory is not writable" msgstr "" -#: src/filedata.cc:2862 +#: src/filedata/filedata.cc:2862 #, fuzzy msgid "no read permission" msgstr "(無讀取權限) %s bytes" -#: src/filedata.cc:2868 +#: src/filedata/filedata.cc:2868 msgid "file is readonly" msgstr "" -#: src/filedata.cc:2874 +#: src/filedata/filedata.cc:2874 msgid "destination already exists and will be overwritten" msgstr "" # # src/utilops.cc:451 -#: src/filedata.cc:2880 +#: src/filedata/filedata.cc:2880 #, fuzzy msgid "source and destination are the same" msgstr "來源地和目的地一樣,取消操作。" # # src/utilops.cc:451 -#: src/filedata.cc:2886 +#: src/filedata/filedata.cc:2886 #, fuzzy msgid "source and destination have different extension" msgstr "來源地和目的地一樣,取消操作。" -#: src/filedata.cc:2892 +#: src/filedata/filedata.cc:2892 msgid "there are unsaved metadata changes for the file" msgstr "" -#: src/filedata.cc:2898 +#: src/filedata/filedata.cc:2898 msgid "another destination file has the same filename" msgstr "" # # src/ui-tabcomp.cc:171 -#: src/filedata.cc:3460 +#: src/filedata/filedata.cc:3460 #, fuzzy, c-format msgid "Error: Unable to write marks lists to: %s\n" msgstr "不能將紀錄列表寫入:%s\n" From e641d17284767b0824822493bc39fccca91aee0b Mon Sep 17 00:00:00 2001 From: Omari Stephens Date: Tue, 28 May 2024 23:56:24 +0000 Subject: [PATCH 06/15] Uses semi-automated replacements to create a trampoline implementation in src/filedata.cc This trampoline translates C-style API calls into C++-style API calls. It was generated using the following steps: 1) Creates trampoline functions for void FileData methods that take a FileData as the first argument. `ruby -pi -e '$_.gsub!(%r{^(void ([a-zA-Z_]+)\(FileData \*([a-z]+)(.*)\));}) {"#$1\n{\n\t#$3->#$2(#$3#$4);\n}\n"}' filedata.cc` 2) Creates trampoline functions for non-void FileData methods that take a FileData as the first argument. `ruby -pi -e '$_.gsub!(%r{^(([a-zA-Z_ *]+?) ([a-zA-Z_]+)\(FileData \*([a-z]+)(.*)\));}) {"#$1\n{\n\treturn #$4->#$3(#$4#$5);\n}\n"}' filedata.cc` 3) Cleans up types that were copied into method calls: `ruby -pi -e '$_.gsub!(%r{(?<=,)(?:[^,]* \*?)?([a-zA-Z_]+)(?=[,)])}) {" #$1"} if $_ =~ /^\t.*;$/' filedata.cc` 4) Creates trampoline functions for void methods that don't take a FileData as the first arg. (Along with auto-type-cleanup) `ruby -pi -e '$_.gsub!(%r{^(void ([a-zA-Z_]+)\((.*)\));}) {whole=$1; fxn=$2; args=$3.gsub(%r{(?<=^|,)(?:[^,]* \**)?([a-zA-Z_]+)(?=,|$)}){" #$1"}; "#{whole}\n{\n\tFileData::#{fxn}(#{args});\n}\n"}' filedata.cc` 5) Creates trampoline functions for non-void methods that don't take a FileData as the first arg. (Along with auto-type-cleanup) `ruby -pi -e '$_.gsub!(%r{^([a-zA-Z_]+ \**([a-zA-Z_]+)\((.*)\));}) {whole=$1; fxn=$2; args=$3.gsub(%r{(?<=^|,)(?:[^,]* \**)?([a-zA-Z_]+)(?=,|$)}){" #$1"}; "#{whole}\n{\n\treturn FileData::#{fxn}(#{args});\n}\n"}' filedata.cc` 6) Cleanup spurious space following open-paren from prior steps. `perl -pi -e 's|\( |(|' filedata.cc` --- src/filedata.cc | 592 ++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 493 insertions(+), 99 deletions(-) diff --git a/src/filedata.cc b/src/filedata.cc index 547a9fbcf..ad52f9cdb 100644 --- a/src/filedata.cc +++ b/src/filedata.cc @@ -40,8 +40,16 @@ struct HistMap; #define FD_MAGICK 0x12345678u -gchar *text_from_size(gint64 size); -gchar *text_from_size_abrev(gint64 size); +gchar *text_from_size(gint64 size) +{ + return FileData::text_from_size(size); +} + +gchar *text_from_size_abrev(gint64 size) +{ + return FileData::text_from_size_abrev(size); +} + const gchar *text_from_time(time_t t); enum FileDataChangeType { @@ -74,7 +82,9 @@ struct FileDataChangeInfo { gboolean regroup_when_finished; }; -struct FileData { +class FileData { + public: + // Public members from the original API guint magick; gint type; gchar *original_path; /**< key to file_data_pool hash table */ @@ -138,158 +148,542 @@ struct FileData { * @headerfile file_data_new_group * scan for sidecar files - expensive */ -FileData *file_data_new_group(const gchar *path_utf8); +FileData *file_data_new_group(const gchar *path_utf8) +{ + return FileData::file_data_new_group(const gchar *path_utf8); +} + /** * @headerfile file_data_new_no_grouping * should be used on helper files which can't have sidecars */ -FileData *file_data_new_no_grouping(const gchar *path_utf8); +FileData *file_data_new_no_grouping(const gchar *path_utf8) +{ + return FileData::file_data_new_no_grouping(const gchar *path_utf8); +} + /** * @headerfile file_data_new_dir * should be used on dirs */ -FileData *file_data_new_dir(const gchar *path_utf8); +FileData *file_data_new_dir(const gchar *path_utf8) +{ + return FileData::file_data_new_dir(const gchar *path_utf8); +} + + +FileData *file_data_new_simple(const gchar *path_utf8) +{ + return FileData::file_data_new_simple(const gchar *path_utf8); +} -FileData *file_data_new_simple(const gchar *path_utf8); #ifdef DEBUG_FILEDATA -FileData *file_data_ref_debug(const gchar *file, gint line, FileData *fd); -void file_data_unref_debug(const gchar *file, gint line, FileData *fd); +FileData *file_data_ref_debug(const gchar *file, gint line, FileData *fd) +{ + return FileData::file_data_ref_debug(file, line, fd); +} + +void file_data_unref_debug(const gchar *file, gint line, FileData *fd) +{ + FileData::file_data_unref_debug(file, line, fd); +} + #define file_data_ref(fd) file_data_ref_debug(__FILE__, __LINE__, fd) #define file_data_unref(fd) file_data_unref_debug(__FILE__, __LINE__, fd) #else -FileData *file_data_ref(FileData *fd); -void file_data_unref(FileData *fd); +FileData *file_data_ref(FileData *fd) +{ + return FileData::file_data_ref(fd); +} + +void file_data_unref(FileData *fd) +{ + fd->file_data_unref(fd); +} + #endif -void file_data_lock(FileData *fd); -void file_data_unlock(FileData *fd); -void file_data_lock_list(GList *list); -void file_data_unlock_list(GList *list); +void file_data_lock(FileData *fd) +{ + fd->file_data_lock(fd); +} + +void file_data_unlock(FileData *fd) +{ + fd->file_data_unlock(fd); +} + +void file_data_lock_list(GList *list) +{ + FileData::file_data_lock_list(list); +} + +void file_data_unlock_list(GList *list) +{ + FileData::file_data_unlock_list(list); +} + + +gboolean file_data_check_changed_files(FileData *fd) +{ + return fd->file_data_check_changed_files(fd); +} + + +void file_data_increment_version(FileData *fd) +{ + fd->file_data_increment_version(fd); +} + + +gboolean file_data_add_change_info(FileData *fd, FileDataChangeType type, const gchar *src, const gchar *dest) +{ + return fd->file_data_add_change_info(fd, type, src, dest); +} + +void file_data_change_info_free(FileDataChangeInfo *fdci, FileData *fd) +{ + FileData::file_data_change_info_free(fdci, fd); +} + + +void file_data_disable_grouping(FileData *fd, gboolean disable) +{ + fd->file_data_disable_grouping(fd, disable); +} + +void file_data_disable_grouping_list(GList *fd_list, gboolean disable) +{ + FileData::file_data_disable_grouping_list(fd_list, disable); +} + + +gint filelist_sort_compare_filedata(FileData *fa, FileData *fb) +{ + return fa->filelist_sort_compare_filedata(fa, fb); +} -gboolean file_data_check_changed_files(FileData *fd); +gint filelist_sort_compare_filedata_full(FileData *fa, FileData *fb, SortType method, gboolean ascend) +{ + return fa->filelist_sort_compare_filedata_full(fa, fb, method, ascend); +} -void file_data_increment_version(FileData *fd); +GList *filelist_sort(GList *list, SortType method, gboolean ascend, gboolean case_sensitive) +{ + return FileData::filelist_sort(list, method, ascend, case_sensitive); +} -gboolean file_data_add_change_info(FileData *fd, FileDataChangeType type, const gchar *src, const gchar *dest); -void file_data_change_info_free(FileDataChangeInfo *fdci, FileData *fd); +GList *filelist_sort_full(GList *list, SortType method, gboolean ascend, gboolean case_sensitive, GCompareFunc cb) +{ + return FileData::filelist_sort_full(list, method, ascend, case_sensitive, cb); +} -void file_data_disable_grouping(FileData *fd, gboolean disable); -void file_data_disable_grouping_list(GList *fd_list, gboolean disable); +GList *filelist_insert_sort_full(GList *list, gpointer data, SortType method, gboolean ascend, gboolean case_sensitive, GCompareFunc cb) +{ + return FileData::filelist_insert_sort_full(list, data, method, ascend, case_sensitive, cb); +} -gint filelist_sort_compare_filedata(FileData *fa, FileData *fb); -gint filelist_sort_compare_filedata_full(FileData *fa, FileData *fb, SortType method, gboolean ascend); -GList *filelist_sort(GList *list, SortType method, gboolean ascend, gboolean case_sensitive); -GList *filelist_sort_full(GList *list, SortType method, gboolean ascend, gboolean case_sensitive, GCompareFunc cb); -GList *filelist_insert_sort_full(GList *list, gpointer data, SortType method, gboolean ascend, gboolean case_sensitive, GCompareFunc cb); -gboolean filelist_read(FileData *dir_fd, GList **files, GList **dirs); -gboolean filelist_read_lstat(FileData *dir_fd, GList **files, GList **dirs); -void filelist_free(GList *list); -GList *filelist_copy(GList *list); -GList *filelist_from_path_list(GList *list); -GList *filelist_to_path_list(GList *list); +gboolean filelist_read(FileData *dir_fd, GList **files, GList **dirs) +{ + return dir->filelist_read(dir_fd, GList **files, GList **dirs); +} -GList *filelist_filter(GList *list, gboolean is_dir_list); +gboolean filelist_read_lstat(FileData *dir_fd, GList **files, GList **dirs) +{ + return dir->filelist_read_lstat(dir_fd, GList **files, GList **dirs); +} + +void filelist_free(GList *list) +{ + FileData::filelist_free(list); +} + +GList *filelist_copy(GList *list) +{ + return FileData::filelist_copy(list); +} + +GList *filelist_from_path_list(GList *list) +{ + return FileData::filelist_from_path_list(list); +} + +GList *filelist_to_path_list(GList *list) +{ + return FileData::filelist_to_path_list(list); +} + + +GList *filelist_filter(GList *list, gboolean is_dir_list) +{ + return FileData::filelist_filter(list, is_dir_list); +} + + +GList *filelist_sort_path(GList *list) +{ + return FileData::filelist_sort_path(list); +} + +GList *filelist_recursive(FileData *dir_fd) +{ + return FileData::filelist_recursive(dir_fd); +} + +GList *filelist_recursive_full(FileData *dir_fd, SortType method, gboolean ascend, gboolean case_sensitive) +{ + return FileData::filelist_recursive_full(dir_fd, method, ascend, case_sensitive); +} -GList *filelist_sort_path(GList *list); -GList *filelist_recursive(FileData *dir_fd); -GList *filelist_recursive_full(FileData *dir_fd, SortType method, gboolean ascend, gboolean case_sensitive); using FileDataGetMarkFunc = gboolean (*)(FileData *, gint, gpointer); using FileDataSetMarkFunc = gboolean (*)(FileData *, gint, gboolean, gpointer); -gboolean file_data_register_mark_func(gint n, FileDataGetMarkFunc get_mark_func, FileDataSetMarkFunc set_mark_func, gpointer data, GDestroyNotify notify); -void file_data_get_registered_mark_func(gint n, FileDataGetMarkFunc *get_mark_func, FileDataSetMarkFunc *set_mark_func, gpointer *data); +gboolean file_data_register_mark_func(gint n, FileDataGetMarkFunc get_mark_func, FileDataSetMarkFunc set_mark_func, gpointer data, GDestroyNotify notify) +{ + return FileData::file_data_register_mark_func(n, get_mark_func, set_mark_func, data, notify); +} + +void file_data_get_registered_mark_func(gint n, FileDataGetMarkFunc *get_mark_func, FileDataSetMarkFunc *set_mark_func, gpointer *data) +{ + FileData::file_data_get_registered_mark_func(n, get_mark_func, set_mark_func, data); +} + + + +gboolean file_data_get_mark(FileData *fd, gint n) +{ + return fd->file_data_get_mark(fd, n); +} + +guint file_data_get_marks(FileData *fd) +{ + return fd->file_data_get_marks(fd); +} + +void file_data_set_mark(FileData *fd, gint n, gboolean value) +{ + fd->file_data_set_mark(fd, n, value); +} + +gboolean file_data_filter_marks(FileData *fd, guint filter) +{ + return fd->file_data_filter_marks(fd, filter); +} + +GList *file_data_filter_marks_list(GList *list, guint filter) +{ + return FileData::file_data_filter_marks_list(list, filter); +} + + +gboolean file_data_mark_to_selection(FileData *fd, gint mark, MarkToSelectionMode mode, gboolean selected) +{ + return fd->file_data_mark_to_selection(fd, mark, mode, selected); +} + +void file_data_selection_to_mark(FileData *fd, gint mark, SelectionToMarkMode mode) +{ + fd->file_data_selection_to_mark(fd, mark, mode); +} + + +gboolean file_data_filter_file_filter(FileData *fd, GRegex *filter) +{ + return fd->file_data_filter_file_filter(fd, filter); +} + +GList *file_data_filter_file_filter_list(GList *list, GRegex *filter) +{ + return FileData::file_data_filter_file_filter_list(list, filter); +} -gboolean file_data_get_mark(FileData *fd, gint n); -guint file_data_get_marks(FileData *fd); -void file_data_set_mark(FileData *fd, gint n, gboolean value); -gboolean file_data_filter_marks(FileData *fd, guint filter); -GList *file_data_filter_marks_list(GList *list, guint filter); +GList *file_data_filter_class_list(GList *list, guint filter) +{ + return FileData::file_data_filter_class_list(list, filter); +} -gboolean file_data_mark_to_selection(FileData *fd, gint mark, MarkToSelectionMode mode, gboolean selected); -void file_data_selection_to_mark(FileData *fd, gint mark, SelectionToMarkMode mode); -gboolean file_data_filter_file_filter(FileData *fd, GRegex *filter); -GList *file_data_filter_file_filter_list(GList *list, GRegex *filter); +gchar *file_data_sc_list_to_string(FileData *fd) +{ + return FileData::file_data_sc_list_to_string(fd); +} -GList *file_data_filter_class_list(GList *list, guint filter); -gchar *file_data_sc_list_to_string(FileData *fd); +gchar *file_data_get_sidecar_path(FileData *fd, gboolean existing_only) +{ + return FileData::file_data_get_sidecar_path(fd, existing_only); +} -gchar *file_data_get_sidecar_path(FileData *fd, gboolean existing_only); -gboolean file_data_add_ci(FileData *fd, FileDataChangeType type, const gchar *src, const gchar *dest); -gboolean file_data_sc_add_ci_copy(FileData *fd, const gchar *dest_path); -gboolean file_data_sc_add_ci_move(FileData *fd, const gchar *dest_path); -gboolean file_data_sc_add_ci_rename(FileData *fd, const gchar *dest_path); -gboolean file_data_sc_add_ci_delete(FileData *fd); -gboolean file_data_sc_add_ci_unspecified(FileData *fd, const gchar *dest_path); +gboolean file_data_add_ci(FileData *fd, FileDataChangeType type, const gchar *src, const gchar *dest) +{ + return fd->file_data_add_ci(fd, type, src, dest); +} -gboolean file_data_sc_add_ci_delete_list(GList *fd_list); -gboolean file_data_sc_add_ci_copy_list(GList *fd_list, const gchar *dest); -gboolean file_data_sc_add_ci_move_list(GList *fd_list, const gchar *dest); -gboolean file_data_sc_add_ci_rename_list(GList *fd_list, const gchar *dest); -gboolean file_data_sc_add_ci_unspecified_list(GList *fd_list, const gchar *dest); -gboolean file_data_add_ci_write_metadata_list(GList *fd_list); +gboolean file_data_sc_add_ci_copy(FileData *fd, const gchar *dest_path) +{ + return fd->file_data_sc_add_ci_copy(fd, dest_path); +} -gboolean file_data_sc_update_ci_copy_list(GList *fd_list, const gchar *dest); -gboolean file_data_sc_update_ci_move_list(GList *fd_list, const gchar *dest); -gboolean file_data_sc_update_ci_unspecified_list(GList *fd_list, const gchar *dest); +gboolean file_data_sc_add_ci_move(FileData *fd, const gchar *dest_path) +{ + return fd->file_data_sc_add_ci_move(fd, dest_path); +} +gboolean file_data_sc_add_ci_rename(FileData *fd, const gchar *dest_path) +{ + return fd->file_data_sc_add_ci_rename(fd, dest_path); +} -gboolean file_data_sc_update_ci_copy(FileData *fd, const gchar *dest_path); -gboolean file_data_sc_update_ci_move(FileData *fd, const gchar *dest_path); -gboolean file_data_sc_update_ci_rename(FileData *fd, const gchar *dest_path); -gboolean file_data_sc_update_ci_unspecified(FileData *fd, const gchar *dest_path); +gboolean file_data_sc_add_ci_delete(FileData *fd) +{ + return fd->file_data_sc_add_ci_delete(fd); +} -gchar *file_data_get_error_string(gint error); +gboolean file_data_sc_add_ci_unspecified(FileData *fd, const gchar *dest_path) +{ + return fd->file_data_sc_add_ci_unspecified(fd, dest_path); +} -gint file_data_verify_ci(FileData *fd, GList *list); -gint file_data_verify_ci_list(GList *list, gchar **desc, gboolean with_sidecars); -gboolean file_data_perform_ci(FileData *fd); -gboolean file_data_apply_ci(FileData *fd); -void file_data_free_ci(FileData *fd); -void file_data_free_ci_list(GList *fd_list); +gboolean file_data_sc_add_ci_delete_list(GList *fd_list) +{ + return FileData::file_data_sc_add_ci_delete_list(fd_list); +} -void file_data_set_regroup_when_finished(FileData *fd, gboolean enable); +gboolean file_data_sc_add_ci_copy_list(GList *fd_list, const gchar *dest) +{ + return FileData::file_data_sc_add_ci_copy_list(fd_list, dest); +} -gint file_data_sc_verify_ci(FileData *fd, GList *list); +gboolean file_data_sc_add_ci_move_list(GList *fd_list, const gchar *dest) +{ + return FileData::file_data_sc_add_ci_move_list(fd_list, dest); +} -gboolean file_data_sc_perform_ci(FileData *fd); -gboolean file_data_sc_apply_ci(FileData *fd); -void file_data_sc_free_ci(FileData *fd); -void file_data_sc_free_ci_list(GList *fd_list); +gboolean file_data_sc_add_ci_rename_list(GList *fd_list, const gchar *dest) +{ + return FileData::file_data_sc_add_ci_rename_list(fd_list, dest); +} + +gboolean file_data_sc_add_ci_unspecified_list(GList *fd_list, const gchar *dest) +{ + return FileData::file_data_sc_add_ci_unspecified_list(fd_list, dest); +} + +gboolean file_data_add_ci_write_metadata_list(GList *fd_list) +{ + return FileData::file_data_add_ci_write_metadata_list(fd_list); +} + + +gboolean file_data_sc_update_ci_copy_list(GList *fd_list, const gchar *dest) +{ + return FileData::file_data_sc_update_ci_copy_list(fd_list, dest); +} + +gboolean file_data_sc_update_ci_move_list(GList *fd_list, const gchar *dest) +{ + return FileData::file_data_sc_update_ci_move_list(fd_list, dest); +} + +gboolean file_data_sc_update_ci_unspecified_list(GList *fd_list, const gchar *dest) +{ + return FileData::file_data_sc_update_ci_unspecified_list(fd_list, dest); +} + + + +gboolean file_data_sc_update_ci_copy(FileData *fd, const gchar *dest_path) +{ + return fd->file_data_sc_update_ci_copy(fd, dest_path); +} + +gboolean file_data_sc_update_ci_move(FileData *fd, const gchar *dest_path) +{ + return fd->file_data_sc_update_ci_move(fd, dest_path); +} + +gboolean file_data_sc_update_ci_rename(FileData *fd, const gchar *dest_path) +{ + return fd->file_data_sc_update_ci_rename(fd, dest_path); +} + +gboolean file_data_sc_update_ci_unspecified(FileData *fd, const gchar *dest_path) +{ + return fd->file_data_sc_update_ci_unspecified(fd, dest_path); +} + + +gchar *file_data_get_error_string(gint error) +{ + return FileData::file_data_get_error_string(error); +} + + +gint file_data_verify_ci(FileData *fd, GList *list) +{ + return fd->file_data_verify_ci(fd, list); +} + +gint file_data_verify_ci_list(GList *list, gchar **desc, gboolean with_sidecars) +{ + return FileData::file_data_verify_ci_list(list, desc, with_sidecars); +} + + +gboolean file_data_perform_ci(FileData *fd) +{ + return fd->file_data_perform_ci(fd); +} + +gboolean file_data_apply_ci(FileData *fd) +{ + return fd->file_data_apply_ci(fd); +} + +void file_data_free_ci(FileData *fd) +{ + fd->file_data_free_ci(fd); +} + +void file_data_free_ci_list(GList *fd_list) +{ + FileData::file_data_free_ci_list(fd_list); +} + + +void file_data_set_regroup_when_finished(FileData *fd, gboolean enable) +{ + fd->file_data_set_regroup_when_finished(fd, enable); +} + + +gint file_data_sc_verify_ci(FileData *fd, GList *list) +{ + return fd->file_data_sc_verify_ci(fd, list); +} + + +gboolean file_data_sc_perform_ci(FileData *fd) +{ + return fd->file_data_sc_perform_ci(fd); +} + +gboolean file_data_sc_apply_ci(FileData *fd) +{ + return fd->file_data_sc_apply_ci(fd); +} + +void file_data_sc_free_ci(FileData *fd) +{ + fd->file_data_sc_free_ci(fd); +} + +void file_data_sc_free_ci_list(GList *fd_list) +{ + FileData::file_data_sc_free_ci_list(fd_list); +} + + +GList *file_data_process_groups_in_selection(GList *list, gboolean ungroup, GList **ungrouped) +{ + return FileData::file_data_process_groups_in_selection(list, ungroup, ungrouped); +} -GList *file_data_process_groups_in_selection(GList *list, gboolean ungroup, GList **ungrouped); using FileDataNotifyFunc = void (*)(FileData *, NotifyType, gpointer); -gboolean file_data_register_notify_func(FileDataNotifyFunc func, gpointer data, NotifyPriority priority); -gboolean file_data_unregister_notify_func(FileDataNotifyFunc func, gpointer data); -void file_data_send_notification(FileData *fd, NotifyType type); +gboolean file_data_register_notify_func(FileDataNotifyFunc func, gpointer data, NotifyPriority priority) +{ + return FileData::file_data_register_notify_func(func, data, priority); +} + +gboolean file_data_unregister_notify_func(FileDataNotifyFunc func, gpointer data) +{ + return FileData::file_data_unregister_notify_func(func, data); +} + +void file_data_send_notification(FileData *fd, NotifyType type) +{ + fd->file_data_send_notification(fd, type); +} + + +gboolean file_data_register_real_time_monitor(FileData *fd) +{ + return fd->file_data_register_real_time_monitor(fd); +} + +gboolean file_data_unregister_real_time_monitor(FileData *fd) +{ + return fd->file_data_unregister_real_time_monitor(fd); +} + + +void read_exif_time_data(FileData *file) +{ + file->read_exif_time_data(file); +} + +void read_exif_time_digitized_data(FileData *file) +{ + file->read_exif_time_digitized_data(file); +} + + +gboolean marks_list_save(gchar *path, gboolean save) +{ + return FileData::marks_list_save(path, save); +} + +gboolean marks_list_load(const gchar *path) +{ + return FileData::marks_list_load(path); +} + +void marks_clear_all() +{ + FileData::marks_clear_all(); +} + +void read_rating_data(FileData *file) +{ + file->read_rating_data(file); +} + + +void file_data_inc_page_num(FileData *fd) +{ + fd->file_data_inc_page_num(fd); +} + +void file_data_dec_page_num(FileData *fd) +{ + fd->file_data_dec_page_num(fd); +} -gboolean file_data_register_real_time_monitor(FileData *fd); -gboolean file_data_unregister_real_time_monitor(FileData *fd); +void file_data_set_page_total(FileData *fd, gint page_total) +{ + fd->file_data_set_page_total(fd, page_total); +} -void read_exif_time_data(FileData *file); -void read_exif_time_digitized_data(FileData *file); +void file_data_set_page_num(FileData *fd, gint page_num) +{ + fd->file_data_set_page_num(fd, page_num); +} -gboolean marks_list_save(gchar *path, gboolean save); -gboolean marks_list_load(const gchar *path); -void marks_clear_all(); -void read_rating_data(FileData *file); -void file_data_inc_page_num(FileData *fd); -void file_data_dec_page_num(FileData *fd); -void file_data_set_page_total(FileData *fd, gint page_total); -void file_data_set_page_num(FileData *fd, gint page_num); +void file_data_dump() +{ + FileData::file_data_dump(); +} -void file_data_dump(); #endif /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */ From ddfe039454cab2eafef7fc0d5e2bed6705767243 Mon Sep 17 00:00:00 2001 From: Omari Stephens Date: Wed, 29 May 2024 00:36:52 +0000 Subject: [PATCH 07/15] Fixups to make filedata.cc compilable Manual fixups Drops header-file contents Drops file_data_ref #defines fd-> to FileData:: for filelist_sort_compare_filedata nullptr checks for functions that had nullptr checks --- src/filedata.cc | 155 ++++++++---------------------------------------- 1 file changed, 25 insertions(+), 130 deletions(-) diff --git a/src/filedata.cc b/src/filedata.cc index ad52f9cdb..23a166d86 100644 --- a/src/filedata.cc +++ b/src/filedata.cc @@ -19,26 +19,7 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#ifndef FILEDATA_H -#define FILEDATA_H - -#include - -#include -#include - -#include - -#include "typedefs.h" - -struct ExifData; -struct HistMap; - -#ifdef DEBUG -#define DEBUG_FILEDATA -#endif - -#define FD_MAGICK 0x12345678u +#include "filedata.h" gchar *text_from_size(gint64 size) { @@ -50,99 +31,10 @@ gchar *text_from_size_abrev(gint64 size) return FileData::text_from_size_abrev(size); } -const gchar *text_from_time(time_t t); - -enum FileDataChangeType { - FILEDATA_CHANGE_DELETE, - FILEDATA_CHANGE_MOVE, - FILEDATA_CHANGE_RENAME, - FILEDATA_CHANGE_COPY, - FILEDATA_CHANGE_UNSPECIFIED, - FILEDATA_CHANGE_WRITE_METADATA -}; - -enum NotifyPriority { - NOTIFY_PRIORITY_HIGH = 0, - NOTIFY_PRIORITY_MEDIUM, - NOTIFY_PRIORITY_LOW -}; - -enum SelectionType { - SELECTION_NONE = 0, - SELECTION_SELECTED = 1 << 0, - SELECTION_PRELIGHT = 1 << 1, - SELECTION_FOCUS = 1 << 2 -}; - -struct FileDataChangeInfo { - FileDataChangeType type; - gchar *source; - gchar *dest; - gint error; - gboolean regroup_when_finished; -}; - -class FileData { - public: - // Public members from the original API - guint magick; - gint type; - gchar *original_path; /**< key to file_data_pool hash table */ - gchar *path; - const gchar *name; - const gchar *extension; - gchar *extended_extension; - FileFormatClass format_class; - gchar *format_name; /**< set by the image loader */ - gchar *collate_key_name; - gchar *collate_key_name_nocase; - gchar *collate_key_name_natural; - gchar *collate_key_name_nocase_natural; - gint64 size; - time_t date; - time_t cdate; - mode_t mode; /**< this is needed at least for notification in view_dir because it is preserved after the file/directory is deleted */ - gint sidecar_priority; - - guint marks; /**< each bit represents one mark */ - guint valid_marks; /**< zero bit means that the corresponding mark needs to be reread */ - - - GList *sidecar_files; - FileData *parent; /**< parent file if this is a sidecar file, NULL otherwise */ - FileDataChangeInfo *change; /**< for rename, move ... */ - GdkPixbuf *thumb_pixbuf; - - GdkPixbuf *pixbuf; /**< full-size image, only complete images, NULL during loading - all FileData with non-NULL pixbuf are referenced by image_cache */ - - HistMap *histmap; - - gboolean locked; - gint ref; - gint version; /**< increased when any field in this structure is changed */ - gboolean disable_grouping; - - gint user_orientation; - gint exif_orientation; - - ExifData *exif; - time_t exifdate; - time_t exifdate_digitized; - GHashTable *modified_xmp; /**< hash table which contains unwritten xmp metadata in format: key->list of string values */ - GList *cached_metadata; - gint rating; - gboolean metadata_in_idle_loaded; - - gchar *owner; - gchar *group; - gchar *sym_link; - - SelectionType selected; /**< Used by view-file-icon. */ - - gint page_num; - gint page_total; -}; +const gchar *text_from_time(time_t t) +{ + return FileData::text_from_time(t); +} /** * @headerfile file_data_new_group @@ -150,7 +42,7 @@ class FileData { */ FileData *file_data_new_group(const gchar *path_utf8) { - return FileData::file_data_new_group(const gchar *path_utf8); + return FileData::file_data_new_group(path_utf8); } @@ -160,7 +52,7 @@ FileData *file_data_new_group(const gchar *path_utf8) */ FileData *file_data_new_no_grouping(const gchar *path_utf8) { - return FileData::file_data_new_no_grouping(const gchar *path_utf8); + return FileData::file_data_new_no_grouping(path_utf8); } @@ -170,37 +62,39 @@ FileData *file_data_new_no_grouping(const gchar *path_utf8) */ FileData *file_data_new_dir(const gchar *path_utf8) { - return FileData::file_data_new_dir(const gchar *path_utf8); + return FileData::file_data_new_dir(path_utf8); } FileData *file_data_new_simple(const gchar *path_utf8) { - return FileData::file_data_new_simple(const gchar *path_utf8); + return FileData::file_data_new_simple(path_utf8); } #ifdef DEBUG_FILEDATA FileData *file_data_ref_debug(const gchar *file, gint line, FileData *fd) { - return FileData::file_data_ref_debug(file, line, fd); + if (fd == nullptr) return nullptr; + return fd->file_data_ref_debug(file, line, fd); } void file_data_unref_debug(const gchar *file, gint line, FileData *fd) { - FileData::file_data_unref_debug(file, line, fd); + if (fd == nullptr) return; + fd->file_data_unref_debug(file, line, fd); } -#define file_data_ref(fd) file_data_ref_debug(__FILE__, __LINE__, fd) -#define file_data_unref(fd) file_data_unref_debug(__FILE__, __LINE__, fd) #else FileData *file_data_ref(FileData *fd) { - return FileData::file_data_ref(fd); + if (fd == nullptr) return nullptr; + return fd->file_data_ref(fd); } void file_data_unref(FileData *fd) { + if (fd == nullptr) return; fd->file_data_unref(fd); } @@ -208,11 +102,13 @@ void file_data_unref(FileData *fd) void file_data_lock(FileData *fd) { + if (fd == nullptr) return; fd->file_data_lock(fd); } void file_data_unlock(FileData *fd) { + if (fd == nullptr) return; fd->file_data_unlock(fd); } @@ -246,7 +142,7 @@ gboolean file_data_add_change_info(FileData *fd, FileDataChangeType type, const void file_data_change_info_free(FileDataChangeInfo *fdci, FileData *fd) { - FileData::file_data_change_info_free(fdci, fd); + fd->file_data_change_info_free(fdci, fd); } @@ -263,12 +159,12 @@ void file_data_disable_grouping_list(GList *fd_list, gboolean disable) gint filelist_sort_compare_filedata(FileData *fa, FileData *fb) { - return fa->filelist_sort_compare_filedata(fa, fb); + return FileData::filelist_sort_compare_filedata(fa, fb); } gint filelist_sort_compare_filedata_full(FileData *fa, FileData *fb, SortType method, gboolean ascend) { - return fa->filelist_sort_compare_filedata_full(fa, fb, method, ascend); + return FileData::filelist_sort_compare_filedata_full(fa, fb, method, ascend); } GList *filelist_sort(GList *list, SortType method, gboolean ascend, gboolean case_sensitive) @@ -289,12 +185,12 @@ GList *filelist_insert_sort_full(GList *list, gpointer data, SortType method, gb gboolean filelist_read(FileData *dir_fd, GList **files, GList **dirs) { - return dir->filelist_read(dir_fd, GList **files, GList **dirs); + return dir_fd->filelist_read(dir_fd, files, dirs); } gboolean filelist_read_lstat(FileData *dir_fd, GList **files, GList **dirs) { - return dir->filelist_read_lstat(dir_fd, GList **files, GList **dirs); + return dir_fd->filelist_read_lstat(dir_fd, files, dirs); } void filelist_free(GList *list) @@ -410,13 +306,13 @@ GList *file_data_filter_class_list(GList *list, guint filter) gchar *file_data_sc_list_to_string(FileData *fd) { - return FileData::file_data_sc_list_to_string(fd); + return fd->file_data_sc_list_to_string(fd); } gchar *file_data_get_sidecar_path(FileData *fd, gboolean existing_only) { - return FileData::file_data_get_sidecar_path(fd, existing_only); + return fd->file_data_get_sidecar_path(fd, existing_only); } @@ -685,5 +581,4 @@ void file_data_dump() FileData::file_data_dump(); } -#endif /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */ From cd99df9034d7031a61c56f587f4b0e69ca88e756 Mon Sep 17 00:00:00 2001 From: Omari Stephens Date: Fri, 31 May 2024 02:55:55 +0000 Subject: [PATCH 08/15] Adjusts filedata.h to create both a C++ API and a C API. Adds `static` specifier to FileData class functions that don't receive a `FileData` argument TODO: A future cleanup should get rid of all of the "_list" functions that are basically a foreach. Adds private declarations for methods marked "_unused" TODO: Should probably drop these, but that's also not in-scope for this refactor. --- src/filedata.h | 187 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 182 insertions(+), 5 deletions(-) diff --git a/src/filedata.h b/src/filedata.h index 547a9fbcf..851f64836 100644 --- a/src/filedata.h +++ b/src/filedata.h @@ -40,10 +40,6 @@ struct HistMap; #define FD_MAGICK 0x12345678u -gchar *text_from_size(gint64 size); -gchar *text_from_size_abrev(gint64 size); -const gchar *text_from_time(time_t t); - enum FileDataChangeType { FILEDATA_CHANGE_DELETE, FILEDATA_CHANGE_MOVE, @@ -74,7 +70,11 @@ struct FileDataChangeInfo { gboolean regroup_when_finished; }; -struct FileData { +class FileData { + FileData() = delete; + + public: + // Public members from the original API guint magick; gint type; gchar *original_path; /**< key to file_data_pool hash table */ @@ -132,8 +132,184 @@ struct FileData { gint page_num; gint page_total; + + static gchar *text_from_size(gint64 size); + static gchar *text_from_size_abrev(gint64 size); + static const gchar *text_from_time(time_t t); + + /** + * @headerfile file_data_new_group + * scan for sidecar files - expensive + */ + static FileData *file_data_new_group(const gchar *path_utf8); + + /** + * @headerfile file_data_new_no_grouping + * should be used on helper files which can't have sidecars + */ + static FileData *file_data_new_no_grouping(const gchar *path_utf8); + + /** + * @headerfile file_data_new_dir + * should be used on dirs + */ + static FileData *file_data_new_dir(const gchar *path_utf8); + + static FileData *file_data_new_simple(const gchar *path_utf8); + +#ifdef DEBUG_FILEDATA + FileData *file_data_ref_debug(const gchar *file, gint line, FileData *fd); + void file_data_unref_debug(const gchar *file, gint line, FileData *fd); + #define file_data_ref(fd) file_data_ref_debug(__FILE__, __LINE__, fd) + #define file_data_unref(fd) file_data_unref_debug(__FILE__, __LINE__, fd) +#else + FileData *file_data_ref(FileData *fd); + void file_data_unref(FileData *fd); +#endif + + void file_data_lock(FileData *fd); + void file_data_unlock(FileData *fd); + static void file_data_lock_list(GList *list); + static void file_data_unlock_list(GList *list); + + gboolean file_data_check_changed_files(FileData *fd); + + void file_data_increment_version(FileData *fd); + + gboolean file_data_add_change_info(FileData *fd, FileDataChangeType type, const gchar *src, const gchar *dest); + void file_data_change_info_free(FileDataChangeInfo *fdci, FileData *fd); + + void file_data_disable_grouping(FileData *fd, gboolean disable); + static void file_data_disable_grouping_list(GList *fd_list, gboolean disable); + + static gint filelist_sort_compare_filedata(FileData *fa, FileData *fb); + static gint filelist_sort_compare_filedata_full(FileData *fa, FileData *fb, SortType method, gboolean ascend); + static GList *filelist_sort(GList *list, SortType method, gboolean ascend, gboolean case_sensitive); + static GList *filelist_sort_full(GList *list, SortType method, gboolean ascend, gboolean case_sensitive, GCompareFunc cb); + static GList *filelist_insert_sort_full(GList *list, gpointer data, SortType method, gboolean ascend, gboolean case_sensitive, GCompareFunc cb); + + gboolean filelist_read(FileData *dir_fd, GList **files, GList **dirs); + gboolean filelist_read_lstat(FileData *dir_fd, GList **files, GList **dirs); + static void filelist_free(GList *list); + static GList *filelist_copy(GList *list); + static GList *filelist_from_path_list(GList *list); + static GList *filelist_to_path_list(GList *list); + + static GList *filelist_filter(GList *list, gboolean is_dir_list); + + static GList *filelist_sort_path(GList *list); + static GList *filelist_recursive(FileData *dir_fd); + static GList *filelist_recursive_full(FileData *dir_fd, SortType method, gboolean ascend, gboolean case_sensitive); + + using FileDataGetMarkFunc = gboolean (*)(FileData *, gint, gpointer); + using FileDataSetMarkFunc = gboolean (*)(FileData *, gint, gboolean, gpointer); + static gboolean file_data_register_mark_func(gint n, FileDataGetMarkFunc get_mark_func, FileDataSetMarkFunc set_mark_func, gpointer data, GDestroyNotify notify); + static void file_data_get_registered_mark_func(gint n, FileDataGetMarkFunc *get_mark_func, FileDataSetMarkFunc *set_mark_func, gpointer *data); + + + gboolean file_data_get_mark(FileData *fd, gint n); + guint file_data_get_marks(FileData *fd); + void file_data_set_mark(FileData *fd, gint n, gboolean value); + gboolean file_data_filter_marks(FileData *fd, guint filter); + static GList *file_data_filter_marks_list(GList *list, guint filter); + + gboolean file_data_mark_to_selection(FileData *fd, gint mark, MarkToSelectionMode mode, gboolean selected); + void file_data_selection_to_mark(FileData *fd, gint mark, SelectionToMarkMode mode); + + gboolean file_data_filter_file_filter(FileData *fd, GRegex *filter); + static GList *file_data_filter_file_filter_list(GList *list, GRegex *filter); + + static GList *file_data_filter_class_list(GList *list, guint filter); + + gchar *file_data_sc_list_to_string(FileData *fd); + + gchar *file_data_get_sidecar_path(FileData *fd, gboolean existing_only); + + + gboolean file_data_add_ci(FileData *fd, FileDataChangeType type, const gchar *src, const gchar *dest); + gboolean file_data_sc_add_ci_copy(FileData *fd, const gchar *dest_path); + gboolean file_data_sc_add_ci_move(FileData *fd, const gchar *dest_path); + gboolean file_data_sc_add_ci_rename(FileData *fd, const gchar *dest_path); + gboolean file_data_sc_add_ci_delete(FileData *fd); + gboolean file_data_sc_add_ci_unspecified(FileData *fd, const gchar *dest_path); + + static gboolean file_data_sc_add_ci_delete_list(GList *fd_list); + static gboolean file_data_sc_add_ci_copy_list(GList *fd_list, const gchar *dest); + static gboolean file_data_sc_add_ci_move_list(GList *fd_list, const gchar *dest); + static gboolean file_data_sc_add_ci_rename_list(GList *fd_list, const gchar *dest); + static gboolean file_data_sc_add_ci_unspecified_list(GList *fd_list, const gchar *dest); + static gboolean file_data_add_ci_write_metadata_list(GList *fd_list); + + static gboolean file_data_sc_update_ci_copy_list(GList *fd_list, const gchar *dest); + static gboolean file_data_sc_update_ci_move_list(GList *fd_list, const gchar *dest); + static gboolean file_data_sc_update_ci_unspecified_list(GList *fd_list, const gchar *dest); + + + gboolean file_data_sc_update_ci_copy(FileData *fd, const gchar *dest_path); + gboolean file_data_sc_update_ci_move(FileData *fd, const gchar *dest_path); + gboolean file_data_sc_update_ci_rename(FileData *fd, const gchar *dest_path); + gboolean file_data_sc_update_ci_unspecified(FileData *fd, const gchar *dest_path); + + static gchar *file_data_get_error_string(gint error); + + gint file_data_verify_ci(FileData *fd, GList *list); + static gint file_data_verify_ci_list(GList *list, gchar **desc, gboolean with_sidecars); + + gboolean file_data_perform_ci(FileData *fd); + gboolean file_data_apply_ci(FileData *fd); + void file_data_free_ci(FileData *fd); + static void file_data_free_ci_list(GList *fd_list); + + void file_data_set_regroup_when_finished(FileData *fd, gboolean enable); + + gint file_data_sc_verify_ci(FileData *fd, GList *list); + + gboolean file_data_sc_perform_ci(FileData *fd); + gboolean file_data_sc_apply_ci(FileData *fd); + void file_data_sc_free_ci(FileData *fd); + static void file_data_sc_free_ci_list(GList *fd_list); + + static GList *file_data_process_groups_in_selection(GList *list, gboolean ungroup, GList **ungrouped); + + + using FileDataNotifyFunc = void (*)(FileData *, NotifyType, gpointer); + static gboolean file_data_register_notify_func(FileDataNotifyFunc func, gpointer data, NotifyPriority priority); + static gboolean file_data_unregister_notify_func(FileDataNotifyFunc func, gpointer data); + void file_data_send_notification(FileData *fd, NotifyType type); + + gboolean file_data_register_real_time_monitor(FileData *fd); + gboolean file_data_unregister_real_time_monitor(FileData *fd); + + void read_exif_time_data(FileData *file); + void read_exif_time_digitized_data(FileData *file); + + static gboolean marks_list_save(gchar *path, gboolean save); + static gboolean marks_list_load(const gchar *path); + static void marks_clear_all(); + void read_rating_data(FileData *file); + + void file_data_inc_page_num(FileData *fd); + void file_data_dec_page_num(FileData *fd); + void file_data_set_page_total(FileData *fd, gint page_total); + void file_data_set_page_num(FileData *fd, gint page_num); + + static void file_data_dump(); + + private: + void set_exif_time_data_unused(GList *files); + void set_exif_time_digitized_data_unused(GList *files); + void set_rating_data_unused(GList *files); + GList *filelist_insert_sort_unused(GList *list, FileData *fd, SortType method, gboolean ascend); + gint file_data_get_user_orientation_unused(FileData *fd); + void file_data_set_user_orientation_unused(FileData *fd, gint value); + gboolean file_data_send_notification_idle_cb_unused(gpointer data); }; +// C-style compatibility API. +gchar *text_from_size(gint64 size); +gchar *text_from_size_abrev(gint64 size); +const gchar *text_from_time(time_t t); + /** * @headerfile file_data_new_group * scan for sidecar files - expensive @@ -291,5 +467,6 @@ void file_data_set_page_total(FileData *fd, gint page_total); void file_data_set_page_num(FileData *fd, gint page_num); void file_data_dump(); + #endif /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */ From f69dd4f9f8877032c5c679634e830240757e34a0 Mon Sep 17 00:00:00 2001 From: Omari Stephens Date: Thu, 30 May 2024 20:14:56 +0000 Subject: [PATCH 09/15] Drops declarations for method with no definition, and declares a defined method that was undeclared This aligns the header file method declarations and the implementation file definitions for the FileData class. --- src/filedata.cc | 10 +++++----- src/filedata.h | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/filedata.cc b/src/filedata.cc index 23a166d86..d88c4e3ec 100644 --- a/src/filedata.cc +++ b/src/filedata.cc @@ -135,11 +135,6 @@ void file_data_increment_version(FileData *fd) } -gboolean file_data_add_change_info(FileData *fd, FileDataChangeType type, const gchar *src, const gchar *dest) -{ - return fd->file_data_add_change_info(fd, type, src, dest); -} - void file_data_change_info_free(FileDataChangeInfo *fdci, FileData *fd) { fd->file_data_change_info_free(fdci, fd); @@ -373,6 +368,11 @@ gboolean file_data_sc_add_ci_unspecified_list(GList *fd_list, const gchar *dest) return FileData::file_data_sc_add_ci_unspecified_list(fd_list, dest); } +gboolean file_data_add_ci_write_metadata(FileData *fd) +{ + return fd->file_data_add_ci_write_metadata(fd); +} + gboolean file_data_add_ci_write_metadata_list(GList *fd_list) { return FileData::file_data_add_ci_write_metadata_list(fd_list); diff --git a/src/filedata.h b/src/filedata.h index 851f64836..2cf4580a6 100644 --- a/src/filedata.h +++ b/src/filedata.h @@ -176,7 +176,6 @@ class FileData { void file_data_increment_version(FileData *fd); - gboolean file_data_add_change_info(FileData *fd, FileDataChangeType type, const gchar *src, const gchar *dest); void file_data_change_info_free(FileDataChangeInfo *fdci, FileData *fd); void file_data_disable_grouping(FileData *fd, gboolean disable); @@ -238,6 +237,7 @@ class FileData { static gboolean file_data_sc_add_ci_move_list(GList *fd_list, const gchar *dest); static gboolean file_data_sc_add_ci_rename_list(GList *fd_list, const gchar *dest); static gboolean file_data_sc_add_ci_unspecified_list(GList *fd_list, const gchar *dest); + gboolean file_data_add_ci_write_metadata(FileData *fd); static gboolean file_data_add_ci_write_metadata_list(GList *fd_list); static gboolean file_data_sc_update_ci_copy_list(GList *fd_list, const gchar *dest); @@ -349,7 +349,6 @@ gboolean file_data_check_changed_files(FileData *fd); void file_data_increment_version(FileData *fd); -gboolean file_data_add_change_info(FileData *fd, FileDataChangeType type, const gchar *src, const gchar *dest); void file_data_change_info_free(FileDataChangeInfo *fdci, FileData *fd); void file_data_disable_grouping(FileData *fd, gboolean disable); @@ -411,6 +410,7 @@ gboolean file_data_sc_add_ci_copy_list(GList *fd_list, const gchar *dest); gboolean file_data_sc_add_ci_move_list(GList *fd_list, const gchar *dest); gboolean file_data_sc_add_ci_rename_list(GList *fd_list, const gchar *dest); gboolean file_data_sc_add_ci_unspecified_list(GList *fd_list, const gchar *dest); +gboolean file_data_add_ci_write_metadata(FileData *fd); gboolean file_data_add_ci_write_metadata_list(GList *fd_list); gboolean file_data_sc_update_ci_copy_list(GList *fd_list, const gchar *dest); From 51a93696a8e5eb04a1067da2714bd3c99fa54fe2 Mon Sep 17 00:00:00 2001 From: Omari Stephens Date: Thu, 30 May 2024 20:28:34 +0000 Subject: [PATCH 10/15] Adds "FileData::" class namespace for class methods. --- src/filedata/filedata.cc | 212 +++++++++++++++++++-------------------- 1 file changed, 106 insertions(+), 106 deletions(-) diff --git a/src/filedata/filedata.cc b/src/filedata/filedata.cc index 9bc661372..46b4345da 100644 --- a/src/filedata/filedata.cc +++ b/src/filedata/filedata.cc @@ -76,7 +76,7 @@ static gboolean filelist_sort_case = TRUE; *----------------------------------------------------------------------------- */ -gchar *text_from_size(gint64 size) +gchar *FileData::text_from_size(gint64 size) { gchar *a; gchar *b; @@ -127,7 +127,7 @@ gchar *text_from_size(gint64 size) return b; } -gchar *text_from_size_abrev(gint64 size) +gchar *FileData::text_from_size_abrev(gint64 size) { if (size < static_cast(1024)) { @@ -148,7 +148,7 @@ gchar *text_from_size_abrev(gint64 size) } /* note: returned string is valid until next call to text_from_time() */ -const gchar *text_from_time(time_t t) +const gchar *FileData::text_from_time(time_t t) { static gchar *ret = nullptr; gchar buf[128]; @@ -180,7 +180,7 @@ const gchar *text_from_time(time_t t) *----------------------------------------------------------------------------- */ -void file_data_increment_version(FileData *fd) +void FileData::file_data_increment_version(FileData *fd) { fd->version++; fd->valid_marks = 0; @@ -242,7 +242,7 @@ static gboolean file_data_check_changed_files_recursive(FileData *fd, struct sta } -gboolean file_data_check_changed_files(FileData *fd) +gboolean FileData::file_data_check_changed_files(FileData *fd) { gboolean ret = FALSE; struct stat st; @@ -488,7 +488,7 @@ static FileData *file_data_new_local(const gchar *path, struct stat *st, gboolea return ret; } -FileData *file_data_new_simple(const gchar *path_utf8) +FileData *FileData::file_data_new_simple(const gchar *path_utf8) { struct stat st; FileData *fd; @@ -509,7 +509,7 @@ FileData *file_data_new_simple(const gchar *path_utf8) return fd; } -void read_exif_time_data(FileData *file) +void FileData::read_exif_time_data(FileData *file) { if (file->exifdate > 0) { @@ -552,7 +552,7 @@ void read_exif_time_data(FileData *file) } } -void read_exif_time_digitized_data(FileData *file) +void FileData::read_exif_time_digitized_data(FileData *file) { if (file->exifdate_digitized > 0) { @@ -595,7 +595,7 @@ void read_exif_time_digitized_data(FileData *file) } } -void read_rating_data(FileData *file) +void FileData::read_rating_data(FileData *file) { gchar *rating_str; @@ -613,7 +613,7 @@ void read_rating_data(FileData *file) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-function" -void set_exif_time_data_unused(GList *files) +void FileData::set_exif_time_data_unused(GList *files) { DEBUG_1("%s set_exif_time_data: ...", get_exec_time()); @@ -626,7 +626,7 @@ void set_exif_time_data_unused(GList *files) } } -void set_exif_time_digitized_data_unused(GList *files) +void FileData::set_exif_time_digitized_data_unused(GList *files) { DEBUG_1("%s set_exif_time_digitized_data: ...", get_exec_time()); @@ -639,7 +639,7 @@ void set_exif_time_digitized_data_unused(GList *files) } } -void set_rating_data_unused(GList *files) +void FileData::set_rating_data_unused(GList *files) { gchar *rating_str; DEBUG_1("%s set_rating_data: ...", get_exec_time()); @@ -658,7 +658,7 @@ void set_rating_data_unused(GList *files) } #pragma GCC diagnostic pop -FileData *file_data_new_no_grouping(const gchar *path_utf8) +FileData *FileData::file_data_new_no_grouping(const gchar *path_utf8) { struct stat st; @@ -671,7 +671,7 @@ FileData *file_data_new_no_grouping(const gchar *path_utf8) return file_data_new(path_utf8, &st, TRUE); } -FileData *file_data_new_dir(const gchar *path_utf8) +FileData *FileData::file_data_new_dir(const gchar *path_utf8) { struct stat st; @@ -694,9 +694,9 @@ FileData *file_data_new_dir(const gchar *path_utf8) */ #ifdef DEBUG_FILEDATA -FileData *file_data_ref_debug(const gchar *file, gint line, FileData *fd) +FileData *FileData::file_data_ref_debug(const gchar *file, gint line, FileData *fd) #else -FileData *file_data_ref(FileData *fd) +FileData *FileData::file_data_ref(FileData *fd) #endif { if (fd == nullptr) return nullptr; @@ -726,7 +726,7 @@ FileData *file_data_ref(FileData *fd) * * Used only by debug_fd() */ -void file_data_dump() +void FileData::file_data_dump() { #ifdef DEBUG_FILEDATA FileData *fd; @@ -827,9 +827,9 @@ static void file_data_consider_free(FileData *fd) } #ifdef DEBUG_FILEDATA -void file_data_unref_debug(const gchar *file, gint line, FileData *fd) +void FileData::file_data_unref_debug(const gchar *file, gint line, FileData *fd) #else -void file_data_unref(FileData *fd) +void FileData::file_data_unref(FileData *fd) #endif { if (fd == nullptr) return; @@ -864,7 +864,7 @@ void file_data_unref(FileData *fd) * Note: This differs from file_data_ref in that the behavior is reentrant -- after N calls to * file_data_lock, a single call to file_data_unlock will unlock the FileData. */ -void file_data_lock(FileData *fd) +void FileData::file_data_lock(FileData *fd) { if (fd == nullptr) return; if (fd->magick != FD_MAGICK) log_printf("Error: fd magick mismatch fd=%p", (void *)fd); @@ -882,7 +882,7 @@ void file_data_lock(FileData *fd) * the FileData if its refcount is already zero (which will happen if the lock is the only thing * keeping it from being freed. */ -void file_data_unlock(FileData *fd) +void FileData::file_data_unlock(FileData *fd) { if (fd == nullptr) return; if (fd->magick != FD_MAGICK) log_printf("Error: fd magick mismatch fd=%p", (void *)fd); @@ -899,7 +899,7 @@ void file_data_unlock(FileData *fd) * * @see file_data_lock(#FileData) */ -void file_data_lock_list(GList *list) +void FileData::file_data_lock_list(GList *list) { GList *work; @@ -917,7 +917,7 @@ void file_data_lock_list(GList *list) * * @see #file_data_unlock(#FileData) */ -void file_data_unlock_list(GList *list) +void FileData::file_data_unlock_list(GList *list) { GList *work; @@ -1102,7 +1102,7 @@ static void file_data_disconnect_sidecar_file(FileData *target, FileData *sfd) } /* disables / enables grouping for particular file, sends UPDATE notification */ -void file_data_disable_grouping(FileData *fd, gboolean disable) +void FileData::file_data_disable_grouping(FileData *fd, gboolean disable) { if (!fd->disable_grouping == !disable) return; @@ -1144,7 +1144,7 @@ void file_data_disable_grouping(FileData *fd, gboolean disable) file_data_send_notification(fd, NOTIFY_GROUPING); } -void file_data_disable_grouping_list(GList *fd_list, gboolean disable) +void FileData::file_data_disable_grouping_list(GList *fd_list, gboolean disable) { GList *work; @@ -1167,7 +1167,7 @@ void file_data_disable_grouping_list(GList *fd_list, gboolean disable) */ -gint filelist_sort_compare_filedata(FileData *fa, FileData *fb) +gint FileData::filelist_sort_compare_filedata(FileData *fa, FileData *fb) { gint ret; if (!filelist_sort_ascend) @@ -1236,7 +1236,7 @@ gint filelist_sort_compare_filedata(FileData *fa, FileData *fb) return strcmp(fa->original_path, fb->original_path); } -gint filelist_sort_compare_filedata_full(FileData *fa, FileData *fb, SortType method, gboolean ascend) +gint FileData::filelist_sort_compare_filedata_full(FileData *fa, FileData *fb, SortType method, gboolean ascend) { filelist_sort_method = method; filelist_sort_ascend = ascend; @@ -1248,7 +1248,7 @@ static gint filelist_sort_file_cb(gpointer a, gpointer b) return filelist_sort_compare_filedata(static_cast(a), static_cast(b)); } -GList *filelist_sort_full(GList *list, SortType method, gboolean ascend, gboolean case_sensitive, GCompareFunc cb) +GList *FileData::filelist_sort_full(GList *list, SortType method, gboolean ascend, gboolean case_sensitive, GCompareFunc cb) { filelist_sort_method = method; filelist_sort_ascend = ascend; @@ -1256,7 +1256,7 @@ GList *filelist_sort_full(GList *list, SortType method, gboolean ascend, gboolea return g_list_sort(list, cb); } -GList *filelist_insert_sort_full(GList *list, gpointer data, SortType method, gboolean ascend, gboolean case_sensitive, GCompareFunc cb) +GList *FileData::filelist_insert_sort_full(GList *list, gpointer data, SortType method, gboolean ascend, gboolean case_sensitive, GCompareFunc cb) { filelist_sort_method = method; filelist_sort_ascend = ascend; @@ -1264,14 +1264,14 @@ GList *filelist_insert_sort_full(GList *list, gpointer data, SortType method, gb return g_list_insert_sorted(list, data, cb); } -GList *filelist_sort(GList *list, SortType method, gboolean ascend, gboolean case_sensitive) +GList *FileData::filelist_sort(GList *list, SortType method, gboolean ascend, gboolean case_sensitive) { return filelist_sort_full(list, method, ascend, case_sensitive, reinterpret_cast(filelist_sort_file_cb)); } #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-function" -GList *filelist_insert_sort_unused(GList *list, FileData *fd, SortType method, gboolean ascend) +GList *FileData::filelist_insert_sort_unused(GList *list, FileData *fd, SortType method, gboolean ascend) { return filelist_insert_sort_full(list, fd, method, ascend, ascend, (GCompareFunc) filelist_sort_file_cb); } @@ -1507,17 +1507,17 @@ static gboolean filelist_read_real(const gchar *dir_path, GList **files, GList * return TRUE; } -gboolean filelist_read(FileData *dir_fd, GList **files, GList **dirs) +gboolean FileData::filelist_read(FileData *dir_fd, GList **files, GList **dirs) { return filelist_read_real(dir_fd->path, files, dirs, TRUE); } -gboolean filelist_read_lstat(FileData *dir_fd, GList **files, GList **dirs) +gboolean FileData::filelist_read_lstat(FileData *dir_fd, GList **files, GList **dirs) { return filelist_read_real(dir_fd->path, files, dirs, FALSE); } -FileData *file_data_new_group(const gchar *path_utf8) +FileData *FileData::file_data_new_group(const gchar *path_utf8) { gchar *dir; struct stat st; @@ -1555,7 +1555,7 @@ FileData *file_data_new_group(const gchar *path_utf8) } -void filelist_free(GList *list) +void FileData::filelist_free(GList *list) { GList *work; @@ -1570,7 +1570,7 @@ void filelist_free(GList *list) } -GList *filelist_copy(GList *list) +GList *FileData::filelist_copy(GList *list) { GList *new_list = nullptr; @@ -1584,7 +1584,7 @@ GList *filelist_copy(GList *list) return g_list_reverse(new_list); } -GList *filelist_from_path_list(GList *list) +GList *FileData::filelist_from_path_list(GList *list) { GList *new_list = nullptr; GList *work; @@ -1603,7 +1603,7 @@ GList *filelist_from_path_list(GList *list) return g_list_reverse(new_list); } -GList *filelist_to_path_list(GList *list) +GList *FileData::filelist_to_path_list(GList *list) { GList *new_list = nullptr; GList *work; @@ -1622,7 +1622,7 @@ GList *filelist_to_path_list(GList *list) return g_list_reverse(new_list); } -GList *filelist_filter(GList *list, gboolean is_dir_list) +GList *FileData::filelist_filter(GList *list, gboolean is_dir_list) { GList *work; @@ -1661,7 +1661,7 @@ static gint filelist_sort_path_cb(gconstpointer a, gconstpointer b) return CASE_SORT(((FileData *)a)->path, ((FileData *)b)->path); } -GList *filelist_sort_path(GList *list) +GList *FileData::filelist_sort_path(GList *list) { return g_list_sort(list, filelist_sort_path_cb); } @@ -1720,7 +1720,7 @@ static void filelist_recursive_append_full(GList **list, GList *dirs, SortType m } } -GList *filelist_recursive(FileData *dir_fd) +GList *FileData::filelist_recursive(FileData *dir_fd) { GList *list; GList *d; @@ -1737,7 +1737,7 @@ GList *filelist_recursive(FileData *dir_fd) return list; } -GList *filelist_recursive_full(FileData *dir_fd, SortType method, gboolean ascend, gboolean case_sensitive) +GList *FileData::filelist_recursive_full(FileData *dir_fd, SortType method, gboolean ascend, gboolean case_sensitive) { GList *list; GList *d; @@ -1761,7 +1761,7 @@ GList *filelist_recursive_full(FileData *dir_fd, SortType method, gboolean ascen */ -void file_data_change_info_free(FileDataChangeInfo *fdci, FileData *fd) +void FileData::file_data_change_info_free(FileDataChangeInfo *fdci, FileData *fd) { if (!fdci && fd) fdci = fd->change; @@ -1785,7 +1785,7 @@ static gboolean file_data_can_write_sidecar(FileData *fd) return filter_name_allow_sidecar(fd->extension) && !filter_name_is_writable(fd->extension); } -gchar *file_data_get_sidecar_path(FileData *fd, gboolean existing_only) +gchar *FileData::file_data_get_sidecar_path(FileData *fd, gboolean existing_only) { gchar *sidecar_path = nullptr; GList *work; @@ -1830,7 +1830,7 @@ static FileDataSetMarkFunc file_data_set_mark_func[FILEDATA_MARKS_SIZE]; static gpointer file_data_mark_func_data[FILEDATA_MARKS_SIZE]; static GDestroyNotify file_data_destroy_mark_func[FILEDATA_MARKS_SIZE]; -gboolean file_data_get_mark(FileData *fd, gint n) +gboolean FileData::file_data_get_mark(FileData *fd, gint n) { gboolean valid = (fd->valid_marks & (1 << n)); @@ -1858,14 +1858,14 @@ gboolean file_data_get_mark(FileData *fd, gint n) return !!(fd->marks & (1 << n)); } -guint file_data_get_marks(FileData *fd) +guint FileData::file_data_get_marks(FileData *fd) { gint i; for (i = 0; i < FILEDATA_MARKS_SIZE; i++) file_data_get_mark(fd, i); return fd->marks; } -void file_data_set_mark(FileData *fd, gint n, gboolean value) +void FileData::file_data_set_mark(FileData *fd, gint n, gboolean value) { guint old; if (!value == !file_data_get_mark(fd, n)) return; @@ -1892,14 +1892,14 @@ void file_data_set_mark(FileData *fd, gint n, gboolean value) file_data_send_notification(fd, NOTIFY_MARKS); } -gboolean file_data_filter_marks(FileData *fd, guint filter) +gboolean FileData::file_data_filter_marks(FileData *fd, guint filter) { gint i; for (i = 0; i < FILEDATA_MARKS_SIZE; i++) if (filter & (1 << i)) file_data_get_mark(fd, i); return ((fd->marks & filter) == filter); } -GList *file_data_filter_marks_list(GList *list, guint filter) +GList *FileData::file_data_filter_marks_list(GList *list, guint filter) { GList *work; @@ -1921,7 +1921,7 @@ GList *file_data_filter_marks_list(GList *list, guint filter) return list; } -gboolean file_data_mark_to_selection(FileData *fd, gint mark, MarkToSelectionMode mode, gboolean selected) +gboolean FileData::file_data_mark_to_selection(FileData *fd, gint mark, MarkToSelectionMode mode, gboolean selected) { gint n = mark - 1; gboolean mark_val = file_data_get_mark(fd, n); @@ -1937,7 +1937,7 @@ gboolean file_data_mark_to_selection(FileData *fd, gint mark, MarkToSelectionMod return selected; // arbitrary value, we shouldn't get here } -void file_data_selection_to_mark(FileData *fd, gint mark, SelectionToMarkMode mode) +void FileData::file_data_selection_to_mark(FileData *fd, gint mark, SelectionToMarkMode mode) { gint n = mark - 1; @@ -1949,12 +1949,12 @@ void file_data_selection_to_mark(FileData *fd, gint mark, SelectionToMarkMode mo } } -gboolean file_data_filter_file_filter(FileData *fd, GRegex *filter) +gboolean FileData::file_data_filter_file_filter(FileData *fd, GRegex *filter) { return g_regex_match(filter, fd->name, static_cast(0), nullptr); } -GList *file_data_filter_file_filter_list(GList *list, GRegex *filter) +GList *FileData::file_data_filter_file_filter_list(GList *list, GRegex *filter) { GList *work; @@ -1994,7 +1994,7 @@ static gboolean file_data_filter_class(FileData *fd, guint filter) return FALSE; } -GList *file_data_filter_class_list(GList *list, guint filter) +GList *FileData::file_data_filter_class_list(GList *list, guint filter) { GList *work; @@ -2023,7 +2023,7 @@ static void file_data_notify_mark_func(gpointer, gpointer value, gpointer) file_data_send_notification(fd, NOTIFY_MARKS); } -gboolean file_data_register_mark_func(gint n, FileDataGetMarkFunc get_mark_func, FileDataSetMarkFunc set_mark_func, gpointer data, GDestroyNotify notify) +gboolean FileData::file_data_register_mark_func(gint n, FileDataGetMarkFunc get_mark_func, FileDataSetMarkFunc set_mark_func, gpointer data, GDestroyNotify notify) { if (n < 0 || n >= FILEDATA_MARKS_SIZE) return FALSE; @@ -2043,7 +2043,7 @@ gboolean file_data_register_mark_func(gint n, FileDataGetMarkFunc get_mark_func, return TRUE; } -void file_data_get_registered_mark_func(gint n, FileDataGetMarkFunc *get_mark_func, FileDataSetMarkFunc *set_mark_func, gpointer *data) +void FileData::file_data_get_registered_mark_func(gint n, FileDataGetMarkFunc *get_mark_func, FileDataSetMarkFunc *set_mark_func, gpointer *data) { if (get_mark_func) *get_mark_func = file_data_get_mark_func[n]; if (set_mark_func) *set_mark_func = file_data_set_mark_func[n]; @@ -2052,12 +2052,12 @@ void file_data_get_registered_mark_func(gint n, FileDataGetMarkFunc *get_mark_fu #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-function" -gint file_data_get_user_orientation_unused(FileData *fd) +gint FileData::file_data_get_user_orientation_unused(FileData *fd) { return fd->user_orientation; } -void file_data_set_user_orientation_unused(FileData *fd, gint value) +void FileData::file_data_set_user_orientation_unused(FileData *fd, gint value) { if (fd->user_orientation == value) return; @@ -2075,7 +2075,7 @@ void file_data_set_user_orientation_unused(FileData *fd, gint value) /* return list of sidecar file extensions in a string */ -gchar *file_data_sc_list_to_string(FileData *fd) +gchar *FileData::file_data_sc_list_to_string(FileData *fd) { GList *work; GString *result = g_string_new(""); @@ -2118,7 +2118,7 @@ gchar *file_data_sc_list_to_string(FileData *fd) UPDATE - file size, date or grouping has been changed */ -gboolean file_data_add_ci(FileData *fd, FileDataChangeType type, const gchar *src, const gchar *dest) +gboolean FileData::file_data_add_ci(FileData *fd, FileDataChangeType type, const gchar *src, const gchar *dest) { FileDataChangeInfo *fdci; @@ -2162,7 +2162,7 @@ static void file_data_planned_change_remove(FileData *fd) } -void file_data_free_ci(FileData *fd) +void FileData::file_data_free_ci(FileData *fd) { FileDataChangeInfo *fdci = fd->change; @@ -2180,7 +2180,7 @@ void file_data_free_ci(FileData *fd) fd->change = nullptr; } -void file_data_set_regroup_when_finished(FileData *fd, gboolean enable) +void FileData::file_data_set_regroup_when_finished(FileData *fd, gboolean enable) { FileDataChangeInfo *fdci = fd->change; if (!fdci) return; @@ -2239,45 +2239,45 @@ static gboolean file_data_sc_check_ci(FileData *fd, FileDataChangeType type) } -gboolean file_data_sc_add_ci_copy(FileData *fd, const gchar *dest_path) +gboolean FileData::file_data_sc_add_ci_copy(FileData *fd, const gchar *dest_path) { if (!file_data_sc_add_ci(fd, FILEDATA_CHANGE_COPY)) return FALSE; file_data_sc_update_ci_copy(fd, dest_path); return TRUE; } -gboolean file_data_sc_add_ci_move(FileData *fd, const gchar *dest_path) +gboolean FileData::file_data_sc_add_ci_move(FileData *fd, const gchar *dest_path) { if (!file_data_sc_add_ci(fd, FILEDATA_CHANGE_MOVE)) return FALSE; file_data_sc_update_ci_move(fd, dest_path); return TRUE; } -gboolean file_data_sc_add_ci_rename(FileData *fd, const gchar *dest_path) +gboolean FileData::file_data_sc_add_ci_rename(FileData *fd, const gchar *dest_path) { if (!file_data_sc_add_ci(fd, FILEDATA_CHANGE_RENAME)) return FALSE; file_data_sc_update_ci_rename(fd, dest_path); return TRUE; } -gboolean file_data_sc_add_ci_delete(FileData *fd) +gboolean FileData::file_data_sc_add_ci_delete(FileData *fd) { return file_data_sc_add_ci(fd, FILEDATA_CHANGE_DELETE); } -gboolean file_data_sc_add_ci_unspecified(FileData *fd, const gchar *dest_path) +gboolean FileData::file_data_sc_add_ci_unspecified(FileData *fd, const gchar *dest_path) { if (!file_data_sc_add_ci(fd, FILEDATA_CHANGE_UNSPECIFIED)) return FALSE; file_data_sc_update_ci_unspecified(fd, dest_path); return TRUE; } -gboolean file_data_add_ci_write_metadata(FileData *fd) +gboolean FileData::file_data_add_ci_write_metadata(FileData *fd) { return file_data_add_ci(fd, FILEDATA_CHANGE_WRITE_METADATA, nullptr, nullptr); } -void file_data_sc_free_ci(FileData *fd) +void FileData::file_data_sc_free_ci(FileData *fd) { GList *work; @@ -2295,7 +2295,7 @@ void file_data_sc_free_ci(FileData *fd) } } -gboolean file_data_sc_add_ci_delete_list(GList *fd_list) +gboolean FileData::file_data_sc_add_ci_delete_list(GList *fd_list) { GList *work; gboolean ret = TRUE; @@ -2346,27 +2346,27 @@ static gboolean file_data_sc_add_ci_list_call_func(GList *fd_list, const gchar * return TRUE; } -gboolean file_data_sc_add_ci_copy_list(GList *fd_list, const gchar *dest) +gboolean FileData::file_data_sc_add_ci_copy_list(GList *fd_list, const gchar *dest) { return file_data_sc_add_ci_list_call_func(fd_list, dest, file_data_sc_add_ci_copy); } -gboolean file_data_sc_add_ci_move_list(GList *fd_list, const gchar *dest) +gboolean FileData::file_data_sc_add_ci_move_list(GList *fd_list, const gchar *dest) { return file_data_sc_add_ci_list_call_func(fd_list, dest, file_data_sc_add_ci_move); } -gboolean file_data_sc_add_ci_rename_list(GList *fd_list, const gchar *dest) +gboolean FileData::file_data_sc_add_ci_rename_list(GList *fd_list, const gchar *dest) { return file_data_sc_add_ci_list_call_func(fd_list, dest, file_data_sc_add_ci_rename); } -gboolean file_data_sc_add_ci_unspecified_list(GList *fd_list, const gchar *dest) +gboolean FileData::file_data_sc_add_ci_unspecified_list(GList *fd_list, const gchar *dest) { return file_data_sc_add_ci_list_call_func(fd_list, dest, file_data_sc_add_ci_unspecified); } -gboolean file_data_add_ci_write_metadata_list(GList *fd_list) +gboolean FileData::file_data_add_ci_write_metadata_list(GList *fd_list) { GList *work; gboolean ret = TRUE; @@ -2383,7 +2383,7 @@ gboolean file_data_add_ci_write_metadata_list(GList *fd_list) return ret; } -void file_data_free_ci_list(GList *fd_list) +void FileData::file_data_free_ci_list(GList *fd_list) { GList *work; @@ -2397,7 +2397,7 @@ void file_data_free_ci_list(GList *fd_list) } } -void file_data_sc_free_ci_list(GList *fd_list) +void FileData::file_data_sc_free_ci_list(GList *fd_list) { GList *work; @@ -2519,22 +2519,22 @@ static gboolean file_data_sc_check_update_ci(FileData *fd, const gchar *dest_pat return TRUE; } -gboolean file_data_sc_update_ci_copy(FileData *fd, const gchar *dest_path) +gboolean FileData::file_data_sc_update_ci_copy(FileData *fd, const gchar *dest_path) { return file_data_sc_check_update_ci(fd, dest_path, FILEDATA_CHANGE_COPY); } -gboolean file_data_sc_update_ci_move(FileData *fd, const gchar *dest_path) +gboolean FileData::file_data_sc_update_ci_move(FileData *fd, const gchar *dest_path) { return file_data_sc_check_update_ci(fd, dest_path, FILEDATA_CHANGE_MOVE); } -gboolean file_data_sc_update_ci_rename(FileData *fd, const gchar *dest_path) +gboolean FileData::file_data_sc_update_ci_rename(FileData *fd, const gchar *dest_path) { return file_data_sc_check_update_ci(fd, dest_path, FILEDATA_CHANGE_RENAME); } -gboolean file_data_sc_update_ci_unspecified(FileData *fd, const gchar *dest_path) +gboolean FileData::file_data_sc_update_ci_unspecified(FileData *fd, const gchar *dest_path) { return file_data_sc_check_update_ci(fd, dest_path, FILEDATA_CHANGE_UNSPECIFIED); } @@ -2558,17 +2558,17 @@ static gboolean file_data_sc_update_ci_list_call_func(GList *fd_list, return ret; } -gboolean file_data_sc_update_ci_move_list(GList *fd_list, const gchar *dest) +gboolean FileData::file_data_sc_update_ci_move_list(GList *fd_list, const gchar *dest) { return file_data_sc_update_ci_list_call_func(fd_list, dest, file_data_sc_update_ci_move); } -gboolean file_data_sc_update_ci_copy_list(GList *fd_list, const gchar *dest) +gboolean FileData::file_data_sc_update_ci_copy_list(GList *fd_list, const gchar *dest) { return file_data_sc_update_ci_list_call_func(fd_list, dest, file_data_sc_update_ci_copy); } -gboolean file_data_sc_update_ci_unspecified_list(GList *fd_list, const gchar *dest) +gboolean FileData::file_data_sc_update_ci_unspecified_list(GList *fd_list, const gchar *dest) { return file_data_sc_update_ci_list_call_func(fd_list, dest, file_data_sc_update_ci_unspecified); } @@ -2579,7 +2579,7 @@ gboolean file_data_sc_update_ci_unspecified_list(GList *fd_list, const gchar *de * it should detect all possible problems with the planned operation */ -gint file_data_verify_ci(FileData *fd, GList *list) +gint FileData::file_data_verify_ci(FileData *fd, GList *list) { gint ret = CHANGE_OK; gchar *dir; @@ -2825,7 +2825,7 @@ gint file_data_verify_ci(FileData *fd, GList *list) } -gint file_data_sc_verify_ci(FileData *fd, GList *list) +gint FileData::file_data_sc_verify_ci(FileData *fd, GList *list) { GList *work; gint ret; @@ -2844,7 +2844,7 @@ gint file_data_sc_verify_ci(FileData *fd, GList *list) return ret; } -gchar *file_data_get_error_string(gint error) +gchar *FileData::file_data_get_error_string(gint error) { GString *result = g_string_new(""); @@ -2929,7 +2929,7 @@ gchar *file_data_get_error_string(gint error) return g_string_free(result, FALSE); } -gint file_data_verify_ci_list(GList *list, gchar **desc, gboolean with_sidecars) +gint FileData::file_data_verify_ci_list(GList *list, gchar **desc, gboolean with_sidecars) { GList *work; gint all_errors = 0; @@ -3032,7 +3032,7 @@ static gboolean file_data_perform_delete(FileData *fd) return unlink_file(fd->path); } -gboolean file_data_perform_ci(FileData *fd) +gboolean FileData::file_data_perform_ci(FileData *fd) { /** @FIXME When a directory that is a symbolic link is deleted, * at this point fd->change is null because no FileDataChangeInfo @@ -3067,7 +3067,7 @@ gboolean file_data_perform_ci(FileData *fd) -gboolean file_data_sc_perform_ci(FileData *fd) +gboolean FileData::file_data_sc_perform_ci(FileData *fd) { GList *work; gboolean ret = TRUE; @@ -3093,7 +3093,7 @@ gboolean file_data_sc_perform_ci(FileData *fd) * updates FileData structure according to FileDataChangeInfo */ -gboolean file_data_apply_ci(FileData *fd) +gboolean FileData::file_data_apply_ci(FileData *fd) { FileDataChangeType type = fd->change->type; @@ -3124,7 +3124,7 @@ gboolean file_data_apply_ci(FileData *fd) return TRUE; } -gboolean file_data_sc_apply_ci(FileData *fd) +gboolean FileData::file_data_sc_apply_ci(FileData *fd) { GList *work; FileDataChangeType type = fd->change->type; @@ -3160,7 +3160,7 @@ static gboolean file_data_list_contains_whole_group(GList *list, FileData *fd) return TRUE; } -GList *file_data_process_groups_in_selection(GList *list, gboolean ungroup, GList **ungrouped_list) +GList *FileData::file_data_process_groups_in_selection(GList *list, gboolean ungroup, GList **ungrouped_list) { GList *out = nullptr; GList *work = list; @@ -3242,7 +3242,7 @@ static gint file_data_notify_sort(gconstpointer a, gconstpointer b) return 0; } -gboolean file_data_register_notify_func(FileDataNotifyFunc func, gpointer data, NotifyPriority priority) +gboolean FileData::file_data_register_notify_func(FileDataNotifyFunc func, gpointer data, NotifyPriority priority) { NotifyData *nd; GList *work = notify_func_list; @@ -3270,7 +3270,7 @@ gboolean file_data_register_notify_func(FileDataNotifyFunc func, gpointer data, return TRUE; } -gboolean file_data_unregister_notify_func(FileDataNotifyFunc func, gpointer data) +gboolean FileData::file_data_unregister_notify_func(FileDataNotifyFunc func, gpointer data) { GList *work = notify_func_list; @@ -3294,7 +3294,7 @@ gboolean file_data_unregister_notify_func(FileDataNotifyFunc func, gpointer data #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-function" -gboolean file_data_send_notification_idle_cb_unused(gpointer data) +gboolean FileData::file_data_send_notification_idle_cb_unused(gpointer data) { auto *nid = (NotifyIdleData *)data; GList *work = notify_func_list; @@ -3312,7 +3312,7 @@ gboolean file_data_send_notification_idle_cb_unused(gpointer data) } #pragma GCC diagnostic pop -void file_data_send_notification(FileData *fd, NotifyType type) +void FileData::file_data_send_notification(FileData *fd, NotifyType type) { GList *work = notify_func_list; @@ -3350,7 +3350,7 @@ static gboolean realtime_monitor_cb(gpointer) return TRUE; } -gboolean file_data_register_real_time_monitor(FileData *fd) +gboolean FileData::file_data_register_real_time_monitor(FileData *fd) { gint count; @@ -3374,7 +3374,7 @@ gboolean file_data_register_real_time_monitor(FileData *fd) return TRUE; } -gboolean file_data_unregister_real_time_monitor(FileData *fd) +gboolean FileData::file_data_unregister_real_time_monitor(FileData *fd) { gint count; @@ -3428,7 +3428,7 @@ static void marks_get_files(gpointer key, gpointer value, gpointer userdata) } } -gboolean marks_list_load(const gchar *path) +gboolean FileData::marks_list_load(const gchar *path) { FILE *f; gchar s_buf[1024]; @@ -3475,7 +3475,7 @@ gboolean marks_list_load(const gchar *path) return TRUE; } -gboolean marks_list_save(gchar *path, gboolean save) +gboolean FileData::marks_list_save(gchar *path, gboolean save) { SecureSaveInfo *ssi; gchar *pathl; @@ -3529,12 +3529,12 @@ static void marks_clear(gpointer key, gpointer value, gpointer) } } -void marks_clear_all() +void FileData::marks_clear_all() { g_hash_table_foreach(file_data_pool, marks_clear, nullptr); } -void file_data_set_page_num(FileData *fd, gint page_num) +void FileData::file_data_set_page_num(FileData *fd, gint page_num) { if (fd->page_total > 1 && page_num < 0) { @@ -3551,7 +3551,7 @@ void file_data_set_page_num(FileData *fd, gint page_num) file_data_send_notification(fd, NOTIFY_REREAD); } -void file_data_inc_page_num(FileData *fd) +void FileData::file_data_inc_page_num(FileData *fd) { if (fd->page_total > 0 && fd->page_num < fd->page_total - 1) { @@ -3564,7 +3564,7 @@ void file_data_inc_page_num(FileData *fd) file_data_send_notification(fd, NOTIFY_REREAD); } -void file_data_dec_page_num(FileData *fd) +void FileData::file_data_dec_page_num(FileData *fd) { if (fd->page_num > 0) { @@ -3573,7 +3573,7 @@ void file_data_dec_page_num(FileData *fd) file_data_send_notification(fd, NOTIFY_REREAD); } -void file_data_set_page_total(FileData *fd, gint page_total) +void FileData::file_data_set_page_total(FileData *fd, gint page_total) { fd->page_total = page_total; } From a74f9ea9e758bf7415f8a977f1bb2301605fa2f6 Mon Sep 17 00:00:00 2001 From: Omari Stephens Date: Thu, 30 May 2024 20:31:21 +0000 Subject: [PATCH 11/15] Uses the "::" scope resolution operator for static class methods This necessary because you can't call a non-static method on the current object directly from a static method. The "::" forces the method call to resolve to the flat C API instead of the C++ class API. The real fix is to switch to the `fd->method()` calling pattern, but this is a smaller change for now, and the calling pattern transition will happen later. --- src/filedata/filedata.cc | 42 ++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/src/filedata/filedata.cc b/src/filedata/filedata.cc index 46b4345da..a1b45be2a 100644 --- a/src/filedata/filedata.cc +++ b/src/filedata/filedata.cc @@ -908,7 +908,7 @@ void FileData::file_data_lock_list(GList *list) { auto fd = static_cast(work->data); work = work->next; - file_data_lock(fd); + ::file_data_lock(fd); } } @@ -926,7 +926,7 @@ void FileData::file_data_unlock_list(GList *list) { auto fd = static_cast(work->data); work = work->next; - file_data_unlock(fd); + ::file_data_unlock(fd); } } @@ -1153,7 +1153,7 @@ void FileData::file_data_disable_grouping_list(GList *fd_list, gboolean disable) { auto fd = static_cast(work->data); - file_data_disable_grouping(fd, disable); + ::file_data_disable_grouping(fd, disable); work = work->next; } } @@ -1725,7 +1725,7 @@ GList *FileData::filelist_recursive(FileData *dir_fd) GList *list; GList *d; - if (!filelist_read(dir_fd, &list, &d)) return nullptr; + if (!::filelist_read(dir_fd, &list, &d)) return nullptr; list = filelist_filter(list, FALSE); list = filelist_sort_path(list); @@ -1742,7 +1742,7 @@ GList *FileData::filelist_recursive_full(FileData *dir_fd, SortType method, gboo GList *list; GList *d; - if (!filelist_read(dir_fd, &list, &d)) return nullptr; + if (!::filelist_read(dir_fd, &list, &d)) return nullptr; list = filelist_filter(list, FALSE); list = filelist_sort_full(list, method, ascend, case_sensitive, reinterpret_cast(filelist_sort_file_cb)); @@ -1910,7 +1910,7 @@ GList *FileData::file_data_filter_marks_list(GList *list, guint filter) GList *link = work; work = work->next; - if (!file_data_filter_marks(fd, filter)) + if (!::file_data_filter_marks(fd, filter)) { list = g_list_remove_link(list, link); file_data_unref(fd); @@ -1965,7 +1965,7 @@ GList *FileData::file_data_filter_file_filter_list(GList *list, GRegex *filter) GList *link = work; work = work->next; - if (!file_data_filter_file_filter(fd, filter)) + if (!::file_data_filter_file_filter(fd, filter)) { list = g_list_remove_link(list, link); file_data_unref(fd); @@ -2305,7 +2305,7 @@ gboolean FileData::file_data_sc_add_ci_delete_list(GList *fd_list) { auto fd = static_cast(work->data); - if (!file_data_sc_add_ci_delete(fd)) ret = FALSE; + if (!::file_data_sc_add_ci_delete(fd)) ret = FALSE; work = work->next; } @@ -2348,22 +2348,22 @@ static gboolean file_data_sc_add_ci_list_call_func(GList *fd_list, const gchar * gboolean FileData::file_data_sc_add_ci_copy_list(GList *fd_list, const gchar *dest) { - return file_data_sc_add_ci_list_call_func(fd_list, dest, file_data_sc_add_ci_copy); + return file_data_sc_add_ci_list_call_func(fd_list, dest, ::file_data_sc_add_ci_copy); } gboolean FileData::file_data_sc_add_ci_move_list(GList *fd_list, const gchar *dest) { - return file_data_sc_add_ci_list_call_func(fd_list, dest, file_data_sc_add_ci_move); + return file_data_sc_add_ci_list_call_func(fd_list, dest, ::file_data_sc_add_ci_move); } gboolean FileData::file_data_sc_add_ci_rename_list(GList *fd_list, const gchar *dest) { - return file_data_sc_add_ci_list_call_func(fd_list, dest, file_data_sc_add_ci_rename); + return file_data_sc_add_ci_list_call_func(fd_list, dest, ::file_data_sc_add_ci_rename); } gboolean FileData::file_data_sc_add_ci_unspecified_list(GList *fd_list, const gchar *dest) { - return file_data_sc_add_ci_list_call_func(fd_list, dest, file_data_sc_add_ci_unspecified); + return file_data_sc_add_ci_list_call_func(fd_list, dest, ::file_data_sc_add_ci_unspecified); } gboolean FileData::file_data_add_ci_write_metadata_list(GList *fd_list) @@ -2376,7 +2376,7 @@ gboolean FileData::file_data_add_ci_write_metadata_list(GList *fd_list) { auto fd = static_cast(work->data); - if (!file_data_add_ci_write_metadata(fd)) ret = FALSE; + if (!::file_data_add_ci_write_metadata(fd)) ret = FALSE; work = work->next; } @@ -2392,7 +2392,7 @@ void FileData::file_data_free_ci_list(GList *fd_list) { auto fd = static_cast(work->data); - file_data_free_ci(fd); + ::file_data_free_ci(fd); work = work->next; } } @@ -2406,7 +2406,7 @@ void FileData::file_data_sc_free_ci_list(GList *fd_list) { auto fd = static_cast(work->data); - file_data_sc_free_ci(fd); + ::file_data_sc_free_ci(fd); work = work->next; } } @@ -2560,17 +2560,17 @@ static gboolean file_data_sc_update_ci_list_call_func(GList *fd_list, gboolean FileData::file_data_sc_update_ci_move_list(GList *fd_list, const gchar *dest) { - return file_data_sc_update_ci_list_call_func(fd_list, dest, file_data_sc_update_ci_move); + return file_data_sc_update_ci_list_call_func(fd_list, dest, ::file_data_sc_update_ci_move); } gboolean FileData::file_data_sc_update_ci_copy_list(GList *fd_list, const gchar *dest) { - return file_data_sc_update_ci_list_call_func(fd_list, dest, file_data_sc_update_ci_copy); + return file_data_sc_update_ci_list_call_func(fd_list, dest, ::file_data_sc_update_ci_copy); } gboolean FileData::file_data_sc_update_ci_unspecified_list(GList *fd_list, const gchar *dest) { - return file_data_sc_update_ci_list_call_func(fd_list, dest, file_data_sc_update_ci_unspecified); + return file_data_sc_update_ci_list_call_func(fd_list, dest, ::file_data_sc_update_ci_unspecified); } @@ -2952,7 +2952,7 @@ gint FileData::file_data_verify_ci_list(GList *list, gchar **desc, gboolean with fd = static_cast(work->data); work = work->next; - error = with_sidecars ? file_data_sc_verify_ci(fd, list) : file_data_verify_ci(fd, list); + error = with_sidecars ? ::file_data_sc_verify_ci(fd, list) : ::file_data_verify_ci(fd, list); all_errors |= error; common_errors &= error; @@ -3175,7 +3175,7 @@ GList *FileData::file_data_process_groups_in_selection(GList *list, gboolean ung if (!file_data_list_contains_whole_group(list, fd)) { - file_data_disable_grouping(fd, TRUE); + ::file_data_disable_grouping(fd, TRUE); if (ungrouped_list) { *ungrouped_list = g_list_prepend(*ungrouped_list, file_data_ref(fd)); @@ -3464,7 +3464,7 @@ gboolean FileData::marks_list_load(const gchar *path) gint mark_no = 1 << n; if (atoi(marks_value) & mark_no) { - file_data_set_mark(fd, n , 1); + ::file_data_set_mark(fd, n , 1); } n++; } From 986cbdd8752796bea0e90bac8e45f9b86a1f6872 Mon Sep 17 00:00:00 2001 From: Omari Stephens Date: Wed, 29 May 2024 06:49:44 +0000 Subject: [PATCH 12/15] Suppresses the clangtidy warning about class methods that could be static. As the refactor progresses, these methods will take more advantage of being class methods instead of just static class functions. This warning won't be meaningful until that has been done. --- src/filedata/filedata.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/filedata/filedata.cc b/src/filedata/filedata.cc index a1b45be2a..6c051e635 100644 --- a/src/filedata/filedata.cc +++ b/src/filedata/filedata.cc @@ -19,6 +19,8 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ +// NOLINTBEGIN(readability-convert-member-functions-to-static) + #include "filedata.h" #include @@ -3578,4 +3580,6 @@ void FileData::file_data_set_page_total(FileData *fd, gint page_total) fd->page_total = page_total; } +// NOLINTEND(readability-convert-member-functions-to-static) + /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */ From 07a5dca5f51c15af847e646a2ad6cb01d4957ab8 Mon Sep 17 00:00:00 2001 From: Omari Stephens Date: Thu, 30 May 2024 20:05:53 +0000 Subject: [PATCH 13/15] Uses __builtin_(FILE/LINE) in place of __FILE__ and __LINE__ macros for file_data_(un)ref Also, drops the file_data_(un)ref_debug name in favor of keeping the name identical (with only arguments changing) between the debug and non-debug implementations. This extension is supported by clang since at least 9.0.0, and gcc since at least 6.1 (and is also supported by msvc, even though that's not a relevant target for geeqie). --- src/filedata.cc | 15 +++++----- src/filedata.h | 16 ++++------ src/filedata/filedata.cc | 65 +++++++++++++++++++++------------------- 3 files changed, 48 insertions(+), 48 deletions(-) diff --git a/src/filedata.cc b/src/filedata.cc index d88c4e3ec..4682befc0 100644 --- a/src/filedata.cc +++ b/src/filedata.cc @@ -71,31 +71,32 @@ FileData *file_data_new_simple(const gchar *path_utf8) return FileData::file_data_new_simple(path_utf8); } - #ifdef DEBUG_FILEDATA -FileData *file_data_ref_debug(const gchar *file, gint line, FileData *fd) + +FileData *file_data_ref(FileData *fd, const gchar *file, gint line) { if (fd == nullptr) return nullptr; - return fd->file_data_ref_debug(file, line, fd); + return fd->file_data_ref(file, line); } -void file_data_unref_debug(const gchar *file, gint line, FileData *fd) +void file_data_unref(FileData *fd, const gchar *file, gint line) { if (fd == nullptr) return; - fd->file_data_unref_debug(file, line, fd); + fd->file_data_unref(file, line); } #else + FileData *file_data_ref(FileData *fd) { if (fd == nullptr) return nullptr; - return fd->file_data_ref(fd); + return fd->file_data_ref(); } void file_data_unref(FileData *fd) { if (fd == nullptr) return; - fd->file_data_unref(fd); + fd->file_data_unref(); } #endif diff --git a/src/filedata.h b/src/filedata.h index 2cf4580a6..ecd9f083d 100644 --- a/src/filedata.h +++ b/src/filedata.h @@ -158,13 +158,11 @@ class FileData { static FileData *file_data_new_simple(const gchar *path_utf8); #ifdef DEBUG_FILEDATA - FileData *file_data_ref_debug(const gchar *file, gint line, FileData *fd); - void file_data_unref_debug(const gchar *file, gint line, FileData *fd); - #define file_data_ref(fd) file_data_ref_debug(__FILE__, __LINE__, fd) - #define file_data_unref(fd) file_data_unref_debug(__FILE__, __LINE__, fd) + FileData *file_data_ref(const gchar *file = __builtin_FILE(), gint line = __builtin_LINE()); + void file_data_unref(const gchar *file = __builtin_FILE(), gint line = __builtin_LINE()); #else - FileData *file_data_ref(FileData *fd); - void file_data_unref(FileData *fd); + FileData *file_data_ref(); + void file_data_unref(); #endif void file_data_lock(FileData *fd); @@ -331,10 +329,8 @@ FileData *file_data_new_dir(const gchar *path_utf8); FileData *file_data_new_simple(const gchar *path_utf8); #ifdef DEBUG_FILEDATA -FileData *file_data_ref_debug(const gchar *file, gint line, FileData *fd); -void file_data_unref_debug(const gchar *file, gint line, FileData *fd); -#define file_data_ref(fd) file_data_ref_debug(__FILE__, __LINE__, fd) -#define file_data_unref(fd) file_data_unref_debug(__FILE__, __LINE__, fd) +FileData *file_data_ref(FileData *fd, const gchar *file = __builtin_FILE(), gint line = __builtin_LINE()); +void file_data_unref(FileData *fd, const gchar *file = __builtin_FILE(), gint line = __builtin_LINE()); #else FileData *file_data_ref(FileData *fd); void file_data_unref(FileData *fd); diff --git a/src/filedata/filedata.cc b/src/filedata/filedata.cc index 6c051e635..e8dc9325d 100644 --- a/src/filedata/filedata.cc +++ b/src/filedata/filedata.cc @@ -265,7 +265,7 @@ gboolean FileData::file_data_check_changed_files(FileData *fd) /* file_data_disconnect_sidecar_file might delete the file, we have to keep the reference to prevent this */ sidecars = filelist_copy(fd->sidecar_files); - file_data_ref(fd); + ::file_data_ref(fd); work = sidecars; while (work) { @@ -279,7 +279,7 @@ gboolean FileData::file_data_check_changed_files(FileData *fd) filelist_free(sidecars); file_data_increment_version(fd); file_data_send_notification(fd, NOTIFY_REREAD); - file_data_unref(fd); + ::file_data_unref(fd); } else { @@ -505,7 +505,7 @@ FileData *FileData::file_data_new_simple(const gchar *path_utf8) if (!fd) fd = file_data_new(path_utf8, &st, TRUE); if (fd) { - file_data_ref(fd); + ::file_data_ref(fd); } return fd; @@ -696,11 +696,13 @@ FileData *FileData::file_data_new_dir(const gchar *path_utf8) */ #ifdef DEBUG_FILEDATA -FileData *FileData::file_data_ref_debug(const gchar *file, gint line, FileData *fd) +FileData *FileData::file_data_ref(const gchar *file, gint line) #else -FileData *FileData::file_data_ref(FileData *fd) +FileData *FileData::file_data_ref() #endif { + FileData *fd = this; + // TODO(xsdg): Do null checks at call-sites, if necessary. The following is a no-op. if (fd == nullptr) return nullptr; if (fd->magick != FD_MAGICK) #ifdef DEBUG_FILEDATA @@ -829,11 +831,12 @@ static void file_data_consider_free(FileData *fd) } #ifdef DEBUG_FILEDATA -void FileData::file_data_unref_debug(const gchar *file, gint line, FileData *fd) +void FileData::file_data_unref(const gchar *file, gint line) #else -void FileData::file_data_unref(FileData *fd) +void FileData::file_data_unref() #endif { + FileData *fd = this; // TODO(xsdg): clean this up across the board. if (fd == nullptr) return; if (fd->magick != FD_MAGICK) #ifdef DEBUG_FILEDATA @@ -1114,10 +1117,10 @@ void FileData::file_data_disable_grouping(FileData *fd, gboolean disable) { if (fd->parent) { - FileData *parent = file_data_ref(fd->parent); + FileData *parent = ::file_data_ref(fd->parent); file_data_disconnect_sidecar_file(parent, fd); file_data_send_notification(parent, NOTIFY_GROUPING); - file_data_unref(parent); + ::file_data_unref(parent); } else if (fd->sidecar_files) { @@ -1548,7 +1551,7 @@ FileData *FileData::file_data_new_group(const gchar *path_utf8) if (!fd) fd = file_data_new(path_utf8, &st, TRUE); if (fd) { - file_data_ref(fd); + ::file_data_ref(fd); } filelist_free(files); @@ -1564,7 +1567,7 @@ void FileData::filelist_free(GList *list) work = list; while (work) { - file_data_unref((FileData *)work->data); + ::file_data_unref((FileData *)work->data); work = work->next; } @@ -1580,7 +1583,7 @@ GList *FileData::filelist_copy(GList *list) { auto fd = static_cast(work->data); - new_list = g_list_prepend(new_list, file_data_ref(fd)); + new_list = g_list_prepend(new_list, ::file_data_ref(fd)); } return g_list_reverse(new_list); @@ -1644,7 +1647,7 @@ GList *FileData::filelist_filter(GList *list, gboolean is_dir_list) strcmp(name, GQ_CACHE_LOCAL_METADATA) == 0)) ) { list = g_list_remove_link(list, link); - file_data_unref(fd); + ::file_data_unref(fd); g_list_free(link); } } @@ -1849,11 +1852,11 @@ gboolean FileData::file_data_get_mark(FileData *fd, gint n) fd->valid_marks |= (1 << n); if (old && !fd->marks) /* keep files with non-zero marks in memory */ { - file_data_unref(fd); + ::file_data_unref(fd); } else if (!old && fd->marks) { - file_data_ref(fd); + ::file_data_ref(fd); } } @@ -1883,11 +1886,11 @@ void FileData::file_data_set_mark(FileData *fd, gint n, gboolean value) if (old && !fd->marks) /* keep files with non-zero marks in memory */ { - file_data_unref(fd); + ::file_data_unref(fd); } else if (!old && fd->marks) { - file_data_ref(fd); + ::file_data_ref(fd); } file_data_increment_version(fd); @@ -1915,7 +1918,7 @@ GList *FileData::file_data_filter_marks_list(GList *list, guint filter) if (!::file_data_filter_marks(fd, filter)) { list = g_list_remove_link(list, link); - file_data_unref(fd); + ::file_data_unref(fd); g_list_free(link); } } @@ -1970,7 +1973,7 @@ GList *FileData::file_data_filter_file_filter_list(GList *list, GRegex *filter) if (!::file_data_filter_file_filter(fd, filter)) { list = g_list_remove_link(list, link); - file_data_unref(fd); + ::file_data_unref(fd); g_list_free(link); } } @@ -2010,7 +2013,7 @@ GList *FileData::file_data_filter_class_list(GList *list, guint filter) if (!file_data_filter_class(fd, filter)) { list = g_list_remove_link(list, link); - file_data_unref(fd); + ::file_data_unref(fd); g_list_free(link); } } @@ -2152,7 +2155,7 @@ static void file_data_planned_change_remove(FileData *fd) { DEBUG_1("planned change: removing %s -> %s", fd->change->dest, fd->path); g_hash_table_remove(file_data_planned_change_hash, fd->change->dest); - file_data_unref(fd); + ::file_data_unref(fd); if (g_hash_table_size(file_data_planned_change_hash) == 0) { g_hash_table_destroy(file_data_planned_change_hash); @@ -2433,7 +2436,7 @@ static void file_data_update_planned_change_hash(FileData *fd, const gchar *old_ { DEBUG_1("planned change: removing %s -> %s", old_path, fd->path); g_hash_table_remove(file_data_planned_change_hash, old_path); - file_data_unref(fd); + ::file_data_unref(fd); } ofd = static_cast(g_hash_table_lookup(file_data_planned_change_hash, new_path)); @@ -2443,11 +2446,11 @@ static void file_data_update_planned_change_hash(FileData *fd, const gchar *old_ { DEBUG_1("planned change: replacing %s -> %s", new_path, ofd->path); g_hash_table_remove(file_data_planned_change_hash, new_path); - file_data_unref(ofd); + ::file_data_unref(ofd); } DEBUG_1("planned change: inserting %s -> %s", new_path, fd->path); - file_data_ref(fd); + ::file_data_ref(fd); g_hash_table_insert(file_data_planned_change_hash, new_path, fd); } } @@ -3180,7 +3183,7 @@ GList *FileData::file_data_process_groups_in_selection(GList *list, gboolean ung ::file_data_disable_grouping(fd, TRUE); if (ungrouped_list) { - *ungrouped_list = g_list_prepend(*ungrouped_list, file_data_ref(fd)); + *ungrouped_list = g_list_prepend(*ungrouped_list, ::file_data_ref(fd)); } } } @@ -3197,7 +3200,7 @@ GList *FileData::file_data_process_groups_in_selection(GList *list, gboolean ung if (!fd->parent || (!ungroup && !file_data_list_contains_whole_group(list, fd))) { - out = g_list_prepend(out, file_data_ref(fd)); + out = g_list_prepend(out, ::file_data_ref(fd)); } } @@ -3308,7 +3311,7 @@ gboolean FileData::file_data_send_notification_idle_cb_unused(gpointer data) nd->func(nid->fd, nid->type, nd->data); work = work->next; } - file_data_unref(nid->fd); + ::file_data_unref(nid->fd); g_free(nid); return FALSE; } @@ -3327,7 +3330,7 @@ void FileData::file_data_send_notification(FileData *fd, NotifyType type) } /* NotifyIdleData *nid = g_new0(NotifyIdleData, 1); - nid->fd = file_data_ref(fd); + nid->fd = ::file_data_ref(fd); nid->type = type; g_idle_add_full(G_PRIORITY_HIGH, file_data_send_notification_idle_cb, nid, NULL); */ @@ -3356,7 +3359,7 @@ gboolean FileData::file_data_register_real_time_monitor(FileData *fd) { gint count; - file_data_ref(fd); + ::file_data_ref(fd); if (!file_data_monitor_pool) file_data_monitor_pool = g_hash_table_new(g_direct_hash, g_direct_equal); @@ -3395,7 +3398,7 @@ gboolean FileData::file_data_unregister_real_time_monitor(FileData *fd) else g_hash_table_insert(file_data_monitor_pool, fd, GINT_TO_POINTER(count)); - file_data_unref(fd); + ::file_data_unref(fd); if (g_hash_table_size(file_data_monitor_pool) == 0) { @@ -3459,7 +3462,7 @@ gboolean FileData::marks_list_load(const gchar *path) if (isfile(file_path)) { FileData *fd = file_data_new_no_grouping(file_path); - file_data_ref(fd); + ::file_data_ref(fd); gint n = 0; while (n <= 9) { From a22e1dd8b5c88e1e90552760017220b5ab5c5f3d Mon Sep 17 00:00:00 2001 From: Omari Stephens Date: Fri, 31 May 2024 07:07:49 +0000 Subject: [PATCH 14/15] Auto-updates POTFILES using `regen-potfiles.sh` --- po/POTFILES | 3 +++ 1 file changed, 3 insertions(+) diff --git a/po/POTFILES b/po/POTFILES index 5997d5fc7..2eb33868f 100644 --- a/po/POTFILES +++ b/po/POTFILES @@ -1,6 +1,7 @@ org.geeqie.Geeqie.appdata.xml.in org.geeqie.Geeqie.desktop.in plugins/camera-import/org.geeqie.camera-import.desktop.in +plugins/exif-datetime-to-file/org.geeqie.exif-datetime-to-file.desktop.in plugins/export-jpeg/org.geeqie.export-jpeg.desktop.in plugins/image-crop/org.geeqie.image-crop.desktop.in plugins/open-with/org.geeqie.open-with.desktop.in @@ -40,6 +41,7 @@ src/exif.cc src/exif-common.cc src/exiv2.cc src/filecache.cc +src/filedata.cc src/filedata/filedata.cc src/filefilter.cc src/format-canon.cc @@ -109,6 +111,7 @@ src/secure-save.cc src/shortcuts.cc src/similar.cc src/slideshow.cc +src/tests/pixbuf-util.cc src/third-party/whereami.cc src/third-party/zonedetect.cc src/thumb.cc From d4ce39d4b9afd9f0dbfbfdfd3827265847158b35 Mon Sep 17 00:00:00 2001 From: Omari Stephens Date: Fri, 31 May 2024 07:30:32 +0000 Subject: [PATCH 15/15] Refactors how source files are aggregated for testing This also implicitly runs tests and static analysis against src/filedata/filedata.cc --- meson.build | 16 ++++++++++------ src/filedata/meson.build | 2 +- src/meson.build | 5 ++++- src/pan-view/meson.build | 3 ++- src/tests/meson.build | 2 +- 5 files changed, 18 insertions(+), 10 deletions(-) diff --git a/meson.build b/meson.build index e9d06431d..25d6e469f 100644 --- a/meson.build +++ b/meson.build @@ -56,6 +56,10 @@ add_global_arguments('-Wno-overlength-strings', language : 'c') add_global_arguments('-Wno-error=deprecated-declarations', language : 'cpp') # Project requirements +# code_sources is all human-written geeqie C/C++ code +code_sources = [] +# project_sources will include code_sources, as well as auto-generated code, +# third-party code, and some other code-like dependencies. project_sources = [] gnome = import('gnome') thread_dep = dependency('threads') @@ -729,7 +733,7 @@ if running_from_git if clang_tidy_exe.found() git_exe = find_program('git', required : true) - foreach source_file : main_sources + pan_view_sources + view_file_sources + foreach source_file : code_sources if fs.name(source_file).endswith('.cc') source_file_name = fs.name(source_file) config_file = join_paths(meson.project_source_root(), '.clang-tidy') @@ -749,7 +753,7 @@ endif # Single value enum checks enum_check_sh = find_program('enum-check.sh', dirs : scriptsdir, required : true) if enum_check_sh.found() - foreach source_file : main_sources + pan_view_sources + view_file_sources + foreach source_file : code_sources source_file_name = fs.name(source_file) test('Single Value enum_ ' + source_file_name, enum_check_sh, args : [source_file], timeout : 100, suite : 'analysis') endforeach @@ -762,7 +766,7 @@ endif # Debug statement checks debug_check_sh = find_program('debug-check.sh', dirs : scriptsdir, required : true) if debug_check_sh.found() - foreach source_file : main_sources + pan_view_sources + view_file_sources + foreach source_file : code_sources source_file_name = fs.name(source_file) if (source_file_name != 'debug.h') test('Debug Statements_ ' + source_file_name, debug_check_sh, args : [source_file], timeout : 100, suite : 'analysis') @@ -777,7 +781,7 @@ endif # Temporary comments checks tmp_comments_check_sh = find_program('temporary-comments-check.sh', dirs : scriptsdir, required : true) if tmp_comments_check_sh.found() - foreach source_file : main_sources + pan_view_sources + view_file_sources + foreach source_file : code_sources source_file_name = fs.name(source_file) if (source_file_name != 'debug.h') test('Temporary Comments_ ' + source_file_name, tmp_comments_check_sh, args : [source_file], timeout : 100, suite : 'analysis') @@ -794,7 +798,7 @@ gtk4_migration_check_sh = find_program('gtk4-migration-regression-check.sh', dir if gtk4_migration_check_sh.found() compat_cc = join_paths(meson.project_source_root(), 'src', 'compat.cc') compat_h = join_paths(meson.project_source_root(), 'src', 'compat.h') - foreach source_file : main_sources + pan_view_sources + view_file_sources + foreach source_file : code_sources source_file_name = fs.name(source_file) if (source_file_name != 'debug.h') test('GTK4 migration_ ' + source_file_name, gtk4_migration_check_sh, args : [source_file, compat_cc, compat_h], timeout : 100, suite : 'analysis') @@ -809,7 +813,7 @@ endif # Untranslated text checks untranslated_text_sh = find_program('untranslated-text.sh', dirs : scriptsdir, required : true) if untranslated_text_sh.found() - foreach source_file : main_sources + pan_view_sources + view_file_sources + foreach source_file : code_sources if fs.name(source_file).endswith('.cc') source_file_name = fs.name(source_file) test('Untranslated Text_ ' + source_file_name, untranslated_text_sh, args : [source_file], timeout : 200, suite : 'analysis') diff --git a/src/filedata/meson.build b/src/filedata/meson.build index 03a8ab87b..54e7b04da 100644 --- a/src/filedata/meson.build +++ b/src/filedata/meson.build @@ -21,4 +21,4 @@ filedata_sources = files('filedata.cc') -project_sources += filedata_sources +code_sources += filedata_sources diff --git a/src/meson.build b/src/meson.build index 5ecaeb11f..011d7eaf3 100644 --- a/src/meson.build +++ b/src/meson.build @@ -300,7 +300,7 @@ if conf_data.get('HAVE_WEBP', 0) == 1 ) endif -project_sources += main_sources +code_sources += main_sources subdir('authors') subdir('filedata') @@ -314,6 +314,9 @@ if conf_data.get('ENABLE_UNIT_TESTS', 0) == 1 subdir('tests') endif +# We assume that code_sources is only set above. +project_sources += code_sources + gq_marshal = gnome.genmarshal('gq-marshal', prefix : 'gq_marshal', sources : 'gq-marshal.list') project_sources += gq_marshal[1] diff --git a/src/pan-view/meson.build b/src/pan-view/meson.build index 49c5b3e91..f376a98d1 100644 --- a/src/pan-view/meson.build +++ b/src/pan-view/meson.build @@ -30,4 +30,5 @@ pan_view_sources = files('pan-calendar.cc', 'pan-view.h', 'pan-view-search.cc', 'pan-view-search.h') -project_sources += pan_view_sources + +code_sources += pan_view_sources diff --git a/src/tests/meson.build b/src/tests/meson.build index b7a995136..e6145b8d8 100644 --- a/src/tests/meson.build +++ b/src/tests/meson.build @@ -21,4 +21,4 @@ unit_test_sources = files('pixbuf-util.cc') -project_sources += unit_test_sources +code_sources += unit_test_sources