[Xfce4-commits] [xfce/xfce4-appfinder] 01/01: Add hide category preference (Bug #14893)
noreply at xfce.org
noreply at xfce.org
Sat Nov 24 19:16:46 CET 2018
This is an automated email from the git hooks/post-receive script.
a n d r e p u s h e d a c o m m i t t o b r a n c h m a s t e r
in repository xfce/xfce4-appfinder.
commit 2728277483802dd00ce27667006d284df42d32d5
Author: Andre Miranda <andreldm at xfce.org>
Date: Sat Nov 24 15:16:17 2018 -0300
Add hide category preference (Bug #14893)
---
src/appfinder-preferences.c | 28 ++++++++++++++++++++++++----
src/appfinder-preferences.glade | 28 ++++++++++++++++++++++++----
src/appfinder-window.c | 14 ++++++++++++++
3 files changed, 62 insertions(+), 8 deletions(-)
diff --git a/src/appfinder-preferences.c b/src/appfinder-preferences.c
index 2ccdf65..5da8202 100644
--- a/src/appfinder-preferences.c
+++ b/src/appfinder-preferences.c
@@ -43,6 +43,8 @@ static void xfce_appfinder_preferences_beside_sensitive (GtkWidget
GtkWidget *text_beside_icon);
static void xfce_appfinder_preferences_single_window_sensitive (GtkWidget *keep_running,
GtkWidget *single_window);
+static void xfce_appfinder_preferences_hide_category_sensitive (GtkWidget *hide_category,
+ GtkWidget *category_icon_size);
static void xfce_appfinder_preferences_clear_history (XfceAppfinderPreferences *preferences);
static void xfce_appfinder_preferences_action_add (XfceAppfinderPreferences *preferences);
static void xfce_appfinder_preferences_action_remove (GtkWidget *button,
@@ -120,10 +122,10 @@ xfce_appfinder_preferences_init (XfceAppfinderPreferences *preferences)
xfconf_g_property_bind (preferences->channel, "/always-center", G_TYPE_BOOLEAN,
G_OBJECT (object), "active");
- previous = gtk_builder_get_object (GTK_BUILDER (preferences), "enable-service");
+ previous = gtk_builder_get_object (GTK_BUILDER (preferences), "enable-service");
xfconf_g_property_bind (preferences->channel, "/enable-service", G_TYPE_BOOLEAN,
G_OBJECT (previous), "active");
-
+
object = gtk_builder_get_object (GTK_BUILDER (preferences), "single-window");
xfconf_g_property_bind (preferences->channel, "/single-window", G_TYPE_BOOLEAN,
G_OBJECT (object), "active");
@@ -149,11 +151,19 @@ xfce_appfinder_preferences_init (XfceAppfinderPreferences *preferences)
xfconf_g_property_bind (preferences->channel, "/item-icon-size", G_TYPE_UINT,
G_OBJECT (object), "active");
- object = gtk_builder_get_object (GTK_BUILDER (preferences), "category-icon-size");
- gtk_combo_box_set_active (GTK_COMBO_BOX (object), XFCE_APPFINDER_ICON_SIZE_DEFAULT_CATEGORY);
+ previous = gtk_builder_get_object (GTK_BUILDER (preferences), "category-icon-size");
+ gtk_combo_box_set_active (GTK_COMBO_BOX (previous), XFCE_APPFINDER_ICON_SIZE_DEFAULT_CATEGORY);
xfconf_g_property_bind (preferences->channel, "/category-icon-size", G_TYPE_UINT,
+ G_OBJECT (previous), "active");
+
+ object = gtk_builder_get_object (GTK_BUILDER (preferences), "hide-category-pane");
+ xfconf_g_property_bind (preferences->channel, "/hide-category-pane", G_TYPE_BOOLEAN,
G_OBJECT (object), "active");
+ g_signal_connect (G_OBJECT (object), "toggled",
+ G_CALLBACK (xfce_appfinder_preferences_hide_category_sensitive), previous);
+ xfce_appfinder_preferences_hide_category_sensitive (GTK_WIDGET (object), GTK_WIDGET (previous));
+
object = gtk_builder_get_object (GTK_BUILDER (preferences), "button-clear");
g_signal_connect_swapped (G_OBJECT (object), "clicked",
G_CALLBACK (xfce_appfinder_preferences_clear_history), preferences);
@@ -229,6 +239,16 @@ xfce_appfinder_preferences_single_window_sensitive (GtkWidget *keep_running,
static void
+xfce_appfinder_preferences_hide_category_sensitive (GtkWidget *hide_category,
+ GtkWidget *category_icon_size)
+{
+ gboolean hide = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (hide_category));
+ gtk_widget_set_sensitive (category_icon_size, !hide);
+}
+
+
+
+static void
xfce_appfinder_preferences_clear_history (XfceAppfinderPreferences *preferences)
{
XfceAppfinderModel *model;
diff --git a/src/appfinder-preferences.glade b/src/appfinder-preferences.glade
index 409718b..dc8f7e3 100644
--- a/src/appfinder-preferences.glade
+++ b/src/appfinder-preferences.glade
@@ -301,6 +301,26 @@
</packing>
</child>
<child>
+ <object class="GtkCheckButton" id="hide-category-pane">
+ <property name="label" translatable="yes">Hide category pane</property>
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="tooltip_text" translatable="yes">Hide category panel and show all applications.</property>
+ <property name="use_underline">True</property>
+ <property name="active">False</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">3</property>
+ <property name="bottom_attach">4</property>
+ <property name="y_options"/>
+ </packing>
+ </child>
+ <child>
<object class="GtkLabel" id="label10">
<property name="visible">True</property>
<property name="can_focus">False</property>
@@ -310,8 +330,8 @@
<property name="xalign">0</property>
</object>
<packing>
- <property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
+ <property name="top_attach">4</property>
+ <property name="bottom_attach">5</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options"/>
</packing>
@@ -351,8 +371,8 @@
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
- <property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
+ <property name="top_attach">4</property>
+ <property name="bottom_attach">5</property>
<property name="y_options"/>
</packing>
</child>
diff --git a/src/appfinder-window.c b/src/appfinder-window.c
index b86903b..211aa4f 100644
--- a/src/appfinder-window.c
+++ b/src/appfinder-window.c
@@ -301,6 +301,9 @@ xfce_appfinder_window_init (XfceAppfinderWindow *window)
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scroll), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
gtk_widget_show (scroll);
+ if (xfconf_channel_get_bool (window->channel, "/hide-category-pane", FALSE))
+ gtk_widget_set_visible (scroll, FALSE);
+
sidepane = window->sidepane = gtk_tree_view_new_with_model (GTK_TREE_MODEL (window->category_model));
gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (sidepane), FALSE);
gtk_tree_view_set_enable_search (GTK_TREE_VIEW (sidepane), FALSE);
@@ -1640,6 +1643,17 @@ xfce_appfinder_window_property_changed (XfconfChannel *channel,
if (GTK_IS_ICON_VIEW (window->view))
xfce_appfinder_window_set_item_width (window);
}
+ else if (g_strcmp0 (prop, "/hide-category-pane") == 0)
+ {
+ gboolean hide = g_value_get_boolean (value);
+ gtk_widget_set_visible (gtk_widget_get_parent (window->sidepane), !hide);
+
+ if (hide) {
+ GtkTreePath *path = gtk_tree_path_new_from_string ("0");
+ gtk_tree_view_set_cursor (GTK_TREE_VIEW (window->sidepane), path, NULL, FALSE);
+ gtk_tree_path_free (path);
+ }
+ }
}
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Xfce4-commits
mailing list