[baobab/wip/vala] First cut at reworking the gui.



commit c0d295566e0a0a355b50e77d15b559d390240e74
Author: Paolo Borelli <pborelli gnome org>
Date:   Sun Jan 22 10:56:53 2012 +0100

    First cut at reworking the gui.
    
    Move charts to the left since they are the most prominent UI and move chart
    selection to radio buttons (I want to use symbolic icons though...)

 data/baobab-main-window.ui |  171 ++++++++++++++++++++++++++------------------
 src/baobab-window.vala     |   23 ++++--
 2 files changed, 118 insertions(+), 76 deletions(-)
---
diff --git a/data/baobab-main-window.ui b/data/baobab-main-window.ui
index 6194568..60831b1 100644
--- a/data/baobab-main-window.ui
+++ b/data/baobab-main-window.ui
@@ -22,12 +22,12 @@
             <property name="tooltip_text" translatable="yes">Scan home folder</property>
             <property name="use_action_appearance">False</property>
             <property name="is_important">True</property>
+            <property name="action_name">win.scan-home</property>
             <property name="label" translatable="yes">Scan Home</property>
             <property name="use_underline">True</property>
             <property name="stock_id">gtk-home</property>
-            <property name="action_name">win.scan-home</property>
             <child internal-child="accessible">
-              <object class="AtkObject" id="tbscanhome1-atkobject">
+              <object class="AtkObject" id="scan-home-button-atkobject">
                 <property name="AtkObject::accessible-name" translatable="yes">Scan home folder</property>
               </object>
             </child>
@@ -46,10 +46,10 @@
             <property name="tooltip_markup" translatable="yes">Scan filesystem</property>
             <property name="tooltip_text" translatable="yes">Scan filesystem</property>
             <property name="use_action_appearance">False</property>
+            <property name="action_name">win.scan-filesystem</property>
             <property name="label" translatable="yes">Scan Filesystem</property>
             <property name="use_underline">True</property>
             <property name="stock_id">gtk-harddisk</property>
-            <property name="action_name">win.scan-filesystem</property>
           </object>
           <packing>
             <property name="expand">False</property>
@@ -65,10 +65,10 @@
             <property name="tooltip_markup" translatable="yes">Scan a folder</property>
             <property name="tooltip_text" translatable="yes">Scan a folder</property>
             <property name="use_action_appearance">False</property>
+            <property name="action_name">win.scan-folder</property>
             <property name="label" translatable="yes">Scan Folder</property>
             <property name="use_underline">True</property>
             <property name="stock_id">gtk-directory</property>
-            <property name="action_name">win.scan-folder</property>
           </object>
           <packing>
             <property name="expand">False</property>
@@ -84,10 +84,10 @@
             <property name="tooltip_markup" translatable="yes">Scan a remote folder</property>
             <property name="tooltip_text" translatable="yes">Scan a remote folder</property>
             <property name="use_action_appearance">False</property>
+            <property name="action_name">win.scan-remote</property>
             <property name="label" translatable="yes">Scan Remote Folder</property>
             <property name="use_underline">True</property>
             <property name="stock_id">gtk-network</property>
-            <property name="action_name">win.scan-remote</property>
           </object>
           <packing>
             <property name="expand">False</property>
@@ -112,8 +112,8 @@
             <property name="tooltip_markup" translatable="yes">Stop scanning</property>
             <property name="tooltip_text" translatable="yes">Stop scanning</property>
             <property name="use_action_appearance">False</property>
-            <property name="stock_id">gtk-stop</property>
             <property name="action_name">win.stop</property>
+            <property name="stock_id">gtk-stop</property>
           </object>
           <packing>
             <property name="expand">False</property>
@@ -129,8 +129,8 @@
             <property name="tooltip_markup" translatable="yes">Reload</property>
             <property name="tooltip_text" translatable="yes">Reload</property>
             <property name="use_action_appearance">False</property>
-            <property name="stock_id">gtk-refresh</property>
             <property name="action_name">win.reload</property>
+            <property name="stock_id">gtk-refresh</property>
           </object>
           <packing>
             <property name="expand">False</property>
@@ -146,46 +146,6 @@
       </packing>
     </child>
     <child>
-      <object class="GtkLabel" id="label">
-        <property name="visible">True</property>
-        <property name="can_focus">False</property>
-        <property name="margin_left">6</property>
-        <property name="margin_right">25</property>
-        <property name="margin_top">6</property>
-        <property name="margin_bottom">6</property>
-        <property name="hexpand">True</property>
-        <property name="xalign">0.0</property>
-      </object>
-      <packing>
-        <property name="left_attach">0</property>
-        <property name="top_attach">1</property>
-        <property name="width">1</property>
-        <property name="height">1</property>
-      </packing>
-    </child>
-    <child>
-      <object class="GtkComboBoxText" id="chart-type-combo">
-        <property name="visible">True</property>
-        <property name="can_focus">False</property>
-        <property name="margin_left">25</property>
-        <property name="margin_right">6</property>
-        <property name="margin_top">6</property>
-        <property name="margin_bottom">6</property>
-        <property name="active">0</property>
-        <property name="id_column">1</property>
-        <items>
-          <item id="rings" translatable="yes">View as Rings Chart</item>
-          <item id="treemap" translatable="yes">View as Treemap Chart</item>
-        </items>
-      </object>
-      <packing>
-        <property name="left_attach">1</property>
-        <property name="top_attach">1</property>
-        <property name="width">1</property>
-        <property name="height">1</property>
-      </packing>
-    </child>
-    <child>
       <object class="GtkPaned" id="hpaned">
         <property name="visible">True</property>
         <property name="can_focus">True</property>
@@ -193,6 +153,101 @@
         <property name="vexpand">True</property>
         <property name="position">480</property>
         <child>
+          <object class="GtkGrid" id="chart-grid">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="hexpand">True</property>
+            <property name="vexpand">True</property>
+            <child>
+              <object class="GtkNotebook" id="chart-notebook">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="show_tabs">False</property>
+                <property name="show_border">False</property>
+                <child>
+                  <object class="BaobabRingschart" id="rings-chart">
+                    <property name="visible">True</property>
+                    <property name="hexpand">True</property>
+                    <property name="vexpand">True</property>
+                  </object>
+                </child>
+                <child>
+                  <object class="BaobabTreemap" id="treemap-chart">
+                    <property name="visible">True</property>
+                    <property name="hexpand">True</property>
+                    <property name="vexpand">True</property>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="left_attach">0</property>
+                <property name="top_attach">0</property>
+                <property name="width">1</property>
+                <property name="height">1</property>
+              </packing>
+            </child>
+        <child>
+          <object class="GtkButtonBox" id="chart-buttonbox">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="margin_left">12</property>
+            <property name="margin_top">6</property>
+            <property name="margin_bottom">6</property>
+            <property name="homogeneous">True</property>
+            <property name="layout_style">start</property>
+            <style>
+              <class name="linked"/>
+            </style>
+            <child>
+              <object class="GtkRadioButton" id="rings-button">
+                <property name="label" translatable="yes">Rings</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">False</property>
+                <property name="use_action_appearance">False</property>
+                <property name="xalign">0.5</property>
+                <property name="active">True</property>
+                <property name="draw_indicator">False</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkRadioButton" id="treemap-button">
+                <property name="label" translatable="yes">Treemap</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">False</property>
+                <property name="use_action_appearance">False</property>
+                <property name="xalign">0.5</property>
+                <property name="active">True</property>
+                <property name="draw_indicator">False</property>
+                <property name="group">rings-button</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="left_attach">0</property>
+            <property name="top_attach">1</property>
+            <property name="width">1</property>
+            <property name="height">1</property>
+          </packing>
+        </child>
+          </object>
+          <packing>
+            <property name="resize">True</property>
+            <property name="shrink">True</property>
+          </packing>
+        </child>
+        <child>
           <object class="GtkScrolledWindow" id="scrolled-window">
             <property name="visible">True</property>
             <property name="can_focus">True</property>
@@ -288,28 +343,6 @@
             <property name="shrink">True</property>
           </packing>
         </child>
-        <child>
-          <object class="GtkNotebook" id="chart-notebook">
-            <property name="visible">True</property>
-            <property name="can_focus">True</property>
-            <property name="show_tabs">False</property>
-            <property name="show_border">False</property>
-            <child>
-              <object class="BaobabRingschart" id="rings-chart">
-                <property name="visible">True</property>
-              </object>
-            </child>
-            <child>
-              <object class="BaobabTreemap" id="treemap-chart">
-                <property name="visible">True</property>
-              </object>
-            </child>
-          </object>
-          <packing>
-            <property name="resize">True</property>
-            <property name="shrink">True</property>
-          </packing>
-        </child>
       </object>
       <packing>
         <property name="left_attach">0</property>
diff --git a/src/baobab-window.vala b/src/baobab-window.vala
index 3718c06..6b88368 100644
--- a/src/baobab-window.vala
+++ b/src/baobab-window.vala
@@ -1,9 +1,11 @@
 namespace Baobab {
 	public class Window : Gtk.ApplicationWindow {
 		Gtk.TreeView treeview;
-		Gtk.Widget chart_type_combo;
+		Gtk.Notebook chart_notebook;
 		Chart rings_chart;
 		Chart treemap_chart;
+		Gtk.ToggleButton rings_chart_button;
+		Gtk.ToggleButton treemap_chart_button;
 		Scanner? scanner;
 
 		static Gdk.Cursor busy_cursor;
@@ -64,17 +66,22 @@ namespace Baobab {
 			}
 
 			// Cache some objects from the builder.
-			chart_type_combo = builder.get_object ("chart-type-combo") as Gtk.Widget;
+			chart_notebook = builder.get_object ("chart-notebook") as Gtk.Notebook;
 			rings_chart = builder.get_object ("rings-chart") as Chart;
 			treemap_chart = builder.get_object ("treemap-chart") as Chart;
+			rings_chart_button = builder.get_object ("rings-button") as Gtk.ToggleButton;
+			treemap_chart_button = builder.get_object ("treemap-button") as Gtk.ToggleButton;
 			treeview = builder.get_object ("treeview") as Gtk.TreeView;
 
 			var ui_settings = Application.get_ui_settings ();
 
 			// Setup the logic for switching between the chart types.
-			var charts_notebook = builder.get_object ("chart-notebook");
-			chart_type_combo.bind_property ("active", charts_notebook, "page", BindingFlags.SYNC_CREATE);
-			ui_settings.bind ("active-chart", chart_type_combo, "active-id", SettingsBindFlags.GET_NO_CHANGES);
+			rings_chart_button.toggled.connect (() => {
+				chart_notebook.page = 0;
+			});
+			treemap_chart_button.toggled.connect (() => {
+				chart_notebook.page = 1;
+			});
 
 			// Setup drag-n-drop
 			drag_data_received.connect(on_drag_data_received);
@@ -229,12 +236,14 @@ namespace Baobab {
 				disable_drop ();
 				rings_chart.freeze_updates();
 				treemap_chart.freeze_updates ();
-				chart_type_combo.set_sensitive (false);
+				rings_chart_button.set_sensitive (false);
+				treemap_chart_button.set_sensitive (false);
 			} else {
 				enable_drop ();
 				rings_chart.thaw_updates();
 				treemap_chart.thaw_updates ();
-				chart_type_combo.set_sensitive (true);
+				rings_chart_button.set_sensitive (true);
+				treemap_chart_button.set_sensitive (true);
 			}
 
 			var window = get_window ();



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