From: Enlightenment S. <no-...@en...> - 2010-01-29 17:03:21
|
Log: Group size remember Author: tiago Date: 2010-01-29 09:03:06 -0800 (Fri, 29 Jan 2010) New Revision: 45707 Modified: trunk/editje/editje/desktop.py trunk/editje/editje/details_group.py trunk/editje/editje/editable.py trunk/editje/editje/editje.py Modified: trunk/editje/editje/desktop.py =================================================================== --- trunk/editje/editje/desktop.py 2010-01-29 17:03:03 UTC (rev 45706) +++ trunk/editje/editje/desktop.py 2010-01-29 17:03:06 UTC (rev 45707) @@ -37,6 +37,7 @@ self.e.callback_add("group.changed", self._group_load) self.e.callback_add("group.min.changed", self._group_min_load) self.e.callback_add("group.max.changed", self._group_max_load) + self.e.callback_add("group.size.changed", self._group_size_load) self.e.callback_add("part.added", self._part_added) self.e.part.callback_add("part.changed", @@ -64,6 +65,9 @@ def _group_max_load(self, emissor, data): self._view.manager.group_max_set(*data) + def _group_size_load(self, emissor, data): + self._view.manager.group_resize(*data) + def _part_load(self, emissor, data): if data: self._view.part = self.e.part @@ -299,18 +303,7 @@ self.group_resize(*self._group.size) def group_resize(self, w, h): - max_w, max_h = self._group_max - min_w, min_h = self._group_min - if max_w and w > max_w: - w = max_w - elif min_w and w < min_w: - w = min_w - - if max_h and h > max_h: - h = max_h - elif min_h and h < min_h: - h = min_h - self._group.resize(w, h) + self.parent_view.controller.e.group_size = (w, h) self.padding_update() # Group @@ -326,7 +319,6 @@ self._group.hide() self.member_del(self._group) self._group = group - self.group_resize(300, 300) self._padding_init(self) self._group_member_add() self.outside_area.lower() Modified: trunk/editje/editje/details_group.py =================================================================== --- trunk/editje/editje/details_group.py 2010-01-29 17:03:03 UTC (rev 45706) +++ trunk/editje/editje/details_group.py 2010-01-29 17:03:06 UTC (rev 45707) @@ -58,25 +58,19 @@ prop = Property(parent, "current") wid = WidgetEntry(self) - wid.disabled_set(True) wid.parser_in = lambda x: str(x) wid.parser_out = lambda x: int(x) prop.widget_add("w", wid) wid = WidgetEntry(self) - wid.disabled_set(True) wid.parser_in = lambda x: str(x) wid.parser_out = lambda x: int(x) prop.widget_add("h", wid) self["main"].property_add(prop) - self.e.callback_add("group.changed", self._group_update) + self.e.callback_add("group.size.changed", self._group_update) def _group_update(self, emissor, data): - self["main"]["current"].value = self.e._edje.size - self.e._edje.on_resize_add(self._group_resized) + self["main"]["current"].value = self.e.group_size - def _group_resized(self, obj): - self["main"]["current"].value = obj.size - def _min_update(self, emissor, data): self["main"]["min"].value = data @@ -92,21 +86,5 @@ self.e.group_max = value elif prop == "current": if value: - self["main"]["current"].value = self.e._edje.size - else: - w, h = value - w_min, h_min = self.e.group_min - w_max, h_max = self.e.group_max - - if w < w_min: - w = w_min - elif w_max > 0 and w > w_max: - w = w_max - - if h < h_min: - h = h_min - elif h_max > 0 and h > h_max: - h = h_max - - self.e._edje.resize(w, h) - self.prop_set("current", (w, h)) + self.e.group_size = value + self["main"]["current"].value = self.e.group_size Modified: trunk/editje/editje/editable.py =================================================================== --- trunk/editje/editje/editable.py 2010-01-29 17:03:03 UTC (rev 45706) +++ trunk/editje/editje/editable.py 2010-01-29 17:03:06 UTC (rev 45707) @@ -97,15 +97,29 @@ self.callback_add("group.changed", self._min_max_update) def _min_max_update(self, emissor, data): - if data: - self._max = (self._edje_group.w_max, self._edje_group.h_max) - self.event_emit("group.max.changed", self._max) - self._min = (self._edje_group.w_min, self._edje_group.h_min) - self.event_emit("group.min.changed", self._min) - else: + if not data: self._max = None self._min = None + self._size = None + return + self._max = (self._edje_group.w_max, self._edje_group.h_max) + self.event_emit("group.max.changed", self._max) + self._min = (self._edje_group.w_min, self._edje_group.h_min) + self.event_emit("group.min.changed", self._min) + + key = self._group + "@pref_size" + data = self._edje.data_get(key) + if not data: + self._edje.data_add(key, "300x300") + w = 300 + h = 300 + else: + w, h = data.split("x") + w = int(w) + h = int(h) + self.group_size = (w, h) + def _max_get(self): return self._max @@ -148,6 +162,35 @@ group_min = property(_min_get, _min_set) + def _size_get(self): + return self._size + + def _size_set(self, value): + if self._size == value: + return + + w, h = value + max_w, max_h = self._max + min_w, min_h = self._min + + if min_w and w < min_w: + w = min_w + elif max_w and w > max_w: + w = max_w + + if min_h and h < min_h: + h = min_h + elif max_h and h > max_h: + h = max_h + + self._size = (w, h) + self._edje.size = (w, h) + key = self._group + "@pref_size" + self._edje.data_set(key, "%dx%d" % self._size) + self.event_emit("group.size.changed", self._size) + + group_size = property(_size_get, _size_set) + # Modifications def _modification_init(self): self._modification_clear_cb(self, None) Modified: trunk/editje/editje/editje.py =================================================================== --- trunk/editje/editje/editje.py 2010-01-29 17:03:03 UTC (rev 45706) +++ trunk/editje/editje/editje.py 2010-01-29 17:03:06 UTC (rev 45707) @@ -209,11 +209,12 @@ def _run_cb(self, obj, emission, source): def _test_window_closed(obj): + self.e.group_size = w.size obj.delete() self.block(False) w = elementary.Window("edje-test", elementary.ELM_WIN_BASIC) w.callback_destroy_add(_test_window_closed) - w.resize(300, 300) + w.resize(*self.e.group_size) w.title_set("Edje Test") b = elementary.Background(w) b.size_hint_weight_set(1.0, 1.0) |
From: Enlightenment S. <no-...@en...> - 2010-01-29 17:10:28
|
Log: Fix size 0 Author: tiago Date: 2010-01-29 09:03:03 -0800 (Fri, 29 Jan 2010) New Revision: 45706 Modified: trunk/editje/editje/editable.py Modified: trunk/editje/editje/editable.py =================================================================== --- trunk/editje/editje/editable.py 2010-01-29 17:02:23 UTC (rev 45705) +++ trunk/editje/editje/editable.py 2010-01-29 17:03:03 UTC (rev 45706) @@ -114,11 +114,11 @@ w, h = value if w < 0: w = 0 - elif w < self._min[0]: + elif self._min[0] and w < self._min[0]: w = self._min[0] if h < 0: h = 0 - elif h < self._min[1]: + elif self._min[1] and h < self._min[1]: h = self._min[1] self._max = (w, h) self._edje_group.w_max = w @@ -135,11 +135,11 @@ w, h = value if w < 0: w = 0 - elif w > self._max[0]: + elif self._max[0] and w > self._max[0]: w = self._max[0] if h < 0: h = 0 - elif h > self._max[1]: + elif self._max[1] and h > self._max[1]: h = self._max[1] self._min = (w, h) self._edje_group.w_min = w |
From: Enlightenment S. <no-...@en...> - 2010-01-29 18:03:59
|
Log: New default size Author: tiago Date: 2010-01-29 10:03:52 -0800 (Fri, 29 Jan 2010) New Revision: 45709 Modified: trunk/editje/editje/editable.py Modified: trunk/editje/editje/editable.py =================================================================== --- trunk/editje/editje/editable.py 2010-01-29 17:14:50 UTC (rev 45708) +++ trunk/editje/editje/editable.py 2010-01-29 18:03:52 UTC (rev 45709) @@ -111,9 +111,9 @@ key = self._group + "@pref_size" data = self._edje.data_get(key) if not data: - self._edje.data_add(key, "300x300") - w = 300 - h = 300 + self._edje.data_add(key, "480x800") + w = 480 + h = 800 else: w, h = data.split("x") w = int(w) |
From: Enlightenment S. <no-...@en...> - 2010-01-29 18:45:53
|
Log: Fixing problem resizing right pannel in signal mode. By Masaki Author: Thiago Ribeiro Masaki <masaki at profusion.mobi> Author: tiago Date: 2010-01-29 10:45:46 -0800 (Fri, 29 Jan 2010) New Revision: 45710 Modified: trunk/editje/editje/signals.py Modified: trunk/editje/editje/signals.py =================================================================== --- trunk/editje/editje/signals.py 2010-01-29 18:03:52 UTC (rev 45709) +++ trunk/editje/editje/signals.py 2010-01-29 18:45:46 UTC (rev 45710) @@ -302,6 +302,7 @@ self["main"]["action"].value = "" elif action == edje.EDJE_ACTION_TYPE_SIGNAL_EMIT: self["main"]["action"].hide() + self.group_hide("out") self.group_show("out") state = self.e.signal._program.state_get() |
From: Enlightenment S. <no-...@en...> - 2010-02-01 11:02:20
|
Log: Clear Previous Selection in Group List Author: tiago Date: 2010-02-01 03:02:11 -0800 (Mon, 01 Feb 2010) New Revision: 45766 Modified: trunk/editje/editje/groupselector.py Modified: trunk/editje/editje/groupselector.py =================================================================== --- trunk/editje/editje/groupselector.py 2010-02-01 06:55:19 UTC (rev 45765) +++ trunk/editje/editje/groupselector.py 2010-02-01 11:02:11 UTC (rev 45766) @@ -94,7 +94,11 @@ self.go() + def selection_clear(self): + for i in self.selected_items_get(): + i.selected_set(False) + # TODO: maybe this widget is generic enough to be moved to general # widgets definition file class NameEntry(elementary.Box): @@ -223,7 +227,7 @@ self._preview = PreviewFrame(self) self.content_add("group_preview", self._preview) self._preview.show() - self.action_add("group_preview", "Cancel", self.goto, "group_list") + self.action_add("group_preview", "Cancel", self._goto_group_list) self.action_add("group_preview", "Delete", self._delete_group) self.action_add("group_preview", "Open", self._group_selected) @@ -245,12 +249,17 @@ self._groups_list.selection) self.goto("group_preview") + def _goto_group_list(self): + self._groups_list.selection_clear() + self.goto("group_list") + def _group_selected(self): self._select_cb(self._groups_list.selection) ecore.idler_add(self.close) def _delete_group(self): print "FIXME: group deletion to be added soon." + self.notify("Group deletion to be added soon.") self.goto("group_list") def file_set(self, file_, group=None): |
From: Enlightenment S. <no-...@en...> - 2010-02-01 11:48:26
|
Log: Group addition works Author: tiago Date: 2010-02-01 03:48:19 -0800 (Mon, 01 Feb 2010) New Revision: 45767 Modified: trunk/editje/editje/editje.py trunk/editje/editje/groupselector.py Modified: trunk/editje/editje/editje.py =================================================================== --- trunk/editje/editje/editje.py 2010-02-01 11:02:11 UTC (rev 45766) +++ trunk/editje/editje/editje.py 2010-02-01 11:48:19 UTC (rev 45767) @@ -134,7 +134,6 @@ grp_wiz.file_set(self.e.workfile) grp_wiz.open() - # FIXME: not working yet! def _group_wizard_new_group_cb(self, grp_name): success = self.e.group_add(grp_name) if success: Modified: trunk/editje/editje/groupselector.py =================================================================== --- trunk/editje/editje/groupselector.py 2010-02-01 11:02:11 UTC (rev 45766) +++ trunk/editje/editje/groupselector.py 2010-02-01 11:48:19 UTC (rev 45767) @@ -192,11 +192,7 @@ if not switch_only: self.action_add("group_list", "Cancel", self.close) - # FIXME: fix group addition infra before letting this UI, - # which is *fine*, go - - # if new_grp_cb: - if False: + if new_grp_cb: def group_added(cb_func): name = self._grp_name_entry.entry if not name: @@ -240,7 +236,6 @@ else: self.alternate_background_set(False) - # FIXME: return to it when group addition gets fixed def _goto_new_group(self): self.goto("new_group", alt_bg_style=True) |
From: Enlightenment S. <no-...@en...> - 2010-02-01 14:49:28
|
Log: Fix Initial Group Resize Author: tiago Date: 2010-02-01 06:49:18 -0800 (Mon, 01 Feb 2010) New Revision: 45777 Modified: trunk/editje/editje/editable.py Modified: trunk/editje/editje/editable.py =================================================================== --- trunk/editje/editje/editable.py 2010-02-01 14:38:00 UTC (rev 45776) +++ trunk/editje/editje/editable.py 2010-02-01 14:49:18 UTC (rev 45777) @@ -113,6 +113,7 @@ self._min = (self._edje_group.w_min, self._edje_group.h_min) self.event_emit("group.min.changed", self._min) + self._size = None key = self._group + "@pref_size" data = self._edje.data_get(key) if not data: |
From: Enlightenment S. <no-...@en...> - 2010-02-02 20:48:23
|
Log: Fix update after part rename Author: tiago Date: 2010-02-02 12:48:14 -0800 (Tue, 02 Feb 2010) New Revision: 45819 Modified: trunk/editje/editje/details_state.py trunk/editje/editje/editable.py trunk/editje/editje/editje.py Modified: trunk/editje/editje/details_state.py =================================================================== --- trunk/editje/editje/details_state.py 2010-02-02 20:09:17 UTC (rev 45818) +++ trunk/editje/editje/details_state.py 2010-02-02 20:48:14 UTC (rev 45819) @@ -98,6 +98,12 @@ self.edje_get().signal_emit("cl,option,enable", "editje") + self.e.callback_add("group.changed", + self._edje_load) + self.e.part.callback_add("part.changed", + self._part_update) + self.e.part.callback_add("part.renamed", + self._part_update) self.e.part.state.callback_add("state.changed", self._state_changed_cb) self.e.part.state.callback_add("rel1x.changed", @@ -228,15 +234,15 @@ popup.on_changed_size_hints_del(self._state_popup_place) popup.close() - def editable_set(self, obj): - self.editable = obj + def _edje_load(self, emissor, data): + self.editable = self.e.edje - def active_part_set(self, part): - self.part = part - state = part.state_selected_get() + def _part_update(self, emissor, data): + self.part = self.e.part._part + state = self.part.state_selected_get() if self._animmode: - self._header_table["name"].value = part.name - self._header_table["type"].value = self._part_type_to_text(part.type) + self._header_table["name"].value = self.part.name + self._header_table["type"].value = self._part_type_to_text(self.part.type) else: if state == "(null) 0.00": state = "default 0.00" @@ -245,7 +251,7 @@ # print st # self.state_prop[1].item_add(st) self._header_table["state"].value = state - self.state = part.state_get(state) + self.state = self.part.state_get(state) self._update() self.open() Modified: trunk/editje/editje/editable.py =================================================================== --- trunk/editje/editje/editable.py 2010-02-02 20:09:17 UTC (rev 45818) +++ trunk/editje/editje/editable.py 2010-02-02 20:48:14 UTC (rev 45819) @@ -35,6 +35,10 @@ self._group = "" self._edje = None + self.animation = EditableAnimation(self) + self.part = EditablePart(self) + self.signal = EditableProgram(self) + self._min_max_init() self._modification_init() self._parts_init() @@ -42,10 +46,6 @@ self._animations_init() self._signals_init() - self.animation = EditableAnimation(self) - self.part = EditablePart(self) - self.signal = EditableProgram(self) - # Edje def _edje_get(self): return self._edje @@ -228,6 +228,8 @@ self.callback_add("group.changed", self._parts_reload_cb) self.callback_add("part.added", self._parts_reload_cb) self.callback_add("part.removed", self._parts_reload_cb) + self.callback_add("part.removed", self._parts_reload_cb) + self.part.callback_add("name.changed", self._parts_reload_cb) def _parts_reload_cb(self, emissor, data): self.parts = self._edje.parts Modified: trunk/editje/editje/editje.py =================================================================== --- trunk/editje/editje/editje.py 2010-02-02 20:09:17 UTC (rev 45818) +++ trunk/editje/editje/editje.py 2010-02-02 20:48:14 UTC (rev 45819) @@ -70,7 +70,6 @@ self._toolbar_static_init() self._desktop_init() self._modes_init() - self._hacks_init() self.select_group() @@ -533,21 +532,3 @@ self._mode_add("Signals", "editje/icon/signal", toolbar, mainbar, sidebar) - - # HACKS - def _hacks_init(self): - self.e.callback_add("group.changed", - self._group_changed_cb) - self.e.part.callback_add("part.changed", - self._part_selected_cb) - - def _group_changed_cb(self, emissor, data): - self.editable = self.e.edje - - self.part_state_details.editable_set(self.editable) - self.anim_state_details.editable_set(self.editable) - - def _part_selected_cb(self, emissor, name): - part = self.editable.part_get(name) - self.part_state_details.active_part_set(part) - self.anim_state_details.active_part_set(part) |
From: Enlightenment S. <no-...@en...> - 2010-02-03 18:59:25
|
Log: Remember opened files Author: tiago Date: 2010-02-03 10:59:18 -0800 (Wed, 03 Feb 2010) New Revision: 45843 Modified: trunk/editje/editje/openfile.py trunk/editje/editje/swapfile.py Modified: trunk/editje/editje/openfile.py =================================================================== --- trunk/editje/editje/openfile.py 2010-02-03 18:35:37 UTC (rev 45842) +++ trunk/editje/editje/openfile.py 2010-02-03 18:59:18 UTC (rev 45843) @@ -273,9 +273,12 @@ self._notification.delete() self._notification = None self._notification = ErrorNotify(self) - self._notification.title = "File already exists" self._notification.action_add("Rename", self._new_rename) - self._notification.action_add("Overwrite", self._new_forced, None, file) + if self._swapfile.is_opened(file): + self._notification.title = "File already exists and opened" + else: + self._notification.title = "File already exists" + self._notification.action_add("Overwrite", self._new_forced, None, file) self._notification.action_add("Abort", self._notify_abort) self._notification.show() return Modified: trunk/editje/editje/swapfile.py =================================================================== --- trunk/editje/editje/swapfile.py 2010-02-03 18:35:37 UTC (rev 45842) +++ trunk/editje/editje/swapfile.py 2010-02-03 18:59:18 UTC (rev 45843) @@ -28,7 +28,13 @@ REPLACE = 2 class SwapFile(object): + __opened_files = {} + def is_opened(self, filename=None): + if not filename: + filename = self.__filepath + return self.__opened_files.has_key(filename) + def __init__(self): self.__new = False self.__filepath = "" @@ -47,6 +53,9 @@ self.__opened = True return + if self.__opened_files.has_key(self.__filepath): + raise FileOpened(self) + if not self.__filepath: raise FileNotSet(self) @@ -59,6 +68,7 @@ self.__swap_create() self.__opened = True + self.__opened_files[self.__filepath] = self def __file_check(self): if self.__filepath.endswith(".edj"): @@ -88,6 +98,9 @@ return if filepath: + opened = self.__opened_files.get(self.__filepath) + if opened != self: + raise FileOpened(self) if path.exists(self.__swapfile) and mode != REPLACE: raise FileAlreadyExists(self) self.__filepath = filepath @@ -113,10 +126,13 @@ chdir(orig_dir) rmtree(temp_dir) + self.__opened_files[self.__filepath] = self + def close(self): if not self.__opened: return + del self.__opened_files[self.__filepath] remove(self.__swapfile) self.__swapfile = None self.__new = True @@ -192,3 +208,7 @@ class FileNotFound(SwapFileError): def __str__(self): return self.swapfile.file + " : File not found." + +class FileOpened(SwapFileError): + def __str__(self): + return self.swapfile.file + " : File opened." |
From: Enlightenment S. <no-...@en...> - 2010-02-03 20:22:24
|
Log: Save all groups Author: tiago Date: 2010-02-03 12:21:03 -0800 (Wed, 03 Feb 2010) New Revision: 45848 Modified: trunk/editje/editje/editable.py Modified: trunk/editje/editje/editable.py =================================================================== --- trunk/editje/editje/editable.py 2010-02-03 20:13:56 UTC (rev 45847) +++ trunk/editje/editje/editable.py 2010-02-03 20:21:03 UTC (rev 45848) @@ -214,7 +214,7 @@ def save(self): # if self._modificated: - if self._edje.save(): + if self._edje.save_all(): self._swapfile.save() self.event_emit("saved") else: |
From: Enlightenment S. <no-...@en...> - 2010-02-03 21:29:27
|
Log: Part Rename Again Author: tiago Date: 2010-02-03 13:29:21 -0800 (Wed, 03 Feb 2010) New Revision: 45856 Modified: trunk/editje/editje/details_part.py Modified: trunk/editje/editje/details_part.py =================================================================== --- trunk/editje/editje/details_part.py 2010-02-03 21:10:42 UTC (rev 45855) +++ trunk/editje/editje/details_part.py 2010-02-03 21:29:21 UTC (rev 45856) @@ -46,7 +46,6 @@ prop = Property(parent, "name") wid = WidgetEntry(self) - wid.disabled_set(True) prop.widget_add("n", wid) self._header_table.property_add(prop) |
From: Enlightenment S. <no-...@en...> - 2010-02-05 13:16:22
|
Log: Manage part state min and max sizes Author: tiago Date: 2010-02-05 05:16:10 -0800 (Fri, 05 Feb 2010) New Revision: 45900 Modified: trunk/editje/editje/details_state.py trunk/editje/editje/editable_state.py Modified: trunk/editje/editje/details_state.py =================================================================== --- trunk/editje/editje/details_state.py 2010-02-05 13:12:24 UTC (rev 45899) +++ trunk/editje/editje/details_state.py 2010-02-05 13:16:10 UTC (rev 45900) @@ -114,6 +114,10 @@ self._state_rels_changed_cb) self.e.part.state.callback_add("rel2y.changed", self._state_rels_changed_cb) + self.e.part.state.callback_add("part.state.min.changed", + self._update_min) + self.e.part.state.callback_add("part.state.max.changed", + self._update_max) self._hide_all() def _del_handler(self, o): @@ -624,9 +628,15 @@ self.group_show("external") return False + def _update_min(self, emissor, data): + self["main"]["min"].value = data + + def _update_max(self, emissor, data): + self["main"]["max"].value = data + def _update_common(self): - self["main"]["min"].value = self.state.min - self["main"]["max"].value = self.state.max + self._update_min(self, self.e.part.state.min) + self._update_max(self, self.e.part.state.max) (x, y, w, h) = self.editable.part_geometry_get(self.part.name) self["main"]["current"].value = w, h @@ -744,12 +754,10 @@ tbl = self["main"] if prop == "min": if value is not None: - self.state.min_set(*value) - tbl["min"].value = self.state.min + self.e.part.state.min = value elif prop == "max": if value is not None: - self.state.max_set(*value) - tbl["max"].value = self.state.max + self.e.part.state.max = value elif prop == "color": self.state.color_set(*value) elif prop == "visible": Modified: trunk/editje/editje/editable_state.py =================================================================== --- trunk/editje/editje/editable_state.py 2010-02-05 13:12:24 UTC (rev 45899) +++ trunk/editje/editje/editable_state.py 2010-02-05 13:16:10 UTC (rev 45900) @@ -197,3 +197,43 @@ rel1y = property(_rel1y_get, _rel1y_set) rel2x = property(_rel2x_get, _rel2x_set) rel2y = property(_rel2y_get, _rel2y_set) + + def _max_get(self): + return self._state.max + + def _max_set(self, value): + if self._state.max != value: + min = self.min + w, h = value + if w < 0: + w = -1 + elif min[0] and w < min[0]: + w = min[0] + if h < 0: + h = -1 + elif min[1] and h < min[1]: + h = min[1] + self._state.max = (w, h) + self.event_emit("part.state.max.changed", (w, h)) + + max = property(_max_get, _max_set) + + def _min_get(self): + return self._state.min + + def _min_set(self, value): + if self._state.min != value: + max = self._state.max + w, h = value + if w < 0: + w = 0 + elif max[0] >= 0 and w > max[0]: + w = max[0] + if h < 0: + h = 0 + elif max[1] >= 0 and h > max[1]: + h = max[1] + self._state.min = (w, h) + self.event_emit("part.state.min.changed", (w, h)) + + min = property(_min_get, _min_set) |
From: Enlightenment S. <no-...@en...> - 2010-02-09 16:34:56
|
Log: Fix open with recovery option Author: tiago Date: 2010-02-09 08:34:50 -0800 (Tue, 09 Feb 2010) New Revision: 46013 Modified: trunk/editje/editje/swapfile.py Modified: trunk/editje/editje/swapfile.py =================================================================== --- trunk/editje/editje/swapfile.py 2010-02-09 15:43:17 UTC (rev 46012) +++ trunk/editje/editje/swapfile.py 2010-02-09 16:34:50 UTC (rev 46013) @@ -62,6 +62,7 @@ if path.exists(self.__swapfile): if mode == RESTORE: # or filecmp.cmp(self.__filepath, self.__swapfile): self.__opened = True + self.__opened_files[self.__filepath] = self return elif mode != REPLACE: raise CacheAlreadyExists(self) |
From: Enlightenment S. <no-...@en...> - 2010-02-09 18:14:33
|
Log: Fix animation unselection Author: tiago Date: 2010-02-09 10:14:26 -0800 (Tue, 09 Feb 2010) New Revision: 46015 Modified: trunk/editje/editje/editable_animation.py Modified: trunk/editje/editje/editable_animation.py =================================================================== --- trunk/editje/editje/editable_animation.py 2010-02-09 17:03:52 UTC (rev 46014) +++ trunk/editje/editje/editable_animation.py 2010-02-09 18:14:26 UTC (rev 46015) @@ -34,12 +34,11 @@ self.program = EditableProgram(self.e) - self._animation_unselect_cb(self, None) - self.e.callback_add("group.changed", self._animation_unselect_cb) + self._name = None + self.e.callback_add("group.changed", self._group_changed_cb) self.e.callback_add("animation.removed", self._animation_removed_cb) - - def _animation_unselect_cb(self, emissor, data): + def _group_changed_cb(self, emissor, data): self.name = None def _animation_removed_cb(self, emissor, data): @@ -58,6 +57,9 @@ self.event_emit("animation.changed", self._name) else: self._name = "" + for p in self.e.parts: + part = self.e._edje.part_get(p) + part.state_selected_set("default 0.00") self.event_emit("animation.unselected") def _name_get(self): |
From: Enlightenment S. <no-...@en...> - 2010-02-10 12:49:17
|
Log: Rename State feature. By Masaki Author: Thiago Ribeiro Masaki <masaki at profusion.mobi> Author: tiago Date: 2010-02-10 04:49:06 -0800 (Wed, 10 Feb 2010) New Revision: 46040 Modified: trunk/editje/editje/details_state.py trunk/editje/editje/editable_part.py trunk/editje/editje/editable_state.py Modified: trunk/editje/editje/details_state.py =================================================================== --- trunk/editje/editje/details_state.py 2010-02-10 12:29:16 UTC (rev 46039) +++ trunk/editje/editje/details_state.py 2010-02-10 12:49:06 UTC (rev 46040) @@ -580,15 +580,19 @@ def _state_entry_changed_cb(self, obj, *args, **kwargs): state = obj.value.split(None, 1) + old = self.e.part.state.name + if len(state) == 1: st = state[0] + " 0.00" else: st = " ".join(state) - if not self.part.state_exist(st): - self.part.state_copy(self.state.name, state[0]) - self.e.part.event_emit("state.added", st) - self.e.part.state.name = st + if (not self.part.state_exist(st)) and old.split(None, 1)[0] != "default": + self.e.part.state.name_set(st) + else: + obj.value = old + + def _hide_all(self): self.main_hide() self.group_hide("rel1") Modified: trunk/editje/editje/editable_part.py =================================================================== --- trunk/editje/editje/editable_part.py 2010-02-10 12:29:16 UTC (rev 46039) +++ trunk/editje/editje/editable_part.py 2010-02-10 12:49:06 UTC (rev 46040) @@ -29,10 +29,10 @@ self._part = None + self.state = EditableState(self) + self._states_init() - self.state = EditableState(self) - self._part_unselect_cb(self, None) self.e.callback_add("group.changed", self._part_unselect_cb) self.e.callback_add("part.removed", self._part_removed_cb) @@ -88,6 +88,7 @@ self.callback_add("part.changed", self._states_reload_cb) self.callback_add("part.unselected", self._states_reload_cb) self.callback_add("state.added", self._states_reload_cb) + self.state.callback_add("state.renamed", self._states_reload_cb) self.callback_add("state.removed", self._states_reload_cb) def _states_reload_cb(self, emissor, data): Modified: trunk/editje/editje/editable_state.py =================================================================== --- trunk/editje/editje/editable_state.py 2010-02-10 12:29:16 UTC (rev 46039) +++ trunk/editje/editje/editable_state.py 2010-02-10 12:49:06 UTC (rev 46040) @@ -62,6 +62,11 @@ else: self.event_emit("state.unselected") + def name_set(self, new_name): + self._state.name_set(new_name) + self.event_emit("state.renamed", self._name) + self._name_set(new_name) + def _name_get(self): return self._name |
From: Enlightenment S. <no-...@en...> - 2010-02-10 12:49:18
|
Log: Select the current state directly clicking on it. By Masaki Author: Thiago Ribeiro Masaki <masaki at profusion.mobi> Author: tiago Date: 2010-02-10 04:49:09 -0800 (Wed, 10 Feb 2010) New Revision: 46041 Modified: trunk/editje/editje/details_state.py Modified: trunk/editje/editje/details_state.py =================================================================== --- trunk/editje/editje/details_state.py 2010-02-10 12:49:06 UTC (rev 46040) +++ trunk/editje/editje/details_state.py 2010-02-10 12:49:09 UTC (rev 46041) @@ -46,6 +46,7 @@ self.states.size_hint_weight_set(1.0, 1.0) self.states.size_hint_align_set(-1.0, -1.0) self.states.show() + self._selstate = None self.content_set(self.states) @@ -60,7 +61,10 @@ self.states.go() def _state_selected_cb(self, obj, event, state): - self._selstate = state + if self._selstate != state: + self._selstate = state + self._parent.e.part.state.name = state + self.hide() def selected_get(self): return self._selstate |
From: Enlightenment S. <no-...@en...> - 2010-02-10 13:07:30
|
Log: Add new state button on state selector. By Masaki The name is generated automatically Author: Thiago Ribeiro Masaki <masaki at profusion.mobi> Author: tiago Date: 2010-02-10 04:49:11 -0800 (Wed, 10 Feb 2010) New Revision: 46042 Modified: trunk/editje/editje/details_state.py Modified: trunk/editje/editje/details_state.py =================================================================== --- trunk/editje/editje/details_state.py 2010-02-10 12:49:09 UTC (rev 46041) +++ trunk/editje/editje/details_state.py 2010-02-10 12:49:11 UTC (rev 46042) @@ -19,6 +19,7 @@ import ecore import edje import elementary +import re from details import EditjeDetails from details_widget_entry import WidgetEntry @@ -178,7 +179,7 @@ def _edit_opt_clicked_cb(self, obj, emission, source): icon = self.edje_get().part_object_get("cl.options") popup = StatesPopUp(self._parent, icon) - popup.action_add("Select", self._state_selected_cb) + popup.action_add("New", self._state_add_new_cb) popup.action_add("Reset to", self._reset_to_state_cb) popup.action_add("Delete", self._state_delete_cb) popup.action_add("Cancel", self._popup_cancel_cb) @@ -195,6 +196,28 @@ self.e.part.state.name = popup.selected_get() popup.close() + def _state_add_new_cb(self, popup, data): + max = 0 + cur_state = self.e.part.state.name.split(None,1) + if re.match("[a-zA-Z]*\d{2,}", cur_state[0]): + cur = cur_state[0][:-2] + else: + cur = cur_state[0] + + for p in self.e.part.states: + state = p.split(None, 1) + if re.match("%s\d{2,}" % cur, state[0]): + num = int(state[0][len(cur):]) + if num > max: + max = num + nst = cur + "%.2d" % (max + 1) + st = nst + " 0.00" + if not self.part.state_exist(st): + self.part.state_copy(self.state.name, nst) + self.e.part.event_emit("state.added", st) + self.e.part.state.name = st + + def _state_delete_cb(self, popup, data): st = popup.selected_get() if st == "default 0.00": |
From: Enlightenment S. <no-...@en...> - 2010-02-11 13:23:46
|
Log: Refactoring WidgetEntryButton/details_widget_entry_button.py. By Masaki Now WidgetEntryButtonList is a subclass of the of WidgetEntryButton and any WidgetEntryButton's subclass must implement it's own callback for the button. Widget(Font/Source/Signals) are subclasses of the new class WidgetEntryButtonList and implements its own method of populating the list Author: Thiago Ribeiro Masaki <masaki at profusion.mobi> Author: tiago Date: 2010-02-11 05:23:36 -0800 (Thu, 11 Feb 2010) New Revision: 46075 Added: trunk/editje/editje/details_widget_entry_button_list.py Modified: trunk/editje/editje/Makefile.am trunk/editje/editje/details_widget_entry_button.py trunk/editje/editje/details_widget_font.py trunk/editje/editje/details_widget_signals.py trunk/editje/editje/details_widget_source.py Modified: trunk/editje/editje/Makefile.am =================================================================== --- trunk/editje/editje/Makefile.am 2010-02-11 11:09:18 UTC (rev 46074) +++ trunk/editje/editje/Makefile.am 2010-02-11 13:23:36 UTC (rev 46075) @@ -25,6 +25,7 @@ details_widget_combo.py \ details_widget_entry.py \ details_widget_entry_button.py \ +details_widget_entry_button_list.py \ details_widget_font.py \ details_widget_partlist.py \ details_widget_signals.py \ Modified: trunk/editje/editje/details_widget_entry_button.py =================================================================== --- trunk/editje/editje/details_widget_entry_button.py 2010-02-11 11:09:18 UTC (rev 46074) +++ trunk/editje/editje/details_widget_entry_button.py 2010-02-11 13:23:36 UTC (rev 46075) @@ -19,7 +19,6 @@ import elementary from details_widget import Widget -from floater import Floater class WidgetEntryButton(Widget): @@ -73,8 +72,7 @@ self.delayed_callback = 0 def _value_set(self, val): - self.entry.entry_set(val) - self.entry_value = val + self._internal_value_set(val) def _value_get(self): return self.entry_value @@ -96,46 +94,13 @@ def _dblclick_cb(self, obj): self.entry.select_all() - def _items_load(self): - list = [] - return list - def _actions_init(self): - self._pop.action_add("Cancel", self._cancel_clicked) - - def _open(self, bt, *args): - self._pop = Floater(self.parent, self.obj) - self._pop.size_min_set(self.pop_min_w, self.pop_min_h) - - list = elementary.List(self.parent) - - for item, returned_value in self._items_load(): - i = list.item_append(item, None, None, self._list_select_cb, - returned_value) - - if returned_value == self.value: - i.selected_set(True) - - list.scroller_policy_set(elementary.ELM_SCROLLER_POLICY_OFF, - elementary.ELM_SCROLLER_POLICY_ON) - list.go() - list.show() - - self._pop.content_set(list) - self._actions_init() - self._pop.show() - - def _cancel_clicked(self, popup, data): - self._pop.hide() - - def _select_cb(self, obj, data): - item = data - self.value = item - self._callback_call("changed") - self._cancel_clicked(list, item) - - def _list_select_cb(self, list, it, entry_value): - self._select_cb(list, entry_value) - def _internal_value_get(self): return self.entry.entry_get().replace("<br>", "") + + def _internal_value_set(self, val): + if val is None: + val = "" + self.entry.entry_set(val) + self.entry_value = val + self.entry.select_all() Modified: trunk/editje/editje/details_widget_font.py =================================================================== --- trunk/editje/editje/details_widget_font.py 2010-02-11 11:09:18 UTC (rev 46074) +++ trunk/editje/editje/details_widget_font.py 2010-02-11 13:23:36 UTC (rev 46075) @@ -16,13 +16,13 @@ # You should have received a copy of the GNU Lesser General Public # License along with Editje. If not, see # <http://www.gnu.org/licenses/>. -from details_widget_entry_button import WidgetEntryButton +from details_widget_entry_button_list import WidgetEntryButtonList -class WidgetFont(WidgetEntryButton): +class WidgetFont(WidgetEntryButtonList): def __init__(self, parent): - WidgetEntryButton.__init__(self,parent) + WidgetEntryButtonList.__init__(self,parent) self.entry_value = "Sans" self.rect.label_set("Aa") @@ -36,4 +36,4 @@ def _actions_init(self): self._pop.title_set("Fonts") self._pop.action_add("None", self._select_cb, "") - WidgetEntryButton._actions_init(self) + WidgetEntryButtonList._actions_init(self) Modified: trunk/editje/editje/details_widget_signals.py =================================================================== --- trunk/editje/editje/details_widget_signals.py 2010-02-11 11:09:18 UTC (rev 46074) +++ trunk/editje/editje/details_widget_signals.py 2010-02-11 13:23:36 UTC (rev 46075) @@ -16,10 +16,10 @@ # You should have received a copy of the GNU Lesser General Public # License along with Editje. If not, see # <http://www.gnu.org/licenses/>. -from details_widget_entry_button import WidgetEntryButton +from details_widget_entry_button_list import WidgetEntryButtonList -class WidgetSignal(WidgetEntryButton): +class WidgetSignal(WidgetEntryButtonList): def _items_load(self): list = [] @@ -52,4 +52,4 @@ def _actions_init(self): self._pop.title_set("Common Signals") self._pop.action_add("None", self._select_cb, "") - WidgetEntryButton._actions_init(self) + WidgetEntryButtonList._actions_init(self) Modified: trunk/editje/editje/details_widget_source.py =================================================================== --- trunk/editje/editje/details_widget_source.py 2010-02-11 11:09:18 UTC (rev 46074) +++ trunk/editje/editje/details_widget_source.py 2010-02-11 13:23:36 UTC (rev 46075) @@ -16,10 +16,10 @@ # You should have received a copy of the GNU Lesser General Public # License along with Editje. If not, see # <http://www.gnu.org/licenses/>. -from details_widget_entry_button import WidgetEntryButton +from details_widget_entry_button_list import WidgetEntryButtonList -class WidgetSource(WidgetEntryButton): +class WidgetSource(WidgetEntryButtonList): def _items_load(self): list = [] @@ -31,4 +31,4 @@ def _actions_init(self): self._pop.title_set("Parts list") self._pop.action_add("None", self._select_cb, "") - WidgetEntryButton._actions_init(self) + WidgetEntryButtonList._actions_init(self) |
From: Enlightenment S. <no-...@en...> - 2010-02-11 17:35:36
|
Log: Fix multiples floaters Author: tiago Date: 2010-02-11 09:35:29 -0800 (Thu, 11 Feb 2010) New Revision: 46082 Modified: trunk/editje/editje/details_widget_entry_button_list.py Modified: trunk/editje/editje/details_widget_entry_button_list.py =================================================================== --- trunk/editje/editje/details_widget_entry_button_list.py 2010-02-11 16:13:41 UTC (rev 46081) +++ trunk/editje/editje/details_widget_entry_button_list.py 2010-02-11 17:35:29 UTC (rev 46082) @@ -28,6 +28,8 @@ def __init__(self, parent): WidgetEntryButton.__init__(self,parent) + self._pop = None + self._pop_list = None def _items_load(self): list = [] @@ -37,35 +39,38 @@ self._pop.action_add("Cancel", self._cancel_clicked) def _open(self, bt, *args): - self._pop = Floater(self.parent, self.obj) - self._pop.size_min_set(self.pop_min_w, self.pop_min_h) + if not self._pop: + self._pop = Floater(bt, self.obj) + self._pop.size_min_set(self.pop_min_w, self.pop_min_h) + self._actions_init() - list = elementary.List(self.parent) + self._pop_list = elementary.List(self._pop._popup) - for item, returned_value in self._items_load(): - i = list.item_append(item, None, None, self._list_select_cb, - returned_value) + self._pop_list.scroller_policy_set(elementary.ELM_SCROLLER_POLICY_OFF, + elementary.ELM_SCROLLER_POLICY_ON) + self._pop.content_set(self._pop_list) + self._pop_list.show() - if returned_value == self.value: - i.selected_set(True) + self._list_update() - list.scroller_policy_set(elementary.ELM_SCROLLER_POLICY_OFF, - elementary.ELM_SCROLLER_POLICY_ON) - list.go() - list.show() - - self._pop.content_set(list) - self._actions_init() self._pop.show() + def _list_update(self): + self._pop_list.clear() + for label, value in self._items_load(): + it = self._pop_list.item_append(label, data=value) + + if value == self.value: + it.selected_set(True) + self._pop_list.go() + def _cancel_clicked(self, popup, data): self._pop.hide() - def _select_cb(self, obj, data): - item = data - self.value = item + def _select_cb(self, li, id): + self.value = li.selected_item_get().data_get()[0][0] self._callback_call("changed") - self._cancel_clicked(list, item) + self._cancel_clicked(list, li) def _list_select_cb(self, list, it, entry_value): self._select_cb(list, entry_value) |
From: Enlightenment S. <no-...@en...> - 2010-02-12 13:29:24
|
Log: Fix widget list callback Author: tiago Date: 2010-02-12 04:58:49 -0800 (Fri, 12 Feb 2010) New Revision: 46112 Modified: trunk/editje/editje/details_widget_entry_button_list.py Modified: trunk/editje/editje/details_widget_entry_button_list.py =================================================================== --- trunk/editje/editje/details_widget_entry_button_list.py 2010-02-12 10:33:11 UTC (rev 46111) +++ trunk/editje/editje/details_widget_entry_button_list.py 2010-02-12 12:58:49 UTC (rev 46112) @@ -48,6 +48,7 @@ self._pop_list.scroller_policy_set(elementary.ELM_SCROLLER_POLICY_OFF, elementary.ELM_SCROLLER_POLICY_ON) + self._pop_list.callback_selected_add(self._select_cb) self._pop.content_set(self._pop_list) self._pop_list.show() @@ -58,7 +59,7 @@ def _list_update(self): self._pop_list.clear() for label, value in self._items_load(): - it = self._pop_list.item_append(label, data=value) + it = self._pop_list.item_append(label, None, None, None, value) if value == self.value: it.selected_set(True) |
From: Enlightenment S. <no-...@en...> - 2010-02-12 18:31:40
|
Log: Fix fileselector objects parents. By fidencio Author: Fabiano Fidencio <fidencio at profusion.mobi> Author: tiago Date: 2010-02-12 10:31:31 -0800 (Fri, 12 Feb 2010) New Revision: 46117 Modified: trunk/editje/editje/fileselector.py Modified: trunk/editje/editje/fileselector.py =================================================================== --- trunk/editje/editje/fileselector.py 2010-02-12 16:03:08 UTC (rev 46116) +++ trunk/editje/editje/fileselector.py 2010-02-12 18:31:31 UTC (rev 46117) @@ -51,7 +51,7 @@ self.__actions_list = {} def _navigator_init(self): - bx = elementary.Box(self._parent) + bx = elementary.Box(self) bx.size_hint_weight_set(evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND) bx.size_hint_align_set(evas.EVAS_HINT_FILL, @@ -59,11 +59,11 @@ self.pack(bx, 0, 0, 1, 4) bx.show() - self._nav_home = elementary.Button(self._parent) + self._nav_home = elementary.Button(self) self._nav_home.size_hint_weight_set(evas.EVAS_HINT_EXPAND, 0.0) self._nav_home.size_hint_align_set(evas.EVAS_HINT_FILL, 0.0) self._nav_home.label_set("Home") - ic = elementary.Icon(self._parent) + ic = elementary.Icon(self) ic.standard_set("home") ic.scale_set(0, 0) self._nav_home.icon_set(ic) @@ -71,18 +71,18 @@ bx.pack_end(self._nav_home) self._nav_home.show() - sp = elementary.Separator(self._parent) + sp = elementary.Separator(self) sp.size_hint_align_set(evas.EVAS_HINT_FILL, 0.0) sp.size_hint_weight_set(evas.EVAS_HINT_EXPAND, 0.0) sp.horizontal_set(True) bx.pack_end(sp) sp.show() - self._nav_up = elementary.Button(self._parent) + self._nav_up = elementary.Button(self) self._nav_up.size_hint_weight_set(evas.EVAS_HINT_EXPAND, 0.0) self._nav_up.size_hint_align_set(evas.EVAS_HINT_FILL, 0.0) self._nav_up.label_set("Up") - ic = elementary.Icon(self._parent) + ic = elementary.Icon(self) ic.standard_set("arrow_up") ic.scale_set(0, 0) self._nav_up.icon_set(ic) @@ -90,7 +90,7 @@ bx.pack_end(self._nav_up) self._nav_up.show() - self._directories = elementary.List(self._parent) + self._directories = elementary.List(self) self._directories.size_hint_align_set(evas.EVAS_HINT_FILL, evas.EVAS_HINT_FILL) self._directories.size_hint_weight_set(evas.EVAS_HINT_EXPAND, @@ -100,7 +100,7 @@ self._directories.show() def _files_init(self): - bx = elementary.Box(self._parent) + bx = elementary.Box(self) bx.size_hint_weight_set(evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND) bx.size_hint_align_set(evas.EVAS_HINT_FILL, @@ -108,7 +108,7 @@ self.pack(bx, 1, 0, 3, 4) bx.show() - sc = elementary.Scroller(self._parent) + sc = elementary.Scroller(self) sc.content_min_limit(0, 1) sc.policy_set(elementary.ELM_SCROLLER_POLICY_OFF, elementary.ELM_SCROLLER_POLICY_OFF) @@ -118,7 +118,7 @@ bx.pack_end(sc) sc.show() - self._nav_path = elementary.Entry(self._parent) + self._nav_path = elementary.Entry(self) self._nav_path.single_line_set(True) self._nav_path.size_hint_weight_set(evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND) @@ -130,7 +130,7 @@ sc.content_set(self._nav_path) self._nav_path.show() - self._files = elementary.List(self._parent) + self._files = elementary.List(self) self._files.size_hint_align_set(evas.EVAS_HINT_FILL, evas.EVAS_HINT_FILL) self._files.size_hint_weight_set(evas.EVAS_HINT_EXPAND, @@ -150,7 +150,7 @@ multi = property(_multi_get, _multi_set) def _actions_init(self): - sp = elementary.Separator(self._parent) + sp = elementary.Separator(self) sp.size_hint_align_set(evas.EVAS_HINT_FILL, 0.5) sp.size_hint_weight_set(evas.EVAS_HINT_EXPAND, 0.0) sp.size_hint_min_set(600, 1) @@ -158,7 +158,7 @@ self.pack(sp, 0, 4, 4, 1) sp.show() - self._actions = elementary.Box(self._parent) + self._actions = elementary.Box(self) self._actions.horizontal_set(True) self._actions.size_hint_weight_set(evas.EVAS_HINT_EXPAND, 0.0) self._actions.size_hint_align_set(1.0, evas.EVAS_HINT_FILL) @@ -166,7 +166,7 @@ self._actions.show() def _filter_init(self): - bx = elementary.Box(self._parent) + bx = elementary.Box(self) bx.horizontal_set(True) bx.size_hint_weight_set(evas.EVAS_HINT_EXPAND, 0.0) bx.size_hint_align_set(evas.EVAS_HINT_FILL, @@ -174,7 +174,7 @@ self.pack(bx, 0, 5, 2, 1) bx.show() - self._hidden = elementary.Check(self._parent) + self._hidden = elementary.Check(self) self._hidden.size_hint_align_set(evas.EVAS_HINT_FILL, 0.5) self._hidden.size_hint_weight_set(evas.EVAS_HINT_EXPAND, 0.0) self._hidden.state_set(False) @@ -183,7 +183,7 @@ bx.pack_end(self._hidden) self._hidden.show() - self._filter = elementary.Check(self._parent) + self._filter = elementary.Check(self) self._filter.size_hint_align_set(evas.EVAS_HINT_FILL, 0.5) self._filter.size_hint_weight_set(evas.EVAS_HINT_EXPAND, 0.0) self._filter.label_set("Filter extensions") @@ -216,13 +216,13 @@ if hidden or not file.startswith("."): full = os.path.join(path, file) if os.path.isdir(full): - ic = elementary.Icon(self._parent) + ic = elementary.Icon(self) ic.standard_set("folder") ic.scale_set(0, 0) self._directories.item_append(file, ic, None, None, full) elif os.path.isfile(full): if not filter or self._filter_call(full): - ic = elementary.Icon(self._parent) + ic = elementary.Icon(self) ic.standard_set("file") ic.scale_set(0, 0) item = self._files.item_append(file, ic, None, None, @@ -304,7 +304,7 @@ filter = property(fset=_filter_set) def action_add(self, label, func_cb, data=None, icon=None): - btn = elementary.Button(self._parent) + btn = elementary.Button(self) btn.size_hint_weight_set(evas.EVAS_HINT_EXPAND, 0.0) btn.size_hint_align_set(evas.EVAS_HINT_FILL, 0.0) btn.label_set(label) @@ -314,7 +314,7 @@ btn.data["clicked"] = data if icon: - ico = elementary.Icon(self._parent) + ico = elementary.Icon(self) ico.file_set(self.__theme_file, "editje/icon/" + icon) btn.icon_set(ico) ico.show() |
From: Enlightenment S. <no-...@en...> - 2010-02-12 18:31:49
|
Log: New Image Selector. By fidencio Author: Fabiano Fidencio <fidencio at profusion.mobi> Author: tiago Date: 2010-02-12 10:31:34 -0800 (Fri, 12 Feb 2010) New Revision: 46118 Added: trunk/editje/editje/filewizard.py Modified: trunk/editje/editje/Makefile.am trunk/editje/editje/details_state.py trunk/editje/editje/editable.py trunk/editje/editje/editje.py trunk/editje/editje/popups.py Modified: trunk/editje/editje/Makefile.am =================================================================== --- trunk/editje/editje/Makefile.am 2010-02-12 18:31:31 UTC (rev 46117) +++ trunk/editje/editje/Makefile.am 2010-02-12 18:31:34 UTC (rev 46118) @@ -40,6 +40,7 @@ error_notify.py \ event_manager.py \ fileselector.py \ +filewizard.py \ floater.py \ groupselector.py \ __init__.py \ Modified: trunk/editje/editje/details_state.py =================================================================== --- trunk/editje/editje/details_state.py 2010-02-12 18:31:31 UTC (rev 46117) +++ trunk/editje/editje/details_state.py 2010-02-12 18:31:34 UTC (rev 46118) @@ -30,9 +30,8 @@ from details_widget_font import WidgetFont from floater import Floater from prop import Property, PropertyTable -import popups +from filewizard import ImageSelectionWizard - class StatesPopUp(Floater): min_w = 200 min_h = 300 @@ -77,15 +76,24 @@ class PartStateDetails(EditjeDetails): + state_pop_min_w = 200 state_pop_min_h = 300 - def __init__(self, parent, anim=False): + def __init__(self, parent, anim=False, img_new_img_cb=None, + img_list_get_cb=None, img_id_get_cb=None, + workfile_name_get_cb=None): + if anim: self._anim_init(parent) else: self._edit_init(parent) + self._img_new_img_cb = img_new_img_cb + self._img_list_get_cb = img_list_get_cb + self._img_id_get_cb = img_id_get_cb + self._workfile_name_get_cb = workfile_name_get_cb + self._animmode = anim self._update_schedule = None self.on_del_add(self._del_handler) @@ -580,8 +588,12 @@ self.group_add("external") def _image_btn_clicked(self, *args): - popups.ImagePopUp(self._parent, - select_cb=self._image_selected_cb).show() + ImageSelectionWizard(self._parent, + selected_cb=self._image_selected_cb, + file_add_cb=self._img_new_img_cb, + file_list_cb=self._img_list_get_cb, + img_id_get_cb=self._img_id_get_cb, + workfile_get_cb=self._workfile_name_get_cb).show() def _image_selected_cb(self, image): self["image"]["normal"].value = image Modified: trunk/editje/editje/editable.py =================================================================== --- trunk/editje/editje/editable.py 2010-02-12 18:31:31 UTC (rev 46117) +++ trunk/editje/editje/editable.py 2010-02-12 18:31:34 UTC (rev 46118) @@ -16,6 +16,8 @@ # License along with Editje. If not, see # <http://www.gnu.org/licenses/>. +import os + import edje from edje.edit import EdjeEdit @@ -231,6 +233,17 @@ group_size = property(_size_get, _size_set) + #Images + def images_get(self): + return self.edje.images + + def image_id_get(self, name): + return self.edje.image_id_get(name) + + def image_add(self, img): + if os.path.basename(img) not in self.images_get(): + self.edje.image_add(img) + # Modifications def _modification_init(self): self._modification_clear_cb(self, None) Modified: trunk/editje/editje/editje.py =================================================================== --- trunk/editje/editje/editje.py 2010-02-12 18:31:31 UTC (rev 46117) +++ trunk/editje/editje/editje.py 2010-02-12 18:31:34 UTC (rev 46118) @@ -28,7 +28,6 @@ from details_group import GroupDetails from details_part import PartDetails from details_state import PartStateDetails -from popups import ImagePopUp, FontPopUp from desktop import Desktop from collapsable import CollapsablesBox from parts_list import PartsList @@ -37,6 +36,7 @@ from animations import AnimationDetails from signals import SignalsList, SignalDetails from groupselector import GroupSelectionWizard +from filewizard import ImageSelectionWizard def debug_cb(obj, emission, source): print "%s: %s %s" % (obj, emission, source) @@ -47,7 +47,6 @@ self.theme = sysconfig.theme_file_get(theme) self.group_details = None - self.editable = None self._mode = None elementary.theme_extension_add(self.theme) @@ -148,6 +147,18 @@ def _group_wizard_selection_get_cb(self): return self.group + def _image_wizard_new_image_cb(self, img): + self.e.image_add(img) + + def _image_wizard_image_list_get_cb(self): + return self.e.images_get() + + def _image_wizard_image_id_get_cb(self, name): + return self.e.image_id_get(name) + + def _workfile_name_get_cb(self): + return self.e.workfile + ########### # DESKTOP ########### @@ -253,10 +264,11 @@ print "Options ...." def _image_list_cb(self, obj, emission, source): - ImagePopUp(self).open() + ImageSelectionWizard(self).open() def _font_list_cb(self, obj, emission, source): - FontPopUp(self).show() + #TODO: FontSelectionWizard(self).open() + return def _play_cb(self, obj, emission, source): # part = self.e.part.name @@ -443,7 +455,11 @@ box.pack_end(self.part_details) self.part_details.show() - self.part_state_details = PartStateDetails(self) + self.part_state_details = PartStateDetails(self, \ + img_new_img_cb=self._image_wizard_new_image_cb, \ + img_list_get_cb=self._image_wizard_image_list_get_cb, \ + img_id_get_cb=self._image_wizard_image_id_get_cb, \ + workfile_name_get_cb=self._workfile_name_get_cb) box.pack_end(self.part_state_details) self.part_state_details.show() Modified: trunk/editje/editje/popups.py =================================================================== --- trunk/editje/editje/popups.py 2010-02-12 18:31:31 UTC (rev 46117) +++ trunk/editje/editje/popups.py 2010-02-12 18:31:34 UTC (rev 46118) @@ -62,295 +62,6 @@ self._parent.block(False) self.delete() -class ImagePopUp(PopUp): - def __init__(self, parent, group=None, select_cb=None): - PopUp.__init__(self, parent, group or "editje/image_select") - - self.select_cb = select_cb - self.fs = None - self._preview_image_resize_timer = None - self._actions_list = {} - - self.preview_image = self.layout_edje.evas.FilledImage() - self.content_set("image.preview", self.preview_image) - self.layout_edje.signal_emit("editje,preview,hide", "editje") - - area = self.layout_edje.part_object_get("image.preview.area") - area.on_resize_add(self._resize_preview_image) - - self.label_set("header.title", "Select an image") - - self._set_controls() - self._set_image_list() - - def _calculate_aspect_from_ratio(self, old_a): - w, h = self.layout_edje.part_geometry_get("image.preview.area")[2:] - - if old_a == 0.0: - return (w, h) - - a = w / float(h) - - if (old_a > a and w > 0) or h <= 0: - h = w / old_a - else: - w = h * old_a - - return (w, h) - - def _calculate_aspect(self, old_w, old_h): - ia = old_w / float(old_h) - - return self._calculate_aspect_from_ratio(ia) - - def _action_add(self, label, func_cb, data=None): - btn = Button(self) - btn.label_set(label) - btn.data["clicked"] = (func_cb, data) - btn.callback_clicked_add(self._action_btn_clicked) - btn.size_hint_min_set(100, 30) - btn.size_hint_max_set(100, 30) - self._actions_list[label] = btn - btn.show() - - self.box.pack_end(btn) - - def _actions_hide(self): - self._actions_list["Select"].hide() - self._actions_list["Add new"].hide() - self._actions_list["Close"].hide() - - def _actions_show(self): - self._actions_list["Select"].show() - self._actions_list["Add new"].show() - self._actions_list["Close"].show() - - def _action_btn_clicked(self, bt, *args, **kwargs): - func, udata = bt.data["clicked"] - func(udata) - - def _set_controls(self): - self.box = Box(self) - self.box.size_hint_weight_set(1.0, 1.0) - self.box.size_hint_align_set(-1.0, -1.0) - self.box.horizontal_set(False) - self.box.show() - self.content_set("actions", self.box) - - if self.select_cb is not None: - self._action_add("Select", self._select_cb) - - self._action_add("Add new", self._add_cb) - self._action_add("Close", self._close_cb) - - def _set_image_list(self): - self.list = List(self) - self.list.size_hint_weight_set(1.0, 1.0) - self.list.size_hint_align_set(-1.0, -1.0) - self.list.show() - self.content_set("images.list", self.list) - self._image_list_load() - - def _image_list_load(self): - for i in self._parent.editable.images: - self.list.item_append(i, None, None, self._select_image_cb, i) - self.list.go() - - def _fix_image_size(self, w, h): - self.preview_image.load_size_set(w, h) - self.preview_image.size_hint_max_set(w, h) - - def _preview_image_resize_apply(self): - self._preview_image_resize_timer = None - old_w, old_h = self.preview_image.image_size_get() - if old_w == 0 or old_h == 0: - return False - w, h = self._calculate_aspect(old_w, old_h) - self._fix_image_size(w, h) - return False - - def _resize_preview_image(self, area): - if self._preview_image_resize_timer: - self._preview_image_resize_timer.delete() - t = ecore.animator_add(self._preview_image_resize_apply) - self._preview_image_resize_timer = t - - def _set_new_image(self, filename, key=None): - try: - self.preview_image.file_set(filename, key) - old_w, old_h = self.preview_image.image_size_get() - w, h = self._calculate_aspect(old_w, old_h) - self._fix_image_size(w, h) - self.layout_edje.signal_emit("editje,preview,show", "editje") - except Exception, e: - self.layout_edje.signal_emit("editje,preview,hide", "editje") - print "Error setting preview image: ", e - - def _select_image_cb(self, obj, it, i, *args, **kwargs): - self.image = i - id = self._parent.editable.image_id_get(i) - filename = self._parent.editable.file_get()[0] - key = "images/" + str(id) - - self._set_new_image(filename, key) - - def _select_cb(self, data): - if self.select_cb is None: - return - self.select_cb(self.image) - self.close() - - def _add_cb(self, data): - self._actions_hide() - if self.fs is None: - self.fs = Fileselector(self) - self.fs.size_hint_weight_set(1.0, 1.0) - self.fs.size_hint_align_set(-1.0, -1.0) - self.fs.callback_selected_add(self._fs_selected_cb) - self.fs.callback_done_add(self._fs_done_cb) - self.fs.path_set(os.getenv("HOME")) - self.list.hide() - self.fs.show() - self.content_set("images.list", self.fs) - - def _close_cb(self, data): - self.close() - - def _fs_selected_cb(self, obj, selected, *args, **kwargs): - self._set_new_image(selected) - - def _fs_done_cb(self, obj, selected): - self._actions_show() - if selected is not None: - self._parent.editable.image_add(selected) - self.list.clear() - self._image_list_load() - self.fs.hide() - self.list.show() - self.content_set("images.list", self.list) - - def close(self): - if self._preview_image_resize_timer: - self._preview_image_resize_timer.delete() - self._preview_image_resize_timer = None - PopUp.close(self) - - -class FontPopUp(PopUp): - def __init__(self, parent, group=None, select_cb=None): - PopUp.__init__(self, parent, group or "editje/font_select") - - self.select_cb = select_cb - self.fs = None - - scr = Scroller(self) - scr.show() - - frame = Layout(self) - frame.file_set(self._parent.theme, "subgroup") - frame.show() - self.content_set("font.preview", frame) - frame.content_set("content", scr) - frame.edje_get().part_text_set("title.label", "Font preview") - - self.preview_font = self.layout_edje.evas.Text() - self.preview_font.text_set("AaBbCc 12345") - self.preview_font.color = (0, 0, 0, 255) - self.preview_font.font_set("Sans", 12) - self.preview_font.size_hint_weight_set(1.0, 1.0) - self.preview_font.size_hint_align_set(-1.0, -1.0) - self.preview_font.show() - x, y, w, h = frame.edje_get().part_geometry_get("content") - scr.content_set(self.preview_font) - - self.label_set("header.title", "Select a font") - - self._set_controls() - self._set_font_list() - - def _action_add(self, label, func_cb, data=None): - btn = Button(self) - btn.label_set(label) - btn.data["clicked"] = (func_cb, data) - btn.callback_clicked_add(self._action_btn_clicked) - btn.size_hint_min_set(100, 30) - btn.size_hint_max_set(100, 30) - btn.show() - - self.box.pack_end(btn) - - def _action_btn_clicked(self, bt, *args, **kwargs): - func, udata = bt.data["clicked"] - func(udata) - - def _set_controls(self): - self.box = Box(self) - self.box.size_hint_weight_set(1.0, 1.0) - self.box.size_hint_align_set(-1.0, -1.0) - self.box.horizontal_set(False) - self.box.show() - self.content_set("actions", self.box) - - if self.select_cb is not None: - self._action_add("Select", self._select_cb) - - self._action_add("Add new", self._add_cb) - self._action_add("Close", self._close_cb) - - def _set_font_list(self): - self.list = List(self) - self.list.size_hint_weight_set(1.0, 1.0) - self.list.size_hint_align_set(-1.0, -1.0) - self.list.show() - self.content_set("fonts.list", self.list) - self._font_list_load() - - def _font_list_load(self): - for i in self._parent.editable.fonts: - self.list.item_append(i, None, None, self._select_font_cb, i) - self.list.go() - - def _select_font_cb(self, obj, it, i, *args, **kwargs): - self.font = i - self.preview_font.font_set(self.font, 12) - - def _select_cb(self, data): - if self.func is None: - return - self.func(self.font) - self.close() - - def _add_cb(self, data): - if self.fs is None: - self.fs = Fileselector(self) - self.fs.size_hint_weight_set(1.0, 1.0) - self.fs.size_hint_align_set(-1.0, -1.0) - self.fs.callback_selected_add(self._fs_selected_cb) - self.fs.callback_done_add(self._fs_done_cb) - self.fs.path_set(os.getenv("HOME")) - self.list.hide() - self.fs.show() - self.content_set("fonts.list", self.fs) - - def _close_cb(self, data): - self.close() - - def _fs_selected_cb(self, fs, selected, data): - try: - self.preview_font.font_set(selected, 12) - except Exception, e: - pass - - def _fs_done_cb(self, fs, selected, *args, **kwargs): - if selected is not None: - self._parent.editable.font_add(selected) - self.list.clear() - self._font_list_load() - self.fs.hide() - self.list.show() - self.content_set("fonts.list", self.list) - - class ConfirmPopUp(PopUp): def __init__(self, parent, group=None, select_cb=None): PopUp.__init__(self, parent, group or "editje/confirm") |
From: Enlightenment S. <no-...@en...> - 2010-02-12 19:34:29
|
Log: Fix multiples popups Author: tiago Date: 2010-02-12 11:34:21 -0800 (Fri, 12 Feb 2010) New Revision: 46120 Modified: trunk/editje/editje/details_widget_partlist.py Modified: trunk/editje/editje/details_widget_partlist.py =================================================================== --- trunk/editje/editje/details_widget_partlist.py 2010-02-12 19:23:19 UTC (rev 46119) +++ trunk/editje/editje/details_widget_partlist.py 2010-02-12 19:34:21 UTC (rev 46120) @@ -30,6 +30,7 @@ WidgetButton.__init__(self, parent) self._value = None self.clicked = self._open + self._pop = None def show(self): for o in self.objs: @@ -64,6 +65,8 @@ self._pop.action_add("Cancel", self._cancel_clicked) def _open(self, bt, *args): + if self._pop: + self._pop.hide() self._pop = Floater(self.parent, self.obj) self._pop.size_min_set(self.pop_min_w, self.pop_min_h) list = elementary.List(self.parent) |
From: Enlightenment S. <no-...@en...> - 2010-02-17 17:44:30
|
Log: Floater as elm.Object Author: tiago Date: 2010-02-17 09:44:23 -0800 (Wed, 17 Feb 2010) New Revision: 46250 Modified: trunk/editje/editje/details_widget_entry_button_list.py trunk/editje/editje/details_widget_states.py trunk/editje/editje/floater.py Modified: trunk/editje/editje/details_widget_entry_button_list.py =================================================================== --- trunk/editje/editje/details_widget_entry_button_list.py 2010-02-17 17:24:27 UTC (rev 46249) +++ trunk/editje/editje/details_widget_entry_button_list.py 2010-02-17 17:44:23 UTC (rev 46250) @@ -44,7 +44,7 @@ self._pop.size_min_set(self.pop_min_w, self.pop_min_h) self._actions_init() - self._pop_list = elementary.List(self._pop._popup) + self._pop_list = elementary.List(self._pop) self._pop_list.scroller_policy_set(elementary.ELM_SCROLLER_POLICY_OFF, elementary.ELM_SCROLLER_POLICY_ON) Modified: trunk/editje/editje/details_widget_states.py =================================================================== --- trunk/editje/editje/details_widget_states.py 2010-02-17 17:24:27 UTC (rev 46249) +++ trunk/editje/editje/details_widget_states.py 2010-02-17 17:44:23 UTC (rev 46250) @@ -69,14 +69,14 @@ old = self.parent.state.name - box = elementary.Box(self._pop._popup) + box = elementary.Box(self._pop) box.horizontal_set(True) box.show() it = self.states.item_append(s, None, box, self._states_select_cb, s) - ico1 = elementary.Icon(self._pop._popup) - ico2 = elementary.Icon(self._pop._popup) + ico1 = elementary.Icon(self._pop) + ico2 = elementary.Icon(self._pop) if s == self.editable.part.state.name: ico1.file_set(self.theme_file, "editje/icon/part_disabled") @@ -92,14 +92,14 @@ ico1.show() ico2.show() - btn1 = elementary.Button(self._pop._popup) + btn1 = elementary.Button(self._pop) btn1.icon_set(ico1) btn1.style_set("editje.details") btn1.label_set("") btn1.callback_clicked_add(self._reset_state_to_cb, None, (old, s)) btn1.show() - btn2 = elementary.Button(self._pop._popup) + btn2 = elementary.Button(self._pop) btn2.icon_set(ico2) btn2.style_set("editje.details") btn2.label_set("") Modified: trunk/editje/editje/floater.py =================================================================== --- trunk/editje/editje/floater.py 2010-02-17 17:24:27 UTC (rev 46249) +++ trunk/editje/editje/floater.py 2010-02-17 17:44:23 UTC (rev 46250) @@ -23,7 +23,7 @@ import sysconfig -class Floater(object): +class Floater(Layout): default_padding_x = 20 default_padding_y = 20 default_align_x = 0.5 @@ -33,6 +33,12 @@ if not rel_to_obj: raise TypeError("You must pass an object whose geometry the Floater" " will use to move itself in the canvas.") + Layout.__init__(self, parent) + self.on_changed_size_hints_add(self._move_and_resize) + + theme_file = sysconfig.theme_file_get("default") + self.file_set(theme_file, "editje/floater") + self._parent = parent self._rel_to_obj = rel_to_obj @@ -44,12 +50,6 @@ self._action_btns = [] self._min_size = [0, 0] - theme_file = sysconfig.theme_file_get("default") - - self._popup = Layout(parent) - self._popup.on_changed_size_hints_add(self._move_and_resize) - self._popup.file_set(theme_file, "editje/floater") - def padding_set(self, pad_x, pad_y): self._padding_x = pad_x self._padding_y = pad_y @@ -95,15 +95,15 @@ elif oy + oh + py>= ch: oy = ch - oh - py - self._popup.resize(ow, oh) - self._popup.move(ox, oy) + self.resize(ow, oh) + self.move(ox, oy) def title_set(self, title): self.title = title - self._popup.edje_get().part_text_set("title.text", title) + self.edje_get().part_text_set("title.text", title) def size_hint_min_get(self): - w, h = self._popup.size_hint_min_get() + w, h = Layout.size_hint_min_get(self) bw = 0 for b in self._action_btns: @@ -121,7 +121,7 @@ def content_set(self, content): content.size_hint_weight_set(1.0, 1.0) content.size_hint_align_set(-1.0, -1.0) - self._popup.content_set("content", content) + Layout.content_set(self, "content", content) def action_add(self, label, func_cb, data = None): btn = Button(self._parent) @@ -132,15 +132,12 @@ btn.size_hint_align_set(-1.0, -1.0) btn.data["clicked"] = (func_cb, data) btn.show() - self._popup.edje_get().part_box_append("actions", btn) + self.edje_get().part_box_append("actions", btn) def show(self): - self._move_and_resize(self._popup) - self._popup.show() + self._move_and_resize(self) + Layout.show(self) - def hide(self): - self._popup.hide() - def open(self): self._parent.block(True) self.show() @@ -148,13 +145,13 @@ def close(self): self.hide() self._parent.block(False) - self._popup.delete() + self.delete() def move(self, *args): - self._popup.move(*args) + Layout.move(self, *args) def resize(self, *args): - self._popup.resize(*args) + Layout.resize(self, *args) def _action_btn_clicked(self, obj, *args, **kwargs): func, udata = obj.data["clicked"] |
From: Enlightenment S. <no-...@en...> - 2010-02-17 17:44:33
|
Log: In states widget, only load the floater when clicked Author: tiago Date: 2010-02-17 09:44:26 -0800 (Wed, 17 Feb 2010) New Revision: 46251 Modified: trunk/editje/editje/details_state.py trunk/editje/editje/details_widget_states.py Modified: trunk/editje/editje/details_state.py =================================================================== --- trunk/editje/editje/details_state.py 2010-02-17 17:44:23 UTC (rev 46250) +++ trunk/editje/editje/details_state.py 2010-02-17 17:44:26 UTC (rev 46251) @@ -98,7 +98,7 @@ self._header_table = PropertyTable(parent) prop = Property(parent, "state") - wid = WidgetStates(self, parent, self.e) + wid = WidgetStates(self, self.e) prop.widget_add("s", wid) self._header_table.property_add(prop) wid.changed = self._state_entry_changed_cb Modified: trunk/editje/editje/details_widget_states.py =================================================================== --- trunk/editje/editje/details_widget_states.py 2010-02-17 17:44:23 UTC (rev 46250) +++ trunk/editje/editje/details_widget_states.py 2010-02-17 17:44:26 UTC (rev 46251) @@ -21,7 +21,7 @@ from details_widget_entry_button import WidgetEntryButton from floater import Floater -from elementary import Notify, Label, Box, ELM_NOTIFY_ORIENT_BOTTOM +from elementary import Label, Box import sysconfig import re @@ -31,37 +31,22 @@ pop_min_w = 200 pop_min_h = 300 - def __init__(self, parent, mainwindow, editable): + def __init__(self, parent, editable): WidgetEntryButton.__init__(self, parent) - self.mainwindow = mainwindow self.editable = editable self._selstate = None self.theme_file = sysconfig.theme_file_get("default") + ico = elementary.Icon(self.rect) ico.file_set(self.theme_file, "editje/icon/options") ico.show() self.rect.label_set("") self.rect.icon_set(ico) - self._pop = Floater(self.rect, self.obj) - self._pop.size_min_set(self.pop_min_w, self.pop_min_h) - self._pop.title_set("States selection") - self.states = elementary.List(self._pop._popup) - self.states.size_hint_weight_set(1.0, 1.0) - self.states.size_hint_align_set(-1.0, -1.0) - self._pop.content_set(self.states) - self.states.show() - self.editable.part.callback_add("states.changed", self._list_populate) - self._actions_init() + self._pop = None - - def _actions_init(self): - self._pop.action_add("New", self._state_add_new_cb) - self._pop.action_add("Cancel", self._cancel_clicked) - def _open(self, bt, *args): - self._list_populate() - self.show() + self.open() def _list_populate(self, *args): self.states.clear() @@ -140,8 +125,8 @@ self.parent.part.state_copy(self.parent.state.name, nst) self.editable.part.event_emit("state.added", st) self.editable.part.state.name = st + self.close() - def _remove_state_cb(self, obj, event, st): self.editable.part.state_del(st[1]) self.editable.part.state.name = st[0] @@ -153,27 +138,43 @@ self.editable.part.state.event_emit("state.changed", self.parent.state.name) def _cancel_clicked(self, popup, data): - self.hide() + self.close() def _states_select_cb(self, states, it, state): if self._selstate != state: self._selstate = state self.editable.part.state.name = state - self.hide() + self.close() - def hide(self): - self._pop.hide() + def selected_get(self): + return self._selstate - def show(self): + def open(self): + if not self._pop: + self._pop = Floater(self.rect, self.obj) + self._pop.size_min_set(self.pop_min_w, self.pop_min_h) + self._pop.title_set("States selection") + + self.states = elementary.List(self._pop) + self.states.size_hint_weight_set(1.0, 1.0) + self.states.size_hint_align_set(-1.0, -1.0) + self._pop.content_set(self.states) + self.states.show() + + self._pop.action_add("New", self._state_add_new_cb) + self._pop.action_add("Cancel", self._cancel_clicked) + + self.editable.part.callback_add("states.changed", self._list_populate) + + self._list_populate() self._pop.show() - def selected_get(self): - return self._selstate - def close(self): - self.editable.part.callback_del("states.changed", - self._list_populate) - self._pop.close() + if not self._pop: + return + self.editable.part.callback_del("states.changed", self._list_populate) + self._pop.hide() + self._pop = None def _entry_changed_cb(self, obj, *args, **kwargs): WidgetEntryButton._entry_changed_cb(self, obj, *args, **kwargs) |