projects
/
hooke.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add a `Delete` button to the GUI NavBar, and cleanup deletion callbacks.
[hooke.git]
/
hooke
/
ui
/
gui
/
panel
/
playlist.py
diff --git
a/hooke/ui/gui/panel/playlist.py
b/hooke/ui/gui/panel/playlist.py
index e8c8f844e7c51f4d104efb1e62ff083e20e11a94..cf069e804fd5f9e701b64a1b5785e620cfc21518 100644
(file)
--- a/
hooke/ui/gui/panel/playlist.py
+++ b/
hooke/ui/gui/panel/playlist.py
@@
-196,46
+196,39
@@
class Tree (wx.TreeCtrl):
del(self._hit_id)
name = self._name_for_id[_id]
if self._is_curve(name):
del(self._hit_id)
name = self._name_for_id[_id]
if self._is_curve(name):
- self.delete_curve(playlist_name=name[0], name=name[1])
+ self.
_
delete_curve(playlist_name=name[0], name=name[1])
else:
else:
- self.delete_playlist(name)
+ self.
_
delete_playlist(name)
- def delete_playlist(self, name):
+ def
_
delete_playlist(self, name):
"""Delete a :class:`hooke.playlist.Playlist` by name.
"""Delete a :class:`hooke.playlist.Playlist` by name.
- Called by the :meth:`_on_delete` handler.
-
- Removes the playlist and its curves from the tree, then calls
- :meth:`_delete_playlist`.
+ Called by the :meth:`_on_delete` handler. Calls the
+ approptiate interface callback.
"""
_id = self._id_for_name[name]
"""
_id = self._id_for_name[name]
- self.Delete(_id)
playlist = self._playlists[name]
playlist = self._playlists[name]
- self._delete_playlist(playlist)
in_callback(self, playlist)
in_callback(self, playlist)
- def
_
delete_playlist(self, playlist):
- """
Adjust name/id caches for the playlist and its curves
.
+ def delete_playlist(self, playlist):
+ """
Respond to playlist deletion
.
Called on *every* playlist deletion.
"""
self._playlists.pop(playlist.name)
_id = self._id_for_name.pop(playlist.name)
Called on *every* playlist deletion.
"""
self._playlists.pop(playlist.name)
_id = self._id_for_name.pop(playlist.name)
+ self.Delete(_id)
del(self._name_for_id[_id])
for curve in playlist:
self._delete_curve(playlist, curve)
del(self._name_for_id[_id])
for curve in playlist:
self._delete_curve(playlist, curve)
- in_callback(self, playlist)
- def delete_curve(self, playlist_name, name):
+ def
_
delete_curve(self, playlist_name, name):
"""Delete a :class:`hooke.curve.Curve` by name.
"""Delete a :class:`hooke.curve.Curve` by name.
- Called by the :meth:`_on_delete` handler.
-
- Removes the curve from the tree, then calls
- :meth:`_delete_curve`.
+ Called by the :meth:`_on_delete` handler. Calls the
+ approptiate interface callback.
"""
_id = self._id_for_name[(playlist_name, name)]
"""
_id = self._id_for_name[(playlist_name, name)]
- self.Delete(_id)
playlist = self._playlists[playlist_name]
curve = None
for i,c in enumerate(playlist):
playlist = self._playlists[playlist_name]
curve = None
for i,c in enumerate(playlist):
@@
-244,17
+237,16
@@
class Tree (wx.TreeCtrl):
break
if curve is None:
raise ValueError(name)
break
if curve is None:
raise ValueError(name)
- self._delete_curve(playlist=playlist, curve=curve)
in_callback(self, playlist, curve)
in_callback(self, playlist, curve)
- def
_delete_curve(self, playlist, curv
e):
- """
Adjust name/id cache
s.
+ def
delete_curve(self, playlist_name, nam
e):
+ """
Respond to curve deletion
s.
- Called on
_every_
curve deletion.
+ Called on
*every*
curve deletion.
"""
"""
- _id = self._id_for_name.pop((playlist.name, curve.name))
+ _id = self._id_for_name.pop((playlist_name, name))
+ self.Delete(_id)
del(self._name_for_id[_id])
del(self._name_for_id[_id])
- in_callback(self, playlist=playlist, curve=curve)
# Get selection
# Get selection
@@
-334,15
+326,11
@@
class Tree (wx.TreeCtrl):
"""Absorb changed `.index()`, etc.
"""
self._playlists[playlist.name] = playlist
"""Absorb changed `.index()`, etc.
"""
self._playlists[playlist.name] = playlist
- cnames =
[]
+ cnames =
set()
for curve in playlist:
if (playlist.name, curve.name) not in self._id_for_name:
self._add_curve(playlist.name, curve)
for curve in playlist:
if (playlist.name, curve.name) not in self._id_for_name:
self._add_curve(playlist.name, curve)
- cnames.append(curve.name)
- dc = self._callbacks['delete_curve']
- _dc = self._callbacks['_delete_curve']
- self._callbacks['delete_curve'] = None
- self._callbacks['_delete_curve'] = None
+ cnames.add(curve.name)
for name in self._id_for_name.keys():
if not self._is_curve(name):
continue
for name in self._id_for_name.keys():
if not self._is_curve(name):
continue
@@
-350,9
+338,7
@@
class Tree (wx.TreeCtrl):
if pname != playlist.name:
continue
if cname not in cnames:
if pname != playlist.name:
continue
if cname not in cnames:
- self.delete_curve(playlist.name, cname)
- self._callbacks['delete_curve'] = dc
- self._callbacks['_delete_curve'] = _dc
+ self.delete_curve(playlist_name=pname, name=cname)
def is_playlist_loaded(self, playlist):
"""Return `True` if `playlist` is loaded, `False` otherwise.
def is_playlist_loaded(self, playlist):
"""Return `True` if `playlist` is loaded, `False` otherwise.