quick frontend (widgets): a deletion with onDelete can now be cancelled if onDelete return False
This commit is contained in:
parent
c9c15849d7
commit
5347f89dd4
1 changed files with 13 additions and 5 deletions
|
|
@ -253,9 +253,14 @@ class QuickWidgetsManager(object):
|
|||
def deleteWidget(self, widget_to_delete):
|
||||
"""Delete a widget
|
||||
|
||||
this method must be called by frontends when a widget is deleted
|
||||
widget's onDelete method will be called before deletion
|
||||
"""
|
||||
widget_to_delete.onDelete()
|
||||
if widget_to_delete.onDelete() == False:
|
||||
return
|
||||
|
||||
if self.host.selected_widget == widget_to_delete:
|
||||
self.host.selected_widget = None
|
||||
|
||||
for widget_map in self._widgets.itervalues():
|
||||
to_delete = set()
|
||||
|
|
@ -335,8 +340,11 @@ class QuickWidget(object):
|
|||
return unicode(target) # by defaut, there is one hash for one target
|
||||
|
||||
def onDelete(self):
|
||||
"""Called when a widget is deleted"""
|
||||
log.debug(u"deleting widget {}".format(self)) # Must be implemented by frontends
|
||||
if self.host.selected_widget == self:
|
||||
self.host.selected_widget = None
|
||||
"""Called when a widget is being deleted
|
||||
|
||||
@return (boot, None): False to cancel deletion
|
||||
all other value continue deletion
|
||||
"""
|
||||
log.debug(u"widget {} deleted".format(self))
|
||||
return True
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue