[gthumb] allow to change the current image from the edit metadata dialogs



commit 26f987f34c7d44ef8d6baa8d3eca74f7ee77a0e8
Author: Paolo Bacchilega <paobac src gnome org>
Date:   Sat Feb 1 18:03:13 2020 +0100

    allow to change the current image from the edit metadata dialogs

 data/ui/file-selection-info.ui                     |  94 +++++++++++++
 extensions/catalogs/data/ui/add-to-catalog.ui      |   9 +-
 extensions/catalogs/dlg-add-to-catalog.c           |  12 ++
 extensions/edit_metadata/dlg-edit-metadata.c       |   2 +
 extensions/edit_metadata/gth-edit-comment-dialog.c |  25 ++--
 extensions/edit_metadata/gth-edit-tags-dialog.c    |  26 +---
 gthumb/gth-file-selection-info.c                   | 146 +++++++++++++++++++++
 gthumb/gth-file-selection-info.h                   |  57 ++++++++
 gthumb/meson.build                                 |   2 +
 9 files changed, 332 insertions(+), 41 deletions(-)
---
diff --git a/data/ui/file-selection-info.ui b/data/ui/file-selection-info.ui
new file mode 100644
index 00000000..74199ac0
--- /dev/null
+++ b/data/ui/file-selection-info.ui
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.22.1 -->
+<interface>
+  <requires lib="gtk+" version="3.20"/>
+  <object class="GtkBox" id="content">
+    <property name="visible">True</property>
+    <property name="can_focus">False</property>
+    <property name="hexpand">True</property>
+    <property name="orientation">vertical</property>
+    <child>
+      <object class="GtkSeparator">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="margin_top">6</property>
+        <property name="margin_bottom">6</property>
+      </object>
+      <packing>
+        <property name="expand">False</property>
+        <property name="fill">True</property>
+        <property name="position">0</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkBox">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="spacing">6</property>
+        <child>
+          <object class="GtkButton" id="prev_button">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="tooltip_text" translatable="yes">Previous</property>
+            <child>
+              <object class="GtkImage">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="icon_name">go-previous-symbolic</property>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkLabel" id="info_label">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="wrap">True</property>
+            <property name="wrap_mode">word-char</property>
+            <property name="max_width_chars">30</property>
+            <property name="xalign">0.5</property>
+            <attributes>
+              <attribute name="weight" value="bold"/>
+            </attributes>
+          </object>
+          <packing>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="next_button">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="tooltip_text" translatable="yes">Next</property>
+            <child>
+              <object class="GtkImage">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="icon_name">go-next-symbolic</property>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">2</property>
+          </packing>
+        </child>
+      </object>
+      <packing>
+        <property name="expand">False</property>
+        <property name="fill">True</property>
+        <property name="position">1</property>
+      </packing>
+    </child>
+  </object>
+</interface>
diff --git a/extensions/catalogs/data/ui/add-to-catalog.ui b/extensions/catalogs/data/ui/add-to-catalog.ui
index 16c38c66..e93be842 100644
--- a/extensions/catalogs/data/ui/add-to-catalog.ui
+++ b/extensions/catalogs/data/ui/add-to-catalog.ui
@@ -5,7 +5,6 @@
   <object class="GtkBox" id="dialog_content">
     <property name="visible">True</property>
     <property name="can_focus">False</property>
-    <property name="border_width">5</property>
     <property name="orientation">vertical</property>
     <property name="spacing">6</property>
     <child>
@@ -100,8 +99,8 @@
       </packing>
     </child>
     <child>
-      <object class="GtkCheckButton" id="keep_open_checkbutton">
-        <property name="label" translatable="yes">_Keep the dialog open</property>
+      <object class="GtkCheckButton" id="view_destination_checkbutton">
+        <property name="label" translatable="yes">_View the destination</property>
         <property name="visible">True</property>
         <property name="can_focus">True</property>
         <property name="receives_default">False</property>
@@ -116,8 +115,8 @@
       </packing>
     </child>
     <child>
-      <object class="GtkCheckButton" id="view_destination_checkbutton">
-        <property name="label" translatable="yes">_View the destination</property>
+      <object class="GtkCheckButton" id="keep_open_checkbutton">
+        <property name="label" translatable="yes">_Keep the dialog open</property>
         <property name="visible">True</property>
         <property name="can_focus">True</property>
         <property name="receives_default">False</property>
diff --git a/extensions/catalogs/dlg-add-to-catalog.c b/extensions/catalogs/dlg-add-to-catalog.c
index 8d31e57b..52405bed 100644
--- a/extensions/catalogs/dlg-add-to-catalog.c
+++ b/extensions/catalogs/dlg-add-to-catalog.c
@@ -86,6 +86,7 @@ typedef struct {
        GtkBuilder    *builder;
        GtkWidget     *dialog;
        GtkWidget     *source_tree;
+       GtkWidget     *info;
        AddData       *add_data;
        GthFileSource *catalog_source;
        GthFileData   *new_catalog;
@@ -266,6 +267,7 @@ update_sensitivity (DialogData *data)
 {
        GFile    *selected_catalog;
        GList    *items;
+       GList    *file_data_list;
        gboolean  can_add;
 
        selected_catalog = get_selected_catalog (data);
@@ -274,6 +276,11 @@ update_sensitivity (DialogData *data)
        gtk_dialog_set_response_sensitive (GTK_DIALOG (data->dialog), GTK_RESPONSE_OK, can_add);
        gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (GET_WIDGET ("view_destination_checkbutton")), 
gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("keep_open_checkbutton"))));
        gtk_widget_set_sensitive (GET_WIDGET ("view_destination_checkbutton"), ! gtk_toggle_button_get_active 
(GTK_TOGGLE_BUTTON (GET_WIDGET ("keep_open_checkbutton"))));
+
+       file_data_list = gth_file_list_get_files (GTH_FILE_LIST (gth_browser_get_file_list (data->browser)), 
items);
+       gth_file_selection_info_set_file_list (GTH_FILE_SELECTION_INFO (data->info), file_data_list);
+
+       _g_object_list_unref (file_data_list);
        _gtk_tree_path_list_free (items);
        _g_object_unref (selected_catalog);
 }
@@ -679,6 +686,11 @@ dlg_add_to_catalog (GthBrowser *browser)
                                     NULL);
        gtk_container_add (GTK_CONTAINER (gtk_dialog_get_content_area (GTK_DIALOG (data->dialog))),
                           GET_WIDGET ("dialog_content"));
+
+       data->info = gth_file_selection_info_new ();
+       gtk_widget_show (data->info);
+       gtk_box_pack_end (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (data->dialog))), data->info, 
FALSE, FALSE, 0);
+
        gtk_dialog_add_buttons (GTK_DIALOG (data->dialog),
                                _GTK_LABEL_CLOSE, GTK_RESPONSE_CANCEL,
                                _("_Add"), GTK_RESPONSE_OK,
diff --git a/extensions/edit_metadata/dlg-edit-metadata.c b/extensions/edit_metadata/dlg-edit-metadata.c
index 422b8503..7fca6587 100644
--- a/extensions/edit_metadata/dlg-edit-metadata.c
+++ b/extensions/edit_metadata/dlg-edit-metadata.c
@@ -271,6 +271,8 @@ update_file_list (gpointer user_data)
        file_data_list = gth_file_list_get_files (GTH_FILE_LIST (gth_browser_get_file_list (data->browser)), 
items);
        loader_data->files = gth_file_data_list_to_file_list (file_data_list);
 
+       gtk_dialog_set_response_sensitive (GTK_DIALOG (data->dialog), GTK_RESPONSE_OK, loader_data->files != 
NULL);
+
        data->loader = gth_load_file_data_task_new (loader_data->files, "*");
        g_signal_connect (data->loader,
                          "completed",
diff --git a/extensions/edit_metadata/gth-edit-comment-dialog.c 
b/extensions/edit_metadata/gth-edit-comment-dialog.c
index 0d2f76f2..ceb4bd1b 100644
--- a/extensions/edit_metadata/gth-edit-comment-dialog.c
+++ b/extensions/edit_metadata/gth-edit-comment-dialog.c
@@ -29,6 +29,7 @@ struct _GthEditCommentDialogPrivate {
        GtkWidget *notebook;
        GtkWidget *save_changed_checkbutton;
        GtkWidget *keep_open_check_button;
+       GtkWidget *info;
 };
 
 
@@ -50,27 +51,14 @@ gth_edit_comment_dialog_set_file_list (GthEditMetadataDialog *base,
 {
        GthEditCommentDialog *self = GTH_EDIT_COMMENT_DIALOG (base);
        int                   n_files;
-       char                 *title;
        GList                *pages;
        GList                *scan;
 
-       n_files = g_list_length (file_list);
-
-       /* update the title */
-
-       if (n_files == 1) {
-               GthFileData *file_data = file_list->data;
-
-               /* Translators: the %s symbol in the string is a file name */
-               title = g_strdup_printf (_("%s Metadata"), g_file_info_get_display_name (file_data->info));
-       }
-       else
-               title = g_strdup_printf (g_dngettext (NULL, "%d file", "%d files", n_files), n_files);
-       gtk_window_set_title (GTK_WINDOW (self), title);
-       g_free (title);
+       gth_file_selection_info_set_file_list (GTH_FILE_SELECTION_INFO (self->priv->info), file_list);
 
        /* update the widgets */
 
+       n_files = g_list_length (file_list);
        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->priv->save_changed_checkbutton), n_files > 1);
        gtk_widget_set_sensitive (self->priv->save_changed_checkbutton, n_files > 1);
 
@@ -146,15 +134,20 @@ gth_edit_comment_dialog_init (GthEditCommentDialog *self)
 
        self->priv = gth_edit_comment_dialog_get_instance_private (self);
 
+       gtk_window_set_title (GTK_WINDOW (self), _("Comment"));
        gtk_window_set_resizable (GTK_WINDOW (self), TRUE);
        gtk_box_set_spacing (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (self))), 5);
        gtk_container_set_border_width (GTK_CONTAINER (self), 5);
 
        vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
-       gtk_container_set_border_width (GTK_CONTAINER (vbox), 5);
+       gtk_container_set_border_width (GTK_CONTAINER (vbox), 0);
        gtk_widget_show (vbox);
        gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (self))), vbox, TRUE, TRUE, 0);
 
+       self->priv->info = gth_file_selection_info_new ();
+       gtk_widget_show (self->priv->info);
+       gtk_box_pack_end (GTK_BOX (vbox), self->priv->info, FALSE, FALSE, 0);
+
        self->priv->notebook = gtk_notebook_new ();
        gtk_widget_show (self->priv->notebook);
        gtk_box_pack_start (GTK_BOX (vbox), self->priv->notebook, TRUE, TRUE, 0);
diff --git a/extensions/edit_metadata/gth-edit-tags-dialog.c b/extensions/edit_metadata/gth-edit-tags-dialog.c
index a775d0e1..644f98ab 100644
--- a/extensions/edit_metadata/gth-edit-tags-dialog.c
+++ b/extensions/edit_metadata/gth-edit-tags-dialog.c
@@ -33,6 +33,7 @@ struct _GthEditTagsDialogPrivate {
        GtkBuilder *builder;
        GtkWidget  *tags_entry;
        GtkWidget  *keep_open_check_button;
+       GtkWidget  *info;
 };
 
 
@@ -64,28 +65,12 @@ gth_edit_tags_dialog_set_file_list (GthEditMetadataDialog *base,
                                    GList                 *file_list)
 {
        GthEditTagsDialog *self = GTH_EDIT_TAGS_DIALOG (base);
-       int                n_files;
-       char              *title;
        GHashTable        *common_tags;
        GHashTable        *no_common_tags;
        GList             *common_tags_list;
        GList             *no_common_tags_list;
 
-       n_files = g_list_length (file_list);
-
-       /* update the title */
-
-       if (n_files == 1) {
-               GthFileData *file_data = file_list->data;
-
-               /* Translators: the %s symbol in the string is a file name */
-               title = g_strdup_printf (_("%s Tags"), g_file_info_get_display_name (file_data->info));
-       }
-       else
-               title = g_strdup_printf (g_dngettext (NULL, "%d file", "%d files", n_files), n_files);
-       gtk_window_set_title (GTK_WINDOW (self), title);
-
-       g_free (title);
+       gth_file_selection_info_set_file_list (GTH_FILE_SELECTION_INFO (self->priv->info), file_list);
 
        /* update the tag entry */
 
@@ -197,7 +182,7 @@ gth_edit_tags_dialog_init (GthEditTagsDialog *self)
        self->priv = gth_edit_tags_dialog_get_instance_private (self);
        self->priv->builder = _gtk_builder_new_from_file ("tag-chooser.ui", "edit_metadata");
 
-       gtk_window_set_title (GTK_WINDOW (self), _("Assign Tags"));
+       gtk_window_set_title (GTK_WINDOW (self), _("Tags"));
        gtk_window_set_resizable (GTK_WINDOW (self), TRUE);
        gtk_window_set_default_size (GTK_WINDOW (self), -1, 500);
        gtk_box_set_spacing (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (self))), 5);
@@ -209,9 +194,10 @@ gth_edit_tags_dialog_init (GthEditTagsDialog *self)
        gtk_widget_show (self->priv->tags_entry);
        gtk_box_pack_start (GTK_BOX (GET_WIDGET ("tag_entry_box")), self->priv->tags_entry, TRUE, TRUE, 0);
 
-       gtk_container_set_border_width (GTK_CONTAINER (GET_WIDGET ("content")), 5);
-
        box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
+       self->priv->info = gth_file_selection_info_new ();
+       gtk_widget_show (self->priv->info);
+       gtk_box_pack_end (GTK_BOX (box), self->priv->info, FALSE, FALSE, 0);
        gtk_box_pack_start (GTK_BOX (box), GET_WIDGET ("content"), TRUE, TRUE, 0);
        self->priv->keep_open_check_button = gtk_check_button_new_with_mnemonic (_("_Keep the dialog open"));
        gtk_widget_show (self->priv->keep_open_check_button);
diff --git a/gthumb/gth-file-selection-info.c b/gthumb/gth-file-selection-info.c
new file mode 100644
index 00000000..21033d73
--- /dev/null
+++ b/gthumb/gth-file-selection-info.c
@@ -0,0 +1,146 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+
+/*
+ *  GThumb
+ *
+ *  Copyright (C) 2020 Free Software Foundation, Inc.
+ *
+ *  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, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+#include <glib/gi18n.h>
+#include "gth-file-selection-info.h"
+
+
+#define GET_WIDGET(name) _gtk_builder_get_widget (self->priv->builder, (name))
+
+
+struct _GthFileSelectionInfoPrivate {
+       GtkBuilder *builder;
+       GthBrowser *browser;
+};
+
+
+G_DEFINE_TYPE_WITH_CODE (GthFileSelectionInfo,
+                        gth_file_selection_info,
+                        GTK_TYPE_BOX,
+                        G_ADD_PRIVATE (GthFileSelectionInfo))
+
+
+static void
+gth_file_selection_info_finalize (GObject *object)
+{
+       GthFileSelectionInfo *self;
+
+       self = GTH_FILE_SELECTION_INFO (object);
+       _g_object_unref (self->priv->builder);
+
+       G_OBJECT_CLASS (gth_file_selection_info_parent_class)->finalize (object);
+}
+
+
+static void
+gth_file_selection_info_class_init (GthFileSelectionInfoClass *klass)
+{
+       GObjectClass *object_class;
+
+       object_class = (GObjectClass*) klass;
+       object_class->finalize = gth_file_selection_info_finalize;
+}
+
+
+static GthBrowser *
+_get_browser (GthFileSelectionInfo *self)
+{
+       GtkWindow *dialog;
+
+       if (self->priv->browser != NULL)
+               return self->priv->browser;
+
+       dialog = _gtk_widget_get_toplevel_if_window (GTK_WIDGET (self));
+       if (dialog != NULL)
+               self->priv->browser = (GthBrowser *) gtk_window_get_transient_for (dialog);
+
+       return self->priv->browser;
+}
+
+
+static void
+next_button_clicked_cb (GtkButton *button,
+                       gpointer   user_data)
+{
+       GthFileSelectionInfo *self = user_data;
+
+       self->priv->browser = _get_browser (self);
+       if (self->priv->browser != NULL)
+               gth_browser_show_next_image (self->priv->browser, FALSE, FALSE);
+}
+
+
+static void
+prev_button_clicked_cb (GtkButton *button,
+                       gpointer   user_data)
+{
+       GthFileSelectionInfo *self = user_data;
+
+       self->priv->browser = _get_browser (self);
+       if (self->priv->browser != NULL)
+               gth_browser_show_prev_image (self->priv->browser, FALSE, FALSE);
+}
+
+
+static void
+gth_file_selection_info_init (GthFileSelectionInfo *self)
+{
+       self->priv = gth_file_selection_info_get_instance_private (self);
+       self->priv->builder = _gtk_builder_new_from_file ("file-selection-info.ui", NULL);
+       self->priv->browser = NULL;
+
+       gtk_box_pack_start (GTK_BOX (self), GET_WIDGET ("content"), TRUE, TRUE, 0);
+       g_signal_connect (GET_WIDGET ("next_button"), "clicked", G_CALLBACK (next_button_clicked_cb), self);
+       g_signal_connect (GET_WIDGET ("prev_button"), "clicked", G_CALLBACK (prev_button_clicked_cb), self);
+}
+
+
+GtkWidget *
+gth_file_selection_info_new (void)
+{
+       GthFileSelectionInfo *self;
+
+       self = g_object_new (GTH_TYPE_FILE_SELECTION_INFO, NULL);
+
+       return GTK_WIDGET (self);
+}
+
+
+void
+gth_file_selection_info_set_file_list (GthFileSelectionInfo    *self,
+                                      GList                    *file_list)
+{
+       char *title;
+
+       if ((file_list != NULL) && (file_list->next == NULL)) {
+               GthFileData *file_data = file_list->data;
+               title = g_strdup (g_file_info_get_display_name (file_data->info));
+       }
+       else {
+               int n_files = g_list_length (file_list);
+               title = g_strdup_printf (g_dngettext (NULL, "%d file", "%d files", n_files), n_files);
+       }
+
+       gtk_label_set_label (GTK_LABEL (GET_WIDGET ("info_label")), title);
+
+       g_free (title);
+}
diff --git a/gthumb/gth-file-selection-info.h b/gthumb/gth-file-selection-info.h
new file mode 100644
index 00000000..457760ba
--- /dev/null
+++ b/gthumb/gth-file-selection-info.h
@@ -0,0 +1,57 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+
+/*
+ *  GThumb
+ *
+ *  Copyright (C) 2020 Free Software Foundation, Inc.
+ *
+ *  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, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef GTH_FILE_SELECTION_INFO_H
+#define GTH_FILE_SELECTION_INFO_H
+
+#include <gtk/gtk.h>
+#include <gthumb.h>
+
+G_BEGIN_DECLS
+
+#define GTH_TYPE_FILE_SELECTION_INFO            (gth_file_selection_info_get_type ())
+#define GTH_FILE_SELECTION_INFO(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), 
GTH_TYPE_FILE_SELECTION_INFO, GthFileSelectionInfo))
+#define GTH_FILE_SELECTION_INFO_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), 
GTH_TYPE_FILE_SELECTION_INFO, GthFileSelectionInfoClass))
+#define GTH_IS_FILE_SELECTION_INFO(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), 
GTH_TYPE_FILE_SELECTION_INFO))
+#define GTH_IS_FILE_SELECTION_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), 
GTH_TYPE_FILE_SELECTION_INFO))
+#define GTH_FILE_SELECTION_INFO_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), 
GTH_TYPE_FILE_SELECTION_INFO, GthFileSelectionInfoClass))
+
+typedef struct _GthFileSelectionInfo GthFileSelectionInfo;
+typedef struct _GthFileSelectionInfoClass GthFileSelectionInfoClass;
+typedef struct _GthFileSelectionInfoPrivate GthFileSelectionInfoPrivate;
+
+struct _GthFileSelectionInfo {
+       GtkBox parent_instance;
+       GthFileSelectionInfoPrivate *priv;
+};
+
+struct _GthFileSelectionInfoClass {
+       GtkBoxClass parent_class;
+};
+
+GType          gth_file_selection_info_get_type        (void);
+GtkWidget *    gth_file_selection_info_new             (void);
+void           gth_file_selection_info_set_file_list   (GthFileSelectionInfo   *self,
+                                                        GList                  *file_list);
+
+G_END_DECLS
+
+#endif /* GTH_FILE_SELECTION_INFO_H */
diff --git a/gthumb/meson.build b/gthumb/meson.build
index ab25ccb0..ee44adc5 100644
--- a/gthumb/meson.build
+++ b/gthumb/meson.build
@@ -29,6 +29,7 @@ public_header_files = [
   'gth-file-list.h',
   'gth-file-properties.h',
   'gth-file-selection.h',
+  'gth-file-selection-info.h',
   'gth-file-source.h',
   'gth-file-source-vfs.h',
   'gth-file-store.h',
@@ -192,6 +193,7 @@ source_files = files(
   'gth-file-list.c',
   'gth-file-properties.c',
   'gth-file-selection.c',
+  'gth-file-selection-info.c',
   'gth-file-source.c',
   'gth-file-source-vfs.c',
   'gth-file-store.c',


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]