[geany/geany-plugins] e31930: Merge pull request #707 from LarsGit223/devhelp-newapi

Frank Lanitz git-noreply at xxxxx
Sun Apr 14 16:43:15 UTC 2019


Branch:      refs/heads/master
Author:      Frank Lanitz <frank at frank.uvena.de>
Committer:   GitHub <noreply at github.com>
Date:        Sun, 14 Apr 2019 16:43:15 UTC
Commit:      e319301e097e232649a72eb611ce56d7c6257eb1
             https://github.com/geany/geany-plugins/commit/e319301e097e232649a72eb611ce56d7c6257eb1

Log Message:
-----------
Merge pull request #707 from LarsGit223/devhelp-newapi

devhelp: use new plugin API


Modified Paths:
--------------
    devhelp/src/dhp-plugin.c
    devhelp/src/dhp-plugin.h

Modified: devhelp/src/dhp-plugin.c
98 lines changed, 66 insertions(+), 32 deletions(-)
===================================================================
@@ -36,21 +36,20 @@
 #include "dhp.h"
 
 
-PLUGIN_VERSION_CHECK(224)
+GeanyPlugin	 	*geany_plugin;
+GeanyData	   	*geany_data;
 
-PLUGIN_SET_TRANSLATABLE_INFO(
-	LOCALEDIR,
-	GETTEXT_PACKAGE,
-	_("Devhelp Plugin"),
-	_("Adds support for looking up documentation in Devhelp, manual pages, and "
-	  "Google Code Search in the integrated viewer."),
-	"1.0", "Matthew Brush <mbrush at leftclick.ca>")
 
+struct PluginData
+{
+	gchar *default_config;
+	gchar *user_config;
+
+	DevhelpPlugin *devhelp;
+};
 
-GeanyPlugin	 	*geany_plugin;
-GeanyData	   	*geany_data;
 
-struct PluginData plugin;
+struct PluginData plugin_data;
 
 /* keybindings */
 enum
@@ -72,32 +71,32 @@ static void kb_activate(guint key_id)
 	switch (key_id)
 	{
 		case KB_DEVHELP_TOGGLE_CONTENTS:
-			devhelp_plugin_toggle_contents_tab(plugin.devhelp);
+			devhelp_plugin_toggle_contents_tab(plugin_data.devhelp);
 			break;
 		case KB_DEVHELP_TOGGLE_SEARCH:
-			devhelp_plugin_toggle_search_tab(plugin.devhelp);
+			devhelp_plugin_toggle_search_tab(plugin_data.devhelp);
 			break;
 		case KB_DEVHELP_TOGGLE_WEBVIEW: /* not working */
-			devhelp_plugin_toggle_webview_tab(plugin.devhelp);
+			devhelp_plugin_toggle_webview_tab(plugin_data.devhelp);
 			break;
 		case KB_DEVHELP_ACTIVATE_DEVHELP:
-			devhelp_plugin_activate_all_tabs(plugin.devhelp);
+			devhelp_plugin_activate_all_tabs(plugin_data.devhelp);
 			break;
 		case KB_DEVHELP_SEARCH_SYMBOL:
 		{
-			current_tag = devhelp_plugin_get_current_word(plugin.devhelp);
+			current_tag = devhelp_plugin_get_current_word(plugin_data.devhelp);
 			if (current_tag == NULL)
 				return;
-			devhelp_plugin_search_books(plugin.devhelp, current_tag);
+			devhelp_plugin_search_books(plugin_data.devhelp, current_tag);
 			g_free(current_tag);
 			break;
 		}
 		case KB_DEVHELP_SEARCH_MANPAGES:
 		{
-			current_tag = devhelp_plugin_get_current_word(plugin.devhelp);
+			current_tag = devhelp_plugin_get_current_word(plugin_data.devhelp);
 			if (current_tag == NULL)
 				return;
-			devhelp_plugin_search_manpages(plugin.devhelp, current_tag);
+			devhelp_plugin_search_manpages(plugin_data.devhelp, current_tag);
 			g_free(current_tag);
 			break;
 		}
@@ -111,10 +110,10 @@ gboolean plugin_config_init(struct PluginData *pd)
 
 	g_return_val_if_fail(pd != NULL, FALSE);
 
-	plugin.default_config = g_build_path(G_DIR_SEPARATOR_S, DHPLUG_DATA_DIR, "devhelp.conf", NULL);
+	plugin_data.default_config = g_build_path(G_DIR_SEPARATOR_S, DHPLUG_DATA_DIR, "devhelp.conf", NULL);
 
 	user_config_dir = g_build_path(G_DIR_SEPARATOR_S, geany_data->app->configdir, "plugins", "devhelp", NULL);
-	plugin.user_config = g_build_path(G_DIR_SEPARATOR_S, user_config_dir, "devhelp.conf", NULL);
+	plugin_data.user_config = g_build_path(G_DIR_SEPARATOR_S, user_config_dir, "devhelp.conf", NULL);
 	if (g_mkdir_with_parents(user_config_dir, S_IRUSR | S_IWUSR | S_IXUSR) != 0)
 	{
 		g_warning(_("Unable to create config dir at '%s'"), user_config_dir);
@@ -151,21 +150,24 @@ gboolean plugin_config_init(struct PluginData *pd)
 }
 
 
-void plugin_init(GeanyData *data)
+static gboolean plugin_devhelp_init(GeanyPlugin *plugin, G_GNUC_UNUSED gpointer pdata)
 {
 	GeanyKeyGroup *key_group;
 
+	geany_plugin = plugin;
+	geany_data = plugin->geany_data;
+
 	plugin_module_make_resident(geany_plugin);
 
 	if (!g_thread_supported())
 		g_thread_init(NULL);
 
-	memset(&plugin, 0, sizeof(struct PluginData));
+	memset(&plugin_data, 0, sizeof(struct PluginData));
 
-	plugin.devhelp = devhelp_plugin_new();
-	plugin_config_init(&plugin);
+	plugin_data.devhelp = devhelp_plugin_new();
+	plugin_config_init(&plugin_data);
 
-	devhelp_plugin_load_settings(plugin.devhelp, plugin.user_config);
+	devhelp_plugin_load_settings(plugin_data.devhelp, plugin_data.user_config);
 
 	key_group = plugin_set_key_group(geany_plugin, "devhelp", KB_COUNT, NULL);
 
@@ -179,18 +181,50 @@ void plugin_init(GeanyData *data)
 		0, 0, "devhelp_activate_all", _("Activate all tabs"), NULL);
 	keybindings_set_item(key_group, KB_DEVHELP_SEARCH_SYMBOL, kb_activate,
 		0, 0, "devhelp_search_symbol", _("Search for current tag in Devhelp"), NULL);
-	if (devhelp_plugin_get_have_man_prog(plugin.devhelp))
+	if (devhelp_plugin_get_have_man_prog(plugin_data.devhelp))
 	{
 		keybindings_set_item(key_group, KB_DEVHELP_SEARCH_MANPAGES, kb_activate,
 			0, 0, "devhelp_search_manpages", _("Search for current tag in Manual Pages"), NULL);
 	}
+
+	return TRUE;
+}
+
+
+static void plugin_devhelp_cleanup(G_GNUC_UNUSED GeanyPlugin *plugin, G_GNUC_UNUSED gpointer pdata)
+{
+	devhelp_plugin_store_settings(plugin_data.devhelp, plugin_data.user_config);
+	g_object_unref(plugin_data.devhelp);
+	g_free(plugin_data.default_config);
+	g_free(plugin_data.user_config);
+}
+
+
+static void plugin_devhelp_help (G_GNUC_UNUSED GeanyPlugin *plugin, G_GNUC_UNUSED gpointer pdata)
+{
+	utils_open_browser("https://plugins.geany.org/devhelp.html");
 }
 
 
-void plugin_cleanup(void)
+/* Load module */
+G_MODULE_EXPORT
+void geany_load_module(GeanyPlugin *plugin)
 {
-	devhelp_plugin_store_settings(plugin.devhelp, plugin.user_config);
-	g_object_unref(plugin.devhelp);
-	g_free(plugin.default_config);
-	g_free(plugin.user_config);
+	/* Setup translation */
+	main_locale_init(LOCALEDIR, GETTEXT_PACKAGE);
+
+	/* Set metadata */
+	plugin->info->name = _("Devhelp Plugin");
+	plugin->info->description = _("Adds support for looking up documentation in Devhelp, manual pages, and "
+		"Google Code Search in the integrated viewer.");
+	plugin->info->version = "1.0";
+	plugin->info->author = "Matthew Brush <mbrush at leftclick.ca>";
+
+	/* Set functions */
+	plugin->funcs->init = plugin_devhelp_init;
+	plugin->funcs->cleanup = plugin_devhelp_cleanup;
+	plugin->funcs->help = plugin_devhelp_help;
+
+	/* Register! */
+	GEANY_PLUGIN_REGISTER(plugin, 226);
 }


Modified: devhelp/src/dhp-plugin.h
15 lines changed, 0 insertions(+), 15 deletions(-)
===================================================================
@@ -32,19 +32,4 @@
 extern GeanyPlugin	 	*geany_plugin;
 extern GeanyData	   	*geany_data;
 
-
-struct PluginData
-{
-	gchar *default_config;
-	gchar *user_config;
-
-	DevhelpPlugin *devhelp;
-};
-
-extern struct PluginData plugin;
-
-
-gboolean	plugin_config_init			(struct PluginData *pd);
-
-
 #endif



--------------
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