Revert "filechooser: Set date and time after cell is a child of filechooserwidget"
authorCorey Berla <corey@berla.me>
Fri, 21 Apr 2023 03:20:10 +0000 (20:20 -0700)
committerCorey Berla <corey@berla.me>
Fri, 21 Apr 2023 15:14:24 +0000 (08:14 -0700)
This reverts commit 2a70093a309481cf633086a5e8f0c8bc6d2c89f0.

This fix was incomplete, the actual fix is to use signal factory.

gtk/gtkfilechoosercell.c
gtk/gtkfilechooserwidget.c
gtk/gtkfilechooserwidgetprivate.h
gtk/ui/gtkfilechooserwidget.ui

index 873b8970eb79971123d9019936dfb564e28b1bac..ee97002d6c17d8d6f2b5c929ce88203a9dff4da4 100644 (file)
@@ -28,7 +28,6 @@
 #include "gtkgestureclick.h"
 #include "gtkgesturelongpress.h"
 #include "gtkicontheme.h"
-#include "gtklabel.h"
 #include "gtkselectionmodel.h"
 #include "gtkfilechooserutils.h"
 #include "gtkfilechooserwidgetprivate.h"
@@ -40,8 +39,6 @@ struct _GtkFileChooserCell
   GFileInfo *item;
   GtkColumnViewCell *list_item;
 
-  gboolean date_column;
-
   gboolean show_time;
 };
 
@@ -54,8 +51,7 @@ G_DEFINE_TYPE (GtkFileChooserCell, gtk_file_chooser_cell, GTK_TYPE_WIDGET)
 
 enum
 {
-  PROP_DATE_COLUMN = 1,
-  PROP_POSITION,
+  PROP_POSITION = 1,
   PROP_ITEM,
   PROP_SHOW_TIME,
   PROP_LIST_ITEM,
@@ -164,23 +160,6 @@ gtk_file_chooser_cell_realize (GtkWidget *widget)
                                                            GTK_TYPE_FILE_CHOOSER_WIDGET));
 
   g_object_bind_property (impl, "show-time", self, "show-time", G_BINDING_SYNC_CREATE);
-
-  if (self->date_column)
-    {
-      GtkWidget *box;
-      GtkWidget *label;
-      char *text;
-
-      box = gtk_widget_get_first_child (GTK_WIDGET (self));
-      label = gtk_widget_get_first_child (box);
-      text = gtk_file_chooser_widget_get_file_date (self->list_item, self->item);
-      gtk_label_set_text (GTK_LABEL (label), text);
-      g_free (text);
-      label = gtk_widget_get_last_child (box);
-      text = gtk_file_chooser_widget_get_file_time (self->list_item, self->item);
-      gtk_label_set_text (GTK_LABEL (label), text);
-      g_free (text);
-    }
 }
 
 static void
@@ -235,10 +214,6 @@ gtk_file_chooser_cell_set_property (GObject      *object,
 
   switch (prop_id)
     {
-    case PROP_DATE_COLUMN:
-      self->date_column = g_value_get_boolean (value);
-      break;
-
     case PROP_ITEM:
       self->item = g_value_get_object (value);
 
@@ -273,10 +248,6 @@ gtk_file_chooser_cell_get_property (GObject    *object,
 
   switch (prop_id)
     {
-    case PROP_DATE_COLUMN:
-      g_value_set_boolean (value, self->date_column);
-      break;
-
     case PROP_ITEM:
       g_value_set_object (value, self->item);
       break;
@@ -302,12 +273,6 @@ gtk_file_chooser_cell_class_init (GtkFileChooserCellClass *klass)
   object_class->set_property = gtk_file_chooser_cell_set_property;
   object_class->get_property = gtk_file_chooser_cell_get_property;
 
-  g_object_class_install_property (object_class, PROP_DATE_COLUMN,
-                                   g_param_spec_boolean ("date-column", NULL, NULL,
-                                                        FALSE,
-                                                        GTK_PARAM_READWRITE));
-
-
   g_object_class_install_property (object_class, PROP_ITEM,
                                    g_param_spec_object ("item", NULL, NULL,
                                                         G_TYPE_FILE_INFO,
index 8c8fcbb7c5d66e6bcd21ee94b1b7a6316f83180e..787a728ac2bbe8241c4ba001417bcebf91dfb6ed 100644 (file)
@@ -1945,9 +1945,9 @@ files_list_restrict_key_presses (GtkEventControllerKey *controller,
   return GDK_EVENT_PROPAGATE;
 }
 
-char *
-gtk_file_chooser_widget_get_file_date (GtkColumnViewCell *cell,
-                                     GFileInfo        *info)
+static char *
+column_view_get_file_date (GtkColumnViewCell *cell,
+                           GFileInfo        *info)
 {
   GtkFileChooserWidget *impl;
   glong time;
@@ -1981,9 +1981,9 @@ column_view_get_file_display_name (GtkColumnViewCell *cell,
     return NULL;
 }
 
-char *
-gtk_file_chooser_widget_get_file_time (GtkColumnViewCell *cell,
-                                     GFileInfo        *info)
+static char *
+column_view_get_file_time (GtkColumnViewCell *cell,
+                           GFileInfo        *info)
 {
   GtkFileChooserWidget *impl;
   glong time;
@@ -6848,7 +6848,9 @@ gtk_file_chooser_widget_class_init (GtkFileChooserWidgetClass *class)
   gtk_widget_class_bind_template_callback (widget_class, rename_file_name_changed);
   gtk_widget_class_bind_template_callback (widget_class, rename_file_rename_clicked);
   gtk_widget_class_bind_template_callback (widget_class, rename_file_end);
+  gtk_widget_class_bind_template_callback (widget_class, column_view_get_file_date);
   gtk_widget_class_bind_template_callback (widget_class, column_view_get_file_display_name);
+  gtk_widget_class_bind_template_callback (widget_class, column_view_get_file_time);
   gtk_widget_class_bind_template_callback (widget_class, column_view_get_file_type);
   gtk_widget_class_bind_template_callback (widget_class, column_view_get_location);
   gtk_widget_class_bind_template_callback (widget_class, column_view_get_size);
index e99e60cbdd6a53fb16ae77af8e45b810d0a8928a..319209c58d6c7a98da736a711fa3e62493b863c6 100644 (file)
@@ -22,7 +22,6 @@
 
 #include <glib.h>
 #include "deprecated/gtkfilechooserwidget.h"
-#include "gtkcolumnviewcell.h"
 #include "gtkselectionmodel.h"
 
 G_BEGIN_DECLS
@@ -37,14 +36,6 @@ gtk_file_chooser_widget_should_respond (GtkFileChooserWidget *chooser);
 void
 gtk_file_chooser_widget_initial_focus  (GtkFileChooserWidget *chooser);
 
-char *
-gtk_file_chooser_widget_get_file_date   (GtkColumnViewCell *cell,
-                                       GFileInfo         *info);
-
-char *
-gtk_file_chooser_widget_get_file_time   (GtkColumnViewCell *cell,
-                                       GFileInfo        *info);
-
 GSList *
 gtk_file_chooser_widget_get_selected_files (GtkFileChooserWidget *impl);
 
index 165b2e1643f71375816a77ccd09256423cb7de85..33a3f390552e0382f4b2bcf7ea45c8ba8ab27fdc 100644 (file)
           <lookup name="item">GtkColumnViewCell</lookup>
         </binding>
         <property name="list-item">GtkColumnViewCell</property>
-        <property name="date-column">true</property>
         <child>
           <object class="GtkBox">
             <property name="spacing">6</property>
             </binding>
             <child>
               <object class="GtkLabel">
+                <binding name="label">
+                  <closure type="gchararray" function="column_view_get_file_date">
+                    <lookup name="item">GtkColumnViewCell</lookup>
+                  </closure>
+                </binding>
               </object>
             </child>
             <child>
               <object class="GtkLabel">
                 <property name="visible" bind-source="file_chooser_cell" bind-property="show-time" bind-flags="sync-create"/>
+                <binding name="label">
+                  <closure type="gchararray" function="column_view_get_file_time">
+                    <lookup name="item">GtkColumnViewCell</lookup>
+                  </closure>
+                </binding>
               </object>
             </child>
           </object>