SF.net SVN: geany: [2176] trunk

eht16 at users.sourceforge.net eht16 at xxxxx
Wed Jan 16 16:30:35 UTC 2008


Revision: 2176
          http://geany.svn.sourceforge.net/geany/?rev=2176&view=rev
Author:   eht16
Date:     2008-01-16 08:30:34 -0800 (Wed, 16 Jan 2008)

Log Message:
-----------
Add option for project session files support.   

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/geany.glade
    trunk/src/interface.c
    trunk/src/keyfile.c
    trunk/src/prefs.c
    trunk/src/project.c
    trunk/src/project.h

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2008-01-16 13:07:04 UTC (rev 2175)
+++ trunk/ChangeLog	2008-01-16 16:30:34 UTC (rev 2176)
@@ -1,3 +1,10 @@
+2008-01-16  Enrico Tröger  <enrico(dot)troeger(at)uvena(dot)de>
+
+ * geany.glade, src/interface.c, src/keyfile.c, src/prefs.c,
+   src/project.c, src/project.h:
+   Add option for project session files support.
+
+
 2008-01-16  Nick Treleaven  <nick(dot)treleaven(at)btinternet(dot)com>
 
  * src/editor.c:

Modified: trunk/geany.glade
===================================================================
--- trunk/geany.glade	2008-01-16 13:07:04 UTC (rev 2175)
+++ trunk/geany.glade	2008-01-16 16:30:34 UTC (rev 2176)
@@ -3184,6 +3184,25 @@
 			  </child>
 
 			  <child>
+			    <widget class="GtkCheckButton" id="check_project_session">
+			      <property name="visible">True</property>
+			      <property name="tooltip" translatable="yes">Whether to store project session files and open them when re-opening the project.</property>
+			      <property name="label" translatable="yes">Load and save session files when open and close a project</property>
+			      <property name="use_underline">True</property>
+			      <property name="relief">GTK_RELIEF_NORMAL</property>
+			      <property name="focus_on_click">False</property>
+			      <property name="active">False</property>
+			      <property name="inconsistent">False</property>
+			      <property name="draw_indicator">True</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
+
+			  <child>
 			    <widget class="GtkCheckButton" id="check_vte">
 			      <property name="tooltip" translatable="yes">Whether the virtual terminal emulation (VTE) should be loaded at startup. Disable it if you do not need it.</property>
 			      <property name="can_focus">True</property>

Modified: trunk/src/interface.c
===================================================================
--- trunk/src/interface.c	2008-01-16 13:07:04 UTC (rev 2175)
+++ trunk/src/interface.c	2008-01-16 16:30:34 UTC (rev 2176)
@@ -2477,6 +2477,7 @@
   GtkWidget *alignment13;
   GtkWidget *vbox4;
   GtkWidget *check_load_session;
+  GtkWidget *check_project_session;
   GtkWidget *check_vte;
   GtkWidget *check_plugins;
   GtkWidget *check_save_win_pos;
@@ -2811,6 +2812,13 @@
   gtk_tooltips_set_tip (tooltips, check_load_session, _("Opens at startup the files from the last session"), NULL);
   gtk_button_set_focus_on_click (GTK_BUTTON (check_load_session), FALSE);
 
+  check_project_session = gtk_check_button_new_with_mnemonic (_("Load and save session files when open and close a project"));
+  gtk_widget_show (check_project_session);
+  gtk_box_pack_start (GTK_BOX (vbox4), check_project_session, FALSE, FALSE, 0);
+  GTK_WIDGET_UNSET_FLAGS (check_project_session, GTK_CAN_FOCUS);
+  gtk_tooltips_set_tip (tooltips, check_project_session, _("Whether to store project session files and open them when re-opening the project."), NULL);
+  gtk_button_set_focus_on_click (GTK_BUTTON (check_project_session), FALSE);
+
   check_vte = gtk_check_button_new_with_mnemonic (_("Load virtual terminal support"));
   gtk_box_pack_start (GTK_BOX (vbox4), check_vte, FALSE, FALSE, 0);
   gtk_tooltips_set_tip (tooltips, check_vte, _("Whether the virtual terminal emulation (VTE) should be loaded at startup. Disable it if you do not need it."), NULL);
@@ -4417,6 +4425,7 @@
   GLADE_HOOKUP_OBJECT (prefs_dialog, alignment13, "alignment13");
   GLADE_HOOKUP_OBJECT (prefs_dialog, vbox4, "vbox4");
   GLADE_HOOKUP_OBJECT (prefs_dialog, check_load_session, "check_load_session");
+  GLADE_HOOKUP_OBJECT (prefs_dialog, check_project_session, "check_project_session");
   GLADE_HOOKUP_OBJECT (prefs_dialog, check_vte, "check_vte");
   GLADE_HOOKUP_OBJECT (prefs_dialog, check_plugins, "check_plugins");
   GLADE_HOOKUP_OBJECT (prefs_dialog, check_save_win_pos, "check_save_win_pos");

Modified: trunk/src/keyfile.c
===================================================================
--- trunk/src/keyfile.c	2008-01-16 13:07:04 UTC (rev 2175)
+++ trunk/src/keyfile.c	2008-01-16 16:30:34 UTC (rev 2176)
@@ -175,6 +175,7 @@
 
 	// general
 	g_key_file_set_boolean(config, PACKAGE, "pref_main_load_session", prefs.load_session);
+	g_key_file_set_boolean(config, PACKAGE, "pref_main_project_session", project_prefs.project_session);
 	g_key_file_set_boolean(config, PACKAGE, "pref_main_save_winpos", prefs.save_winpos);
 	g_key_file_set_boolean(config, PACKAGE, "pref_main_confirm_exit", prefs.confirm_exit);
 	g_key_file_set_boolean(config, PACKAGE, "pref_main_suppress_search_dialogs", prefs.suppress_search_dialogs);
@@ -471,6 +472,7 @@
 	prefs.suppress_search_dialogs = utils_get_setting_boolean(config, PACKAGE, "pref_main_suppress_search_dialogs", FALSE);
 	prefs.suppress_status_messages = utils_get_setting_boolean(config, PACKAGE, "pref_main_suppress_status_messages", FALSE);
 	prefs.load_session = utils_get_setting_boolean(config, PACKAGE, "pref_main_load_session", TRUE);
+	project_prefs.project_session = utils_get_setting_boolean(config, PACKAGE, "pref_main_project_session", TRUE);
 	prefs.save_winpos = utils_get_setting_boolean(config, PACKAGE, "pref_main_save_winpos", TRUE);
 	prefs.beep_on_errors = utils_get_setting_boolean(config, PACKAGE, "beep_on_errors", TRUE);
 	prefs.switch_msgwin_pages = utils_get_setting_boolean(config, PACKAGE, "switch_msgwin_pages", FALSE);

Modified: trunk/src/prefs.c
===================================================================
--- trunk/src/prefs.c	2008-01-16 13:07:04 UTC (rev 2175)
+++ trunk/src/prefs.c	2008-01-16 16:30:34 UTC (rev 2176)
@@ -164,6 +164,9 @@
 	widget = lookup_widget(ui_widgets.prefs_dialog, "check_load_session");
 	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.load_session);
 
+	widget = lookup_widget(ui_widgets.prefs_dialog, "check_project_session");
+	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), project_prefs.project_session);
+
 	widget = lookup_widget(ui_widgets.prefs_dialog, "check_save_win_pos");
 	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.save_winpos);
 
@@ -563,6 +566,9 @@
 		widget = lookup_widget(ui_widgets.prefs_dialog, "check_load_session");
 		prefs.load_session = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
 
+		widget = lookup_widget(ui_widgets.prefs_dialog, "check_project_session");
+		project_prefs.project_session = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
+
 		widget = lookup_widget(ui_widgets.prefs_dialog, "check_save_win_pos");
 		prefs.save_winpos = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
 

Modified: trunk/src/project.c
===================================================================
--- trunk/src/project.c	2008-01-16 13:07:04 UTC (rev 2175)
+++ trunk/src/project.c	2008-01-16 16:30:34 UTC (rev 2176)
@@ -46,7 +46,7 @@
 #include "geanyobject.h"
 
 
-ProjectPrefs project_prefs = {NULL};
+ProjectPrefs project_prefs = { NULL, 0 };
 
 static struct
 {
@@ -212,7 +212,8 @@
 			goto retry;
 		}
 		g_free(filename);
-		configuration_open_files();
+		if (project_prefs.project_session)
+			configuration_open_files();
 	}
 }
 #endif
@@ -239,7 +240,8 @@
 		{
 			SHOW_ERR1(_("Project file \"%s\" could not be loaded."), file);
 		}
-		configuration_open_files();
+		if (project_prefs.project_session)
+			configuration_open_files();
 		g_free(file);
 	}
 #else
@@ -312,18 +314,21 @@
 	g_free(app->project);
 	app->project = NULL;
 
-	// close all existing tabs first
-	for (i = 0; i < max; i++)
+	if (project_prefs.project_session)
 	{
-		if (! document_remove(0))
-			break;
-	}
+		// close all existing tabs first
+		for (i = 0; i < max; i++)
+		{
+			if (! document_remove(0))
+				break;
+		}
 
-	// after closing all tabs let's open the tabs found in the default config
-	if (open_default == TRUE && cl_options.load_session)
-	{
-		configuration_reload_default_session();
-		configuration_open_files();
+		// after closing all tabs let's open the tabs found in the default config
+		if (open_default == TRUE && cl_options.load_session)
+		{
+			configuration_reload_default_session();
+			configuration_open_files();
+		}
 	}
 
 	if (geany_object)
@@ -884,12 +889,14 @@
 	p->run_cmd = utils_get_setting_string(config, "project", "run_cmd", "");
 	p->file_patterns = g_key_file_get_string_list(config, "project", "file_patterns", NULL, NULL);
 
-	// save current (non-project) session (it could has been changed since program startup)
-	configuration_save_default_session();
+	if (project_prefs.project_session)
+	{
+		// save current (non-project) session (it could has been changed since program startup)
+		configuration_save_default_session();
+		// read session files so they can be opened with configuration_open_files()
+		configuration_load_session_files(config);
+	}
 
-	// read session files so they can be opened with configuration_open_files()
-	configuration_load_session_files(config);
-
 	if (geany_object)
 	{
 		g_signal_emit_by_name(geany_object, "project-open", config);
@@ -936,8 +943,8 @@
 			(const gchar**) p->file_patterns, g_strv_length(p->file_patterns));
 
 	// store the session files into the project too
-	/// TODO maybe it is useful to store relative file names if base_path is relative
-	configuration_save_session_files(config);
+	if (project_prefs.project_session)
+		configuration_save_session_files(config);
 
 	if (geany_object && emit_signal)
 	{

Modified: trunk/src/project.h
===================================================================
--- trunk/src/project.h	2008-01-16 13:07:04 UTC (rev 2175)
+++ trunk/src/project.h	2008-01-16 16:30:34 UTC (rev 2176)
@@ -48,6 +48,7 @@
 typedef struct
 {
 	gchar *session_file;
+	gboolean project_session;
 } ProjectPrefs;
 
 extern ProjectPrefs project_prefs;


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