[gnome-text-editor/wip/chergert/gspell] gspell: port checker dialog to GTK 4



commit 36cb1d7421f85ca3606b65516f3de26296f4b9ff
Author: Christian Hergert <chergert redhat com>
Date:   Thu Jun 24 10:34:56 2021 -0700

    gspell: port checker dialog to GTK 4

 gspell/checker-dialog.ui       | 154 +++++++++++++++--------------------------
 gspell/gspell-checker-dialog.c |  33 +++------
 2 files changed, 67 insertions(+), 120 deletions(-)
---
diff --git a/gspell/checker-dialog.ui b/gspell/checker-dialog.ui
index 70911b9..19299ca 100644
--- a/gspell/checker-dialog.ui
+++ b/gspell/checker-dialog.ui
@@ -1,9 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- Generated with glade 3.19.0 -->
 <interface domain="gspell-1">
-  <requires lib="gtk+" version="3.16"/>
+  <requires lib="gtk+" version="4.2"/>
   <template class="GspellCheckerDialog" parent="GtkDialog">
-    <property name="can_focus">False</property>
     <property name="title" translatable="yes">Check Spelling</property>
     <property name="resizable">False</property>
     <property name="type_hint">dialog</property>
@@ -19,209 +18,181 @@
     <child internal-child="vbox">
       <object class="GtkBox" id="content">
         <property name="visible">True</property>
-        <property name="can_focus">False</property>
         <property name="orientation">vertical</property>
         <property name="spacing">6</property>
         <property name="margin">12</property>
         <child>
           <object class="GtkGrid" id="grid1">
             <property name="visible">True</property>
-            <property name="can_focus">False</property>
             <property name="row_spacing">6</property>
             <property name="column_spacing">6</property>
             <child>
               <object class="GtkLabel" id="label1">
                 <property name="visible">True</property>
-                <property name="can_focus">False</property>
                 <property name="label" translatable="yes">Misspelled word:</property>
                 <property name="justify">center</property>
                 <property name="xalign">0</property>
+                <layout>
+                  <property name="column">0</property>
+                  <property name="row">0</property>
+                </layout>
               </object>
-              <packing>
-                <property name="left_attach">0</property>
-                <property name="top_attach">0</property>
-              </packing>
             </child>
             <child>
               <object class="GtkLabel" id="misspelled_word_label">
                 <property name="visible">True</property>
-                <property name="can_focus">False</property>
                 <property name="label" translatable="yes">word</property>
                 <property name="use_markup">True</property>
                 <property name="wrap">True</property>
                 <property name="max_width_chars">72</property>
                 <property name="selectable">True</property>
                 <property name="xalign">0</property>
+                <layout>
+                  <property name="column">1</property>
+                  <property name="row">0</property>
+                  <property name="column-span">2</property>
+                </layout>
               </object>
-              <packing>
-                <property name="left_attach">1</property>
-                <property name="top_attach">0</property>
-                <property name="width">2</property>
-              </packing>
             </child>
             <child>
               <object class="GtkLabel" id="label3">
                 <property name="visible">True</property>
-                <property name="can_focus">False</property>
                 <property name="label" translatable="yes">Change _to:</property>
                 <property name="use_underline">True</property>
                 <property name="justify">center</property>
                 <property name="mnemonic_widget">word_entry</property>
                 <property name="xalign">0</property>
+                <layout>
+                  <property name="column">0</property>
+                  <property name="row">1</property>
+                </layout>
               </object>
-              <packing>
-                <property name="left_attach">0</property>
-                <property name="top_attach">1</property>
-              </packing>
             </child>
             <child>
               <object class="GtkEntry" id="word_entry">
                 <property name="visible">True</property>
-                <property name="can_focus">True</property>
                 <property name="hexpand">True</property>
                 <property name="activates_default">True</property>
+                <layout>
+                  <property name="column">1</property>
+                  <property name="row">1</property>
+                </layout>
               </object>
-              <packing>
-                <property name="left_attach">1</property>
-                <property name="top_attach">1</property>
-              </packing>
             </child>
             <child>
               <object class="GtkButton" id="check_word_button">
                 <property name="label" translatable="yes">Check _Word</property>
                 <property name="visible">True</property>
                 <property name="sensitive">False</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">False</property>
                 <property name="use_underline">True</property>
+                <layout>
+                  <property name="column">2</property>
+                  <property name="row">1</property>
+                </layout>
               </object>
-              <packing>
-                <property name="left_attach">2</property>
-                <property name="top_attach">1</property>
-              </packing>
             </child>
           </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="fill">True</property>
-            <property name="position">0</property>
-          </packing>
         </child>
         <child>
           <object class="GtkGrid" id="grid2">
             <property name="visible">True</property>
-            <property name="can_focus">False</property>
             <property name="row_spacing">6</property>
             <property name="column_spacing">6</property>
             <child>
               <object class="GtkLabel" id="label4">
                 <property name="visible">True</property>
-                <property name="can_focus">False</property>
                 <property name="label" translatable="yes">_Suggestions:</property>
                 <property name="use_underline">True</property>
                 <property name="justify">center</property>
                 <property name="mnemonic_widget">suggestions_view</property>
                 <property name="xalign">0</property>
+                <layout>
+                  <property name="column">0</property>
+                  <property name="row">0</property>
+                </layout>
               </object>
-              <packing>
-                <property name="left_attach">0</property>
-                <property name="top_attach">0</property>
-              </packing>
             </child>
             <child>
               <object class="GtkButton" id="ignore_button">
                 <property name="label" translatable="yes">_Ignore</property>
                 <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">False</property>
                 <property name="use_underline">True</property>
+                <layout>
+                  <property name="column">1</property>
+                  <property name="row">1</property>
+                </layout>
               </object>
-              <packing>
-                <property name="left_attach">1</property>
-                <property name="top_attach">1</property>
-              </packing>
             </child>
             <child>
               <object class="GtkButton" id="ignore_all_button">
                 <property name="label" translatable="yes">Ignore _All</property>
                 <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">False</property>
                 <property name="use_underline">True</property>
+                <layout>
+                  <property name="column">2</property>
+                  <property name="row">1</property>
+                </layout>
               </object>
-              <packing>
-                <property name="left_attach">2</property>
-                <property name="top_attach">1</property>
-              </packing>
             </child>
             <child>
               <object class="GtkButton" id="change_button">
                 <property name="label" translatable="yes">Cha_nge</property>
                 <property name="visible">True</property>
                 <property name="sensitive">False</property>
-                <property name="can_focus">True</property>
                 <property name="can_default">True</property>
-                <property name="receives_default">False</property>
                 <property name="use_underline">True</property>
+                <layout>
+                  <property name="column">1</property>
+                  <property name="row">2</property>
+                </layout>
               </object>
-              <packing>
-                <property name="left_attach">1</property>
-                <property name="top_attach">2</property>
-              </packing>
             </child>
             <child>
               <object class="GtkButton" id="change_all_button">
                 <property name="label" translatable="yes">Change A_ll</property>
                 <property name="visible">True</property>
                 <property name="sensitive">False</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">False</property>
                 <property name="use_underline">True</property>
+                <layout>
+                  <property name="column">2</property>
+                  <property name="row">2</property>
+                </layout>
               </object>
-              <packing>
-                <property name="left_attach">2</property>
-                <property name="top_attach">2</property>
-              </packing>
             </child>
             <child>
               <object class="GtkLabel" id="label6">
                 <property name="visible">True</property>
-                <property name="can_focus">False</property>
                 <property name="margin_top">6</property>
                 <property name="label" translatable="yes">User dictionary:</property>
                 <property name="use_markup">True</property>
                 <property name="xalign">7.4505801528346183e-09</property>
+                <layout>
+                  <property name="column">1</property>
+                  <property name="row">3</property>
+                  <property name="column-span">2</property>
+                </layout>
               </object>
-              <packing>
-                <property name="left_attach">1</property>
-                <property name="top_attach">3</property>
-                <property name="width">2</property>
-              </packing>
             </child>
             <child>
               <object class="GtkButton" id="add_word_button">
                 <property name="label" translatable="yes">Add w_ord</property>
                 <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">False</property>
                 <property name="use_underline">True</property>
+                <layout>
+                  <property name="column">1</property>
+                  <property name="row">4</property>
+                  <property name="column-span">2</property>
+                </layout>
               </object>
-              <packing>
-                <property name="left_attach">1</property>
-                <property name="top_attach">4</property>
-                <property name="width">2</property>
-              </packing>
             </child>
             <child>
               <object class="GtkScrolledWindow" id="scrolledwindow1">
                 <property name="width_request">200</property>
                 <property name="visible">True</property>
-                <property name="can_focus">True</property>
                 <property name="shadow_type">etched-in</property>
                 <child>
                   <object class="GtkTreeView" id="suggestions_view">
                     <property name="visible">True</property>
-                    <property name="can_focus">True</property>
                     <property name="headers_visible">False</property>
                     <property name="expand">True</property>
                     <child internal-child="selection">
@@ -229,25 +200,14 @@
                     </child>
                   </object>
                 </child>
+                <layout>
+                  <property name="column">0</property>
+                  <property name="row">1</property>
+                  <property name="row-span">4</property>
+                </layout>
               </object>
-              <packing>
-                <property name="left_attach">0</property>
-                <property name="top_attach">1</property>
-                <property name="height">4</property>
-              </packing>
-            </child>
-            <child>
-              <placeholder/>
-            </child>
-            <child>
-              <placeholder/>
             </child>
           </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="fill">True</property>
-            <property name="position">1</property>
-          </packing>
         </child>
       </object>
     </child>
diff --git a/gspell/gspell-checker-dialog.c b/gspell/gspell-checker-dialog.c
index 0a699af..c1fcf12 100644
--- a/gspell/gspell-checker-dialog.c
+++ b/gspell/gspell-checker-dialog.c
@@ -76,22 +76,9 @@ static void
 set_spell_checker (GspellCheckerDialog *dialog,
                   GspellChecker       *checker)
 {
-       GspellCheckerDialogPrivate *priv;
-
-       priv = gspell_checker_dialog_get_instance_private (dialog);
-
-       if (g_set_object (&priv->checker, checker))
-       {
-               GtkHeaderBar *header_bar;
-               const GspellLanguage *lang;
-
-               header_bar = GTK_HEADER_BAR (gtk_dialog_get_header_bar (GTK_DIALOG (dialog)));
+       GspellCheckerDialogPrivate *priv = gspell_checker_dialog_get_instance_private (dialog);
 
-               lang = gspell_checker_get_language (checker);
-
-               gtk_header_bar_set_subtitle (header_bar,
-                                            gspell_language_get_name (lang));
-       }
+       g_set_object (&priv->checker, checker);
 }
 
 static void
@@ -150,7 +137,7 @@ set_suggestions (GspellCheckerDialog *dialog,
                                    COLUMN_SUGGESTION, _("(no suggested words)"),
                                    -1);
 
-               gtk_entry_set_text (priv->word_entry, "");
+               gtk_editable_set_text (GTK_EDITABLE (priv->word_entry), "");
                gtk_widget_set_sensitive (GTK_WIDGET (priv->suggestions_view), FALSE);
                return;
        }
@@ -158,7 +145,7 @@ set_suggestions (GspellCheckerDialog *dialog,
        gtk_widget_set_sensitive (GTK_WIDGET (priv->suggestions_view), TRUE);
 
        first_suggestion = suggestions->data;
-       gtk_entry_set_text (priv->word_entry, first_suggestion);
+       gtk_editable_set_text (GTK_EDITABLE (priv->word_entry), first_suggestion);
 
        for (l = suggestions; l != NULL; l = l->next)
        {
@@ -211,7 +198,7 @@ set_completed (GspellCheckerDialog *dialog)
        priv = gspell_checker_dialog_get_instance_private (dialog);
 
        clear_suggestions (dialog);
-       gtk_entry_set_text (priv->word_entry, "");
+       gtk_editable_set_text (GTK_EDITABLE (priv->word_entry), "");
 
        gtk_widget_set_sensitive (GTK_WIDGET (priv->word_entry), FALSE);
        gtk_widget_set_sensitive (priv->check_word_button, FALSE);
@@ -455,7 +442,7 @@ suggestions_selection_changed_handler (GtkTreeSelection    *selection,
                            COLUMN_SUGGESTION, &text,
                            -1);
 
-       gtk_entry_set_text (priv->word_entry, text);
+       gtk_editable_set_text (GTK_EDITABLE (priv->word_entry), text);
 
        g_free (text);
 }
@@ -473,7 +460,7 @@ check_word_button_clicked_handler (GtkButton           *button,
 
        g_return_if_fail (gtk_entry_get_text_length (priv->word_entry) > 0);
 
-       word = gtk_entry_get_text (priv->word_entry);
+       word = gtk_editable_get_text (GTK_EDITABLE (priv->word_entry));
 
        correctly_spelled = gspell_checker_check_word (priv->checker, word, -1, &error);
 
@@ -565,7 +552,7 @@ change_button_clicked_handler (GtkButton           *button,
 
        g_return_if_fail (priv->misspelled_word != NULL);
 
-       entry_text = gtk_entry_get_text (priv->word_entry);
+       entry_text = gtk_editable_get_text (GTK_EDITABLE (priv->word_entry));
        g_return_if_fail (entry_text != NULL);
        g_return_if_fail (entry_text[0] != '\0');
 
@@ -606,7 +593,7 @@ change_all_button_clicked_handler (GtkButton           *button,
 
        g_return_if_fail (priv->misspelled_word != NULL);
 
-       entry_text = gtk_entry_get_text (priv->word_entry);
+       entry_text = gtk_editable_get_text (GTK_EDITABLE (priv->word_entry));
        g_return_if_fail (entry_text != NULL);
        g_return_if_fail (entry_text[0] != '\0');
 
@@ -700,7 +687,7 @@ gspell_checker_dialog_init (GspellCheckerDialog *dialog)
                          G_CALLBACK (suggestions_row_activated_handler),
                          dialog);
 
-       gtk_widget_grab_default (priv->change_button);
+       gtk_window_set_default_widget (GTK_WINDOW (dialog), priv->change_button);
 }
 
 /**


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