forked from enlightenment/edi
Merge branch 'devs/ajwillia-ms/elm_code'
This commit is contained in:
commit
48236e79e3
|
@ -61,11 +61,10 @@ _elm_code_test_diff_setup(Evas_Object *parent)
|
||||||
{
|
{
|
||||||
char *path = "elm_code/tests/testdiff.diff";
|
char *path = "elm_code/tests/testdiff.diff";
|
||||||
Evas_Object *diff;
|
Evas_Object *diff;
|
||||||
Elm_Code_File *file;
|
|
||||||
Elm_Code *code;
|
Elm_Code *code;
|
||||||
|
|
||||||
code = elm_code_create();
|
code = elm_code_create();
|
||||||
file = elm_code_file_open(code, path);
|
elm_code_file_open(code, path);
|
||||||
|
|
||||||
diff = elm_code_diff_widget_add(parent, code);
|
diff = elm_code_diff_widget_add(parent, code);
|
||||||
return diff;
|
return diff;
|
||||||
|
|
|
@ -44,32 +44,40 @@ static void _elm_code_diff_widget_parse_diff(Elm_Code_File *diff, Elm_Code_File
|
||||||
{
|
{
|
||||||
Eina_List *item;
|
Eina_List *item;
|
||||||
Elm_Code_Line *line;
|
Elm_Code_Line *line;
|
||||||
int number;
|
int number, offset;
|
||||||
|
|
||||||
number = 0;
|
number = 0;
|
||||||
|
offset = 0;
|
||||||
EINA_LIST_FOREACH(diff->lines, item, line)
|
EINA_LIST_FOREACH(diff->lines, item, line)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (line->length > 0 && number < 2)
|
if (line->length > 0)
|
||||||
{
|
{
|
||||||
if (line->content[0] == 'd' || line->content[0] == 'i')
|
if (line->content[0] == 'd' || line->content[0] == 'i' || line->content[0] == 'n')
|
||||||
continue;
|
{
|
||||||
|
offset = 0;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (number == 0)
|
|
||||||
{
|
|
||||||
elm_code_file_line_append(left, line->content+4, line->length-4);
|
|
||||||
elm_code_file_line_status_set(left, 1, ELM_CODE_STATUS_TYPE_CHANGED);
|
|
||||||
}
|
|
||||||
else if (number == 1)
|
|
||||||
{
|
|
||||||
elm_code_file_line_append(right, line->content+4, line->length-4);
|
|
||||||
elm_code_file_line_status_set(right, 1, ELM_CODE_STATUS_TYPE_CHANGED);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
_elm_code_diff_widget_parse_diff_line(line, number, left, right);
|
|
||||||
|
|
||||||
number++;
|
number++;
|
||||||
|
if (offset == 0)
|
||||||
|
{
|
||||||
|
elm_code_file_line_append(left, line->content+4, line->length-4);
|
||||||
|
elm_code_file_line_status_set(left, number, ELM_CODE_STATUS_TYPE_CHANGED);
|
||||||
|
}
|
||||||
|
else if (offset == 1)
|
||||||
|
{
|
||||||
|
number--;
|
||||||
|
elm_code_file_line_append(right, line->content+4, line->length-4);
|
||||||
|
elm_code_file_line_status_set(right, number, ELM_CODE_STATUS_TYPE_CHANGED);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_elm_code_diff_widget_parse_diff_line(line, number, left, right);
|
||||||
|
}
|
||||||
|
|
||||||
|
offset++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -169,6 +169,7 @@ _edi_mainview_content_diff_create(Edi_Mainview_Item *item, Evas_Object *parent)
|
||||||
code = elm_code_create();
|
code = elm_code_create();
|
||||||
elm_code_file_open(code, item->path);
|
elm_code_file_open(code, item->path);
|
||||||
diff = elm_code_diff_widget_add(parent, code);
|
diff = elm_code_diff_widget_add(parent, code);
|
||||||
|
elm_code_diff_widget_font_size_set(diff, 12);
|
||||||
|
|
||||||
return diff;
|
return diff;
|
||||||
}
|
}
|
||||||
|
@ -366,6 +367,8 @@ _edi_mainview_win_stat_done(void *data, Eio_File *handler EINA_UNUSED, const Ein
|
||||||
options->type = "text"; // TODO make a code view
|
options->type = "text"; // TODO make a code view
|
||||||
else if (!strncasecmp(mime, "image/", 6))
|
else if (!strncasecmp(mime, "image/", 6))
|
||||||
options->type = "image";
|
options->type = "image";
|
||||||
|
else if (!strcasecmp(mime, "text/x-diff") || !strcasecmp(mime, "text/x-patch"))
|
||||||
|
options->type = "diff";
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_edi_mainview_choose_type(nf, options, _edi_mainview_choose_type_win_cb);
|
_edi_mainview_choose_type(nf, options, _edi_mainview_choose_type_win_cb);
|
||||||
|
|
Loading…
Reference in New Issue