forked from enlightenment/edi
133 lines
3.9 KiB
C
133 lines
3.9 KiB
C
#include "Edi.h"
|
|
#include "mainview/edi_mainview.h"
|
|
#include "edi_consolepanel.h"
|
|
#include "edi_scm_screens.h"
|
|
#include "edi_private.h"
|
|
|
|
static Evas_Object *_parent_obj, *_popup, *_edi_scm_screens_message_popup;
|
|
|
|
static void
|
|
_edi_scm_screens_message_close_cb(void *data EINA_UNUSED,
|
|
Evas_Object *obj EINA_UNUSED,
|
|
void *event_info EINA_UNUSED)
|
|
{
|
|
Evas_Object *popup = data;
|
|
evas_object_del(popup);
|
|
}
|
|
|
|
static void
|
|
_edi_scm_screens_message_open(const char *message)
|
|
{
|
|
Evas_Object *popup, *button;
|
|
|
|
_edi_scm_screens_message_popup = popup = elm_popup_add(_parent_obj);
|
|
elm_object_part_text_set(popup, "title,text",
|
|
message);
|
|
|
|
button = elm_button_add(popup);
|
|
elm_object_text_set(button, "Ok");
|
|
elm_object_part_content_set(popup, "button1", button);
|
|
evas_object_smart_callback_add(button, "clicked",
|
|
_edi_scm_screens_message_close_cb, popup);
|
|
|
|
evas_object_show(popup);
|
|
}
|
|
|
|
static void
|
|
_edi_scm_screens_popup_cancel_cb(void *data, Evas_Object *obj EINA_UNUSED,
|
|
void *event_info EINA_UNUSED)
|
|
{
|
|
evas_object_del((Evas_Object *)data);
|
|
}
|
|
|
|
static void
|
|
_edi_scm_screens_commit_cb(void *data,
|
|
Evas_Object *obj EINA_UNUSED,
|
|
void *event_info EINA_UNUSED)
|
|
{
|
|
Edi_Scm_Engine *e;
|
|
const char *message;
|
|
|
|
e = edi_scm_engine_get();
|
|
if (!e)
|
|
{
|
|
_edi_scm_screens_message_open("SCM engine is not available.");
|
|
return;
|
|
}
|
|
|
|
message = elm_entry_entry_get((Evas_Object *) data);
|
|
if (!message || strlen(message) == 0)
|
|
{
|
|
_edi_scm_screens_message_open("Please enter a valid commit message.");
|
|
return;
|
|
}
|
|
|
|
edi_consolepanel_clear();
|
|
edi_consolepanel_show();
|
|
edi_scm_commit(message);
|
|
|
|
evas_object_del(_popup);
|
|
}
|
|
|
|
void
|
|
edi_scm_screens_commit(Evas_Object *parent)
|
|
{
|
|
Evas_Object *popup, *box, *input, *button;
|
|
|
|
_parent_obj = parent;
|
|
_popup = popup = elm_popup_add(parent);
|
|
|
|
elm_object_part_text_set(popup, "title,text",
|
|
"Enter commit message");
|
|
box = elm_box_add(popup);
|
|
elm_box_horizontal_set(box, EINA_FALSE);
|
|
elm_object_content_set(popup, box);
|
|
|
|
input = elm_entry_add(box);
|
|
elm_entry_single_line_set(input, EINA_TRUE);
|
|
elm_entry_editable_set(input, EINA_TRUE);
|
|
evas_object_size_hint_weight_set(input, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
|
evas_object_size_hint_align_set(input, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
|
evas_object_show(input);
|
|
elm_box_pack_end(box, input);
|
|
|
|
button = elm_button_add(popup);
|
|
elm_object_text_set(button, "cancel");
|
|
elm_object_part_content_set(popup, "button1", button);
|
|
evas_object_smart_callback_add(button, "clicked",
|
|
_edi_scm_screens_popup_cancel_cb, popup);
|
|
|
|
button = elm_button_add(popup);
|
|
evas_object_data_set(button, "input", input);
|
|
elm_object_text_set(button, "commit message");
|
|
elm_object_part_content_set(popup, "button2", button);
|
|
evas_object_smart_callback_add(button, "clicked",
|
|
_edi_scm_screens_commit_cb, input);
|
|
|
|
evas_object_show(popup);
|
|
elm_object_focus_set(input, EINA_TRUE);
|
|
}
|
|
|
|
void
|
|
edi_scm_screens_binary_missing(Evas_Object *parent, const char *binary)
|
|
{
|
|
Evas_Object *popup, *button;
|
|
Eina_Strbuf *text = eina_strbuf_new();
|
|
|
|
eina_strbuf_append_printf(text, "No %s binary found, please install %s.", binary, binary);
|
|
|
|
popup = elm_popup_add(parent);
|
|
elm_object_part_text_set(popup, "title,text", "SCM: Unable to launch");
|
|
elm_object_text_set(popup, eina_strbuf_string_get(text));
|
|
|
|
eina_strbuf_free(text);
|
|
|
|
button = elm_button_add(popup);
|
|
elm_object_text_set(button, "OK");
|
|
elm_object_part_content_set(popup, "button1", button);
|
|
evas_object_smart_callback_add(button, "clicked", _edi_scm_screens_popup_cancel_cb, popup);
|
|
|
|
evas_object_show(popup);
|
|
}
|
|
|