[gnac/devel] Added menu item to hide toolbar



commit d16558059101cd7b19b44237e8312a8e2b393d10
Author: Benoît Dupasquier <bdupasqu src gnome org>
Date:   Mon Nov 1 20:53:42 2010 +0000

    Added menu item to hide toolbar

 data/gnac.schemas.in |   10 ++++++++++
 data/ui/gnac.xml     |   20 ++++++++++++++++++--
 src/gnac-gconf.c     |    1 +
 src/gnac-gconf.h     |    1 +
 src/gnac-ui.c        |   40 +++++++++++++++++++++++++++++++++++-----
 src/gnac-ui.h        |    4 ++++
 6 files changed, 69 insertions(+), 7 deletions(-)
---
diff --git a/data/gnac.schemas.in b/data/gnac.schemas.in
index 95566ab..0a3fe08 100644
--- a/data/gnac.schemas.in
+++ b/data/gnac.schemas.in
@@ -12,6 +12,16 @@
       </locale>
     </schema>
     <schema>
+      <key>/schemas/apps/gnac/display/toolbar_visible</key>
+      <applyto>/apps/gnac/display/toolbar_visible</applyto>
+      <owner>gnac</owner>
+      <type>bool</type>
+      <default>true</default>
+      <locale name="C">
+        <short>Display a toolbar</short>
+      </locale>
+    </schema>
+    <schema>
       <key>/schemas/apps/gnac/conversion/folder_hierarchy</key>
       <applyto>/apps/gnac/conversion/folder_hierarchy</applyto>
       <owner>gnac</owner>
diff --git a/data/ui/gnac.xml b/data/ui/gnac.xml
index 55a29d4..a6bacc5 100644
--- a/data/ui/gnac.xml
+++ b/data/ui/gnac.xml
@@ -1,5 +1,4 @@
-<?xml version="1.0"?>
-<!--Generated with glade3 3.4.5 on Mon Dec 15 14:23:48 2008 -->
+<?xml version="1.0" encoding="UTF-8"?>
 <interface>
   <object class="GtkUIManager" id="uimanager1">
     <child>
@@ -83,6 +82,20 @@
           </object>
         </child>
         <child>
+          <object class="GtkAction" id="menuitem3">
+            <property name="name">menuitem3</property>
+            <property name="label" translatable="yes">_View</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkToggleAction" id="view_toolbar_item">
+            <property name="label" translatable="yes">_Toolbar</property>
+            <property name="name">view_toolbar_item</property>
+            <property name="active">True</property>
+            <signal handler="gnac_ui_on_view_toolbar_cb" name="activate"/>
+          </object>
+        </child>
+        <child>
           <object class="GtkAction" id="menuitem4">
             <property name="name">menuitem4</property>
             <property name="label" translatable="yes">_Help</property>
@@ -154,6 +167,9 @@
           <separator/>
           <menuitem action="prefs_item"/>
         </menu>
+        <menu action="menuitem3">
+          <menuitem action="view_toolbar_item"/>
+        </menu>
         <menu action="menuitem4">
           <menuitem action="help_item"/>
           <menuitem action="about_item"/>
diff --git a/src/gnac-gconf.c b/src/gnac-gconf.c
index 703b89b..31c0cd4 100644
--- a/src/gnac-gconf.c
+++ b/src/gnac-gconf.c
@@ -36,6 +36,7 @@
 
 static const gchar *gnac_gconf_paths[] = {
   "/apps/gnac/display/tray_icon",
+  "/apps/gnac/display/toolbar_visible",
   "/apps/gnac/conversion/clear_sources",
   "/apps/gnac/conversion/strip_special",
   "/apps/gnac/conversion/rename_pattern",
diff --git a/src/gnac-gconf.h b/src/gnac-gconf.h
index d127a81..163b4f3 100644
--- a/src/gnac-gconf.h
+++ b/src/gnac-gconf.h
@@ -36,6 +36,7 @@ G_BEGIN_DECLS
 
 typedef enum {
   GNAC_GCONF_TRAY_ICON,
+  GNAC_GCONF_TOOLBAR_VISIBLE,
   GNAC_GCONF_CLEAR_SOURCE,
   GNAC_GCONF_STRIP_SPECIAL,
   GNAC_GCONF_RENAME_PATTERN,
diff --git a/src/gnac-ui.c b/src/gnac-ui.c
index 5bdfbe6..b2664aa 100644
--- a/src/gnac-ui.c
+++ b/src/gnac-ui.c
@@ -449,6 +449,22 @@ gnac_remove_track(gpointer data,
 }
 
 
+static void
+gnac_ui_show_toolbar(void)
+{
+  gboolean         visible;
+  GtkToggleAction *view_toolbar;
+  GtkWidget       *toolbar;
+
+  /* update toolbar's status */
+  view_toolbar = GTK_TOGGLE_ACTION(gnac_ui_get_action("view_toolbar_item"));
+  visible = gnac_gconf_get_boolean(GNAC_GCONF_TOOLBAR_VISIBLE);
+  gtk_toggle_action_set_active(view_toolbar, visible);
+  toolbar = gnac_ui_get_widget("main_toolbar");
+  gtk_widget_set_visible(toolbar, visible);
+}
+
+
 void
 gnac_ui_reset_file_filter(void)
 {
@@ -592,10 +608,10 @@ gnac_ui_file_chooser_key_press_event_cb(GtkWidget   *widget,
 void
 gnac_ui_new(void)
 {
-  gchar     *current_profile;
-  GtkWidget *file_list;
-  GtkWidget *audio_profile_hbox;
-  GError    *err = NULL;
+  gchar           *current_profile;
+  GtkWidget       *audio_profile_hbox;
+  GtkWidget       *file_list;
+  GError          *err = NULL;
 
   gnac_stock_items_init();
 
@@ -618,10 +634,10 @@ gnac_ui_new(void)
 
   file_list = gnac_file_list_new();
 
+  /* Add audio profile combo box */
   audio_profile_hbox = GTK_WIDGET(gtk_builder_get_object(gnac_main_builder,
       "audio_profile_hbox"));
 
-  /* Add audio profile combo box */
   audio_profile_chooser_combo = gnac_profiles_get_widget(
       gnac_ui_get_widget("main_window"));
 
@@ -912,6 +928,19 @@ gnac_ui_on_focus_in_event_cb(GtkWidget     *widget,
 
 
 void
+gnac_ui_on_view_toolbar_cb(GtkAction *action,
+                           gpointer   user_data)
+{
+  gboolean visible;
+  GtkWidget *toolbar;
+  toolbar = gnac_ui_get_widget("main_toolbar"),
+  visible = !gtk_widget_get_visible(toolbar);
+  gtk_widget_set_visible(toolbar, visible);
+  gnac_gconf_set_boolean(GNAC_GCONF_TOOLBAR_VISIBLE, visible);
+}
+
+
+void
 gnac_ui_on_help_cb(GtkAction *action,
                    gpointer   user_data)
 {
@@ -1151,6 +1180,7 @@ gnac_ui_show(void)
 
   gtk_widget_show_all(main_window);
 
+  gnac_ui_show_toolbar();
   gnac_ui_show_progress(FALSE);
   gnac_ui_show_pause(FALSE);
   gnac_bars_activate_pause(FALSE);
diff --git a/src/gnac-ui.h b/src/gnac-ui.h
index 850b5e8..20cd102 100644
--- a/src/gnac-ui.h
+++ b/src/gnac-ui.h
@@ -127,6 +127,10 @@ gnac_ui_on_focus_in_event_cb(GtkWidget     *widget,
                              gpointer       data);
 
 void
+gnac_ui_on_view_toolbar_cb(GtkAction *action,
+                           gpointer   user_data);
+
+void
 gnac_ui_on_help_cb(GtkAction *action,
                    gpointer   user_data);
 



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