[geany/geany-plugins] 55048a: Merge pull request #727 from LarsGit223/wb-expand-on-hover

Frank Lanitz git-noreply at xxxxx
Mon Mar 12 19:36:56 UTC 2018


Branch:      refs/heads/master
Author:      Frank Lanitz <frank at frank.uvena.de>
Committer:   GitHub <noreply at github.com>
Date:        Mon, 12 Mar 2018 19:36:56 UTC
Commit:      55048a66d494dc35e2378c418147a73a1dab8a53
             https://github.com/geany/geany-plugins/commit/55048a66d494dc35e2378c418147a73a1dab8a53

Log Message:
-----------
Merge pull request #727 from LarsGit223/wb-expand-on-hover

workbench: added option "Expand on hover"


Modified Paths:
--------------
    workbench/src/dialogs.c
    workbench/src/plugin_main.c
    workbench/src/sidebar.c
    workbench/src/workbench.c
    workbench/src/workbench.h

Modified: workbench/src/dialogs.c
17 lines changed, 16 insertions(+), 1 deletions(-)
===================================================================
@@ -407,12 +407,13 @@ gboolean dialogs_directory_settings(WB_PROJECT_DIR *directory)
 gboolean dialogs_workbench_settings(WORKBENCH *workbench)
 {
 	gint result;
-	GtkWidget *w_rescan_projects_on_open, *w_enable_live_update;
+	GtkWidget *w_rescan_projects_on_open, *w_enable_live_update, *w_expand_on_hover;
 	GtkWidget *dialog, *content_area;
 	GtkWidget *vbox, *hbox, *table;
 	GtkDialogFlags flags;
 	gboolean changed, rescan_projects_on_open, rescan_projects_on_open_old;
 	gboolean enable_live_update, enable_live_update_old;
+	gboolean expand_on_hover, expand_on_hover_old;
 
 	/* Create the widgets */
 	flags = GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT;
@@ -447,6 +448,14 @@ gboolean dialogs_workbench_settings(WORKBENCH *workbench)
 	enable_live_update_old = workbench_get_enable_live_update(workbench);
 	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w_enable_live_update), enable_live_update_old);
 
+	w_expand_on_hover = gtk_check_button_new_with_mnemonic(_("_Expand on hover"));
+	ui_table_add_row(GTK_TABLE(table), 2, w_expand_on_hover, NULL);
+	gtk_widget_set_tooltip_text(w_expand_on_hover,
+		_("If the option is activated, then a tree node in the sidebar"
+		  " will be expanded or collapsed by hovering over it with the mouse cursor."));
+	expand_on_hover_old = workbench_get_expand_on_hover(workbench);
+	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w_expand_on_hover), expand_on_hover_old);
+
 	gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 6);
 
 	hbox = gtk_hbox_new(FALSE, 0);
@@ -472,6 +481,12 @@ gboolean dialogs_workbench_settings(WORKBENCH *workbench)
 			changed = TRUE;
 			workbench_set_enable_live_update(workbench, enable_live_update);
 		}
+		expand_on_hover = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w_expand_on_hover));
+		if (expand_on_hover != expand_on_hover_old)
+		{
+			changed = TRUE;
+			workbench_set_expand_on_hover(workbench, expand_on_hover);
+		}
 	}
 
 	gtk_widget_destroy(dialog);


Modified: workbench/src/plugin_main.c
2 lines changed, 1 insertions(+), 1 deletions(-)
===================================================================
@@ -130,7 +130,7 @@ void geany_load_module(GeanyPlugin *plugin)
 	/* Set metadata */
 	plugin->info->name = _("Workbench");
 	plugin->info->description = _("Manage and customize multiple projects.");
-	plugin->info->version = "1.04";
+	plugin->info->version = "1.05";
 	plugin->info->author = "LarsGit223";
 
 	/* Set functions */


Modified: workbench/src/sidebar.c
11 lines changed, 11 insertions(+), 0 deletions(-)
===================================================================
@@ -863,6 +863,9 @@ static void sidebar_update_workbench(GtkTreeIter *iter, gint *position)
 		gint length;
 		gchar text[200];
 
+		gtk_tree_view_set_hover_expand(GTK_TREE_VIEW(sidebar.file_view),
+			workbench_get_expand_on_hover(wb_globals.opened_wb));
+
 		count = workbench_get_project_count(wb_globals.opened_wb);
 		length = g_snprintf(text, sizeof(text),
 							g_dngettext(GETTEXT_PACKAGE, "%s: %u Project", "%s: %u Projects", count),
@@ -913,6 +916,14 @@ void sidebar_update (SIDEBAR_EVENT event, SIDEBAR_CONTEXT *context)
 			sidebar_reset_tree_store();
 			sidebar_update_workbench(&iter, &position);
 			sidebar_insert_all_projects(&iter, &position);
+
+			if (event == SIDEBAR_CONTEXT_WB_CREATED ||
+				event == SIDEBAR_CONTEXT_WB_OPENED)
+			{
+				gtk_tree_view_set_hover_expand(GTK_TREE_VIEW(sidebar.file_view),
+					workbench_get_expand_on_hover(wb_globals.opened_wb));
+			}
+
 			sidebar_activate();
 		break;
 		case SIDEBAR_CONTEXT_WB_SAVED:


Modified: workbench/src/workbench.c
48 lines changed, 48 insertions(+), 0 deletions(-)
===================================================================
@@ -48,6 +48,7 @@ struct S_WORKBENCH
 	gboolean  modified;
 	gboolean  rescan_projects_on_open;
 	gboolean  enable_live_update;
+	gboolean  expand_on_hover;
 	GPtrArray *projects;
 	GPtrArray *bookmarks;
 	WB_MONITOR *monitor;
@@ -252,6 +253,42 @@ gboolean workbench_get_enable_live_update(WORKBENCH *wb)
 }
 
 
+/** Set the "Expand on hover" option.
+ *
+ * @param wb    The workbench
+ * @param value The value to set
+ *
+ **/
+void workbench_set_expand_on_hover(WORKBENCH *wb, gboolean value)
+{
+	if (wb != NULL)
+	{
+		if (wb->expand_on_hover != value)
+		{
+			wb->expand_on_hover = value;
+			wb->modified = TRUE;
+		}
+	}
+}
+
+
+/** Get the "Expand on hover" option.
+ *
+ * @param wb The workbench
+ * @return TRUE = expand a tree-node on hovering over it,
+ *         FALSE = don't
+ *
+ **/
+gboolean workbench_get_expand_on_hover(WORKBENCH *wb)
+{
+	if (wb != NULL)
+	{
+		return wb->expand_on_hover;
+	}
+	return FALSE;
+}
+
+
 /** Set the filename.
  *
  * @param wb       The workbench
@@ -653,6 +690,7 @@ gboolean workbench_save(WORKBENCH *wb, GError **error)
 		g_key_file_set_string(kf, "General", "version", "1.0");
 		g_key_file_set_boolean(kf, "General", "RescanProjectsOnOpen", wb->rescan_projects_on_open);
 		g_key_file_set_boolean(kf, "General", "EnableLiveUpdate", wb->enable_live_update);
+		g_key_file_set_boolean(kf, "General", "ExpandOnHover", wb->expand_on_hover);
 
 		/* Save Workbench bookmarks as string list */
 		boomarks_size = workbench_get_bookmarks_count(wb);
@@ -786,6 +824,16 @@ gboolean workbench_load(WORKBENCH *wb, const gchar *filename, GError **error)
 			   Initialize with TRUE. */
 			wb->enable_live_update = TRUE;
 		}
+		if (g_key_file_has_key (kf, "General", "ExpandOnHover", error))
+		{
+			wb->expand_on_hover = g_key_file_get_boolean(kf, "General", "ExpandOnHover", error);
+		}
+		else
+		{
+			/* Not found. Might happen if the workbench was created with an older version of the plugin.
+			   Initialize with FALSE. */
+			wb->expand_on_hover = FALSE;
+		}
 
 		/* Load Workbench bookmarks from string list */
 		bookmarks_strings = g_key_file_get_string_list (kf, "General", "Bookmarks", NULL, error);


Modified: workbench/src/workbench.h
2 lines changed, 2 insertions(+), 0 deletions(-)
===================================================================
@@ -43,6 +43,8 @@ void workbench_set_rescan_projects_on_open(WORKBENCH *wb, gboolean value);
 gboolean workbench_get_rescan_projects_on_open(WORKBENCH *wb);
 void workbench_set_enable_live_update(WORKBENCH *wb, gboolean value);
 gboolean workbench_get_enable_live_update(WORKBENCH *wb);
+void workbench_set_expand_on_hover(WORKBENCH *wb, gboolean value);
+gboolean workbench_get_expand_on_hover(WORKBENCH *wb);
 
 WB_PROJECT *workbench_get_project_at_index(WORKBENCH *wb, guint index);
 PROJECT_ENTRY_STATUS workbench_get_project_status_at_index(WORKBENCH *wb, guint index);



--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).


More information about the Plugins-Commits mailing list