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