Options dialog: add checkbox for startup tips
authorJohn Darrington <john@darrington.wattle.id.au>
Sat, 11 Sep 2021 05:39:29 +0000 (07:39 +0200)
committerJohn Darrington <john@darrington.wattle.id.au>
Sat, 11 Sep 2021 06:37:06 +0000 (08:37 +0200)
src/ui/gui/options-dialog.c
src/ui/gui/options.ui

index c50048060212a0c9e847dfd88414966a4d98e5e3..1890f069f4481dd869fa4b0bdc745cf25b81d62a 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPPIRE - a graphical user interface for PSPP.
-   Copyright (C) 2017 Free Software Foundation
+   Copyright (C) 2017, 2021 Free Software Foundation
 
    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
@@ -45,6 +45,8 @@ struct options_dialog
   GtkWidget *maximize;
   GtkWidget *alert;
   GtkWidget *raise;
+
+  GtkWidget *show_tips;
 };
 
 GType
@@ -75,11 +77,14 @@ options_dialog (PsppireDataWindow *de)
   GtkWidget *dialog ;
 
   gboolean disp_labels = true;
+  gboolean show_tips = true;
 
   fd.xml = builder_new ("options.ui");
 
   dialog = get_widget_assert (fd.xml, "options-dialog");
 
+  fd.show_tips = get_widget_assert (fd.xml, "checkbutton-show-tips");
+
   fd.show_labels = get_widget_assert (fd.xml, "radiobutton-labels");
   fd.show_names  = get_widget_assert (fd.xml, "radiobutton-names");
 
@@ -105,6 +110,13 @@ options_dialog (PsppireDataWindow *de)
                                    !disp_labels);
     }
 
+  if (psppire_conf_get_boolean (fd.conf,
+                               "startup", "show-user-tips", &show_tips))
+    {
+      gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (fd.show_tips),
+                                   show_tips);
+    }
+
 
   int what = -1;
   psppire_conf_get_enum (fd.conf, "VariableLists", "sort-order",
@@ -182,6 +194,10 @@ options_dialog (PsppireDataWindow *de)
       psppire_conf_set_boolean (fd.conf, "OutputWindowAction", "alert",
                                gtk_toggle_button_get_active
                                (GTK_TOGGLE_BUTTON (fd.alert)));
+
+      psppire_conf_set_boolean (fd.conf, "startup", "show-user-tips",
+                               gtk_toggle_button_get_active
+                               (GTK_TOGGLE_BUTTON (fd.show_tips)));
     }
 
   g_object_unref (fd.xml);
index 746926ff87475657dd20dff24ea08f5d20ff7fda..2d087c79fb3644c24ce520d3932384d62e989fbd 100644 (file)
@@ -1,63 +1,59 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.38.2 -->
 <!-- PSPP - a program for statistical analysis. -->
-<!-- Copyright (C) 2017 Free Software Foundation, Inc. -->
-
+<!-- Copyright (C) 2017, 2021 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 3 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/>. -->
-
-<!-- Generated with glade 3.18.3 -->
 <interface>
   <requires lib="gtk+" version="3.22"/>
   <requires lib="psppire" version="2053.63976"/>
   <object class="PsppireDialog" id="options-dialog">
-    <property name="can_focus">False</property>
+    <property name="can-focus">False</property>
     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
     <property name="title" translatable="yes">Options Case</property>
     <property name="modal">True</property>
     <child>
       <object class="GtkBox" id="dialog-hbox14">
         <property name="visible">True</property>
-        <property name="can_focus">False</property>
+        <property name="can-focus">False</property>
         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-        <property name="margin_left">5</property>
-        <property name="margin_bottom">5</property>
+        <property name="margin-left">5</property>
+        <property name="margin-bottom">5</property>
         <property name="spacing">5</property>
         <child>
           <object class="GtkFrame" id="variable-lists-frame">
             <property name="visible">True</property>
-            <property name="can_focus">False</property>
-            <property name="label_xalign">0</property>
-            <property name="shadow_type">in</property>
+            <property name="can-focus">False</property>
+            <property name="label-xalign">0</property>
+            <property name="shadow-type">in</property>
             <child>
               <object class="GtkBox">
                 <property name="visible">True</property>
-                <property name="can_focus">False</property>
+                <property name="can-focus">False</property>
                 <property name="orientation">vertical</property>
                 <child>
                   <object class="GtkButtonBox">
                     <property name="visible">True</property>
-                    <property name="can_focus">False</property>
+                    <property name="can-focus">False</property>
                     <property name="orientation">vertical</property>
                     <property name="spacing">5</property>
-                    <property name="layout_style">start</property>
+                    <property name="layout-style">start</property>
                     <child>
                       <object class="GtkRadioButton" id="radiobutton-labels">
                         <property name="label" translatable="yes">Display _Labels</property>
                         <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="receives_default">False</property>
-                        <property name="use_underline">True</property>
-                        <property name="draw_indicator">True</property>
+                        <property name="can-focus">True</property>
+                        <property name="receives-default">False</property>
+                        <property name="use-underline">True</property>
+                        <property name="draw-indicator">True</property>
                         <property name="group">radiobutton-names</property>
                       </object>
                       <packing>
                       <object class="GtkRadioButton" id="radiobutton-names">
                         <property name="label" translatable="yes">Display _Names</property>
                         <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="receives_default">False</property>
-                        <property name="use_underline">True</property>
+                        <property name="can-focus">True</property>
+                        <property name="receives-default">False</property>
+                        <property name="use-underline">True</property>
                         <property name="active">True</property>
-                        <property name="draw_indicator">True</property>
+                        <property name="draw-indicator">True</property>
                       </object>
                       <packing>
                         <property name="expand">True</property>
                         <property name="position">1</property>
                       </packing>
                     </child>
-                   <child>
+                    <child>
                       <object class="GtkSeparator">
-                       <property name="visible">True</property>
-                       <property name="can_focus">False</property>
+                        <property name="visible">True</property>
+                        <property name="can-focus">False</property>
                       </object>
                       <packing>
-                       <property name="expand">False</property>
-                       <property name="fill">False</property>
-                       <property name="position">2</property>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">2</property>
                       </packing>
                     </child>
-
                     <child>
                       <object class="GtkRadioButton" id="radiobutton-sort-by-label">
                         <property name="label" translatable="yes">Sort by L_abel</property>
                         <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="receives_default">False</property>
-                        <property name="use_underline">True</property>
-                        <property name="draw_indicator">True</property>
+                        <property name="can-focus">True</property>
+                        <property name="receives-default">False</property>
+                        <property name="use-underline">True</property>
+                        <property name="draw-indicator">True</property>
                         <property name="group">radiobutton-sort-by-name</property>
                       </object>
                       <packing>
                       <object class="GtkRadioButton" id="radiobutton-sort-by-name">
                         <property name="label" translatable="yes">Sort by Na_me</property>
                         <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="receives_default">False</property>
-                        <property name="use_underline">True</property>
+                        <property name="can-focus">True</property>
+                        <property name="receives-default">False</property>
+                        <property name="use-underline">True</property>
                         <property name="active">True</property>
-                        <property name="draw_indicator">True</property>
+                        <property name="draw-indicator">True</property>
                       </object>
                       <packing>
                         <property name="expand">True</property>
                       <object class="GtkRadioButton" id="radiobutton-unsorted">
                         <property name="label" translatable="yes">Do not S_ort</property>
                         <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="receives_default">False</property>
-                        <property name="use_underline">True</property>
+                        <property name="can-focus">True</property>
+                        <property name="receives-default">False</property>
+                        <property name="use-underline">True</property>
                         <property name="active">True</property>
-                        <property name="draw_indicator">True</property>
+                        <property name="draw-indicator">True</property>
                         <property name="group">radiobutton-sort-by-name</property>
                       </object>
                       <packing>
             <child type="label">
               <object class="GtkLabel">
                 <property name="visible">True</property>
-                <property name="can_focus">False</property>
+                <property name="can-focus">False</property>
                 <property name="label" translatable="yes">Variable Lists</property>
               </object>
             </child>
             <property name="position">0</property>
           </packing>
         </child>
-
         <child>
-          <object class="GtkFrame">
+          <object class="PsppireButtonBox" id="options-buttonbox">
+            <property name="visible">True</property>
+            <property name="can-focus">False</property>
+            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+            <property name="border-width">5</property>
+            <property name="orientation">vertical</property>
+            <property name="buttons">PSPPIRE_BUTTON_OK_MASK | PSPPIRE_BUTTON_CANCEL_MASK | PSPPIRE_BUTTON_HELP_MASK</property>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+            <property name="pack-type">end</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkBox">
             <property name="visible">True</property>
-            <property name="can_focus">False</property>
-            <property name="label_xalign">0</property>
-            <property name="shadow_type">in</property>
+            <property name="can-focus">False</property>
+            <property name="orientation">vertical</property>
             <child>
-              <object class="GtkButtonBox">
+              <object class="GtkFrame">
                 <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="orientation">vertical</property>
-                <property name="layout_style">spread</property>
+                <property name="can-focus">False</property>
+                <property name="label-xalign">0</property>
+                <property name="shadow-type">in</property>
                 <child>
-                  <object class="GtkCheckButton" id="checkbutton-maximize">
-                    <property name="label" translatable="yes">Ma_ximize</property>
+                  <object class="GtkButtonBox">
                     <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">False</property>
-                   <property name="use_underline">True</property>
-                    <property name="draw_indicator">True</property>
+                    <property name="can-focus">False</property>
+                    <property name="orientation">vertical</property>
+                    <property name="layout-style">spread</property>
+                    <child>
+                      <object class="GtkCheckButton" id="checkbutton-maximize">
+                        <property name="label" translatable="yes">Ma_ximize</property>
+                        <property name="visible">True</property>
+                        <property name="can-focus">True</property>
+                        <property name="receives-default">False</property>
+                        <property name="use-underline">True</property>
+                        <property name="draw-indicator">True</property>
+                      </object>
+                      <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkCheckButton" id="checkbutton-raise">
+                        <property name="label" translatable="yes">_Raise</property>
+                        <property name="visible">True</property>
+                        <property name="can-focus">True</property>
+                        <property name="receives-default">False</property>
+                        <property name="use-underline">True</property>
+                        <property name="draw-indicator">True</property>
+                      </object>
+                      <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkCheckButton" id="checkbutton-alert">
+                        <property name="label" translatable="yes">Aler_t</property>
+                        <property name="visible">True</property>
+                        <property name="can-focus">True</property>
+                        <property name="receives-default">False</property>
+                        <property name="use-underline">True</property>
+                        <property name="draw-indicator">True</property>
+                      </object>
+                      <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                        <property name="position">2</property>
+                      </packing>
+                    </child>
                   </object>
-                  <packing>
-                    <property name="expand">True</property>
-                    <property name="fill">True</property>
-                    <property name="position">0</property>
-                  </packing>
                 </child>
-                <child>
-                  <object class="GtkCheckButton" id="checkbutton-raise">
-                    <property name="label" translatable="yes">_Raise</property>
+                <child type="label">
+                  <object class="GtkLabel">
                     <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">False</property>
-                   <property name="use_underline">True</property>
-                    <property name="draw_indicator">True</property>
+                    <property name="can-focus">False</property>
+                    <property name="label" translatable="yes">Output Window Action</property>
                   </object>
-                  <packing>
-                    <property name="expand">True</property>
-                    <property name="fill">True</property>
-                    <property name="position">1</property>
-                  </packing>
                 </child>
+              </object>
+              <packing>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkFrame">
+                <property name="visible">True</property>
+                <property name="can-focus">False</property>
+                <property name="label-xalign">0</property>
                 <child>
-                  <object class="GtkCheckButton" id="checkbutton-alert">
-                    <property name="label" translatable="yes">Aler_t</property>
+                  <object class="GtkAlignment">
                     <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">False</property>
-                   <property name="use_underline">True</property>
-                    <property name="draw_indicator">True</property>
+                    <property name="can-focus">False</property>
+                    <property name="left-padding">12</property>
+                    <child>
+                      <object class="GtkCheckButton" id="checkbutton-show-tips">
+                        <property name="label" translatable="yes">Show Tips</property>
+                        <property name="visible">True</property>
+                        <property name="can-focus">True</property>
+                        <property name="receives-default">False</property>
+                        <property name="draw-indicator">True</property>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+                <child type="label">
+                  <object class="GtkLabel">
+                    <property name="visible">True</property>
+                    <property name="can-focus">False</property>
+                    <property name="label" translatable="yes">Startup Options</property>
                   </object>
-                  <packing>
-                    <property name="expand">True</property>
-                    <property name="fill">True</property>
-                    <property name="position">2</property>
-                  </packing>
                 </child>
               </object>
-            </child>
-            <child type="label">
-              <object class="GtkLabel">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="label" translatable="yes">Output Window Action</property>
-              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+              </packing>
             </child>
           </object>
-        </child>
-
-        <child>
-          <object class="PsppireButtonBox" id="options-buttonbox">
-            <property name="orientation">vertical</property>
-            <property name="visible">True</property>
-            <property name="can_focus">False</property>
-            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-            <property name="border_width">5</property>
-            <property name="buttons">PSPPIRE_BUTTON_OK_MASK | PSPPIRE_BUTTON_CANCEL_MASK | PSPPIRE_BUTTON_HELP_MASK</property>
-          </object>
           <packing>
-            <property name="expand">False</property>
-            <property name="fill">False</property>
-            <property name="pack_type">end</property>
-            <property name="position">1</property>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
+            <property name="position">2</property>
           </packing>
         </child>
-
       </object>
     </child>
-
   </object>
 </interface>