[gedit] Implement Move to New Tab Group
- From: Ignacio Casal Quinteiro <icq src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gedit] Implement Move to New Tab Group
- Date: Fri, 18 Oct 2013 10:03:32 +0000 (UTC)
commit ff8a8a5b8cb8f2922bb6f9d228b8387105111fdb
Author: Ignacio Casal Quinteiro <ignacio casal nice-software com>
Date: Fri Oct 18 12:03:08 2013 +0200
Implement Move to New Tab Group
gedit/gedit-multi-notebook.c | 34 ++++++++++++++++++++++++++++++++++
gedit/gedit-multi-notebook.h | 3 +++
gedit/gedit-notebook-popup-menu.c | 15 +++++++++++++++
gedit/gedit-window.c | 11 +++++++++++
gedit/gedit-window.h | 2 ++
5 files changed, 65 insertions(+), 0 deletions(-)
---
diff --git a/gedit/gedit-multi-notebook.c b/gedit/gedit-multi-notebook.c
index 3e36c70..b8922e5 100644
--- a/gedit/gedit-multi-notebook.c
+++ b/gedit/gedit-multi-notebook.c
@@ -835,6 +835,40 @@ gedit_multi_notebook_add_new_notebook (GeditMultiNotebook *mnb)
}
void
+gedit_multi_notebook_add_new_notebook_with_tab (GeditMultiNotebook *mnb,
+ GeditTab *tab)
+{
+ GtkWidget *notebook;
+ gint page_num;
+ GList *l;
+
+ g_return_if_fail (GEDIT_IS_MULTI_NOTEBOOK (mnb));
+ g_return_if_fail (GEDIT_IS_TAB (tab));
+
+ notebook = gedit_notebook_new ();
+ add_notebook (mnb, notebook, FALSE);
+
+ l = mnb->priv->notebooks;
+
+ do
+ {
+ page_num = gtk_notebook_page_num (GTK_NOTEBOOK (l->data),
+ GTK_WIDGET (tab));
+ if (page_num != -1)
+ break;
+
+ l = g_list_next (l);
+ } while (l != NULL && page_num == -1);
+
+ g_return_if_fail (page_num != -1);
+
+ gedit_notebook_move_tab (GEDIT_NOTEBOOK (l->data),
+ GEDIT_NOTEBOOK (notebook),
+ tab,
+ -1);
+}
+
+void
gedit_multi_notebook_remove_active_notebook (GeditMultiNotebook *mnb)
{
g_return_if_fail (GEDIT_IS_MULTI_NOTEBOOK (mnb));
diff --git a/gedit/gedit-multi-notebook.h b/gedit/gedit-multi-notebook.h
index 28db090..faa92b0 100644
--- a/gedit/gedit-multi-notebook.h
+++ b/gedit/gedit-multi-notebook.h
@@ -119,6 +119,9 @@ void gedit_multi_notebook_close_all_tabs
(GeditMultiNotebook *mnb);
void gedit_multi_notebook_add_new_notebook (GeditMultiNotebook *mnb);
+void gedit_multi_notebook_add_new_notebook_with_tab (GeditMultiNotebook *mnb,
+ GeditTab *tab);
+
void gedit_multi_notebook_remove_active_notebook (GeditMultiNotebook *mnb);
void gedit_multi_notebook_previous_notebook (GeditMultiNotebook *mnb);
diff --git a/gedit/gedit-notebook-popup-menu.c b/gedit/gedit-notebook-popup-menu.c
index 634588a..c188cfa 100644
--- a/gedit/gedit-notebook-popup-menu.c
+++ b/gedit/gedit-notebook-popup-menu.c
@@ -129,6 +129,14 @@ on_move_to_new_window_menuitem_activate (GtkMenuItem *menuitem,
}
static void
+on_move_to_new_tab_group_menuitem_activate (GtkMenuItem *menuitem,
+ GeditNotebookPopupMenu *menu)
+{
+ _gedit_window_move_tab_to_new_tab_group (menu->priv->window,
+ menu->priv->tab);
+}
+
+static void
on_file_save_menuitem_activate (GtkMenuItem *menuitem,
GeditNotebookPopupMenu *menu)
{
@@ -171,6 +179,13 @@ gedit_notebook_popup_menu_init (GeditNotebookPopupMenu *menu)
gtk_menu_shell_prepend (GTK_MENU_SHELL (menu), menu_item);
gtk_widget_show (menu_item);
+ menu_item = gtk_menu_item_new_with_mnemonic (_("_Move to New Tab Group"));
+ g_signal_connect (menu_item, "activate",
+ G_CALLBACK (on_move_to_new_tab_group_menuitem_activate),
+ menu);
+ gtk_menu_shell_prepend (GTK_MENU_SHELL (menu), menu_item);
+ gtk_widget_show (menu_item);
+
menu_item = gtk_separator_menu_item_new ();
gtk_menu_shell_prepend (GTK_MENU_SHELL (menu), menu_item);
gtk_widget_show (menu_item);
diff --git a/gedit/gedit-window.c b/gedit/gedit-window.c
index 142a97f..7b20183 100644
--- a/gedit/gedit-window.c
+++ b/gedit/gedit-window.c
@@ -4268,6 +4268,17 @@ _gedit_window_move_tab_to_new_window (GeditWindow *window,
return new_window;
}
+void
+_gedit_window_move_tab_to_new_tab_group (GeditWindow *window,
+ GeditTab *tab)
+{
+ g_return_if_fail (GEDIT_IS_WINDOW (window));
+ g_return_if_fail (GEDIT_IS_TAB (tab));
+
+ gedit_multi_notebook_add_new_notebook_with_tab (window->priv->multi_notebook,
+ tab);
+}
+
/**
* gedit_window_set_active_tab:
* @window: a #GeditWindow
diff --git a/gedit/gedit-window.h b/gedit/gedit-window.h
index 391ce9f..9ed77dd 100644
--- a/gedit/gedit-window.h
+++ b/gedit/gedit-window.h
@@ -158,6 +158,8 @@ GtkWidget *_gedit_window_get_notebook (GeditWindow *window);
GeditWindow *_gedit_window_move_tab_to_new_window (GeditWindow *window,
GeditTab *tab);
+void _gedit_window_move_tab_to_new_tab_group(GeditWindow *window,
+ GeditTab *tab);
gboolean _gedit_window_is_removing_tabs (GeditWindow *window);
GFile *_gedit_window_get_default_location (GeditWindow *window);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]