Colin Clark [Sun, 15 Jun 2025 14:59:19 +0000 (15:59 +0100)]
Fix #1771: Deleting (not write protected) symlinks to write protected images gives warning
https://github.com/BestImageViewer/geeqie/issues/1771
Function access() was used, but this function follows symlinks.
Instead use lstat for delete/move/rename operations.
Arkadiy Illarionov [Thu, 12 Jun 2025 12:58:15 +0000 (15:58 +0300)]
Simplify image_osd_mkinfo()
Extract get_osd_name(), get_osd_data(), add_osd_extra() functions.
Merge declaration and definition of variables where available.
Use nullptr for data in case of error in lua script name parsing.
Arkadiy Illarionov [Thu, 12 Jun 2025 14:44:30 +0000 (17:44 +0300)]
Reduce number of parameters in set_osd_button()
Rename to osd_tag_button_new().
Colin Clark [Sat, 14 Jun 2025 13:05:25 +0000 (14:05 +0100)]
Bug fix: Symbolic links are followed for files supplied on the command line
If <file> is a symbolic link, the command:
geeqie <file>
will open Geeqie with the target of the link displayed.
This is not correct.
Use the correct function.
Arkadiy Illarionov [Thu, 12 Jun 2025 14:13:39 +0000 (17:13 +0300)]
Simplify TagData handling
Remove unused title member.
Add image_overlay_template_view member to avoid using GObject properties.
Use g_signal_connect_swapped() to simplify callbacks.
Move callbacks to anonymous namespace.
Arkadiy Illarionov [Thu, 12 Jun 2025 11:22:33 +0000 (14:22 +0300)]
Add string_list_join() to reduce duplication
Arkadiy Illarionov [Thu, 12 Jun 2025 10:58:42 +0000 (13:58 +0300)]
Fix OSD string build
Colin Clark [Sun, 8 Jun 2025 12:29:57 +0000 (13:29 +0100)]
Change algorithm used for search-distance computation
In the Search GPS distance computation use the Equirectangular
approximation.
It is faster and the error is insignificant in this application.
Arkadiy Illarionov [Sat, 7 Jun 2025 18:34:15 +0000 (21:34 +0300)]
Use gtk_container_foreach() to simplify code
Fix couple memory leaks.
Colin Clark [Sat, 7 Jun 2025 11:05:33 +0000 (12:05 +0100)]
Fix #1768: Crash on "keyword autocomplete" command
https://github.com/BestImageViewer/geeqie/issues/1768
Check if the keywords pane has been initialized, and if not send an
application notification.
Colin Clark [Tue, 3 Jun 2025 14:09:04 +0000 (15:09 +0100)]
Fix #1765: No thumbnails shown in browser view on geeqie start
https://github.com/BestImageViewer/geeqie/issues/1765
Not a fix, just a workaround.
Arkadiy Illarionov [Tue, 3 Jun 2025 07:22:14 +0000 (10:22 +0300)]
Fix LTO build
Colin Clark [Sun, 1 Jun 2025 14:20:20 +0000 (15:20 +0100)]
Part fix #1751: MRU list for collections is now missing/useless
https://github.com/BestImageViewer/geeqie/issues/1761
Ensure that when a .gqv file is opened via Open File or Open Recent File
the Collection is opened.
Arkadiy Illarionov [Fri, 30 May 2025 07:07:44 +0000 (10:07 +0300)]
Return value from pixbuf_gdk_known_extensions()
Instead of using out parameter.
Use recommended prepend and sort.
Arkadiy Illarionov [Tue, 27 May 2025 18:49:39 +0000 (21:49 +0300)]
Move secure_save() to ui-fileops
Fix group id getting.
Simplify a bit.
Colin Clark [Tue, 27 May 2025 10:10:36 +0000 (11:10 +0100)]
Fix #1743: Slow since 2.6
https://github.com/BestImageViewer/geeqie/issues/1743
Incorrect init. function used.
Arkadiy Illarionov [Mon, 26 May 2025 20:48:27 +0000 (23:48 +0300)]
Simplify string building for secure_save()
Also remove unused includes and forward declaration.
8d11f52df4eb12b5bd133733fa70d02a662c5921 follow-up.
Arkadiy Illarionov [Mon, 26 May 2025 20:24:56 +0000 (23:24 +0300)]
Use file_data_list_free() in g_signal_connect_swapped
Colin Clark [Mon, 26 May 2025 15:48:51 +0000 (16:48 +0100)]
Update secure_save.cc
- Use g_file_set_contents_full() instead of the "home-built" code.
- Log file output no longer uses secure_save()
Arkadiy Illarionov [Sun, 25 May 2025 12:28:39 +0000 (15:28 +0300)]
Add FileDataList alias for GList with FileData elements
Rename filelist_free() to file_data_list_free().
Use g_autoptr macro to simplify code a bit.
Arkadiy Illarionov [Sun, 25 May 2025 12:42:56 +0000 (15:42 +0300)]
Simplify stop_signal handling in key press callbacks
Arkadiy Illarionov [Sat, 24 May 2025 14:13:50 +0000 (17:13 +0300)]
Drop unused lw parameter from layout_selectable_toolbars_toggle()
Rename to current_layout_selectable_toolbars_toggle()
Arkadiy Illarionov [Sat, 24 May 2025 13:02:38 +0000 (16:02 +0300)]
Use gtk_widget_set_visible() to simplify code
Arkadiy Illarionov [Sat, 24 May 2025 11:47:46 +0000 (14:47 +0300)]
Simplify search_file_do_extra() a bit
Colin Clark [Sat, 24 May 2025 10:32:25 +0000 (11:32 +0100)]
Bug fix: Crash using GQ_DISABLE_CLUTTER=y when config file already has gps map enabled
Fix sequencing error.
Arkadiy Illarionov [Thu, 8 May 2025 11:55:38 +0000 (14:55 +0300)]
Use filetime_set() to reduce dependency on utime
Arkadiy Illarionov [Wed, 30 Apr 2025 20:12:31 +0000 (23:12 +0300)]
Move common code to get_marks_string()
Colin Clark [Wed, 21 May 2025 14:11:08 +0000 (15:11 +0100)]
Eliminate compiler warning - preferences.cc
error: both sides of operator are equivalent
[misc-redundant-expression,-warnings-as-errors]
is issued because PREF_PAD_INDENT = PREF_PAD_SPACE
Create a workaround.
Colin Clark [Wed, 21 May 2025 12:59:36 +0000 (13:59 +0100)]
Update test-all.sh for new meson version
https://mesonbuild.com/Release-notes-for-1-7-0.html
"Test targets no longer built by default"
Call ninja explicitly for tests.
Colin Clark [Tue, 13 May 2025 07:59:32 +0000 (08:59 +0100)]
Fix #1541: MacOS: Crash when exiting fullscreen mode
https://github.com/BestImageViewer/geeqie/issues/1541#issuecomment-
2873652561
This is a blind fix.
Colin Clark [Sun, 11 May 2025 10:38:31 +0000 (11:38 +0100)]
Bug fix: Icon view, filename text not displayed, filename tooltip
If icon view is selected, and filename text is selected to be not
displayed, the tooltip text showing the filename is not displayed.
Ensure the tooltip window has a parent.
Colin Clark [Wed, 7 May 2025 13:45:00 +0000 (14:45 +0100)]
Bug fix: gtk_file_chooser dialog cannot create folders
Make the dialog modal to prevent focus being taken away.
Arkadiy Illarionov [Tue, 6 May 2025 20:42:15 +0000 (23:42 +0300)]
Get search gps once per search
Fix search gps if "Image is not geocoded" is selected.
Colin Clark [Tue, 6 May 2025 17:22:25 +0000 (18:22 +0100)]
Bug fix: --action=<illegal value> results in crash
If a command of the type:
geeqie --action=abcd
is given when geeqie is not running, there is a crash.
Check that window is valid.
Arkadiy Illarionov [Mon, 5 May 2025 19:55:40 +0000 (22:55 +0300)]
Fix readability-math-missing-parentheses warning
Colin Clark [Mon, 5 May 2025 16:35:13 +0000 (17:35 +0100)]
Fix typo
Colin Clark [Mon, 5 May 2025 14:23:30 +0000 (15:23 +0100)]
Release v2.6 files
Colin Clark [Mon, 5 May 2025 11:18:56 +0000 (12:18 +0100)]
Bug Fix #1708: Allow to have more OSD profiles
Remove unwanted text.
Arkadiy Illarionov [Wed, 30 Apr 2025 20:04:35 +0000 (23:04 +0300)]
Get search marks once per search
Arkadiy Illarionov [Wed, 30 Apr 2025 19:53:40 +0000 (22:53 +0300)]
Fix build with GCC 15
Arkadiy Illarionov [Tue, 29 Apr 2025 19:36:23 +0000 (22:36 +0300)]
Get search class once per search
Arkadiy Illarionov [Tue, 29 Apr 2025 17:32:03 +0000 (20:32 +0300)]
Drop unused search_window_list
Arkadiy Illarionov [Mon, 28 Apr 2025 20:01:00 +0000 (23:01 +0300)]
Fix date type search
And determine required FileData datetime member once in search_start_cb().
Arkadiy Illarionov [Sun, 27 Apr 2025 19:24:16 +0000 (22:24 +0300)]
Simplify calculation of search date boundaries
Arkadiy Illarionov [Sun, 27 Apr 2025 12:01:07 +0000 (15:01 +0300)]
Add SearchDate to reduce code duplication
Set values only if match date enabled.
Arkadiy Illarionov [Sat, 26 Apr 2025 11:15:38 +0000 (14:15 +0300)]
Split search UI from data
Arkadiy Illarionov [Sat, 26 Apr 2025 12:32:31 +0000 (15:32 +0300)]
Drop unused TODO
Arkadiy Illarionov [Sat, 26 Apr 2025 11:34:01 +0000 (14:34 +0300)]
Fix g_strdup_printf() memory leaks in search
Arkadiy Illarionov [Fri, 25 Apr 2025 20:36:31 +0000 (23:36 +0300)]
Drop redundant SearchData::button_help member
Arkadiy Illarionov [Wed, 23 Apr 2025 18:59:21 +0000 (21:59 +0300)]
Replace MATCH_IS_BETWEEN macro with template function
Arkadiy Illarionov [Tue, 22 Apr 2025 20:59:04 +0000 (23:59 +0300)]
Fix gtk_combo_box_text_get_active_text() memory leaks
Colin Clark [Tue, 22 Apr 2025 16:55:50 +0000 (17:55 +0100)]
Fix #1708: Allow to have more OSD profiles
https://github.com/BestImageViewer/geeqie/issues/1708
- The Edit/Preferences/OSD tab now allows 4 OSD profiles.
- Minor bug fix involving color scaling.
Arkadiy Illarionov [Sun, 20 Apr 2025 11:24:51 +0000 (14:24 +0300)]
Replace defines in GPS match with constexpr
Simplify a bit.
Arkadiy Illarionov [Sun, 20 Apr 2025 10:36:11 +0000 (13:36 +0300)]
Replace mfd_list_free() with g_list_free_full()
Arkadiy Illarionov [Sat, 19 Apr 2025 18:56:36 +0000 (21:56 +0300)]
Drop unused parameters from print_window_new()
Colin Clark [Sun, 20 Apr 2025 09:29:35 +0000 (10:29 +0100)]
Fix #1722: test failure: geeqie:analysis / Untranslated Text_ preferences.cc
https://github.com/BestImageViewer/geeqie/issues/1722
The problem line is:
"Néstor Díaz Valencia <
[email protected]>"
which contains accented characters.
I do not expect the grep expression to detect accented characters as
part of an alpha-numeric string. Why it does so on another system is not
clear.
Ignore that text line.
Arkadiy Illarionov [Sat, 19 Apr 2025 15:54:49 +0000 (18:54 +0300)]
Drop unused parameters from dupe functions
Also merge pop_menu_export() and dupe_pop_menu_export_cb().
Colin Clark [Fri, 18 Apr 2025 10:30:24 +0000 (11:30 +0100)]
GTK4: Eliminate gtk_dialog_run() call
GTK4 migration
Colin Clark [Thu, 17 Apr 2025 15:35:08 +0000 (16:35 +0100)]
GTK4: Move Sort Manager new collection dialog to gtk_file_chooser
GTK4 migration
Arkadiy Illarionov [Tue, 15 Apr 2025 21:46:00 +0000 (00:46 +0300)]
Fix g_autoptr(GList) memory leak
g_autoptr(GList) doesn't free element’s data. It works like
g_list_free() not g_list_free_full().
Colin Clark [Tue, 15 Apr 2025 09:49:18 +0000 (10:49 +0100)]
GTK4: Move dupes export dialog to gtk_file_chooser
GTK4 migration
Arkadiy Illarionov [Mon, 14 Apr 2025 20:18:04 +0000 (23:18 +0300)]
Fix more memory leaks in pan-view-filter
Colin Clark [Sun, 13 Apr 2025 15:10:33 +0000 (16:10 +0100)]
Bug fix #1706: command line duplicate search
https://github.com/BestImageViewer/geeqie/issues/1706
Fix selection logic.
Arkadiy Illarionov [Sun, 13 Apr 2025 10:42:40 +0000 (13:42 +0300)]
Simplify pan_filter_ui_destroy() and pan_search_ui_destroy()
Arkadiy Illarionov [Sat, 12 Apr 2025 15:56:26 +0000 (18:56 +0300)]
Fix memory leak of PanViewFilterElement
Arkadiy Illarionov [Sat, 12 Apr 2025 15:15:48 +0000 (18:15 +0300)]
Move pan-view-filter local types and functions to anonymous namespace
Arkadiy Illarionov [Sat, 12 Apr 2025 14:45:29 +0000 (17:45 +0300)]
Drop redundant pan_filter_status()
Arkadiy Illarionov [Sat, 12 Apr 2025 14:36:18 +0000 (17:36 +0300)]
Reduce code duplication in pan_filter_toggle_cb()
Arkadiy Illarionov [Sat, 12 Apr 2025 13:55:10 +0000 (16:55 +0300)]
Simplify pan_view_list_find_kw_pattern() a bit
Arkadiy Illarionov [Sat, 12 Apr 2025 13:22:39 +0000 (16:22 +0300)]
Make GRegex parameters const
Arkadiy Illarionov [Sat, 12 Apr 2025 12:56:16 +0000 (15:56 +0300)]
Fix memory leaks after vf_file_filter_get_filter() calls
Use g_autoptr(GRegex).
Colin Clark [Sat, 12 Apr 2025 12:44:54 +0000 (13:44 +0100)]
GTK4: Change gtk_window_new to gtk_application_window_new
GTK4 migration
Colin Clark [Sat, 12 Apr 2025 12:12:07 +0000 (13:12 +0100)]
Addl fix #1706: command line duplicate search
https://github.com/BestImageViewer/geeqie/issues/1706#issuecomment-
2796909310
Additional command line option:
--dupes-export
Uses the last-created duplicates window
Selects all files in that window
Exports the data in tab-separated format
If the comparison is not yet completed, the word "Incomplete" is output
The data format is the same as for the menu item dupes/export menu item
Colin Clark [Thu, 10 Apr 2025 14:51:00 +0000 (15:51 +0100)]
Fix #1706: command line duplicate search
https://github.com/BestImageViewer/geeqie/issues/1706#issuecomment-
2792661555
Two additional command line options:
--dupes=<FOLDER>
--dupes-recurse=<FOLDER>
Arkadiy Illarionov [Mon, 7 Apr 2025 19:57:41 +0000 (22:57 +0300)]
Use enum class for UtilityPhase and UtilityType
Arkadiy Illarionov [Mon, 7 Apr 2025 20:04:02 +0000 (23:04 +0300)]
Simplify check for parent window
Arkadiy Illarionov [Mon, 7 Apr 2025 19:29:51 +0000 (22:29 +0300)]
Drop unused UtilityType::UTILITY_TYPE_CREATE_FOLDER
Value is unused since
485c5bb1ef5ddd67f9df01a1a45a6fc666243a63.
Also remove related UtilityData::show_rename_button which is always true now.
Colin Clark [Tue, 8 Apr 2025 12:40:08 +0000 (13:40 +0100)]
Remove gnome dependency from FreeBSD check
Colin Clark [Mon, 7 Apr 2025 11:02:58 +0000 (12:02 +0100)]
Bug fix: Move New Folder dialog to gtk_file_chooser_dialog
Eliminate run-time errors.
Colin Clark [Mon, 7 Apr 2025 10:18:08 +0000 (11:18 +0100)]
Move New Folder dialog to gtk_file_chooser_dialog
Arkadiy Illarionov [Sat, 5 Apr 2025 13:13:35 +0000 (16:13 +0300)]
Cleanup GSourceFunc implementations
Remove redundant casts.
Use G_SOURCE_CONTINUE/G_SOURCE_REMOVE instead of TRUE/FALSE.
Make metadata_write_idle_id local static variable.
Reduce code duplication.
Arkadiy Illarionov [Wed, 2 Apr 2025 20:15:59 +0000 (23:15 +0300)]
Simplify code related to ViewFile stars
Move common code to vf_star_next().
Make vf_stars_cb() local static and flatten a bit.
Drop redundant vf_star_do().
Colin Clark [Wed, 2 Apr 2025 10:08:42 +0000 (11:08 +0100)]
Bug fix #1692: "Hide Bars and Files" nukes toolbar customizations
https://github.com/BestImageViewer/geeqie/issues/1692
Eliminate run-time errors.
Colin Clark [Tue, 1 Apr 2025 14:34:27 +0000 (15:34 +0100)]
Fix #1692: "Hide Bars and Files" nukes toolbar customizations
https://github.com/BestImageViewer/geeqie/issues/1692
This patch works but I do not know why. It is just a guess.
There may be a better solution.
Arkadiy Illarionov [Sat, 29 Mar 2025 12:37:30 +0000 (15:37 +0300)]
Fix clang-tidy warnings
Found by clang-tidy v19.
Colin Clark [Fri, 28 Mar 2025 09:50:59 +0000 (09:50 +0000)]
Fix spaces at end of line layout errors
Colin Clark [Thu, 27 Mar 2025 12:08:07 +0000 (12:08 +0000)]
GTK4: Sort Manager and gtk_file_chooser
GTK4 migration
GtkFileChooser does not support a custom extra widget in GTK4.
To implement the Name facility, use an extra button and a text box in a
popover instead.
Colin Clark [Thu, 27 Mar 2025 11:47:32 +0000 (11:47 +0000)]
Syntax change
gtk_file_chooser_dialog_new() creates a GtkWidget, and not a
GtkFileChooserDialog.
Cast the GtkWidget to a GtkFileChooserDialog when required.
Arkadiy Illarionov [Wed, 26 Mar 2025 20:51:35 +0000 (23:51 +0300)]
Ignore third-party files in clang-tidy checks
Arkadiy Illarionov [Wed, 26 Mar 2025 20:37:59 +0000 (23:37 +0300)]
Enable clang-tidy misc-header-include-cycle check
Add third-party headers to ignore list.
Arkadiy Illarionov [Mon, 24 Mar 2025 21:17:11 +0000 (00:17 +0300)]
Drop unused parameter from save_default_layout_options_to_file()
Arkadiy Illarionov [Mon, 24 Mar 2025 21:06:43 +0000 (00:06 +0300)]
Inline shortcuts_add_close()
Also remove unused includes.
Arkadiy Illarionov [Sun, 23 Mar 2025 19:00:48 +0000 (22:00 +0300)]
Check if main toolbar is initialized before adding editors
layout_actions_setup_editors() is called twice during application startup.
Colin Clark [Sun, 23 Mar 2025 16:09:22 +0000 (16:09 +0000)]
GTK4: gtk_file_chooser
GTK4 migration
GtkFileChooser moved to a GFile-based API for GTK4.
Change files accesses to use GFile where possible.
Colin Clark [Sun, 23 Mar 2025 15:18:38 +0000 (15:18 +0000)]
GTK4: Shortcuts and gtk_file_chooser
GTK4 migration
GtkFileChooser does not support a custom extra widget in GTK4.
To implement the Name facility, use an extra button and a text box in a
popover instead.
Arkadiy Illarionov [Sat, 22 Mar 2025 19:24:30 +0000 (22:24 +0300)]
Add WRITE_FORMAT_STRING macro
Remove printf-formatting from WRITE_STRING macro.
Arkadiy Illarionov [Sun, 23 Mar 2025 09:10:44 +0000 (12:10 +0300)]
Fix memory leak after gtk_widget_get_tooltip_text() call in GTK3
Also get button_list once.
Arkadiy Illarionov [Sat, 22 Mar 2025 18:59:30 +0000 (21:59 +0300)]
Drop unused indent parameter from write_*_option() functions
Change write_bool_option() parameter to gboolean.
Add const to write_color_option() parameter.
Arkadiy Illarionov [Sat, 22 Mar 2025 14:33:48 +0000 (17:33 +0300)]
Use vector for editors list
Simplify related code.
Arkadiy Illarionov [Sat, 22 Mar 2025 12:26:03 +0000 (15:26 +0300)]
Hide editors variable