]> granicus.if.org Git - handbrake/commitdiff
LinGui: gtk4 port, fix reading/writing GtkSpinButton text
authorJohn Stebbins <jstebbins.hb@gmail.com>
Mon, 29 Jul 2019 23:40:09 +0000 (16:40 -0700)
committerJohn Stebbins <jstebbins.hb@gmail.com>
Mon, 29 Jul 2019 23:40:09 +0000 (16:40 -0700)
In GTK4, GtkSpinButton is no longer a subclass of GtkEntry.  Must use
GtkEditable APIs in GTK4

gtk/src/callbacks.c
gtk/src/ghbcellrenderertext.c
gtk/src/ghbcompat.h
gtk/src/presets.c
gtk/src/queuehandler.c
gtk/src/settings.c

index 1c5ebae684a60b079adf4fae8e995d969204cc14..dcb4fc758007c30ada0693e79b61dac7e7a0403a 100644 (file)
@@ -1945,7 +1945,7 @@ ghb_update_destination_extension(signal_user_data_t *ud)
     busy = TRUE;
     extension = get_extension(ud, ud->settings);
     entry = GTK_ENTRY(GHB_WIDGET(ud->builder, "dest_file"));
-    filename = g_strdup(ghb_entry_get_text(entry));
+    filename = g_strdup(ghb_editable_get_text(entry));
     for (ii = 0; containers[ii] != NULL; ii++)
     {
         if (g_str_has_suffix(filename, containers[ii]))
@@ -1981,7 +1981,7 @@ destination_select_title(GtkEntry *entry)
     const gchar *dest;
     gint start, end;
 
-    dest = ghb_entry_get_text(entry);
+    dest = ghb_editable_get_text(entry);
     for (end = strlen(dest)-1; end > 0; end--)
     {
         if (dest[end] == '.')
@@ -2097,7 +2097,7 @@ destination_action_cb(GSimpleAction *action, GVariant *param,
         basename = g_path_get_basename(filename);
         dirname = g_path_get_dirname(filename);
         entry = (GtkEntry*)GHB_WIDGET(ud->builder, "dest_file");
-        ghb_entry_set_text(entry, basename);
+        ghb_editable_set_text(entry, basename);
         dest_chooser = GTK_FILE_CHOOSER(GHB_WIDGET(ud->builder, "dest_dir"));
         gtk_file_chooser_set_filename(dest_chooser, dirname);
         g_free (dirname);
@@ -3183,7 +3183,7 @@ ptop_input_cb(GtkWidget *widget, gdouble *val, signal_user_data_t *ud)
     double ss = 0;
     int hh = 0, mm = 0;
 
-    text = ghb_entry_get_text(GTK_ENTRY(widget));
+    text = ghb_editable_get_text(widget);
     result = sscanf(text, "%2d:%2d:%lf", &hh, &mm, &ss);
     if (result <= 0)
         return FALSE;
@@ -3215,7 +3215,7 @@ ptop_output_cb(GtkWidget *widget, signal_user_data_t *ud)
     value = value - mm * 60;
     ss = value;
     text = g_strdup_printf ("%02d:%02d:%05.2f", hh, mm, ss);
-    ghb_entry_set_text(GTK_ENTRY(widget), text);
+    ghb_editable_set_text(widget, text);
     g_free (text);
 
     return TRUE;
index 8df691cffe6d56d1ecaa91ddec625891f084e01d..79fd93410ce89c26f5f6e662f850a57408a9fd45 100644 (file)
@@ -1845,7 +1845,7 @@ ghb_cell_renderer_text_editing_done (GtkCellEditable *entry,
     return;
 
   path = g_object_get_data (G_OBJECT (entry), GHB_CELL_RENDERER_TEXT_PATH);
-  new_text = ghb_entry_get_text (GTK_ENTRY (entry));
+  new_text = ghb_editable_get_text(entry);
 
   g_signal_emit (data, text_cell_renderer_signals[EDITED], 0, path, new_text);
 }
@@ -1949,7 +1949,7 @@ ghb_cell_renderer_text_start_editing (GtkCellRenderer      *cell,
                   NULL);
 
     if (priv->text)
-        ghb_entry_set_text (GTK_ENTRY (priv->entry), priv->text);
+        ghb_editable_set_text (priv->entry, priv->text);
 
     g_object_set_data_full (G_OBJECT (priv->entry),
             I_(GHB_CELL_RENDERER_TEXT_PATH), g_strdup (path), g_free);
index 44ef7f4e05e3452c6bc583dcf81f43d238820afd..0db9d27ea4f20f13d2f948a0f4478cc30e545a27 100644 (file)
@@ -307,39 +307,15 @@ static inline gboolean ghb_strv_contains(const char ** strv, const char * str)
 }
 
 #if GTK_CHECK_VERSION(3, 90, 0)
-static inline const gchar * ghb_entry_get_text(GtkEntry * entry)
-{
-    GtkEntryBuffer * buf = gtk_entry_get_buffer(entry);
-    if (buf != NULL)
-    {
-        return gtk_entry_buffer_get_text(buf);
-    }
-    return NULL;
-}
 
-static inline void ghb_entry_set_text(GtkEntry * entry, const gchar * text)
-{
-    GtkEntryBuffer * buf = gtk_entry_get_buffer(entry);
-    if (buf == NULL)
-    {
-        buf = gtk_entry_buffer_new(text, -1);
-        gtk_entry_set_buffer(entry, buf);
-    }
-    else
-    {
-        return gtk_entry_buffer_set_text(buf, text, -1);
-    }
-}
+#define ghb_editable_get_text(e) gtk_editable_get_text(GTK_EDITABLE(e))
+#define ghb_editable_set_text(e,t) gtk_editable_set_text(GTK_EDITABLE(e), (t))
+
 #else
-static inline const gchar * ghb_entry_get_text(GtkEntry * entry)
-{
-    return gtk_entry_get_text(entry);
-}
 
-static inline void ghb_entry_set_text(GtkEntry * entry, const gchar * text)
-{
-    return gtk_entry_set_text(entry, text);
-}
+#define ghb_editable_get_text(e) gtk_entry_get_text(GTK_ENTRY(e))
+#define ghb_editable_set_text(e,t) gtk_entry_set_text(GTK_ENTRY(e), (t))
+
 #endif
 
 #if GTK_CHECK_VERSION(3, 90, 0)
index c359333344f165bc31464767244439ef4c502db5..74cff997f2ea6c97a8ca500f36277a362a2c7fbd 100644 (file)
@@ -2179,7 +2179,7 @@ preset_rename_action_cb(GSimpleAction *action, GVariant *param,
 
     dialog   = GHB_WIDGET(ud->builder, "preset_rename_dialog");
     entry    = GTK_ENTRY(GHB_WIDGET(ud->builder, "PresetReName"));
-    ghb_entry_set_text(entry, name);
+    ghb_editable_set_text(entry, name);
 
     response = gtk_dialog_run(GTK_DIALOG(dialog));
     gtk_widget_hide(dialog);
@@ -2190,7 +2190,7 @@ preset_rename_action_cb(GSimpleAction *action, GVariant *param,
         char          * desc;
 
         // save the new name
-        name = ghb_entry_get_text(entry);
+        name = ghb_editable_get_text(entry);
         dict = hb_preset_get(path);
         if (dict != NULL)
         {
@@ -2295,7 +2295,7 @@ static void preset_save_action(signal_user_data_t *ud, gboolean as)
 
     dialog   = GHB_WIDGET(ud->builder, "preset_save_dialog");
     entry    = GTK_ENTRY(GHB_WIDGET(ud->builder, "PresetName"));
-    ghb_entry_set_text(entry, name);
+    ghb_editable_set_text(entry, name);
 
     widget = GHB_WIDGET(ud->builder, "PresetName");
     gtk_widget_set_sensitive(widget, as);
@@ -2314,12 +2314,12 @@ static void preset_save_action(signal_user_data_t *ud, gboolean as)
         gboolean        def;
 
         // save the preset
-        name = ghb_entry_get_text(entry);
+        name = ghb_editable_get_text(entry);
         category = ghb_dict_get_string(ud->settings, "PresetCategory");
         if (!strcmp(category, "new"))
         {
             entry = GTK_ENTRY(GHB_WIDGET(ud->builder, "PresetCategoryName"));
-            category = ghb_entry_get_text(entry);
+            category = ghb_editable_get_text(entry);
         }
         if (category == NULL || category[0] == 0)
         {
@@ -2363,9 +2363,9 @@ preset_save_set_ok_sensitive(signal_user_data_t *ud)
 
     category = ghb_dict_get_string(ud->settings, "PresetCategory");
     entry = GTK_ENTRY(GHB_WIDGET(ud->builder, "PresetName"));
-    name = ghb_entry_get_text(entry);
+    name = ghb_editable_get_text(entry);
     entry = GTK_ENTRY(GHB_WIDGET(ud->builder, "PresetCategoryName"));
-    category_name = ghb_entry_get_text(entry);
+    category_name = ghb_editable_get_text(entry);
 
     sensitive = name[0] && (strcmp(category, "new") || category_name[0]);
     gtk_widget_set_sensitive(ok_button, sensitive);
index 8d522075db471428bbef15beee361afd25cce36b..80549c014b4f7969c7212e3fd3659f97e951a2b4 100644 (file)
@@ -2830,7 +2830,7 @@ queue_add_all_action_cb(GSimpleAction *action, GVariant *param,
             dest_dir = ghb_dict_get_string(settings, "dest_dir");
 
             gtk_label_set_markup(label, title_label);
-            ghb_entry_set_text(entry, dest_file);
+            ghb_editable_set_text(entry, dest_file);
             gtk_file_chooser_set_filename(chooser, dest_dir);
 
             g_free(title_label);
index 7dad5f7e865a9aa5fb03ce1828cdb95b33479264..b95b8530109defa6c6fc453927502b064021706e 100644 (file)
@@ -102,7 +102,7 @@ ghb_widget_value(GtkWidget *widget)
     name = ghb_get_setting_key(widget);
     if (type == GTK_TYPE_ENTRY)
     {
-        const gchar *str = ghb_entry_get_text(GTK_ENTRY(widget));
+        const gchar *str = ghb_editable_get_text(widget);
         value = ghb_string_value_new(str);
     }
     else if (type == GTK_TYPE_RADIO_BUTTON)
@@ -161,7 +161,7 @@ ghb_widget_value(GtkWidget *widget)
         else if (gtk_combo_box_get_has_entry(GTK_COMBO_BOX(widget)))
         {
             const gchar *str;
-            str = ghb_entry_get_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN(widget))));
+            str = ghb_editable_get_text(gtk_bin_get_child(GTK_BIN(widget)));
             if (str == NULL) str = "";
             value = ghb_string_value_new(str);
         }
@@ -343,7 +343,7 @@ ghb_update_widget(GtkWidget *widget, const GhbValue *value)
 
     if (type == GTK_TYPE_ENTRY)
     {
-        ghb_entry_set_text((GtkEntry*)widget, str);
+        ghb_editable_set_text(widget, str);
     }
     else if (type == GTK_TYPE_RADIO_BUTTON)
     {
@@ -412,7 +412,7 @@ ghb_update_widget(GtkWidget *widget, const GhbValue *value)
                 GtkEntry *entry = GTK_ENTRY(gtk_bin_get_child(GTK_BIN(widget)));
                 if (entry)
                 {
-                    ghb_entry_set_text (entry, str);
+                    ghb_editable_set_text(entry, str);
                 }
                 else
                 {