SF.net SVN: geany:[4928] trunk

eht16 at users.sourceforge.net eht16 at xxxxx
Sun May 16 17:45:39 UTC 2010


Revision: 4928
          http://geany.svn.sourceforge.net/geany/?rev=4928&view=rev
Author:   eht16
Date:     2010-05-16 17:45:39 +0000 (Sun, 16 May 2010)

Log Message:
-----------
Add preference to add new document tabs beside the current one (patch by Colomban Wendling, thanks).

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

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2010-05-16 17:45:21 UTC (rev 4927)
+++ trunk/ChangeLog	2010-05-16 17:45:39 UTC (rev 4928)
@@ -23,6 +23,10 @@
    Fix broken "Go Up" if the current path ends with a slash.
  * THANKS, src/about.c, src/prefix.c:
    Replace free() by g_free() (patch by Daniel Marjamaki, thanks).
+ * geany.glade, src/document.h, src/interface.c, src/keyfile.c,
+   src/main.c, src/notebook.c, src/prefs.c:
+   Add preference to add new document tabs beside the current one
+   (patch by Colomban Wendling, thanks).
 
 
 2010-05-15  Enrico Tröger  <enrico(dot)troeger(at)uvena(dot)de>

Modified: trunk/geany.glade
===================================================================
--- trunk/geany.glade	2010-05-16 17:45:21 UTC (rev 4927)
+++ trunk/geany.glade	2010-05-16 17:45:39 UTC (rev 4928)
@@ -4291,10 +4291,13 @@
 			  </child>
 
 			  <child>
-			    <widget class="GtkHBox" id="hbox7">
+			    <widget class="GtkTable" id="table21">
 			      <property name="visible">True</property>
+			      <property name="n_rows">2</property>
+			      <property name="n_columns">2</property>
 			      <property name="homogeneous">False</property>
-			      <property name="spacing">12</property>
+			      <property name="row_spacing">0</property>
+			      <property name="column_spacing">0</property>
 
 			      <child>
 				<widget class="GtkLabel" id="label150">
@@ -4315,50 +4318,91 @@
 				  <property name="angle">0</property>
 				</widget>
 				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
+				  <property name="left_attach">0</property>
+				  <property name="right_attach">1</property>
+				  <property name="top_attach">0</property>
+				  <property name="bottom_attach">1</property>
+				  <property name="x_options">fill</property>
+				  <property name="y_options"></property>
 				</packing>
 			      </child>
 
 			      <child>
-				<widget class="GtkRadioButton" id="radio_tab_left">
+				<widget class="GtkHBox" id="hbox7">
 				  <property name="visible">True</property>
-				  <property name="tooltip" translatable="yes">File tabs will be placed on the left of the notebook</property>
-				  <property name="can_focus">True</property>
-				  <property name="label" translatable="yes">Left</property>
-				  <property name="use_underline">True</property>
-				  <property name="relief">GTK_RELIEF_NORMAL</property>
-				  <property name="focus_on_click">True</property>
-				  <property name="active">True</property>
-				  <property name="inconsistent">False</property>
-				  <property name="draw_indicator">True</property>
+				  <property name="homogeneous">False</property>
+				  <property name="spacing">12</property>
+
+				  <child>
+				    <widget class="GtkRadioButton" id="radio_tab_left">
+				      <property name="visible">True</property>
+				      <property name="tooltip" translatable="yes">File tabs will be placed on the left of the notebook</property>
+				      <property name="can_focus">True</property>
+				      <property name="label" translatable="yes">Left</property>
+				      <property name="use_underline">True</property>
+				      <property name="relief">GTK_RELIEF_NORMAL</property>
+				      <property name="focus_on_click">True</property>
+				      <property name="active">True</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="GtkRadioButton" id="radio_tab_right">
+				      <property name="visible">True</property>
+				      <property name="tooltip" translatable="yes">File tabs will be placed on the right of the notebook</property>
+				      <property name="can_focus">True</property>
+				      <property name="label" translatable="yes">Right</property>
+				      <property name="use_underline">True</property>
+				      <property name="relief">GTK_RELIEF_NORMAL</property>
+				      <property name="focus_on_click">True</property>
+				      <property name="active">False</property>
+				      <property name="inconsistent">False</property>
+				      <property name="draw_indicator">True</property>
+				      <property name="group">radio_tab_left</property>
+				    </widget>
+				    <packing>
+				      <property name="padding">0</property>
+				      <property name="expand">False</property>
+				      <property name="fill">False</property>
+				    </packing>
+				  </child>
 				</widget>
 				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
+				  <property name="left_attach">1</property>
+				  <property name="right_attach">2</property>
+				  <property name="top_attach">0</property>
+				  <property name="bottom_attach">1</property>
+				  <property name="y_options">fill</property>
 				</packing>
 			      </child>
 
 			      <child>
-				<widget class="GtkRadioButton" id="radio_tab_right">
+				<widget class="GtkCheckButton" id="check_tab_beside">
 				  <property name="visible">True</property>
-				  <property name="tooltip" translatable="yes">File tabs will be placed on the right of the notebook</property>
+				  <property name="tooltip" translatable="yes">Whether to place file tabs next to the current tab rather than at the edges of the notebook</property>
 				  <property name="can_focus">True</property>
-				  <property name="label" translatable="yes">Right</property>
+				  <property name="label" translatable="yes">Next to current</property>
 				  <property name="use_underline">True</property>
 				  <property name="relief">GTK_RELIEF_NORMAL</property>
 				  <property name="focus_on_click">True</property>
 				  <property name="active">False</property>
 				  <property name="inconsistent">False</property>
 				  <property name="draw_indicator">True</property>
-				  <property name="group">radio_tab_left</property>
 				</widget>
 				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
+				  <property name="left_attach">1</property>
+				  <property name="right_attach">2</property>
+				  <property name="top_attach">1</property>
+				  <property name="bottom_attach">2</property>
+				  <property name="x_options">fill</property>
+				  <property name="y_options"></property>
 				</packing>
 			      </child>
 			    </widget>

Modified: trunk/src/document.h
===================================================================
--- trunk/src/document.h	2010-05-16 17:45:21 UTC (rev 4927)
+++ trunk/src/document.h	2010-05-16 17:45:39 UTC (rev 4928)
@@ -51,6 +51,7 @@
 	gboolean		strip_trailing_spaces;
 	gboolean		replace_tabs;
 	gboolean		tab_order_ltr;
+	gboolean		tab_order_beside;
 	gboolean		show_tab_cross;
 	guint			mru_length;
 	gint			default_eol_character;

Modified: trunk/src/interface.c
===================================================================
--- trunk/src/interface.c	2010-05-16 17:45:21 UTC (rev 4927)
+++ trunk/src/interface.c	2010-05-16 17:45:39 UTC (rev 4928)
@@ -2355,11 +2355,13 @@
   GtkWidget *vbox26;
   GtkWidget *check_show_notebook_tabs;
   GtkWidget *check_show_tab_cross;
+  GtkWidget *table21;
+  GtkWidget *label150;
   GtkWidget *hbox7;
-  GtkWidget *label150;
   GtkWidget *radio_tab_left;
   GSList *radio_tab_left_group = NULL;
   GtkWidget *radio_tab_right;
+  GtkWidget *check_tab_beside;
   GtkWidget *check_double_click_hides_widgets;
   GtkWidget *label197;
   GtkWidget *frame9;
@@ -3121,15 +3123,23 @@
   gtk_box_pack_start (GTK_BOX (vbox26), check_show_tab_cross, FALSE, FALSE, 0);
   gtk_tooltips_set_tip (tooltips, check_show_tab_cross, _("Shows a small cross button in the file tabs to easily close files when clicking on it (requires restart of Geany)"), NULL);
 
-  hbox7 = gtk_hbox_new (FALSE, 12);
-  gtk_widget_show (hbox7);
-  gtk_box_pack_start (GTK_BOX (vbox26), hbox7, FALSE, TRUE, 0);
+  table21 = gtk_table_new (2, 2, FALSE);
+  gtk_widget_show (table21);
+  gtk_box_pack_start (GTK_BOX (vbox26), table21, FALSE, TRUE, 0);
 
   label150 = gtk_label_new (_("Placement of new file tabs:"));
   gtk_widget_show (label150);
-  gtk_box_pack_start (GTK_BOX (hbox7), label150, FALSE, FALSE, 0);
+  gtk_table_attach (GTK_TABLE (table21), label150, 0, 1, 0, 1,
+                    (GtkAttachOptions) (GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
   gtk_misc_set_alignment (GTK_MISC (label150), 0, 0.5);
 
+  hbox7 = gtk_hbox_new (FALSE, 12);
+  gtk_widget_show (hbox7);
+  gtk_table_attach (GTK_TABLE (table21), hbox7, 1, 2, 0, 1,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                    (GtkAttachOptions) (GTK_FILL), 0, 0);
+
   radio_tab_left = gtk_radio_button_new_with_mnemonic (NULL, _("Left"));
   gtk_widget_show (radio_tab_left);
   gtk_box_pack_start (GTK_BOX (hbox7), radio_tab_left, FALSE, FALSE, 0);
@@ -3145,6 +3155,13 @@
   gtk_radio_button_set_group (GTK_RADIO_BUTTON (radio_tab_right), radio_tab_left_group);
   radio_tab_left_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio_tab_right));
 
+  check_tab_beside = gtk_check_button_new_with_mnemonic (_("Next to current"));
+  gtk_widget_show (check_tab_beside);
+  gtk_table_attach (GTK_TABLE (table21), check_tab_beside, 1, 2, 1, 2,
+                    (GtkAttachOptions) (GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+  gtk_tooltips_set_tip (tooltips, check_tab_beside, _("Whether to place file tabs next to the current tab rather than at the edges of the notebook"), NULL);
+
   check_double_click_hides_widgets = gtk_check_button_new_with_mnemonic (_("Double-clicking hides all additional widgets"));
   gtk_widget_show (check_double_click_hides_widgets);
   gtk_box_pack_start (GTK_BOX (vbox26), check_double_click_hides_widgets, FALSE, FALSE, 0);
@@ -4813,10 +4830,12 @@
   GLADE_HOOKUP_OBJECT (prefs_dialog, vbox26, "vbox26");
   GLADE_HOOKUP_OBJECT (prefs_dialog, check_show_notebook_tabs, "check_show_notebook_tabs");
   GLADE_HOOKUP_OBJECT (prefs_dialog, check_show_tab_cross, "check_show_tab_cross");
+  GLADE_HOOKUP_OBJECT (prefs_dialog, table21, "table21");
+  GLADE_HOOKUP_OBJECT (prefs_dialog, label150, "label150");
   GLADE_HOOKUP_OBJECT (prefs_dialog, hbox7, "hbox7");
-  GLADE_HOOKUP_OBJECT (prefs_dialog, label150, "label150");
   GLADE_HOOKUP_OBJECT (prefs_dialog, radio_tab_left, "radio_tab_left");
   GLADE_HOOKUP_OBJECT (prefs_dialog, radio_tab_right, "radio_tab_right");
+  GLADE_HOOKUP_OBJECT (prefs_dialog, check_tab_beside, "check_tab_beside");
   GLADE_HOOKUP_OBJECT (prefs_dialog, check_double_click_hides_widgets, "check_double_click_hides_widgets");
   GLADE_HOOKUP_OBJECT (prefs_dialog, label197, "label197");
   GLADE_HOOKUP_OBJECT (prefs_dialog, frame9, "frame9");

Modified: trunk/src/keyfile.c
===================================================================
--- trunk/src/keyfile.c	2010-05-16 17:45:21 UTC (rev 4927)
+++ trunk/src/keyfile.c	2010-05-16 17:45:39 UTC (rev 4928)
@@ -357,6 +357,7 @@
 	g_key_file_set_boolean(config, PACKAGE, "show_notebook_tabs", interface_prefs.show_notebook_tabs);
 	g_key_file_set_boolean(config, PACKAGE, "show_tab_cross", file_prefs.show_tab_cross);
 	g_key_file_set_boolean(config, PACKAGE, "tab_order_ltr", file_prefs.tab_order_ltr);
+	g_key_file_set_boolean(config, PACKAGE, "tab_order_beside", file_prefs.tab_order_beside);
 	g_key_file_set_integer(config, PACKAGE, "tab_pos_editor", interface_prefs.tab_pos_editor);
 	g_key_file_set_integer(config, PACKAGE, "tab_pos_msgwin", interface_prefs.tab_pos_msgwin);
 	g_key_file_set_boolean(config, PACKAGE, "msgwin_status_visible", interface_prefs.msgwin_status_visible);
@@ -646,6 +647,7 @@
 	interface_prefs.sidebar_openfiles_visible = utils_get_setting_boolean(config, PACKAGE, "sidebar_openfiles_visible", TRUE);
 	interface_prefs.statusbar_visible = utils_get_setting_boolean(config, PACKAGE, "statusbar_visible", TRUE);
 	file_prefs.tab_order_ltr = utils_get_setting_boolean(config, PACKAGE, "tab_order_ltr", TRUE);
+	file_prefs.tab_order_beside = utils_get_setting_boolean(config, PACKAGE, "tab_order_beside", FALSE);
 	interface_prefs.show_notebook_tabs = utils_get_setting_boolean(config, PACKAGE, "show_notebook_tabs", TRUE);
 	file_prefs.show_tab_cross = utils_get_setting_boolean(config, PACKAGE, "show_tab_cross", TRUE);
 	interface_prefs.editor_font = utils_get_setting_string(config, PACKAGE, "editor_font", GEANY_DEFAULT_FONT_EDITOR);

Modified: trunk/src/main.c
===================================================================
--- trunk/src/main.c	2010-05-16 17:45:21 UTC (rev 4927)
+++ trunk/src/main.c	2010-05-16 17:45:39 UTC (rev 4928)
@@ -228,6 +228,7 @@
 	ui_widgets.prefs_dialog		= NULL;
 	main_status.main_window_realized = FALSE;
 	file_prefs.tab_order_ltr		= FALSE;
+	file_prefs.tab_order_beside		= FALSE;
 	main_status.quitting			= FALSE;
 	ignore_callback	= FALSE;
 	app->tm_workspace		= tm_get_workspace();

Modified: trunk/src/notebook.c
===================================================================
--- trunk/src/notebook.c	2010-05-16 17:45:21 UTC (rev 4927)
+++ trunk/src/notebook.c	2010-05-16 17:45:39 UTC (rev 4928)
@@ -466,6 +466,7 @@
 	GtkWidget *hbox, *ebox;
 	gint tabnum;
 	GtkWidget *page;
+	gint cur_page;
 
 	g_return_val_if_fail(this != NULL, -1);
 
@@ -513,12 +514,16 @@
 
 	document_update_tab_label(this);
 
+	if (file_prefs.tab_order_beside)
+		cur_page = gtk_notebook_get_current_page(GTK_NOTEBOOK(main_widgets.notebook));
+	else
+		cur_page = file_prefs.tab_order_ltr ? -2 /* hack: -2 + 1 = -1, last page */ : 0;
 	if (file_prefs.tab_order_ltr)
-		tabnum = gtk_notebook_append_page_menu(GTK_NOTEBOOK(main_widgets.notebook), page,
-			ebox, NULL);
+		tabnum = gtk_notebook_insert_page_menu(GTK_NOTEBOOK(main_widgets.notebook), page,
+			ebox, NULL, cur_page + 1);
 	else
 		tabnum = gtk_notebook_insert_page_menu(GTK_NOTEBOOK(main_widgets.notebook), page,
-			ebox, NULL, 0);
+			ebox, NULL, cur_page);
 
 	tab_count_changed();
 

Modified: trunk/src/prefs.c
===================================================================
--- trunk/src/prefs.c	2010-05-16 17:45:21 UTC (rev 4927)
+++ trunk/src/prefs.c	2010-05-16 17:45:39 UTC (rev 4928)
@@ -482,6 +482,8 @@
 		widget = ui_lookup_widget(ui_widgets.prefs_dialog, "radio_tab_left");
 	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), TRUE);
 
+	widget = ui_lookup_widget(ui_widgets.prefs_dialog, "check_tab_beside");
+	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), file_prefs.tab_order_beside);
 
 	widget = ui_lookup_widget(ui_widgets.prefs_dialog, "combo_new_encoding");
 	/* luckily the index of the combo box items match the index of the encodings array */
@@ -892,6 +894,9 @@
 		widget = ui_lookup_widget(ui_widgets.prefs_dialog, "radio_tab_right");
 		file_prefs.tab_order_ltr = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
 
+		widget = ui_lookup_widget(ui_widgets.prefs_dialog, "check_tab_beside");
+		file_prefs.tab_order_beside = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
+
 		widget = ui_lookup_widget(ui_widgets.prefs_dialog, "combo_new_encoding");
 		file_prefs.default_new_encoding = gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
 


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