SF.net SVN: geany-plugins: [59] trunk/instantsave
eht16 at users.sourceforge.net
eht16 at xxxxx
Tue Jun 3 16:06:40 UTC 2008
Revision: 59
http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=59&view=rev
Author: eht16
Date: 2008-06-03 09:06:14 -0700 (Tue, 03 Jun 2008)
Log Message:
-----------
Compilation fixes.
Version bump.
Modified Paths:
--------------
trunk/instantsave/ChangeLog
trunk/instantsave/configure.in
trunk/instantsave/src/instantsave.c
Modified: trunk/instantsave/ChangeLog
===================================================================
--- trunk/instantsave/ChangeLog 2008-06-02 22:36:11 UTC (rev 58)
+++ trunk/instantsave/ChangeLog 2008-06-03 16:06:14 UTC (rev 59)
@@ -1,3 +1,11 @@
+2008-06-03 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
+
+ * src/instantsave.c:
+ Compilation fixes.
+ * configure.in:
+ Version bump.
+
+
2008-05-20 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
* src/instantsave.c:
Modified: trunk/instantsave/configure.in
===================================================================
--- trunk/instantsave/configure.in 2008-06-02 22:36:11 UTC (rev 58)
+++ trunk/instantsave/configure.in 2008-06-03 16:06:14 UTC (rev 59)
@@ -2,7 +2,7 @@
# $Id$
AC_INIT(configure.in)
-AM_INIT_AUTOMAKE(instantsave, 0.1)
+AM_INIT_AUTOMAKE(instantsave, 0.2)
AM_CONFIG_HEADER(config.h)
Modified: trunk/instantsave/src/instantsave.c
===================================================================
--- trunk/instantsave/src/instantsave.c 2008-06-02 22:36:11 UTC (rev 58)
+++ trunk/instantsave/src/instantsave.c 2008-06-03 16:06:14 UTC (rev 59)
@@ -25,7 +25,7 @@
#include <config.h>
#include <unistd.h>
-#if HAVE_LOCALE_H
+#ifdef HAVE_LOCALE_H
# include <locale.h>
#endif
@@ -44,10 +44,10 @@
GeanyFunctions *geany_functions;
-PLUGIN_VERSION_CHECK(60)
+PLUGIN_VERSION_CHECK(67)
-PLUGIN_INFO(_("Instant Save"), _("Save instantly new files without an explicit Save As dialog."),
- "0.1", "Enrico Tröger")
+PLUGIN_SET_INFO(_("Instant Save"), _("Save instantly new files without an explicit Save As dialog."),
+ "0.2", "Enrico Tröger")
static gchar *config_file;
@@ -56,7 +56,7 @@
static void on_document_new(GObject *obj, gint idx, gpointer user_data)
{
- if (doc_list[idx].file_name == NULL)
+ if (documents[idx]->file_name == NULL)
{
gchar *new_filename;
gint fd;
@@ -70,9 +70,9 @@
/* add the filetype's default extension to the new filename */
setptr(new_filename, g_strconcat(new_filename, ".", ft->extension, NULL));
- doc_list[idx].file_name = new_filename;
+ documents[idx]->file_name = new_filename;
- if (FILETYPE_ID(doc_list[idx].file_type) == GEANY_FILETYPES_NONE)
+ if (FILETYPE_ID(documents[idx]->file_type) == GEANY_FILETYPES_NONE)
p_document->set_filetype(idx, p_filetypes->lookup_by_name(default_ft));
/* force saving the file to enable all the related actions(tab name, filetype, etc.) */
@@ -81,7 +81,7 @@
}
-GeanyCallback geany_callbacks[] =
+PluginCallback plugin_callbacks[] =
{
{ "document-new", (GCallback) &on_document_new, FALSE, NULL },
{ NULL, NULL, FALSE, NULL }
@@ -93,7 +93,7 @@
#ifdef ENABLE_NLS
gchar *locale_dir = NULL;
-#if HAVE_LOCALE_H
+#ifdef HAVE_LOCALE_H
setlocale(LC_ALL, "");
#endif
@@ -114,8 +114,42 @@
}
-void init(GeanyData *data)
+static void on_configure_response(GtkDialog *dialog, gint response, gpointer user_data)
{
+ if (response == GTK_RESPONSE_OK || response == GTK_RESPONSE_APPLY)
+ {
+ GKeyFile *config = g_key_file_new();
+ gchar *data;
+ gchar *config_dir = g_path_get_dirname(config_file);
+
+ g_free(default_ft);
+ default_ft = gtk_combo_box_get_active_text(GTK_COMBO_BOX(
+ g_object_get_data(G_OBJECT(dialog), "combo")));
+
+ g_key_file_load_from_file(config, config_file, G_KEY_FILE_NONE, NULL);
+ g_key_file_set_string(config, "instantsave", "default_ft", default_ft);
+
+ if (! g_file_test(config_dir, G_FILE_TEST_IS_DIR) && p_utils->mkdir(config_dir, TRUE) != 0)
+ {
+ p_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);
+ p_utils->write_file(config_file, data);
+ g_free(data);
+ }
+
+ g_free(config_dir);
+ g_key_file_free(config);
+ }
+}
+
+
+void plugin_init(GeanyData *data)
+{
GKeyFile *config = g_key_file_new();
config_file = g_strconcat(app->configdir, G_DIR_SEPARATOR_S, "plugins", G_DIR_SEPARATOR_S,
"instantsave", G_DIR_SEPARATOR_S, "instantsave.conf", NULL);
@@ -130,17 +164,12 @@
}
-void configure(GtkWidget *parent)
+GtkWidget *plugin_configure(GtkDialog *dialog)
{
- GtkWidget *dialog, *label, *vbox, *combo;
+ GtkWidget *label, *vbox, *combo;
gint i;
- dialog = gtk_dialog_new_with_buttons(_("Instant Save"),
- GTK_WINDOW(parent), GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL);
- vbox = p_ui->dialog_vbox_new(GTK_DIALOG(dialog));
- gtk_widget_set_name(dialog, "GeanyDialog");
- gtk_box_set_spacing(GTK_BOX(vbox), 6);
+ vbox = gtk_vbox_new(FALSE, 6);
label = gtk_label_new(_("Filetype to use for newly opened files:"));
gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
@@ -159,40 +188,14 @@
gtk_widget_show_all(vbox);
- /* run the dialog and check for the response code */
- if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT)
- {
- GKeyFile *config = g_key_file_new();
- gchar *data;
- gchar *config_dir = g_path_get_dirname(config_file);
-
- g_free(default_ft);
- default_ft = gtk_combo_box_get_active_text(GTK_COMBO_BOX(combo));
-
- g_key_file_load_from_file(config, config_file, G_KEY_FILE_NONE, NULL);
- g_key_file_set_string(config, "instantsave", "default_ft", default_ft);
-
- if (! g_file_test(config_dir, G_FILE_TEST_IS_DIR) && p_utils->mkdir(config_dir, TRUE) != 0)
- {
- p_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);
- p_utils->write_file(config_file, data);
- g_free(data);
- }
-
- g_free(config_dir);
- g_key_file_free(config);
- }
- gtk_widget_destroy(dialog);
+ g_object_set_data(G_OBJECT(dialog), "combo", combo);
+ g_signal_connect(dialog, "response", G_CALLBACK(on_configure_response), NULL);
+
+ return vbox;
}
-void cleanup(void)
+void plugin_cleanup(void)
{
g_free(config_file);
g_free(default_ft);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Plugins-Commits
mailing list