SF.net SVN: geany:[4815] trunk
frlan at users.sourceforge.net
frlan at xxxxx
Fri Apr 9 20:42:45 UTC 2010
Revision: 4815
http://geany.svn.sourceforge.net/geany/?rev=4815&view=rev
Author: frlan
Date: 2010-04-09 20:42:45 +0000 (Fri, 09 Apr 2010)
Log Message:
-----------
Make HTMLchars plugin remember whether replacement of special characters was activated even after restart of Geany or reloading of plugin.
Modified Paths:
--------------
trunk/ChangeLog
trunk/plugins/htmlchars.c
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2010-04-09 12:46:55 UTC (rev 4814)
+++ trunk/ChangeLog 2010-04-09 20:42:45 UTC (rev 4815)
@@ -1,3 +1,10 @@
+2010-04-09 Frank Lanitz <frank(at)frank(dot)uvena(dot)de>
+
+ * plugins/htmlchars.c:
+ Make plugin remember whether replacement of special characters was
+ activated even after restart of Geany or reloading of plugin.
+
+
2010-04-09 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
* src/editor.c:
Modified: trunk/plugins/htmlchars.c
===================================================================
--- trunk/plugins/htmlchars.c 2010-04-09 12:46:55 UTC (rev 4814)
+++ trunk/plugins/htmlchars.c 2010-04-09 20:42:45 UTC (rev 4815)
@@ -68,6 +68,9 @@
static GtkWidget *menu_htmltoggle = NULL;
static gboolean plugin_active = FALSE;
+/* Configuration file */
+static gchar *config_file = NULL;
+
const gchar *chars[][2] ={
{ N_("HTML characters"), NULL },
{ "\"", """ },
@@ -344,12 +347,38 @@
/* Functions to toggle the status of plugin */
void set_status(gboolean new_status)
{
- /* No more function at the moment.*/
if (plugin_active != new_status)
+ {
+ GKeyFile *config = g_key_file_new();
+ gchar *data;
+ gchar *config_dir = g_path_get_dirname(config_file);
+
plugin_active = new_status;
-}
+ /* Now we save the new status into configuration file to
+ * remember next time */
+ g_key_file_set_boolean(config, "general", "replacement_on_typing_active",
+ plugin_active);
+ if (!g_file_test(config_dir, G_FILE_TEST_IS_DIR)
+ && utils_mkdir(config_dir, TRUE) != 0)
+ {
+ dialogs_show_msgbox(GTK_MESSAGE_ERROR,
+ _("Plugin configuration directory could not be created."));
+ }
+ else
+ {
+ /* write config to file */
+ data = g_key_file_to_data(config, NULL, NULL);
+ utils_write_file(config_file, data);
+ g_free(data);
+ }
+ g_free(config_dir);
+ g_key_file_free(config);
+ }
+}
+
+
static void toggle_status(G_GNUC_UNUSED GtkMenuItem * menuitem)
{
if (plugin_active == TRUE)
@@ -430,9 +459,13 @@
static void kbhtmltoggle_toggle(G_GNUC_UNUSED guint key_id)
{
if (plugin_active == TRUE)
+ {
set_status(FALSE);
+ }
else
+ {
set_status(TRUE);
+ }
}
@@ -674,12 +707,32 @@
}
-/* Called by Geany to initialize the plugin */
+static void init_configuration()
+{
+ GKeyFile *config = g_key_file_new();
+
+ /* loading configurations from file ...*/
+ config_file = g_strconcat(geany->app->configdir, G_DIR_SEPARATOR_S,
+ "plugins", G_DIR_SEPARATOR_S,
+ "htmchars", G_DIR_SEPARATOR_S, "general.conf", NULL);
+
+ /* ... and initialising options from config file */
+ g_key_file_load_from_file(config, config_file, G_KEY_FILE_NONE, NULL);
+
+ plugin_active = utils_get_setting_boolean(config, "general",
+ "replacement_on_typing_active", FALSE);
+}
+
+
+/* Called by Geany to initialise the plugin */
void plugin_init(GeanyData *data)
{
GtkWidget *menu_item;
const gchar *menu_text = _("_Insert Special HTML Characters");
+ /* First we catch the configuration and initialize them */
+ init_configuration();
+
/* Add an item to the Tools menu for html chars dialog*/
menu_item = gtk_menu_item_new_with_mnemonic(menu_text);
gtk_widget_show(menu_item);
@@ -739,6 +792,9 @@
if (sc_dialog != NULL)
gtk_widget_destroy(sc_dialog);
+
+ if (config_file != NULL)
+ g_free(config_file);
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Commits
mailing list