SF.net SVN: geany:[3949] trunk
ntrel at users.sourceforge.net
ntrel at xxxxx
Fri Jul 10 15:17:34 UTC 2009
Revision: 3949
http://geany.svn.sourceforge.net/geany/?rev=3949&view=rev
Author: ntrel
Date: 2009-07-10 15:17:27 +0000 (Fri, 10 Jul 2009)
Log Message:
-----------
Add 'Mark All' keybinding.
Modified Paths:
--------------
trunk/ChangeLog
trunk/src/keybindings.c
trunk/src/keybindings.h
trunk/src/search.c
trunk/src/search.h
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2009-07-10 14:03:16 UTC (rev 3948)
+++ trunk/ChangeLog 2009-07-10 15:17:27 UTC (rev 3949)
@@ -3,6 +3,8 @@
* src/editor.c:
Delay highlighting matching braces by 100ms, which speeds up
scrolling with the arrow keys.
+ * src/keybindings.c, src/keybindings.h, src/search.c, src/search.h:
+ Add 'Mark All' keybinding.
2009-07-09 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
Modified: trunk/src/keybindings.c
===================================================================
--- trunk/src/keybindings.c 2009-07-10 14:03:16 UTC (rev 3948)
+++ trunk/src/keybindings.c 2009-07-10 15:17:27 UTC (rev 3949)
@@ -49,6 +49,7 @@
#include "treeviews.h"
#include "geanywraplabel.h"
#include "main.h"
+#include "search.h"
GPtrArray *keybinding_groups; /* array of GeanyKeyGroup pointers */
@@ -360,6 +361,8 @@
0, 0, "popup_findusage", _("Find Usage"), NULL);
keybindings_set_item(group, GEANY_KEYS_SEARCH_FINDDOCUMENTUSAGE, cb_func_search_action,
0, 0, "popup_finddocumentusage", _("Find Document Usage"), NULL);
+ keybindings_set_item(group, GEANY_KEYS_SEARCH_MARKALL, cb_func_search_action,
+ GDK_m, GDK_CONTROL_MASK | GDK_SHIFT_MASK, "find_markall", _("Mark All"), NULL);
group = ADD_KB_GROUP(GOTO, _("Go to"));
@@ -1251,8 +1254,13 @@
static void cb_func_search_action(guint key_id)
{
- GeanyDocument *doc;
+ GeanyDocument *doc = document_get_current();
+ ScintillaObject *sci;
+ if (!doc)
+ return;
+ sci = doc->editor->sci;
+
switch (key_id)
{
case GEANY_KEYS_SEARCH_FIND:
@@ -1274,15 +1282,27 @@
case GEANY_KEYS_SEARCH_PREVIOUSMESSAGE:
on_previous_message1_activate(NULL, NULL); break;
case GEANY_KEYS_SEARCH_FINDUSAGE:
- doc = document_get_current();
read_current_word(doc);
on_find_usage1_activate(NULL, NULL);
break;
case GEANY_KEYS_SEARCH_FINDDOCUMENTUSAGE:
- doc = document_get_current();
read_current_word(doc);
on_find_document_usage1_activate(NULL, NULL);
break;
+ case GEANY_KEYS_SEARCH_MARKALL:
+ if (sci_has_selection(sci))
+ {
+ gchar *text = g_alloca(sci_get_selected_text_length(sci) + 1);
+
+ sci_get_selected_text(sci, text);
+ search_mark_all(doc, text, SCFIND_MATCHCASE);
+ }
+ else
+ {
+ read_current_word(doc);
+ search_mark_all(doc, editor_info.current_word, SCFIND_MATCHCASE | SCFIND_WHOLEWORD);
+ }
+ break;
}
}
Modified: trunk/src/keybindings.h
===================================================================
--- trunk/src/keybindings.h 2009-07-10 14:03:16 UTC (rev 3948)
+++ trunk/src/keybindings.h 2009-07-10 15:17:27 UTC (rev 3949)
@@ -206,6 +206,7 @@
GEANY_KEYS_SEARCH_PREVIOUSMESSAGE,
GEANY_KEYS_SEARCH_FINDUSAGE,
GEANY_KEYS_SEARCH_FINDDOCUMENTUSAGE,
+ GEANY_KEYS_SEARCH_MARKALL,
GEANY_KEYS_SEARCH_COUNT
};
Modified: trunk/src/search.c
===================================================================
--- trunk/src/search.c 2009-07-10 14:03:16 UTC (rev 3948)
+++ trunk/src/search.c 2009-07-10 15:17:27 UTC (rev 3949)
@@ -959,13 +959,16 @@
}
-static gint search_mark(GeanyDocument *doc, const gchar *search_text, gint flags)
+/* @return Number of matches marked. */
+gint search_mark_all(GeanyDocument *doc, const gchar *search_text, gint flags)
{
gint pos, count = 0;
gsize len;
struct Sci_TextToFind ttf;
g_return_val_if_fail(doc != NULL, 0);
+ if (!NZV(search_text))
+ return 0;
/* clear previous search indicators */
editor_indicator_clear(doc->editor, GEANY_INDICATOR_SEARCH);
@@ -1074,7 +1077,7 @@
case GEANY_RESPONSE_MARK:
{
- gint count = search_mark(doc, search_data.text, search_data.flags);
+ gint count = search_mark_all(doc, search_data.text, search_data.flags);
if (count == 0)
ui_set_statusbar(FALSE, _("No matches found for \"%s\"."), search_data.text);
Modified: trunk/src/search.h
===================================================================
--- trunk/src/search.h 2009-07-10 14:03:16 UTC (rev 3948)
+++ trunk/src/search.h 2009-07-10 15:17:27 UTC (rev 3949)
@@ -65,4 +65,6 @@
void search_find_selection(GeanyDocument *doc, gboolean search_backwards);
+gint search_mark_all(GeanyDocument *doc, const gchar *search_text, gint flags);
+
#endif
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