rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=30d84ccc74820541d7b6e291d25992d306c6f1d5

commit 30d84ccc74820541d7b6e291d25992d306c6f1d5
Author: Vyacheslav Reutskiy <v.reuts...@samsung.com>
Date:   Thu Jun 16 08:55:54 2016 +0300

    editor: add internal func for del part and program
    
    This funcs have a flag in arguments for do or not reset attributes
    before delete. It's needed for create fake deletion.
    
    Change-Id: I85f6aa24756f7c14abac3e36842691ba2f6248e8
---
 src/bin/editor/editor_part.c    | 16 ++++++++++++----
 src/bin/editor/editor_private.h | 26 ++++++++++++++++++++++++++
 src/bin/editor/editor_program.c | 16 ++++++++++++----
 3 files changed, 50 insertions(+), 8 deletions(-)

diff --git a/src/bin/editor/editor_part.c b/src/bin/editor/editor_part.c
index fb0ef2a..1f9e649 100644
--- a/src/bin/editor/editor_part.c
+++ b/src/bin/editor/editor_part.c
@@ -953,8 +953,8 @@ editor_part_copy(Evas_Object *edit_object, Change *change, 
Eina_Bool merge __UNU
 }
 
 Eina_Bool
-editor_part_del(Evas_Object *edit_object, Change *change, Eina_Bool merge 
__UNUSED__, Eina_Bool apply,
-                const char *part_name)
+_editor_part_del(Evas_Object *edit_object, Change *change, Eina_Bool merge 
__UNUSED__, Eina_Bool apply, Eina_Bool reset,
+                 const char *part_name)
 {
    Diff *diff;
    Eina_Stringshare *event_info;
@@ -968,8 +968,9 @@ editor_part_del(Evas_Object *edit_object, Change *change, 
Eina_Bool merge __UNUS
    if (change)
      {
         type = edje_edit_part_type_get(edit_object, part_name);
-        if (!editor_part_reset(edit_object, change, apply, part_name))
-          return false;
+        if (reset)
+          if (!editor_part_reset(edit_object, change, apply, part_name))
+            return false;
         diff = mem_calloc(1, sizeof(Diff));
         diff->redo.type = FUNCTION_TYPE_STRING;
         diff->redo.function = editor_part_del;
@@ -996,6 +997,13 @@ editor_part_del(Evas_Object *edit_object, Change *change, 
Eina_Bool merge __UNUS
 }
 
 Eina_Bool
+editor_part_del(Evas_Object *edit_object, Change *change, Eina_Bool merge, 
Eina_Bool apply,
+                const char *part_name)
+{
+   return _editor_part_del(edit_object, change, merge, apply, true, part_name);
+}
+
+Eina_Bool
 editor_part_restack(Evas_Object *edit_object, Change *change, Eina_Bool merge, 
Eina_Bool apply,
                     const char *part_name, const char *relative_part)
 {
diff --git a/src/bin/editor/editor_private.h b/src/bin/editor/editor_private.h
new file mode 100644
index 0000000..0c720d0
--- /dev/null
+++ b/src/bin/editor/editor_private.h
@@ -0,0 +1,26 @@
+/*
+ * Edje Theme Editor
+ * Copyright (C) 2013-2016 Samsung Electronics.
+ *
+ * This file is part of Edje Theme Editor.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; If not, see www.gnu.org/licenses/lgpl.html.
+ */
+
+Eina_Bool
+_editor_part_del(Evas_Object *edit_object, Change *change, Eina_Bool merge, 
Eina_Bool apply, Eina_Bool reset,
+                 const char *part_name);
+
+Eina_Bool
+_editor_program_del(Evas_Object *edit_object, Change *change, Eina_Bool merge, 
Eina_Bool apply, Eina_Bool reset,
+                    const char *program_name);
diff --git a/src/bin/editor/editor_program.c b/src/bin/editor/editor_program.c
index 5fe8e6d..052d604 100644
--- a/src/bin/editor/editor_program.c
+++ b/src/bin/editor/editor_program.c
@@ -842,8 +842,8 @@ editor_program_add(Evas_Object *edit_object, Change 
*change, Eina_Bool merge __U
 }
 
 Eina_Bool
-editor_program_del(Evas_Object *edit_object, Change *change, Eina_Bool merge 
__UNUSED__, Eina_Bool apply,
-                const char *program_name)
+_editor_program_del(Evas_Object *edit_object, Change *change, Eina_Bool merge 
__UNUSED__, Eina_Bool apply, Eina_Bool reset,
+                    const char *program_name)
 {
    Diff *diff;
    Eina_Stringshare *event_info;
@@ -856,8 +856,9 @@ editor_program_del(Evas_Object *edit_object, Change 
*change, Eina_Bool merge __U
    if (change)
      {
         Edje_Action_Type type = edje_edit_program_action_get(edit_object, 
program_name);
-        if (!editor_program_reset(edit_object, change, apply, program_name))
-          return false;
+        if (reset)
+          if (!editor_program_reset(edit_object, change, apply, program_name))
+            return false;
         diff = mem_calloc(1, sizeof(Diff));
         diff->redo.type = FUNCTION_TYPE_STRING;
         diff->redo.function = editor_program_del;
@@ -882,3 +883,10 @@ editor_program_del(Evas_Object *edit_object, Change 
*change, Eina_Bool merge __U
      }
    return true;
 }
+
+Eina_Bool
+editor_program_del(Evas_Object *edit_object, Change *change, Eina_Bool merge, 
Eina_Bool apply,
+                   const char *program_name)
+{
+   return _editor_program_del(edit_object, change, merge, apply, true, 
program_name);
+}

-- 


Reply via email to