scm: add support for file listing file status.
Add support for file listing status. Also some refactoring. More to do, more testing first.
This commit is contained in:
parent
a446d3a8d1
commit
59a0ec1bae
|
@ -210,6 +210,7 @@ _item_menu_scm_add_cb(void *data, Evas_Object *obj EINA_UNUSED,
|
|||
sd = data;
|
||||
|
||||
edi_scm_add(sd->path);
|
||||
edi_filepanel_update_path(sd->path);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -227,6 +228,8 @@ _item_menu_scm_del_do_cb(void *data)
|
|||
edi_scm_del(sd->path);
|
||||
else
|
||||
ecore_file_unlink(sd->path);
|
||||
|
||||
edi_filepanel_update_path(sd->path);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -422,12 +425,85 @@ _item_clicked_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj,
|
|||
evas_object_show(menu);
|
||||
}
|
||||
|
||||
static const char *
|
||||
_file_icon_status(const char *path)
|
||||
{
|
||||
Edi_Scm_Status_Code status;
|
||||
|
||||
if (!edi_scm_enabled() || ecore_file_is_dir(path))
|
||||
return NULL;
|
||||
|
||||
status = edi_scm_file_status(path);
|
||||
switch (status)
|
||||
{
|
||||
case EDI_SCM_STATUS_NONE:
|
||||
case EDI_SCM_STATUS_RENAMED:
|
||||
case EDI_SCM_STATUS_DELETED:
|
||||
case EDI_SCM_STATUS_RENAMED_STAGED:
|
||||
case EDI_SCM_STATUS_DELETED_STAGED:
|
||||
case EDI_SCM_STATUS_UNKNOWN:
|
||||
case EDI_SCM_STATUS_ADDED:
|
||||
return NULL;
|
||||
case EDI_SCM_STATUS_ADDED_STAGED:
|
||||
return "document-new";
|
||||
case EDI_SCM_STATUS_MODIFIED:
|
||||
case EDI_SCM_STATUS_MODIFIED_STAGED:
|
||||
return "document-save-as";
|
||||
case EDI_SCM_STATUS_UNTRACKED:
|
||||
return "dialog-question";
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static char *
|
||||
_file_path_status(const char *path)
|
||||
{
|
||||
char *orig;
|
||||
Edi_Scm_Status_Code status;
|
||||
static char text[4096];
|
||||
|
||||
orig = basename((char *)path);
|
||||
|
||||
if (!edi_scm_enabled() || ecore_file_is_dir(path))
|
||||
return orig;
|
||||
|
||||
text[0] = '\0';
|
||||
strcat(text, orig);
|
||||
|
||||
status = edi_scm_file_status(path);
|
||||
switch (status)
|
||||
{
|
||||
case EDI_SCM_STATUS_NONE:
|
||||
case EDI_SCM_STATUS_DELETED:
|
||||
case EDI_SCM_STATUS_DELETED_STAGED:
|
||||
case EDI_SCM_STATUS_UNKNOWN:
|
||||
return text;
|
||||
case EDI_SCM_STATUS_ADDED:
|
||||
return strcat(text, _(" (Added & Unstaged)"));
|
||||
case EDI_SCM_STATUS_ADDED_STAGED:
|
||||
return strcat(text, _(" (Added)"));
|
||||
case EDI_SCM_STATUS_RENAMED:
|
||||
return strcat(text, _(" (Renamed & Unstaged)"));
|
||||
case EDI_SCM_STATUS_RENAMED_STAGED:
|
||||
return strcat(text, _(" (Renamed)"));
|
||||
case EDI_SCM_STATUS_MODIFIED:
|
||||
return strcat(text, _(" (Modified & Unstaged)"));
|
||||
case EDI_SCM_STATUS_MODIFIED_STAGED:
|
||||
return strcat(text, _(" (Modified)"));
|
||||
case EDI_SCM_STATUS_UNTRACKED:
|
||||
return strcat(text, _(" (Untracked)"));
|
||||
}
|
||||
|
||||
return text;
|
||||
}
|
||||
|
||||
static char *
|
||||
_text_get(void *data, Evas_Object *obj EINA_UNUSED, const char *source EINA_UNUSED)
|
||||
{
|
||||
Edi_Dir_Data *sd = data;
|
||||
|
||||
return strdup(basename((char *)sd->path));
|
||||
return strdup(_file_path_status(sd->path));
|
||||
}
|
||||
|
||||
static Eina_Hash *mime_entries = NULL;
|
||||
|
@ -454,6 +530,7 @@ _content_get(void *data, Evas_Object *obj, const char *source)
|
|||
Edi_Content_Provider *provider;
|
||||
Edi_Dir_Data *sd = data;
|
||||
Evas_Object *ic;
|
||||
const char *icon_name;
|
||||
|
||||
if (strcmp(source, "elm.swallow.icon"))
|
||||
return NULL;
|
||||
|
@ -461,10 +538,19 @@ _content_get(void *data, Evas_Object *obj, const char *source)
|
|||
provider = _get_provider_from_hashset(sd->path);
|
||||
|
||||
ic = elm_icon_add(obj);
|
||||
|
||||
icon_name = _file_icon_status(sd->path);
|
||||
if (icon_name)
|
||||
{
|
||||
elm_icon_standard_set(ic, icon_name);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (provider)
|
||||
elm_icon_standard_set(ic, provider->icon);
|
||||
else
|
||||
elm_icon_standard_set(ic, "empty");
|
||||
}
|
||||
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
|
||||
evas_object_show(ic);
|
||||
|
@ -704,6 +790,48 @@ _file_listing_fill(Edi_Dir_Data *dir, Elm_Object_Item *parent_it)
|
|||
_ls_done_cb, _ls_error_cb, lreq);
|
||||
}
|
||||
|
||||
static void
|
||||
_edi_filepanel_update_dir(const char *directory)
|
||||
{
|
||||
Eina_List *files;
|
||||
char *path;
|
||||
char *file;
|
||||
|
||||
files = ecore_file_ls(directory);
|
||||
|
||||
EINA_LIST_FREE(files, file)
|
||||
{
|
||||
if (file[0] != '.')
|
||||
{
|
||||
path = edi_path_append(directory, file);
|
||||
if (ecore_file_is_dir(path))
|
||||
_edi_filepanel_update_dir(path);
|
||||
else
|
||||
edi_filepanel_update_path(path);
|
||||
free(path);
|
||||
}
|
||||
free(file);
|
||||
}
|
||||
|
||||
if (files)
|
||||
eina_list_free(files);
|
||||
}
|
||||
|
||||
void
|
||||
edi_filepanel_update_all(void)
|
||||
{
|
||||
_edi_filepanel_update_dir(edi_project_get());
|
||||
}
|
||||
|
||||
void edi_filepanel_update_path(const char *path)
|
||||
{
|
||||
Elm_Object_Item *item = _file_listing_item_find(path);
|
||||
if (!item)
|
||||
return;
|
||||
|
||||
elm_genlist_item_update(item);
|
||||
}
|
||||
|
||||
static void
|
||||
_file_listing_updated(void *data EINA_UNUSED, int type EINA_UNUSED,
|
||||
void *event EINA_UNUSED)
|
||||
|
@ -728,6 +856,8 @@ _file_listing_updated(void *data EINA_UNUSED, int type EINA_UNUSED,
|
|||
_file_listing_item_delete(ev->filename);
|
||||
else
|
||||
DBG("Ignoring file update event for %s", ev->filename);
|
||||
|
||||
edi_filepanel_update_path(ev->filename);
|
||||
}
|
||||
|
||||
/* Panel filtering */
|
||||
|
|
|
@ -58,6 +58,22 @@ const char *edi_filepanel_selected_path_get(Evas_Object *obj);
|
|||
*/
|
||||
void edi_filepanel_select_path(const char *path);
|
||||
|
||||
/**
|
||||
* Notify a file change has occurred to trigger an update to item content.
|
||||
*
|
||||
* @param path The path of the file to be updated in the file panel.
|
||||
*
|
||||
* @ingroup UI
|
||||
*/
|
||||
void edi_filepanel_update_path(const char *path);
|
||||
|
||||
/**
|
||||
* Notify filepanel to update all file items.
|
||||
*
|
||||
* @ingroup UI
|
||||
*/
|
||||
void edi_filepanel_update_all(void);
|
||||
|
||||
/**
|
||||
* Initialise a file panel search.
|
||||
*
|
||||
|
|
|
@ -1023,6 +1023,7 @@ static void
|
|||
_edi_scm_stash_do_cb(void *data EINA_UNUSED)
|
||||
{
|
||||
edi_scm_stash();
|
||||
edi_filepanel_update_all();
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1049,6 +1050,7 @@ _edi_menu_scm_pull_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
|||
edi_consolepanel_clear();
|
||||
edi_consolepanel_show();
|
||||
edi_scm_pull();
|
||||
edi_filepanel_update_all();
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1064,6 +1066,7 @@ _edi_menu_scm_push_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
|||
edi_consolepanel_clear();
|
||||
edi_consolepanel_show();
|
||||
edi_scm_push();
|
||||
edi_filepanel_update_all();
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#include "Edi.h"
|
||||
#include "mainview/edi_mainview.h"
|
||||
#include "edi_file_screens.h"
|
||||
#include "edi_filepanel.h"
|
||||
#include "edi_private.h"
|
||||
|
||||
static Evas_Object *_parent_obj, *_popup, *_popup_dir, *_edi_file_screens_message_popup;
|
||||
|
@ -156,6 +157,8 @@ _edi_file_screens_rename_cb(void *data,
|
|||
ecore_file_mv(existing_path, path);
|
||||
else
|
||||
edi_scm_move(existing_path, path);
|
||||
|
||||
edi_filepanel_update_path(path);
|
||||
}
|
||||
|
||||
evas_object_del(_popup);
|
||||
|
|
|
@ -5,6 +5,8 @@
|
|||
#include "Edi.h"
|
||||
#include "mainview/edi_mainview.h"
|
||||
#include "edi_config.h"
|
||||
#include "edi_filepanel.h"
|
||||
#include "edi_file.h"
|
||||
#include "edi_consolepanel.h"
|
||||
#include "edi_scm_screens.h"
|
||||
#include "edi_private.h"
|
||||
|
@ -78,9 +80,9 @@ _edi_scm_screens_commit_cb(void *data,
|
|||
}
|
||||
|
||||
static void
|
||||
_entry_lines_append(Elm_Code *code, char *diff)
|
||||
_entry_lines_append(Elm_Code *code, char *diff_text)
|
||||
{
|
||||
char *pos = diff;
|
||||
char *pos = diff_text;
|
||||
char *start, *end = NULL;
|
||||
|
||||
if (!*pos) return;
|
||||
|
@ -103,6 +105,47 @@ _entry_lines_append(Elm_Code *code, char *diff)
|
|||
elm_code_file_line_append(code->file, start, end - start, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
_set_icon_text(Evas_Object *icon, Eina_Strbuf *text, Edi_Scm_Status *status)
|
||||
{
|
||||
eina_strbuf_append_printf(text, "%s ", status->path);
|
||||
|
||||
switch (status->change)
|
||||
{
|
||||
case EDI_SCM_STATUS_ADDED:
|
||||
case EDI_SCM_STATUS_ADDED_STAGED:
|
||||
elm_icon_standard_set(icon, "document-new");
|
||||
eina_strbuf_append_printf(text, "(%s", _("Added"));
|
||||
break;
|
||||
case EDI_SCM_STATUS_MODIFIED:
|
||||
case EDI_SCM_STATUS_MODIFIED_STAGED:
|
||||
elm_icon_standard_set(icon, "document-save-as");
|
||||
eina_strbuf_append_printf(text, "(%s", _("Modified"));
|
||||
break;
|
||||
case EDI_SCM_STATUS_DELETED:
|
||||
case EDI_SCM_STATUS_DELETED_STAGED:
|
||||
elm_icon_standard_set(icon, "edit-delete");
|
||||
eina_strbuf_append_printf(text, "(%s", _("Deleted"));
|
||||
break;
|
||||
case EDI_SCM_STATUS_RENAMED:
|
||||
case EDI_SCM_STATUS_RENAMED_STAGED:
|
||||
elm_icon_standard_set(icon, "document-save-as");
|
||||
eina_strbuf_append_printf(text, "(%s", _("Renamed"));
|
||||
break;
|
||||
case EDI_SCM_STATUS_UNTRACKED:
|
||||
elm_icon_standard_set(icon, "dialog-question");
|
||||
eina_strbuf_append_printf(text, "(%s", _("Untracked"));
|
||||
break;
|
||||
default:
|
||||
elm_icon_standard_set(icon, "text-x-generic");
|
||||
}
|
||||
|
||||
if (!status->staged && status->change != EDI_SCM_STATUS_UNTRACKED)
|
||||
eina_strbuf_append(text, _(" & Unstaged)"));
|
||||
else
|
||||
eina_strbuf_append(text, ")");
|
||||
}
|
||||
|
||||
void
|
||||
edi_scm_screens_commit(Evas_Object *parent)
|
||||
{
|
||||
|
@ -110,11 +153,10 @@ edi_scm_screens_commit(Evas_Object *parent)
|
|||
Evas_Object *list, *icon;
|
||||
Elm_Code_Widget *entry;
|
||||
Elm_Code *code;
|
||||
Eina_Strbuf *text, *user;
|
||||
Eina_List *l;
|
||||
Eina_Strbuf *text;
|
||||
Edi_Scm_Engine *engine;
|
||||
Edi_Scm_Status *status;
|
||||
char *diff;
|
||||
char *diff_text;
|
||||
Eina_Bool staged_changes;
|
||||
|
||||
engine= edi_scm_engine_get();
|
||||
|
@ -155,11 +197,11 @@ edi_scm_screens_commit(Evas_Object *parent)
|
|||
evas_object_show(label);
|
||||
elm_box_pack_end(hbox, label);
|
||||
|
||||
user = eina_strbuf_new();
|
||||
eina_strbuf_append_printf(user, "%s:<br><b>%s</b><br><%s>", _("Author"),
|
||||
text = eina_strbuf_new();
|
||||
eina_strbuf_append_printf(text, "%s:<br><b>%s</b><br><%s>", _("Author"),
|
||||
engine->remote_name_get(), engine->remote_email_get());
|
||||
elm_object_text_set(label, eina_strbuf_string_get(user));
|
||||
eina_strbuf_free(user);
|
||||
elm_object_text_set(label, eina_strbuf_string_get(text));
|
||||
eina_strbuf_reset(text);
|
||||
|
||||
avatar = elm_image_add(hbox);
|
||||
edi_scm_screens_avatar_load(avatar, engine->remote_email_get());
|
||||
|
@ -172,7 +214,7 @@ edi_scm_screens_commit(Evas_Object *parent)
|
|||
cbox = elm_box_add(box);
|
||||
evas_object_size_hint_weight_set(cbox, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(cbox, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_min_set(cbox, 250 * elm_config_scale_get(), 100 * elm_config_scale_get());
|
||||
evas_object_size_hint_min_set(cbox, 350 * elm_config_scale_get(), 100 * elm_config_scale_get());
|
||||
evas_object_show(cbox);
|
||||
|
||||
list = elm_list_add(box);
|
||||
|
@ -186,48 +228,14 @@ edi_scm_screens_commit(Evas_Object *parent)
|
|||
|
||||
if (edi_scm_status_get())
|
||||
{
|
||||
text = eina_strbuf_new();
|
||||
EINA_LIST_FOREACH(engine->statuses, l, status)
|
||||
EINA_LIST_FREE(engine->statuses, status)
|
||||
{
|
||||
icon = elm_icon_add(box);
|
||||
_set_icon_text(icon, text, status);
|
||||
elm_list_item_append(list, eina_strbuf_string_get(text), icon, NULL, NULL, NULL);
|
||||
eina_strbuf_reset(text);
|
||||
if (status->staged)
|
||||
staged_changes = EINA_TRUE;
|
||||
|
||||
eina_strbuf_append_printf(text, "%s ", status->path);
|
||||
|
||||
switch (status->change)
|
||||
{
|
||||
case EDI_SCM_STATUS_ADDED:
|
||||
elm_icon_standard_set(icon, "document-new");
|
||||
eina_strbuf_append_printf(text, "(%s) ", _("add"));
|
||||
break;
|
||||
case EDI_SCM_STATUS_MODIFIED:
|
||||
elm_icon_standard_set(icon, "document-save-as");
|
||||
eina_strbuf_append_printf(text, "(%s) ", _("mod"));
|
||||
break;
|
||||
case EDI_SCM_STATUS_DELETED:
|
||||
elm_icon_standard_set(icon, "edit-delete");
|
||||
eina_strbuf_append_printf(text, "(%s) ", _("del"));
|
||||
break;
|
||||
case EDI_SCM_STATUS_RENAMED:
|
||||
elm_icon_standard_set(icon, "document-save-as");
|
||||
eina_strbuf_append_printf(text, "(%s) ", _("ren"));
|
||||
break;
|
||||
case EDI_SCM_STATUS_UNTRACKED:
|
||||
elm_icon_standard_set(icon, "dialog-question");
|
||||
eina_strbuf_append_printf(text, "(%s)", _("untracked"));
|
||||
break;
|
||||
default:
|
||||
elm_icon_standard_set(icon, "text-x-generic");
|
||||
}
|
||||
|
||||
if (!status->staged && status->change != EDI_SCM_STATUS_UNTRACKED)
|
||||
eina_strbuf_append_printf(text, "- %s", _("unstaged"));
|
||||
|
||||
elm_list_item_append(list, eina_strbuf_string_get(text), icon, NULL, NULL, NULL);
|
||||
|
||||
eina_strbuf_reset(text);
|
||||
|
||||
eina_stringshare_del(status->path);
|
||||
free(status);
|
||||
}
|
||||
|
@ -265,8 +273,8 @@ edi_scm_screens_commit(Evas_Object *parent)
|
|||
elm_object_content_set(frame, input);
|
||||
elm_box_pack_end(box, frame);
|
||||
|
||||
diff = edi_scm_diff();
|
||||
if (strlen(diff))
|
||||
diff_text = edi_scm_diff();
|
||||
if (diff_text[0] && diff_text[1])
|
||||
{
|
||||
frame = elm_frame_add(popup);
|
||||
evas_object_size_hint_weight_set(frame, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
|
@ -277,7 +285,7 @@ edi_scm_screens_commit(Evas_Object *parent)
|
|||
cbox = elm_box_add(popup);
|
||||
evas_object_size_hint_weight_set(cbox, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(cbox, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_min_set(cbox, 350 * elm_config_scale_get(), 250 * elm_config_scale_get());
|
||||
evas_object_size_hint_min_set(cbox, 500 * elm_config_scale_get(), 250 * elm_config_scale_get());
|
||||
evas_object_show(cbox);
|
||||
elm_object_content_set(frame, cbox);
|
||||
elm_box_pack_end(box, frame);
|
||||
|
@ -294,10 +302,10 @@ edi_scm_screens_commit(Evas_Object *parent)
|
|||
evas_object_show(entry);
|
||||
elm_box_pack_end(cbox, entry);
|
||||
|
||||
_entry_lines_append(code, diff);
|
||||
_entry_lines_append(code, diff_text);
|
||||
}
|
||||
|
||||
free(diff);
|
||||
free(diff_text);
|
||||
|
||||
button = elm_button_add(popup);
|
||||
elm_object_text_set(button, _("Cancel"));
|
||||
|
|
|
@ -135,7 +135,7 @@ edi_exe_response(const char *command)
|
|||
|
||||
while ((fgets(buf, sizeof(buf), p)) != NULL)
|
||||
{
|
||||
eina_strbuf_append_printf(lines, "%s", buf);
|
||||
eina_strbuf_append(lines, buf);
|
||||
}
|
||||
|
||||
pclose(p);
|
||||
|
|
|
@ -168,22 +168,34 @@ _parse_line(char *line)
|
|||
if (change[0] == 'A' || change[1] == 'A')
|
||||
{
|
||||
status->change = EDI_SCM_STATUS_ADDED;
|
||||
if (change[0] == 'A') status->staged = EINA_TRUE;
|
||||
if (change[0] == 'A')
|
||||
{
|
||||
status->staged = status->change = EDI_SCM_STATUS_ADDED_STAGED;
|
||||
}
|
||||
}
|
||||
else if (change[0] == 'R' || change[1] == 'R')
|
||||
{
|
||||
status->change = EDI_SCM_STATUS_RENAMED;
|
||||
if (change[0] == 'R') status->staged = EINA_TRUE;
|
||||
if (change[0] == 'R')
|
||||
{
|
||||
status->staged = status->change = EDI_SCM_STATUS_RENAMED_STAGED;
|
||||
}
|
||||
}
|
||||
else if (change[0] == 'M' || change[1] == 'M')
|
||||
{
|
||||
status->change = EDI_SCM_STATUS_MODIFIED;
|
||||
if (change[0] == 'M') status->staged = EINA_TRUE;
|
||||
if (change[0] == 'M')
|
||||
{
|
||||
status->staged = status->change = EDI_SCM_STATUS_MODIFIED_STAGED;
|
||||
}
|
||||
}
|
||||
else if (change[0] == 'D' || change[1] == 'D')
|
||||
{
|
||||
status->change = EDI_SCM_STATUS_DELETED;
|
||||
if (change[0] == 'D') status->staged = EINA_TRUE;
|
||||
if (change[0] == 'D')
|
||||
{
|
||||
status->staged = status->change = EDI_SCM_STATUS_DELETED_STAGED;
|
||||
}
|
||||
}
|
||||
else if (change[0] == '?' && change[1] == '?')
|
||||
{
|
||||
|
@ -200,26 +212,27 @@ _parse_line(char *line)
|
|||
static Edi_Scm_Status_Code
|
||||
_edi_scm_git_file_status(const char *path)
|
||||
{
|
||||
Eina_Strbuf *command;
|
||||
Edi_Scm_Status *status;
|
||||
Edi_Scm_Status_Code result;
|
||||
char command[4096];
|
||||
char *line;
|
||||
Edi_Scm_Status_Code result;
|
||||
|
||||
command = eina_strbuf_new();
|
||||
|
||||
eina_strbuf_append_printf(command, "git status --porcelain %s", path);
|
||||
|
||||
line = _edi_scm_exec_response(eina_strbuf_string_get(command));
|
||||
snprintf(command, sizeof(command), "git status --porcelain '%s'", path);
|
||||
|
||||
line = _edi_scm_exec_response(command);
|
||||
if (!line[0] || !line[1])
|
||||
{
|
||||
result = EDI_SCM_STATUS_NONE;
|
||||
}
|
||||
else
|
||||
{
|
||||
status = _parse_line(line);
|
||||
|
||||
eina_strbuf_free(command);
|
||||
|
||||
free(line);
|
||||
result = status->change;
|
||||
|
||||
eina_stringshare_del(status->path);
|
||||
free(status);
|
||||
}
|
||||
|
||||
free(line);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
@ -468,6 +481,9 @@ edi_scm_enabled(void)
|
|||
if (!engine)
|
||||
return EINA_FALSE;
|
||||
|
||||
if (!engine->initialized)
|
||||
return EINA_FALSE;
|
||||
|
||||
return _edi_scm_enabled(engine);
|
||||
}
|
||||
|
||||
|
@ -687,6 +703,8 @@ _edi_scm_git_init()
|
|||
engine->credentials_set = _edi_scm_git_credentials_set;
|
||||
engine->status_get = _edi_scm_git_status_get;
|
||||
|
||||
engine->initialized = EINA_TRUE;
|
||||
|
||||
return engine;
|
||||
}
|
||||
|
||||
|
|
|
@ -11,11 +11,16 @@ extern "C" {
|
|||
*/
|
||||
|
||||
typedef enum {
|
||||
EDI_SCM_STATUS_ADDED = 1,
|
||||
EDI_SCM_STATUS_NONE = 0,
|
||||
EDI_SCM_STATUS_ADDED,
|
||||
EDI_SCM_STATUS_DELETED,
|
||||
EDI_SCM_STATUS_MODIFIED,
|
||||
EDI_SCM_STATUS_RENAMED,
|
||||
EDI_SCM_STATUS_UNTRACKED,
|
||||
EDI_SCM_STATUS_ADDED_STAGED,
|
||||
EDI_SCM_STATUS_DELETED_STAGED,
|
||||
EDI_SCM_STATUS_MODIFIED_STAGED,
|
||||
EDI_SCM_STATUS_RENAMED_STAGED,
|
||||
EDI_SCM_STATUS_UNKNOWN,
|
||||
} Edi_Scm_Status_Code;
|
||||
|
||||
|
@ -70,6 +75,7 @@ typedef struct _Edi_Scm_Engine
|
|||
scm_fn_remote_url *remote_url_get;
|
||||
scm_fn_credentials *credentials_set;
|
||||
scm_fn_status_get *status_get;
|
||||
Eina_Bool initialized;
|
||||
} Edi_Scm_Engine;
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue