SF.net SVN: geany-plugins:[1965] trunk/geany-plugins/devhelp
codebrainz at users.sourceforge.net
codebrainz at xxxxx
Tue Mar 8 10:10:18 UTC 2011
Revision: 1965
http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=1965&view=rev
Author: codebrainz
Date: 2011-03-08 10:10:18 +0000 (Tue, 08 Mar 2011)
Log Message:
-----------
Store last URI loaded in WebKit to configuration file.
Load the last page that was open in the WebKitWebView from the configuration
file when the plugin/Geany starts and save it on unload/close.
Modified Paths:
--------------
trunk/geany-plugins/devhelp/data/devhelp.conf
trunk/geany-plugins/devhelp/src/devhelpplugin.c
trunk/geany-plugins/devhelp/src/devhelpplugin.h
trunk/geany-plugins/devhelp/src/plugin.c
Modified: trunk/geany-plugins/devhelp/data/devhelp.conf
===================================================================
--- trunk/geany-plugins/devhelp/data/devhelp.conf 2011-03-08 09:12:58 UTC (rev 1964)
+++ trunk/geany-plugins/devhelp/data/devhelp.conf 2011-03-08 10:10:18 UTC (rev 1965)
@@ -1,3 +1,4 @@
[general]
move_sidebar_tabs_bottom=true
show_in_message_window=false
+last_uri=
Modified: trunk/geany-plugins/devhelp/src/devhelpplugin.c
===================================================================
--- trunk/geany-plugins/devhelp/src/devhelpplugin.c 2011-03-08 09:12:58 UTC (rev 1964)
+++ trunk/geany-plugins/devhelp/src/devhelpplugin.c 2011-03-08 10:10:18 UTC (rev 1965)
@@ -163,10 +163,11 @@
*/
static void on_link_clicked(GObject *ignored, DhLink *link, gpointer user_data)
{
- gchar *uri = dh_link_get_uri(link);
DevhelpPlugin *plug = user_data;
- webkit_web_view_open(WEBKIT_WEB_VIEW(plug->webview), uri);
- g_free(uri);
+ if (plug->last_uri)
+ g_free(plug->last_uri);
+ plug->last_uri = dh_link_get_uri(link);
+ webkit_web_view_open(WEBKIT_WEB_VIEW(plug->webview), plug->last_uri);
gtk_notebook_set_current_page(GTK_NOTEBOOK(plug->main_notebook),
plug->webview_tab);
}
@@ -181,7 +182,8 @@
*
* @return A newly allocated DevhelpPlugin struct or null on error.
*/
-DevhelpPlugin *devhelp_plugin_new(gboolean sb_tabs_bottom, gboolean show_in_msgwin)
+DevhelpPlugin*
+devhelp_plugin_new(gboolean sb_tabs_bottom, gboolean show_in_msgwin, gchar *last_uri)
{
gchar *homepage_uri;
GtkWidget *book_tree_sw, *webview_sw, *contents_label;
@@ -326,12 +328,14 @@
geany->main_widgets->sidebar_notebook));
dhplug->tabs_toggled = FALSE;
- /* load the default homepage for the webview */
- homepage_uri = g_filename_to_uri(DHPLUG_WEBVIEW_HOME_FILE, NULL, NULL);
- if (homepage_uri) {
- webkit_web_view_load_uri(WEBKIT_WEB_VIEW(dhplug->webview),
- homepage_uri);
- g_free(homepage_uri);
+ dhplug->last_uri = last_uri;
+ if (dhplug->last_uri)
+ webkit_web_view_load_uri(WEBKIT_WEB_VIEW(dhplug->webview), dhplug->last_uri);
+ else {
+ dhplug->last_uri = g_filename_to_uri(DHPLUG_WEBVIEW_HOME_FILE, NULL, NULL);
+ if (dhplug->last_uri)
+ webkit_web_view_load_uri(WEBKIT_WEB_VIEW(dhplug->webview),
+ dhplug->last_uri);
}
return dhplug;
Modified: trunk/geany-plugins/devhelp/src/devhelpplugin.h
===================================================================
--- trunk/geany-plugins/devhelp/src/devhelpplugin.h 2011-03-08 09:12:58 UTC (rev 1964)
+++ trunk/geany-plugins/devhelp/src/devhelpplugin.h 2011-03-08 10:10:18 UTC (rev 1965)
@@ -78,6 +78,8 @@
gboolean sidebar_tab_bottom;
gboolean in_message_window;
+ gchar *last_uri;
+
DevhelpPluginPrivate *priv;
};
@@ -88,7 +90,8 @@
GType devhelp_plugin_get_type (void);
-DevhelpPlugin* devhelp_plugin_new (gboolean sb_tabs_bottom, gboolean show_in_msgwin);
+DevhelpPlugin*
+devhelp_plugin_new (gboolean sb_tabs_bottom, gboolean show_in_msgwin, gchar *last_uri);
gchar *devhelp_plugin_clean_word(gchar *str);
gchar *devhelp_plugin_get_current_tag(void);
Modified: trunk/geany-plugins/devhelp/src/plugin.c
===================================================================
--- trunk/geany-plugins/devhelp/src/plugin.c 2011-03-08 09:12:58 UTC (rev 1964)
+++ trunk/geany-plugins/devhelp/src/plugin.c 2011-03-08 10:10:18 UTC (rev 1965)
@@ -46,6 +46,7 @@
static gchar *user_config = NULL;
static gboolean move_sidebar_tabs_bottom;
static gboolean show_in_msg_window;
+static gchar *last_uri = NULL;
/* keybindings */
enum
@@ -155,6 +156,17 @@
rcode++;
}
+ error = NULL;
+ last_uri = g_key_file_get_string(kf, "general", "last_uri", &error);
+ if (error)
+ {
+ g_warning("Unable to load 'last_uri' setting: %s", error->message);
+ g_error_free(error);
+ error = NULL;
+ last_uri = NULL;
+ rcode++;
+ }
+
g_key_file_free(kf);
return rcode;
@@ -174,6 +186,7 @@
move_sidebar_tabs_bottom);
g_key_file_set_boolean(kf, "general", "show_in_message_window",
show_in_msg_window);
+ g_key_file_set_string(kf, "general", "last_uri", dev_help_plugin->last_uri);
config_text = g_key_file_to_data(kf, NULL, NULL);
g_key_file_free(kf);
@@ -281,7 +294,8 @@
plugin_load_preferences();
dev_help_plugin = devhelp_plugin_new(move_sidebar_tabs_bottom,
- show_in_msg_window);
+ show_in_msg_window,
+ last_uri);
/* setup keybindings */
key_group = plugin_set_key_group(geany_plugin, "devhelp", KB_COUNT, NULL);
@@ -298,7 +312,10 @@
void plugin_cleanup(void)
{
plugin_store_preferences();
-
+
+ if (dev_help_plugin->last_uri)
+ g_free(dev_help_plugin->last_uri);
+
g_object_unref(dev_help_plugin);
g_free(default_config);
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