forked from enlightenment/edi
general input: work around elm_entry assuming markup in input.
Test Plan: Run Edi, start a debug session. Print prt to struct member e.g. "print m->file", stops conversion to "->" Reviewers: ajwillia.ms Reviewed By: ajwillia.ms Tags: #edi Differential Revision: https://phab.enlightenment.org/D4976
This commit is contained in:
parent
197c3dee2b
commit
9677bb4b86
|
@ -81,8 +81,8 @@ static void
|
|||
_edi_debugpanel_keypress_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info)
|
||||
{
|
||||
Evas_Event_Key_Down *event;
|
||||
const char *text;
|
||||
char *command;
|
||||
const char *text_markup;
|
||||
char *command, *text;
|
||||
Eina_Bool res;
|
||||
|
||||
event = event_info;
|
||||
|
@ -95,8 +95,9 @@ _edi_debugpanel_keypress_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Ob
|
|||
{
|
||||
if (!_debug_exe) return;
|
||||
|
||||
text = elm_object_part_text_get(_entry_widget, NULL);
|
||||
if (strlen(text))
|
||||
text_markup = elm_object_part_text_get(_entry_widget, NULL);
|
||||
text = elm_entry_markup_to_utf8(text_markup);
|
||||
if (text)
|
||||
{
|
||||
command = malloc(strlen(text) + 2);
|
||||
snprintf(command, strlen(text) + 2, "%s\n", text);
|
||||
|
@ -105,6 +106,7 @@ _edi_debugpanel_keypress_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Ob
|
|||
elm_code_file_line_append(_debug_output->file, command, strlen(command) - 1, NULL);
|
||||
|
||||
free(command);
|
||||
free(text);
|
||||
}
|
||||
elm_object_part_text_set(_entry_widget, NULL, "");
|
||||
}
|
||||
|
|
|
@ -87,7 +87,7 @@ _edi_search_term_changed(Edi_Editor_Search *search, const char *text)
|
|||
}
|
||||
|
||||
static void
|
||||
_edi_search_cache_use(Edi_Editor_Search *search, const char **text EINA_UNUSED, Elm_Code_Line **line EINA_UNUSED, int *found)
|
||||
_edi_search_cache_use(Edi_Editor_Search *search, char **text, Elm_Code_Line **line, int *found)
|
||||
{
|
||||
*text = search->first_result.text;
|
||||
*line = search->first_result.line;
|
||||
|
@ -103,18 +103,21 @@ _edi_search_in_entry(Evas_Object *entry, Edi_Editor_Search *search)
|
|||
Eina_List *item;
|
||||
Elm_Code *code;
|
||||
Elm_Code_Line *line;
|
||||
const char *text;
|
||||
const char *text_markup;
|
||||
char *text;
|
||||
unsigned int offset, pos_line, pos_col;
|
||||
int found;
|
||||
search->wrap = elm_check_state_get(search->checkbox);
|
||||
|
||||
text = elm_object_text_get(search->entry);
|
||||
if (!text || !*text)
|
||||
text_markup = elm_object_text_get(search->entry);
|
||||
if (!text_markup || !text_markup[0])
|
||||
{
|
||||
search->term_found = EINA_FALSE;
|
||||
return EINA_FALSE;
|
||||
}
|
||||
|
||||
text = elm_entry_markup_to_utf8(text_markup);
|
||||
|
||||
code = elm_code_widget_code_get(entry);
|
||||
elm_code_widget_cursor_position_get(entry, &pos_line, &pos_col);
|
||||
if (search->current_search_line == pos_line &&
|
||||
|
@ -190,6 +193,8 @@ _edi_search_in_entry(Evas_Object *entry, Edi_Editor_Search *search)
|
|||
elm_code_widget_selection_end(entry, search->current_search_line,
|
||||
elm_code_widget_line_text_column_width_to_position(entry, line, found + strlen(text)) - 1);
|
||||
|
||||
free(text);
|
||||
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
|
@ -215,7 +220,8 @@ static void
|
|||
_edi_replace_in_entry(void *data, Edi_Editor_Search *search)
|
||||
{
|
||||
Edi_Editor *editor;
|
||||
const char *replace;
|
||||
const char *replace_markup;
|
||||
char *replace = NULL;
|
||||
|
||||
editor = (Edi_Editor *)data;
|
||||
// If there is no search term found to replace, then do a new search first.
|
||||
|
@ -228,8 +234,10 @@ _edi_replace_in_entry(void *data, Edi_Editor_Search *search)
|
|||
if (search->current_search_line)
|
||||
{
|
||||
elm_code_widget_selection_delete(editor->entry);
|
||||
replace = elm_object_text_get(search->replace_entry);
|
||||
elm_code_widget_text_at_cursor_insert(editor->entry, replace);
|
||||
replace_markup = elm_object_text_get(search->replace_entry);
|
||||
replace = elm_entry_markup_to_utf8(replace_markup);
|
||||
if (strlen(replace))
|
||||
elm_code_widget_text_at_cursor_insert(editor->entry, replace);
|
||||
|
||||
search->current_search_line = 0;
|
||||
}
|
||||
|
@ -240,6 +248,9 @@ _edi_replace_in_entry(void *data, Edi_Editor_Search *search)
|
|||
_edi_search_in_entry(editor->entry, search);
|
||||
}
|
||||
|
||||
if (replace)
|
||||
free(replace);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -849,13 +849,18 @@ _edi_mainview_project_search_cb(void *data,
|
|||
Evas_Object *obj EINA_UNUSED,
|
||||
void *event_info EINA_UNUSED)
|
||||
{
|
||||
const char *text;
|
||||
const char *text_markup;
|
||||
char *text;
|
||||
|
||||
text = elm_entry_entry_get((Evas_Object *) data);
|
||||
if (!text || strlen(text) == 0) return;
|
||||
text_markup = elm_object_text_get((Evas_Object *) data);
|
||||
if (!text_markup || !text_markup[0]) return;
|
||||
|
||||
text = elm_entry_markup_to_utf8(text_markup);
|
||||
|
||||
edi_searchpanel_show();
|
||||
edi_searchpanel_find(text);
|
||||
|
||||
free(text);
|
||||
evas_object_del(_edi_mainview_search_project_popup);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue