gnome: add general settings

This adds some history controls

Refs #71873
Refs #71866

Change-Id: I01243031c4a6d485780b01b1fbfdacff4fe1d052
diff --git a/ui/generalsettingsview.ui b/ui/generalsettingsview.ui
new file mode 100644
index 0000000..2d020f0
--- /dev/null
+++ b/ui/generalsettingsview.ui
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <requires lib="gtk+" version="3.10"/>
+  <object class="GtkAdjustment" id="adjustment_history_duration">
+    <property name="value">0</property>
+    <property name="lower">0</property>
+    <property name="upper">65535</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <template class="GeneralSettingsView" parent="GtkBox">
+    <property name="visible">True</property>
+    <property name="can_focus">False</property>
+    <property name="border_width">10</property>
+    <property name="orientation">vertical</property>
+    <child>
+      <object class="GtkBox" id="vbox_main">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="orientation">vertical</property>
+        <property name="spacing">10</property>
+        <!-- start history settings -->
+        <child>
+          <object class="GtkFrame" id="frame_history_settings">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="label_xalign">0</property>
+            <property name="shadow_type">none</property>
+            <!-- start grid history settings-->
+            <child>
+              <object class="GtkGrid" id="grid_history_settings">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="margin_left">10</property>
+                <property name="margin_top">10</property>
+                <property name="row_spacing">10</property>
+                <property name="column_spacing">10</property>
+                <child>
+                  <object class="GtkLabel" id="label_history_duration">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="label" translatable="yes">Keep history for (days):</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">0</property>
+                    <property name="top_attach">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkSpinButton" id="spinbutton_history_duration">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="value">0</property>
+                    <property name="adjustment">adjustment_history_duration</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">1</property>
+                    <property name="top_attach">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="label_history_explanation">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="label" translatable="yes">(set to 0 for unlimited history)</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">2</property>
+                    <property name="top_attach">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkButton" id="button_clear_history">
+                    <property name="label" translatable="yes">Clear all history</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="receives_default">True</property>
+                    <property name="halign">start</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">0</property>
+                    <property name="top_attach">1</property>
+                  </packing>
+                </child>
+              </object>
+            </child>
+            <!-- end grid history settings -->
+            <!-- start frame label -->
+            <child type="label">
+              <object class="GtkLabel" id="label_history_settings">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">&lt;b&gt;History Settings&lt;/b&gt;</property>
+                <property name="use_markup">True</property>
+              </object>
+            </child>
+            <!-- end frame label -->
+          </object>
+        </child>
+        <!-- end history settings -->
+      </object>
+      <packing>
+        <property name="expand">False</property>
+        <property name="fill">True</property>
+      </packing>
+    </child>
+  </template>
+</interface>
diff --git a/ui/ringmainwindow.ui b/ui/ringmainwindow.ui
index 3b030b9..dae8571 100644
--- a/ui/ringmainwindow.ui
+++ b/ui/ringmainwindow.ui
@@ -90,8 +90,7 @@
                 <child>
                   <object class="GtkRadioButton" id="radiobutton_general_settings">
                     <property name="label" translatable="yes">General</property>
-                    <!-- TODO make visible when feature added -->
-                    <property name="visible">False</property>
+                    <property name="visible">True</property>
                     <property name="image">image_general_settings</property>
                     <property name="draw_indicator">False</property>
                   </object>
diff --git a/ui/ui.gresource.xml b/ui/ui.gresource.xml
index dacadd8..80140ee 100644
--- a/ui/ui.gresource.xml
+++ b/ui/ui.gresource.xml
@@ -11,5 +11,6 @@
     <file preprocess="xml-stripblanks">accountvideotab.ui</file>
     <file preprocess="xml-stripblanks">mediasettingsview.ui</file>
     <file preprocess="xml-stripblanks">accountadvancedtab.ui</file>
+    <file preprocess="xml-stripblanks">generalsettingsview.ui</file>
   </gresource>
 </gresources>
\ No newline at end of file