Hello community, here is the log from the commit of package pix for openSUSE:Factory checked in at 2020-12-13 17:30:04 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/pix (Old) and /work/SRC/openSUSE:Factory/.pix.new.2328 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pix" Sun Dec 13 17:30:04 2020 rev:21 rq:855381 version:2.6.0 Changes: -------- --- /work/SRC/openSUSE:Factory/pix/pix.changes 2020-09-29 19:03:46.077916677 +0200 +++ /work/SRC/openSUSE:Factory/.pix.new.2328/pix.changes 2020-12-13 17:30:33.416399272 +0100 @@ -1,0 +2,15 @@ +Mon Dec 7 19:46:12 UTC 2020 - andy great <[email protected]> + +- Update to version 2.6.0. + * Fix picture greyed out even if not selected + * Added backspace to list of hot keys for fullscreen mode + * Added line on how to remove image from selection + * Added Rating to filter list for ticket #104 + * gth-browser.c: Improve handling of invalid uris. + * Use debhelper 10 to allow parallel (-j) make jobs. + * Implements #74. Allow for override of permanent delete message + * Add favorites:/// to the sidebar file browser. + * l10n: Update POT + * Fix pix crashes with some XCF files. + +------------------------------------------------------------------- Old: ---- pix-2.4.11.tar.gz New: ---- pix-2.6.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ pix.spec ++++++ --- /var/tmp/diff_new_pack.sxWL5u/_old 2020-12-13 17:30:34.112399978 +0100 +++ /var/tmp/diff_new_pack.sxWL5u/_new 2020-12-13 17:30:34.116399982 +0100 @@ -17,7 +17,7 @@ Name: pix -Version: 2.4.11 +Version: 2.6.0 Release: 0 Summary: Image viewer and browser utility License: GPL-2.0-or-later ++++++ pix-2.4.11.tar.gz -> pix-2.6.0.tar.gz ++++++ ++++ 1871 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pix-2.4.11/configure.ac new/pix-2.6.0/configure.ac --- old/pix-2.4.11/configure.ac 2020-06-24 13:43:09.000000000 +0200 +++ new/pix-2.6.0/configure.ac 2020-12-01 17:32:08.000000000 +0100 @@ -1,6 +1,6 @@ m4_define([pix_major_version], [2]) -m4_define([pix_minor_version], [4]) -m4_define([pix_micro_version], [11]) +m4_define([pix_minor_version], [6]) +m4_define([pix_micro_version], [0]) m4_define([pix_version], [pix_major_version.pix_minor_version.pix_micro_version]) m4_define([pix_api_version], diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pix-2.4.11/debian/changelog new/pix-2.6.0/debian/changelog --- old/pix-2.4.11/debian/changelog 2020-06-24 13:43:09.000000000 +0200 +++ new/pix-2.6.0/debian/changelog 2020-12-01 17:32:08.000000000 +0100 @@ -1,3 +1,29 @@ +pix (2.6.0) ulyssa; urgency=medium + + [ icarter09 ] + * Removed code causing issue73 + * Added backspace to list of hot keys for fullscreen mode + * Added line on how to remove image from selection + * Added Rating to filter list for ticket #104 + + [ Michael Webster ] + * gth-browser.c: Improve handling of invalid uris. + * Use debhelper 10 to allow parallel (-j) make jobs. + + [ icarter09 ] + * Implements #74. Allow for override of permanent delete message + + [ Michael Webster ] + * Add favorites:/// to the sidebar file browser. + + [ brkeh ] + * Fix issue 28 (#123) + + [ Clement Lefebvre ] + * l10n: Update POT + + -- Clement Lefebvre <[email protected]> Tue, 01 Dec 2020 16:31:40 +0000 + pix (2.4.11) ulyana; urgency=medium * Fix app version diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pix-2.4.11/debian/compat new/pix-2.6.0/debian/compat --- old/pix-2.4.11/debian/compat 2020-06-24 13:43:09.000000000 +0200 +++ new/pix-2.6.0/debian/compat 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -9 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pix-2.4.11/debian/control new/pix-2.6.0/debian/control --- old/pix-2.4.11/debian/control 2020-06-24 13:43:09.000000000 +0200 +++ new/pix-2.6.0/debian/control 2020-12-01 17:32:08.000000000 +0100 @@ -3,7 +3,7 @@ Priority: optional Maintainer: Linux Mint <[email protected]> Build-Depends: - debhelper (>= 9) + debhelper-compat(=10) , dh-autoreconf , intltool , libexiv2-dev (>= 0.21) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pix-2.4.11/extensions/cairo_io/cairo-image-surface-xcf.c new/pix-2.6.0/extensions/cairo_io/cairo-image-surface-xcf.c --- old/pix-2.4.11/extensions/cairo_io/cairo-image-surface-xcf.c 2020-06-24 13:43:09.000000000 +0200 +++ new/pix-2.6.0/extensions/cairo_io/cairo-image-surface-xcf.c 2020-12-01 17:32:08.000000000 +0100 @@ -900,8 +900,10 @@ if (*error != NULL) goto read_error; - if (is_gimp_channel) - g_assert (in_bpp == 1); + if (is_gimp_channel && in_bpp != 1){ + printf("Error: in_bpp = %d and is_gimp_channel is true. Expected in_bpp = 1 when is_gimp_channel is true.\n", in_bpp); + goto read_error; + } if (! is_gimp_channel) layer->bpp = in_bpp; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pix-2.4.11/extensions/selections/callbacks.c new/pix-2.6.0/extensions/selections/callbacks.c --- old/pix-2.4.11/extensions/selections/callbacks.c 2020-06-24 13:43:09.000000000 +0200 +++ new/pix-2.6.0/extensions/selections/callbacks.c 2020-12-01 17:32:08.000000000 +0100 @@ -282,7 +282,7 @@ gth_embedded_dialog_set_gicon (GTH_EMBEDDED_DIALOG (extra_widget), g_file_info_get_icon (location_data->info), GTK_ICON_SIZE_DIALOG); gth_embedded_dialog_set_primary_text (GTH_EMBEDDED_DIALOG (extra_widget), g_file_info_get_display_name (location_data->info)); if (n_selection > 0) - msg = g_strdup_printf (_("Use Alt-%d to add files to this selection, Ctrl-%d to view this selection."), n_selection, n_selection); + msg = g_strdup_printf (_("Use Alt-%d to add files to this selection, Ctrl-%d to view this selection, Alt+Shift+%d to remove files from this selection"), n_selection, n_selection, n_selection); else msg = NULL; gth_embedded_dialog_set_secondary_text (GTH_EMBEDDED_DIALOG (extra_widget), msg); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pix-2.4.11/pix/gth-browser.c new/pix-2.6.0/pix/gth-browser.c --- old/pix-2.4.11/pix/gth-browser.c 2020-06-24 13:43:09.000000000 +0200 +++ new/pix-2.6.0/pix/gth-browser.c 2020-12-01 17:32:08.000000000 +0100 @@ -5362,6 +5362,7 @@ case GDK_KEY_Up: case GDK_KEY_Left: case GDK_KEY_Page_Up: + case GDK_KEY_BackSpace: gth_browser_show_prev_image (browser, FALSE, FALSE); return TRUE; @@ -6138,6 +6139,18 @@ g_free (data); } +static void +go_home_on_error (GthBrowser *browser) +{ + GFile *home; + + home = g_file_new_for_uri (get_home_uri ()); + + gth_window_set_current_page (GTH_WINDOW (browser), GTH_BROWSER_PAGE_BROWSER); + _gth_browser_load (browser, home, NULL, NULL, 0, GTH_ACTION_GO_TO, TRUE); + + g_object_unref (home); +} static void load_file_attributes_ready_cb (GObject *object, @@ -6189,6 +6202,8 @@ else { char *title; + go_home_on_error (browser); + title = file_format (_("Could not load the position \"%s\""), data->location_data->file); _gth_browser_show_error (browser, title, error); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pix-2.4.11/pix/gth-file-source-vfs.c new/pix-2.6.0/pix/gth-file-source-vfs.c --- old/pix-2.4.11/pix/gth-file-source-vfs.c 2020-06-24 13:43:09.000000000 +0200 +++ new/pix-2.6.0/pix/gth-file-source-vfs.c 2020-12-01 17:32:08.000000000 +0100 @@ -115,10 +115,20 @@ GList *list; GList *mounts; GList *scan; + const gchar * const *schemes; list = NULL; - list = gth_file_source_vfs_add_uri (list, file_source, get_home_uri (), _("Home Folder")); + // Put favorites first - if the home folder is first, it automatically expands the first + // level of its tree off the window. + GVfs *vfs = g_vfs_get_default (); + schemes = g_vfs_get_supported_uri_schemes (vfs); + if (g_strv_contains (schemes, "favorites")) + { + list = gth_file_source_vfs_add_uri (list, file_source, "favorites:///", _("Favorites")); + } + + list = gth_file_source_vfs_add_uri (list, file_source, get_home_uri (), _("Home Folder")); list = gth_file_source_vfs_add_special_dir (list, file_source, G_USER_DIRECTORY_PICTURES); list = gth_file_source_vfs_add_special_dir (list, file_source, G_USER_DIRECTORY_VIDEOS); list = gth_file_source_vfs_add_special_dir (list, file_source, G_USER_DIRECTORY_DESKTOP); @@ -834,35 +844,44 @@ int file_count; char *prompt; GtkWidget *d; + GSettings *settings; + settings = g_settings_new (PIX_MESSAGES_SCHEMA); - file_list = _g_object_list_ref (file_list); - file_count = g_list_length (file_list); - if (file_count == 1) { - GthFileData *file_data = file_list->data; - prompt = g_strdup_printf (_("Are you sure you want to permanently delete \"%s\"?"), g_file_info_get_display_name (file_data->info)); - } - else - prompt = g_strdup_printf (ngettext("Are you sure you want to permanently delete " - "the %'d selected file?", - "Are you sure you want to permanently delete " - "the %'d selected files?", file_count), - file_count); - - d = _gtk_message_dialog_new (window, - GTK_DIALOG_MODAL, - GTK_STOCK_DIALOG_QUESTION, - prompt, - _("If you delete a file, it will be permanently lost."), - GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, - GTK_STOCK_DELETE, GTK_RESPONSE_YES, - NULL); - - gtk_dialog_set_default_response (d, GTK_RESPONSE_YES); + if (g_settings_get_boolean (settings, PREF_MSG_CONFIRM_DELETION)){ - g_signal_connect (d, "response", G_CALLBACK (delete_permanently_response_cb), file_list); - gtk_widget_show (d); + file_list = _g_object_list_ref (file_list); + file_count = g_list_length (file_list); + if (file_count == 1) { + GthFileData *file_data = file_list->data; + prompt = g_strdup_printf (_("Are you sure you want to permanently delete \"%s\"?"), g_file_info_get_display_name (file_data->info)); + } + else + prompt = g_strdup_printf (ngettext("Are you sure you want to permanently delete " + "the %'d selected file?", + "Are you sure you want to permanently delete " + "the %'d selected files?", file_count), + file_count); + + d = _gtk_message_dialog_new (window, + GTK_DIALOG_MODAL, + GTK_STOCK_DIALOG_QUESTION, + prompt, + _("If you delete a file, it will be permanently lost."), + GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, + GTK_STOCK_DELETE, GTK_RESPONSE_YES, + NULL); + + gtk_dialog_set_default_response (d, GTK_RESPONSE_YES); + + g_signal_connect (d, "response", G_CALLBACK (delete_permanently_response_cb), file_list); + gtk_widget_show (d); + + g_free (prompt); + } + else + delete_file_permanently (window, file_list); - g_free (prompt); + g_object_unref (settings); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pix-2.4.11/pix/gth-grid-view.c new/pix-2.6.0/pix/gth-grid-view.c --- old/pix-2.4.11/pix/gth-grid-view.c 2020-06-24 13:43:09.000000000 +0200 +++ new/pix-2.6.0/pix/gth-grid-view.c 2020-12-01 17:32:08.000000000 +0100 @@ -2692,7 +2692,6 @@ self->priv->last_selected_item = item; } - gth_file_view_set_cursor (GTH_FILE_VIEW (self), pos); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pix-2.4.11/pix/gth-main-default-tests.c new/pix-2.6.0/pix/gth-main-default-tests.c --- old/pix-2.4.11/pix/gth-main-default-tests.c 2020-06-24 13:43:09.000000000 +0200 +++ new/pix-2.6.0/pix/gth-main-default-tests.c 2020-12-01 17:32:08.000000000 +0100 @@ -213,7 +213,7 @@ GDestroyNotify *data_destroy_func) { GthMetadata *metadata; - + metadata = (GthMetadata *) g_file_info_get_attribute_object (file->info, "general::description"); if (metadata != NULL) *data = gth_metadata_get_formatted (metadata); @@ -223,6 +223,25 @@ return 0; } +static int +get_embedded_rating_for_test (GthTest *test, + GthFileData *file, + gconstpointer *data, + GDestroyNotify *data_destroy_func) +{ + GthMetadata *metadata; + + metadata = (GthMetadata *) g_file_info_get_attribute_object (file->info, "general::rating"); + if (metadata != NULL) { + int rating; + + sscanf (gth_metadata_get_raw (metadata), "%d", &rating); + return rating; + } + + return 0; +} + void gth_main_register_default_tests (void) @@ -323,4 +342,13 @@ "attributes", "general::tags", "display-name", _("Tag (embedded)"), NULL); + gth_main_register_object (GTH_TYPE_TEST, + "general::rating", + GTH_TYPE_TEST_SIMPLE, + "attributes", "general::rating", + "display-name", _("Rating"), + "data-type", GTH_TEST_DATA_TYPE_INT, + "get-data-func", get_embedded_rating_for_test, + "max-int", 5, + NULL); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pix-2.4.11/pix/gth-test-simple.c new/pix-2.6.0/pix/gth-test-simple.c --- old/pix-2.4.11/pix/gth-test-simple.c 2020-06-24 13:43:09.000000000 +0200 +++ new/pix-2.6.0/pix/gth-test-simple.c 2020-12-01 17:32:08.000000000 +0100 @@ -1,7 +1,7 @@ /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* - * Pix + * GThumb * * Copyright (C) 2008 Free Software Foundation, Inc. * @@ -19,6 +19,7 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ +#include <math.h> #include <config.h> #include <stdlib.h> #include <string.h> @@ -55,7 +56,9 @@ GthOpData int_op_data[] = { { N_("is lower than"), GTH_TEST_OP_LOWER, FALSE }, { N_("is greater than"), GTH_TEST_OP_GREATER, FALSE }, - { N_("is equal to"), GTH_TEST_OP_EQUAL, FALSE } + { N_("is equal to"), GTH_TEST_OP_EQUAL, FALSE }, + { N_("is greater than or equal to"), GTH_TEST_OP_LOWER, TRUE }, + { N_("is lower than or equal to"), GTH_TEST_OP_GREATER, TRUE } }; GthOpData date_op_data[] = { @@ -79,28 +82,35 @@ enum { - PROP_0, - PROP_DATA_TYPE, - PROP_DATA_AS_STRING, - PROP_DATA_AS_INT, - PROP_DATA_AS_DATE, - PROP_GET_DATA, - PROP_OP, - PROP_NEGATIVE + PROP_0, + PROP_DATA_TYPE, + PROP_DATA_AS_STRING, + PROP_DATA_AS_INT, + PROP_DATA_AS_SIZE, + PROP_DATA_AS_DOUBLE, + PROP_DATA_AS_DATE, + PROP_GET_DATA, + PROP_OP, + PROP_NEGATIVE, + PROP_MAX_INT, + PROP_MAX_DOUBLE }; -struct _GthTestSimplePrivate -{ +struct _GthTestSimplePrivate { GthTestDataType data_type; union { - char *s; - gint64 i; - GDate *date; + char *s; + int i; + guint64 size; + GDate *date; + gdouble f; } data; GthTestGetData get_data; GthTestOp op; gboolean negative; + gint64 max_int; + double max_double; GPatternSpec *pattern; gboolean has_focus; GtkWidget *text_entry; @@ -109,24 +119,26 @@ GtkWidget *date_op_combo_box; GtkWidget *size_combo_box; GtkWidget *time_selector; + GtkWidget *spinbutton; }; -static DomDomizableInterface* dom_domizable_parent_iface = NULL; +static DomDomizableInterface *dom_domizable_parent_iface = NULL; static GthDuplicableInterface *gth_duplicable_parent_iface = NULL; -static void gth_test_simple_dom_domizable_interface_init (DomDomizableInterface * iface); +static void gth_test_simple_dom_domizable_interface_init (DomDomizableInterface *iface); static void gth_test_simple_gth_duplicable_interface_init (GthDuplicableInterface *iface); G_DEFINE_TYPE_WITH_CODE (GthTestSimple, gth_test_simple, GTH_TYPE_TEST, + G_ADD_PRIVATE (GthTestSimple) G_IMPLEMENT_INTERFACE (DOM_TYPE_DOMIZABLE, - gth_test_simple_dom_domizable_interface_init) + gth_test_simple_dom_domizable_interface_init) G_IMPLEMENT_INTERFACE (GTH_TYPE_DUPLICABLE, - gth_test_simple_gth_duplicable_interface_init)) + gth_test_simple_gth_duplicable_interface_init)) static void @@ -162,25 +174,14 @@ test = GTH_TEST_SIMPLE (object); - if (test->priv != NULL) { - _gth_test_simple_free_data (test); - if (test->priv->pattern != NULL) - g_pattern_spec_free (test->priv->pattern); - g_free (test->priv); - test->priv = NULL; - } + _gth_test_simple_free_data (test); + if (test->priv->pattern != NULL) + g_pattern_spec_free (test->priv->pattern); G_OBJECT_CLASS (gth_test_simple_parent_class)->finalize (object); } -static GtkWidget * -create_control_for_integer (GthTestSimple *test) -{ - return NULL; -} - - static gboolean text_entry_focus_in_event_cb (GtkEntry *entry, GdkEventFocus *event, @@ -228,6 +229,129 @@ } +static void +spinbutton_changed_cb (GtkSpinButton *spinbutton, + GthTestSimple *test) +{ + gth_test_update_from_control (GTH_TEST (test), NULL); + gth_test_changed (GTH_TEST (test)); +} + + +static void +focus_event_cb (GtkWidget *widget, + GdkEvent *event, + GthTestSimple *test) +{ + gth_test_update_from_control (GTH_TEST (test), NULL); + gth_test_changed (GTH_TEST (test)); +} + + +static GtkWidget * +create_control_for_integer (GthTestSimple *test) +{ + GtkWidget *control; + int i, op_idx; + + control = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); + + /* text operation combo box */ + + test->priv->text_op_combo_box = gtk_combo_box_text_new (); + gtk_widget_show (test->priv->text_op_combo_box); + + op_idx = 0; + for (i = 0; i < G_N_ELEMENTS (int_op_data); i++) { + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (test->priv->text_op_combo_box), + _(int_op_data[i].name)); + if ((int_op_data[i].op == test->priv->op) && (int_op_data[i].negative == test->priv->negative)) + op_idx = i; + } + gtk_combo_box_set_active (GTK_COMBO_BOX (test->priv->text_op_combo_box), op_idx); + + g_signal_connect (G_OBJECT (test->priv->text_op_combo_box), + "changed", + G_CALLBACK (size_op_combo_box_changed_cb), + test); + + /* spin button */ + + test->priv->spinbutton = gtk_spin_button_new_with_range (0, test->priv->max_int, 1); + gtk_spin_button_set_value (GTK_SPIN_BUTTON (test->priv->spinbutton), 0); + gtk_widget_show (test->priv->spinbutton); + + g_signal_connect (G_OBJECT (test->priv->spinbutton), + "value-changed", + G_CALLBACK (spinbutton_changed_cb), + test); + g_signal_connect (G_OBJECT (test->priv->spinbutton), + "activate", + G_CALLBACK (size_text_entry_activate_cb), + test); + g_signal_connect (G_OBJECT (test->priv->spinbutton), + "focus-in-event", + G_CALLBACK (focus_event_cb), + test); + g_signal_connect (G_OBJECT (test->priv->spinbutton), + "focus-out-event", + G_CALLBACK (focus_event_cb), + test); + + /**/ + + gtk_box_pack_start (GTK_BOX (control), test->priv->text_op_combo_box, FALSE, FALSE, 0); + gtk_box_pack_start (GTK_BOX (control), test->priv->spinbutton, FALSE, FALSE, 0); + + return control; +} + +static GtkWidget * +create_control_for_double (GthTestSimple *test) +{ + GtkWidget *control; + int i, op_idx; + + control = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); + + /* text operation combo box */ + + test->priv->text_op_combo_box = gtk_combo_box_text_new (); + gtk_widget_show (test->priv->text_op_combo_box); + + op_idx = 0; + for (i = 0; i < G_N_ELEMENTS (int_op_data); i++) { + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (test->priv->text_op_combo_box), + _(int_op_data[i].name)); + if ((int_op_data[i].op == test->priv->op) && (int_op_data[i].negative == test->priv->negative)) + op_idx = i; + } + gtk_combo_box_set_active (GTK_COMBO_BOX (test->priv->text_op_combo_box), op_idx); + + g_signal_connect (G_OBJECT (test->priv->text_op_combo_box), + "changed", + G_CALLBACK (size_op_combo_box_changed_cb), + test); + + /* spin button */ + + test->priv->spinbutton = gtk_spin_button_new_with_range (0, test->priv->max_double, 0.01); + gtk_spin_button_set_value (GTK_SPIN_BUTTON (test->priv->spinbutton), test->priv->data.f); + gtk_widget_show (test->priv->spinbutton); + + g_signal_connect (G_OBJECT (test->priv->spinbutton), + "value-changed", + G_CALLBACK (spinbutton_changed_cb), + test); + + /**/ + + gtk_box_pack_start (GTK_BOX (control), test->priv->text_op_combo_box, FALSE, FALSE, 0); + gtk_box_pack_start (GTK_BOX (control), test->priv->spinbutton, FALSE, FALSE, 0); + + return control; +} + static GtkWidget * create_control_for_size (GthTestSimple *test) { @@ -284,11 +408,11 @@ for (i = 0; i < G_N_ELEMENTS (size_data); i++) { gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (test->priv->size_combo_box), _(size_data[i].name)); - if (! size_set && ((i == G_N_ELEMENTS (size_data) - 1) || (test->priv->data.i < size_data[i + 1].size))) { + if (! size_set && ((i == G_N_ELEMENTS (size_data) - 1) || (test->priv->data.size < size_data[i + 1].size))) { char *value; size_idx = i; - value = g_strdup_printf ("%.2f", (double) test->priv->data.i / size_data[i].size); + value = g_strdup_printf ("%.2f", (double) test->priv->data.size / size_data[i].size); gtk_entry_set_text (GTK_ENTRY (test->priv->text_entry), value); g_free (value); size_set = TRUE; @@ -487,6 +611,10 @@ case GTH_TEST_DATA_TYPE_DATE: control = create_control_for_date (GTH_TEST_SIMPLE (test)); break; + + case GTH_TEST_DATA_TYPE_DOUBLE: + control = create_control_for_double (GTH_TEST_SIMPLE (test)); + break; } return control; @@ -577,6 +705,59 @@ static gboolean +test_size (GthTestSimple *test, + guint64 value) +{ + gboolean result = FALSE; + + switch (test->priv->op) { + case GTH_TEST_OP_EQUAL: + result = (value == test->priv->data.size); + break; + + case GTH_TEST_OP_LOWER: + result = (value < test->priv->data.size); + break; + + case GTH_TEST_OP_GREATER: + result = (value > test->priv->data.size); + break; + + default: + break; + } + + return result; +} + + +static gboolean +test_double (GthTestSimple *test, + gdouble value) +{ + gboolean result = FALSE; + + switch (test->priv->op) { + case GTH_TEST_OP_EQUAL: + result = FLOAT_EQUAL (value, test->priv->data.f); + break; + + case GTH_TEST_OP_LOWER: + result = (value < test->priv->data.f); + break; + + case GTH_TEST_OP_GREATER: + result = (value > test->priv->data.f); + break; + + default: + break; + } + return result; +} + + +static gboolean test_date (GthTestSimple *test, GDate *date) { @@ -629,6 +810,30 @@ } +static guint64 +_gth_test_simple_get_size (GthTestSimple *test, + GthFileData *file) +{ + guint64 value; + + test->priv->get_data (GTH_TEST (test), file, (gpointer)&value, NULL); + + return value; +} + + +static gdouble +_gth_test_simple_get_double (GthTestSimple *test, + GthFileData *file) +{ + gdouble value; + + test->priv->get_data (GTH_TEST (test), file, (gpointer)&value, NULL); + + return value; +} + + static GthMatch gth_test_simple_real_match (GthTest *test, GthFileData *file) @@ -646,10 +851,17 @@ break; case GTH_TEST_DATA_TYPE_INT: - case GTH_TEST_DATA_TYPE_SIZE: result = test_integer (test_simple, _gth_test_simple_get_int (test_simple, file)); break; + case GTH_TEST_DATA_TYPE_SIZE: + result = test_size (test_simple, _gth_test_simple_get_size (test_simple, file)); + break; + + case GTH_TEST_DATA_TYPE_DOUBLE: + result = test_double (test_simple, _gth_test_simple_get_double (test_simple, file)); + break; + case GTH_TEST_DATA_TYPE_STRING: data = _gth_test_simple_get_pointer (test_simple, file, &data_destroy_func); result = test_string (test_simple, data); @@ -665,7 +877,7 @@ break; } - if (test_simple->priv->negative) + if (test_simple->priv->negative) result = ! result; return result ? GTH_MATCH_YES : GTH_MATCH_NO; @@ -696,12 +908,33 @@ break; case GTH_TEST_DATA_TYPE_INT: + dom_element_set_attribute (element, "op", _g_enum_type_get_value (GTH_TYPE_TEST_OP, self->priv->op)->value_nick); + if (self->priv->op != GTH_TEST_OP_NONE) { + if (self->priv->negative) + dom_element_set_attribute (element, "negative", self->priv->negative ? "true" : "false"); + value = g_strdup_printf ("%d", self->priv->data.i); + dom_element_set_attribute (element, "value", value); + g_free (value); + } + break; + case GTH_TEST_DATA_TYPE_SIZE: dom_element_set_attribute (element, "op", _g_enum_type_get_value (GTH_TYPE_TEST_OP, self->priv->op)->value_nick); if (self->priv->op != GTH_TEST_OP_NONE) { if (self->priv->negative) dom_element_set_attribute (element, "negative", self->priv->negative ? "true" : "false"); - value = g_strdup_printf ("%" G_GINT64_FORMAT, self->priv->data.i); + value = g_strdup_printf ("%" G_GUINT64_FORMAT, self->priv->data.size); + dom_element_set_attribute (element, "value", value); + g_free (value); + } + break; + + case GTH_TEST_DATA_TYPE_DOUBLE: + dom_element_set_attribute (element, "op", _g_enum_type_get_value (GTH_TYPE_TEST_OP, self->priv->op)->value_nick); + if (self->priv->op != GTH_TEST_OP_NONE) { + if (self->priv->negative) + dom_element_set_attribute (element, "negative", self->priv->negative ? "true" : "false"); + value = g_strdup_printf ("%f", self->priv->data.f); dom_element_set_attribute (element, "value", value); g_free (value); } @@ -770,6 +1003,10 @@ gth_test_simple_set_data_as_int (self, atol (value)); break; + case GTH_TEST_DATA_TYPE_DOUBLE: + gth_test_simple_set_data_as_double (self, atof (value)); + break; + case GTH_TEST_DATA_TYPE_SIZE: gth_test_simple_set_data_as_size (self, atol (value)); break; @@ -805,13 +1042,22 @@ op_data = int_op_data[gtk_combo_box_get_active (GTK_COMBO_BOX (self->priv->text_op_combo_box))]; self->priv->op = op_data.op; self->priv->negative = op_data.negative; - gth_test_simple_set_data_as_int (self, atol (gtk_entry_get_text (GTK_ENTRY (self->priv->text_entry)))); + gth_test_simple_set_data_as_int (self, gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (self->priv->spinbutton))); - if (self->priv->data.i == 0) { - if (error != NULL) - *error = g_error_new (GTH_TEST_ERROR, 0, _("The test definition is incomplete")); - return FALSE; - } + return TRUE; +} + + +static gboolean +update_from_control_for_double (GthTestSimple *self, + GError **error) +{ + GthOpData op_data; + + op_data = int_op_data[gtk_combo_box_get_active (GTK_COMBO_BOX (self->priv->text_op_combo_box))]; + self->priv->op = op_data.op; + self->priv->negative = op_data.negative; + gth_test_simple_set_data_as_double (self, gtk_spin_button_get_value (GTK_SPIN_BUTTON (self->priv->spinbutton))); return TRUE; } @@ -833,7 +1079,7 @@ size = value * size_data[gtk_combo_box_get_active (GTK_COMBO_BOX (self->priv->size_combo_box))].size; gth_test_simple_set_data_as_size (self, size); - if ((self->priv->data.i == 0) && (self->priv->op == GTH_TEST_OP_LOWER)) { + if ((self->priv->data.size == 0) && (self->priv->op == GTH_TEST_OP_LOWER)) { if (error != NULL) *error = g_error_new (GTH_TEST_ERROR, 0, _("The test definition is incomplete")); return FALSE; @@ -904,6 +1150,10 @@ retval = update_from_control_for_integer (self, error); break; + case GTH_TEST_DATA_TYPE_DOUBLE: + retval = update_from_control_for_double (self, error); + break; + case GTH_TEST_DATA_TYPE_SIZE: retval = update_from_control_for_size (self, error); break; @@ -926,6 +1176,34 @@ } +static void +gth_test_simple_real_focus_control (GthTest *base) +{ + GthTestSimple *self; + + self = GTH_TEST_SIMPLE (base); + + switch (self->priv->data_type) { + case GTH_TEST_DATA_TYPE_INT: + case GTH_TEST_DATA_TYPE_DOUBLE: + gtk_widget_grab_focus (self->priv->spinbutton); + break; + + case GTH_TEST_DATA_TYPE_STRING: + case GTH_TEST_DATA_TYPE_SIZE: + gtk_widget_grab_focus (self->priv->text_entry); + break; + + case GTH_TEST_DATA_TYPE_DATE: + gth_time_selector_focus (GTH_TIME_SELECTOR (self->priv->time_selector)); + break; + + default: + break; + } +} + + static GObject * gth_test_simple_real_duplicate (GthDuplicable *duplicable) { @@ -947,8 +1225,12 @@ gth_test_simple_set_data_as_int (new_test, test->priv->data.i); break; + case GTH_TEST_DATA_TYPE_DOUBLE: + gth_test_simple_set_data_as_double (new_test, test->priv->data.f); + break; + case GTH_TEST_DATA_TYPE_SIZE: - gth_test_simple_set_data_as_size (new_test, test->priv->data.i); + gth_test_simple_set_data_as_size (new_test, test->priv->data.size); break; case GTH_TEST_DATA_TYPE_STRING: @@ -963,6 +1245,8 @@ new_test->priv->get_data = test->priv->get_data; new_test->priv->op = test->priv->op; new_test->priv->negative = test->priv->negative; + new_test->priv->max_int = test->priv->max_int; + new_test->priv->max_double = test->priv->max_double; return (GObject *) new_test; } @@ -993,6 +1277,16 @@ test->priv->data.i = g_value_get_int (value); break; + case PROP_DATA_AS_SIZE: + _gth_test_simple_free_data (test); + test->priv->data.size = g_value_get_uint64 (value); + break; + + case PROP_DATA_AS_DOUBLE: + _gth_test_simple_free_data (test); + test->priv->data.f = g_value_get_double (value); + break; + case PROP_DATA_AS_DATE: _gth_test_simple_free_data (test); test->priv->data.date = g_value_dup_boxed (value); @@ -1010,6 +1304,14 @@ test->priv->negative = g_value_get_boolean (value); break; + case PROP_MAX_INT: + test->priv->max_int = g_value_get_int (value); + break; + + case PROP_MAX_DOUBLE: + test->priv->max_double = g_value_get_double (value); + break; + default: break; } @@ -1039,6 +1341,14 @@ g_value_set_int (value, test->priv->data.i); break; + case PROP_DATA_AS_SIZE: + g_value_set_uint64 (value, test->priv->data.size); + break; + + case PROP_DATA_AS_DOUBLE: + g_value_set_double (value, test->priv->data.f); + break; + case PROP_DATA_AS_DATE: g_value_set_boxed (value, test->priv->data.date); break; @@ -1055,6 +1365,14 @@ g_value_set_boolean (value, test->priv->negative); break; + case PROP_MAX_INT: + g_value_set_int (value, test->priv->max_int); + break; + + case PROP_MAX_DOUBLE: + g_value_set_double (value, test->priv->max_double); + break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; @@ -1076,6 +1394,7 @@ test_class = (GthTestClass *) class; test_class->create_control = gth_test_simple_real_create_control; test_class->update_from_control = gth_test_simple_real_update_from_control; + test_class->focus_control = gth_test_simple_real_focus_control; test_class->match = gth_test_simple_real_match; /* properties */ @@ -1105,6 +1424,24 @@ 0, G_PARAM_READWRITE)); g_object_class_install_property (object_class, + PROP_DATA_AS_SIZE, + g_param_spec_uint64 ("data-as-size", + "Data as size", + "The data value as an unsigned long integer", + 0, + G_MAXUINT64, + 0, + G_PARAM_READWRITE)); + g_object_class_install_property (object_class, + PROP_DATA_AS_DOUBLE, + g_param_spec_double ("data-as-double", + "Data as double", + "The data value as a double precision real number", + G_MINDOUBLE, + G_MAXDOUBLE, + 1.0, + G_PARAM_READWRITE)); + g_object_class_install_property (object_class, PROP_DATA_AS_DATE, g_param_spec_boxed ("data-as-date", "Data as date", @@ -1132,6 +1469,24 @@ "Whether to negate the test result", FALSE, G_PARAM_READWRITE)); + g_object_class_install_property (object_class, + PROP_MAX_INT, + g_param_spec_int ("max-int", + "Max integer", + "Max value for integers", + G_MININT, + G_MAXINT, + 0, + G_PARAM_READWRITE)); + g_object_class_install_property (object_class, + PROP_MAX_DOUBLE, + g_param_spec_int ("max-double", + "Max double", + "Max value for doubles", + G_MININT, + G_MAXINT, + 0.0, + G_PARAM_READWRITE)); } @@ -1155,7 +1510,22 @@ static void gth_test_simple_init (GthTestSimple *test) { - test->priv = g_new0 (GthTestSimplePrivate, 1); + test->priv = gth_test_simple_get_instance_private (test); + test->priv->data_type = GTH_TEST_DATA_TYPE_NONE; + test->priv->get_data = NULL; + test->priv->op = GTH_TEST_OP_NONE; + test->priv->negative = FALSE; + test->priv->max_int = 0; + test->priv->max_double = 0; + test->priv->pattern = NULL; + test->priv->has_focus = FALSE; + test->priv->text_entry = NULL; + test->priv->text_op_combo_box = NULL; + test->priv->size_op_combo_box = NULL; + test->priv->date_op_combo_box = NULL; + test->priv->size_combo_box = NULL; + test->priv->time_selector = NULL; + test->priv->spinbutton = NULL; } @@ -1171,7 +1541,7 @@ void gth_test_simple_set_data_as_int (GthTestSimple *test, - guint64 i) + guint64 i) { _gth_test_simple_free_data (test); test->priv->data_type = GTH_TEST_DATA_TYPE_INT; @@ -1180,12 +1550,22 @@ void +gth_test_simple_set_data_as_double (GthTestSimple *test, + gdouble f) +{ + _gth_test_simple_free_data (test); + test->priv->data_type = GTH_TEST_DATA_TYPE_DOUBLE; + test->priv->data.f = f; +} + + +void gth_test_simple_set_data_as_size (GthTestSimple *test, guint64 i) { _gth_test_simple_free_data (test); test->priv->data_type = GTH_TEST_DATA_TYPE_SIZE; - test->priv->data.i = i; + test->priv->data.size = i; } @@ -1201,3 +1581,4 @@ else g_date_clear (test->priv->data.date, 1); } + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pix-2.4.11/pix/gth-test-simple.h new/pix-2.6.0/pix/gth-test-simple.h --- old/pix-2.4.11/pix/gth-test-simple.h 2020-06-24 13:43:09.000000000 +0200 +++ new/pix-2.6.0/pix/gth-test-simple.h 2020-12-01 17:32:08.000000000 +0100 @@ -40,7 +40,7 @@ typedef struct _GthTestSimplePrivate GthTestSimplePrivate; typedef struct _GthTestSimpleClass GthTestSimpleClass; -typedef gint64 (*GthTestGetData) (GthTest *test, +typedef int (*GthTestGetData) (GthTest *test, GthFileData *file, gpointer *data, GDestroyNotify *data_destroy_func); @@ -50,6 +50,7 @@ GTH_TEST_DATA_TYPE_INT, GTH_TEST_DATA_TYPE_SIZE, GTH_TEST_DATA_TYPE_STRING, + GTH_TEST_DATA_TYPE_DOUBLE, GTH_TEST_DATA_TYPE_DATE } GthTestDataType; @@ -73,6 +74,8 @@ guint64 i); void gth_test_simple_set_data_as_date (GthTestSimple *test, GDate *date); +void gth_test_simple_set_data_as_double (GthTestSimple *test, + gdouble f); G_END_DECLS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pix-2.4.11/pix/gth-test.c new/pix-2.6.0/pix/gth-test.c --- old/pix-2.4.11/pix/gth-test.c 2020-06-24 13:43:09.000000000 +0200 +++ new/pix-2.6.0/pix/gth-test.c 2020-12-01 17:32:08.000000000 +0100 @@ -69,6 +69,7 @@ G_DEFINE_TYPE_WITH_CODE (GthTest, gth_test, G_TYPE_OBJECT, + G_ADD_PRIVATE (GthTest) G_IMPLEMENT_INTERFACE (GTH_TYPE_DUPLICABLE, gth_test_gth_duplicable_interface_init)) @@ -112,7 +113,7 @@ static void -base_reset (GthTest *self) +base_focus_control (GthTest *self) { /* void */ } @@ -196,13 +197,13 @@ static void gth_test_set_property (GObject *object, - guint property_id, - const GValue *value, - GParamSpec *pspec) + guint property_id, + const GValue *value, + GParamSpec *pspec) { GthTest *self; - self = GTH_TEST (object); + self = GTH_TEST (object); switch (property_id) { case PROP_ID: @@ -234,13 +235,13 @@ static void gth_test_get_property (GObject *object, - guint property_id, - GValue *value, - GParamSpec *pspec) + guint property_id, + GValue *value, + GParamSpec *pspec) { GthTest *self; - self = GTH_TEST (object); + self = GTH_TEST (object); switch (property_id) { case PROP_ID: @@ -277,7 +278,7 @@ klass->get_attributes = base_get_attributes; klass->create_control = base_create_control; klass->update_from_control = base_update_from_control; - klass->reset = base_reset; + klass->focus_control = base_focus_control; klass->match = base_match; klass->set_file_list = base_set_file_list; klass->get_next = base_get_next; @@ -287,31 +288,31 @@ g_object_class_install_property (object_class, PROP_ID, g_param_spec_string ("id", - "ID", - "The object id", - NULL, - G_PARAM_READWRITE)); + "ID", + "The object id", + NULL, + G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_ATTRIBUTES, g_param_spec_string ("attributes", - "Attributes", - "The attributes required to perform this test", - NULL, - G_PARAM_READWRITE)); + "Attributes", + "The attributes required to perform this test", + NULL, + G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_DISPLAY_NAME, g_param_spec_string ("display-name", - "Display name", - "The user visible name", - NULL, - G_PARAM_READWRITE)); + "Display name", + "The user visible name", + NULL, + G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_VISIBLE, g_param_spec_boolean ("visible", - "Visible", - "Whether this test should be visible in the filter bar", - FALSE, - G_PARAM_READWRITE)); + "Visible", + "Whether this test should be visible in the filter bar", + FALSE, + G_PARAM_READWRITE)); /* signals */ @@ -395,21 +396,18 @@ return GTH_TEST_GET_CLASS (self)->update_from_control (self, error); } - void -gth_test_changed (GthTest *self) +gth_test_focus_control (GthTest *self) { - g_signal_emit (self, gth_test_signals[CHANGED], 0); + GTH_TEST_GET_CLASS (self)->focus_control (self); } - void -gth_test_reset (GthTest *self) +gth_test_changed (GthTest *self) { - GTH_TEST_GET_CLASS (self)->reset (self); + g_signal_emit (self, gth_test_signals[CHANGED], 0); } - GthMatch gth_test_match (GthTest *self, GthFileData *fdata) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pix-2.4.11/pix/gth-test.h new/pix-2.6.0/pix/gth-test.h --- old/pix-2.4.11/pix/gth-test.h 2020-06-24 13:43:09.000000000 +0200 +++ new/pix-2.6.0/pix/gth-test.h 2020-12-01 17:32:08.000000000 +0100 @@ -86,7 +86,7 @@ GtkWidget * (*create_control) (GthTest *test); gboolean (*update_from_control) (GthTest *test, GError **error); - void (*reset) (GthTest *test); + void (*focus_control) (GthTest *test); GthMatch (*match) (GthTest *test, GthFileData *fdata); void (*set_file_list) (GthTest *test, @@ -105,6 +105,7 @@ GtkWidget * gth_test_create_control (GthTest *test); gboolean gth_test_update_from_control (GthTest *test, GError **error); +void gth_test_focus_control (GthTest *test); void gth_test_changed (GthTest *test); GthMatch gth_test_match (GthTest *test, GthFileData *fdata); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pix-2.4.11/pix/gth-time-selector.c new/pix-2.6.0/pix/gth-time-selector.c --- old/pix-2.4.11/pix/gth-time-selector.c 2020-06-24 13:43:09.000000000 +0200 +++ new/pix-2.6.0/pix/gth-time-selector.c 2020-12-01 17:32:08.000000000 +0100 @@ -72,6 +72,15 @@ G_OBJECT_CLASS (gth_time_selector_parent_class)->finalize (object); } +static gboolean +gth_time_selector_real_focus (GtkWidget *base, + GtkDirectionType direction) +{ + GthTimeSelector *self = GTH_TIME_SELECTOR (base); + gtk_widget_grab_focus (self->priv->date_entry); + return TRUE; +} + static void gth_time_selector_class_init (GthTimeSelectorClass *class) @@ -620,3 +629,9 @@ else gth_time_clear (date_time->time); } + +void +gth_time_selector_focus (GthTimeSelector *self) +{ + gth_time_selector_real_focus (GTK_WIDGET (self), GTK_DIR_RIGHT); +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pix-2.4.11/pix/gth-time-selector.h new/pix-2.6.0/pix/gth-time-selector.h --- old/pix-2.4.11/pix/gth-time-selector.h 2020-06-24 13:43:09.000000000 +0200 +++ new/pix-2.6.0/pix/gth-time-selector.h 2020-12-01 17:32:08.000000000 +0100 @@ -64,6 +64,7 @@ const char *exif_date); void gth_time_selector_get_value (GthTimeSelector *self, GthDateTime *date_time); +void gth_time_selector_focus (GthTimeSelector *self); G_END_DECLS _______________________________________________ openSUSE Commits mailing list -- [email protected] To unsubscribe, email [email protected] List Netiquette: https://en.opensuse.org/openSUSE:Mailing_list_netiquette List Archives: https://lists.opensuse.org/archives/list/[email protected]
