[geany/geany] 6ca889: Add Document->Clone keybinding

Nick Treleaven git-noreply at geany.org
Wed Dec 12 14:02:50 UTC 2012


Branch:      refs/heads/master
Author:      Nick Treleaven <nick.treleaven at btinternet.com>
Committer:   Nick Treleaven <nick.treleaven at btinternet.com>
Date:        Wed, 12 Dec 2012 14:02:50 UTC
Commit:      6ca889c78b0c1e089a35e0100b5232b0e6760a76
             https://github.com/geany/geany/commit/6ca889c78b0c1e089a35e0100b5232b0e6760a76

Log Message:
-----------
Add Document->Clone keybinding


Modified Paths:
--------------
    doc/geany.txt
    src/document.c
    src/document.h
    src/keybindings.c
    src/keybindings.h

Modified: doc/geany.txt
2 files changed, 2 insertions(+), 0 deletions(-)
===================================================================
@@ -3627,6 +3627,8 @@ Document keybindings
 ==================================== ==================== ==================================================
 Action                               Default shortcut     Description
 ==================================== ==================== ==================================================
+Clone                                                     See `Cloning documents`_.
+
 Replace tabs by space                                     Replaces all tabs with the right amount of spaces.
 
 Replace spaces by tabs                                    Replaces leading spaces with tab characters.


Modified: src/document.c
15 files changed, 11 insertions(+), 4 deletions(-)
===================================================================
@@ -2745,14 +2745,20 @@ GeanyDocument *document_index(gint idx)
 /* create a new file and copy file content and properties */
 G_MODULE_EXPORT void on_clone1_activate(GtkMenuItem *menuitem, gpointer user_data)
 {
+	GeanyDocument *old_doc = document_get_current();
+
+	if (old_doc)
+		document_clone(old_doc);
+}
+
+
+GeanyDocument *document_clone(GeanyDocument *old_doc)
+{
 	gchar *text;
 	GeanyDocument *doc;
-	GeanyDocument *old_doc = document_get_current();
 	ScintillaObject *old_sci;
 
-	if (!old_doc)
-		return;
-
+	g_return_val_if_fail(old_doc, NULL);
 	old_sci = old_doc->editor->sci;
 	if (sci_has_selection(old_sci))
 		text = sci_get_selection_contents(old_sci);
@@ -2777,6 +2783,7 @@ G_MODULE_EXPORT void on_clone1_activate(GtkMenuItem *menuitem, gpointer user_dat
 
 	/* update ui */
 	ui_document_show_hide(doc);
+	return doc;
 }
 
 


Modified: src/document.h
2 files changed, 2 insertions(+), 0 deletions(-)
===================================================================
@@ -279,6 +279,8 @@ void document_replace_sel(GeanyDocument *doc, const gchar *find_text, const gcha
 
 void document_grab_focus(GeanyDocument *doc);
 
+GeanyDocument *document_clone(GeanyDocument *old_doc);
+
 G_END_DECLS
 
 #endif


Modified: src/keybindings.c
5 files changed, 5 insertions(+), 0 deletions(-)
===================================================================
@@ -561,6 +561,8 @@ static void init_default_kb(void)
 		0, 0, "menu_linewrap", _("Toggle Line wrapping"), "menu_line_wrapping1");
 	add_kb(group, GEANY_KEYS_DOCUMENT_LINEBREAK, NULL,
 		0, 0, "menu_linebreak", _("Toggle Line breaking"), "line_breaking1");
+	add_kb(group, GEANY_KEYS_DOCUMENT_CLONE, NULL,
+		0, 0, "menu_clone", _("_Clone"), "clone1");
 	add_kb(group, GEANY_KEYS_DOCUMENT_REPLACETABS, NULL,
 		0, 0, "menu_replacetabs", _("Replace tabs by space"), "menu_replace_tabs");
 	add_kb(group, GEANY_KEYS_DOCUMENT_REPLACESPACES, NULL,
@@ -2348,6 +2350,9 @@ static gboolean cb_func_document_action(guint key_id)
 			on_line_wrapping1_toggled(NULL, NULL);
 			ui_document_show_hide(doc);
 			break;
+		case GEANY_KEYS_DOCUMENT_CLONE:
+			document_clone(doc);
+			break;
 		case GEANY_KEYS_DOCUMENT_RELOADTAGLIST:
 			document_update_tags(doc);
 			break;


Modified: src/keybindings.h
1 files changed, 1 insertions(+), 0 deletions(-)
===================================================================
@@ -246,6 +246,7 @@ enum GeanyKeyBindingID
 	GEANY_KEYS_PROJECT_CLOSE,					/**< Keybinding. */
 	GEANY_KEYS_FORMAT_JOINLINES,				/**< Keybinding. */
 	GEANY_KEYS_GOTO_LINESTARTVISUAL,			/**< Keybinding. */
+	GEANY_KEYS_DOCUMENT_CLONE,					/**< Keybinding. */
 	GEANY_KEYS_COUNT	/* must not be used by plugins */
 };
 



--------------
This E-Mail was brought to you by github_commit_mail.py (Source: TBD).


More information about the Commits mailing list