Use a Menu instead of CtxPopup for torrent actions, add queue actions.
This commit is contained in:
parent
500f3bc529
commit
9264a23cd7
|
@ -32,7 +32,7 @@ try:
|
||||||
Box, Label, Button, ELM_GENLIST_ITEM_FIELD_TEXT, \
|
Box, Label, Button, ELM_GENLIST_ITEM_FIELD_TEXT, \
|
||||||
ELM_GENLIST_ITEM_FIELD_CONTENT, InnerWindow, Ctxpopup, Frame, \
|
ELM_GENLIST_ITEM_FIELD_CONTENT, InnerWindow, Ctxpopup, Frame, \
|
||||||
Fileselector, Entry, Panel, ELM_PANEL_ORIENT_BOTTOM, \
|
Fileselector, Entry, Panel, ELM_PANEL_ORIENT_BOTTOM, \
|
||||||
ELM_OBJECT_SELECT_MODE_NONE, Table, Separator
|
ELM_OBJECT_SELECT_MODE_NONE, Table, Separator, Menu
|
||||||
except ImportError:
|
except ImportError:
|
||||||
from efl.evas import EVAS_ASPECT_CONTROL_VERTICAL, Rectangle
|
from efl.evas import EVAS_ASPECT_CONTROL_VERTICAL, Rectangle
|
||||||
from efl.ecore import Timer
|
from efl.ecore import Timer
|
||||||
|
@ -53,6 +53,7 @@ except ImportError:
|
||||||
from efl.elementary.panel import Panel, ELM_PANEL_ORIENT_BOTTOM
|
from efl.elementary.panel import Panel, ELM_PANEL_ORIENT_BOTTOM
|
||||||
from efl.elementary.table import Table
|
from efl.elementary.table import Table
|
||||||
from efl.elementary.separator import Separator
|
from efl.elementary.separator import Separator
|
||||||
|
from efl.elementary.menu import Menu
|
||||||
|
|
||||||
from TorrentInfo import TorrentInfo
|
from TorrentInfo import TorrentInfo
|
||||||
from Preferences import Preferences
|
from Preferences import Preferences
|
||||||
|
@ -164,47 +165,56 @@ class MainInterface(object):
|
||||||
|
|
||||||
def item_activated_cb(self, gl, item):
|
def item_activated_cb(self, gl, item):
|
||||||
h = item.data
|
h = item.data
|
||||||
cp = Ctxpopup(self.win)
|
cp = Menu(self.win)
|
||||||
cp.item_append(
|
|
||||||
|
cp.item_add(
|
||||||
|
None,
|
||||||
"Resume" if h.is_paused() else "Pause",
|
"Resume" if h.is_paused() else "Pause",
|
||||||
None,
|
None,
|
||||||
self.resume_torrent_cb if h.is_paused() else self.pause_torrent_cb,
|
self.resume_torrent_cb if h.is_paused() else self.pause_torrent_cb,
|
||||||
h
|
h
|
||||||
)
|
)
|
||||||
cp.item_append("Remove torrent", None,
|
q = cp.item_add(None, "Queue", None, None)
|
||||||
|
cp.item_add(q, "Up", None, lambda x, y: h.queue_position_up())
|
||||||
|
cp.item_add(q, "Down", None, lambda x, y: h.queue_position_down())
|
||||||
|
cp.item_add(q, "Top", None, lambda x, y: h.queue_position_top())
|
||||||
|
cp.item_add(q, "Bottom", None, lambda x, y: h.queue_position_bottom())
|
||||||
|
cp.item_add(None, "Remove torrent", None,
|
||||||
self.remove_torrent_cb, item, h, False)
|
self.remove_torrent_cb, item, h, False)
|
||||||
cp.item_append("Remove torrent and files", None,
|
cp.item_add(None, "Remove torrent and files", None,
|
||||||
self.remove_torrent_cb, item, h, True)
|
self.remove_torrent_cb, item, h, True)
|
||||||
cp.item_append("Force re-check", None,
|
cp.item_add(None, "Force re-check", None,
|
||||||
self.force_recheck, h)
|
self.force_recheck, h)
|
||||||
cp.item_append("Torrent preferences", None,
|
cp.item_separator_add(None)
|
||||||
|
cp.item_add(None, "Torrent preferences", None,
|
||||||
self.torrent_preferences_cb, h)
|
self.torrent_preferences_cb, h)
|
||||||
cp.pos = self.win.evas.pointer_canvas_xy_get()
|
|
||||||
|
cp.move(*self.win.evas.pointer_canvas_xy_get())
|
||||||
cp.show()
|
cp.show()
|
||||||
|
|
||||||
def resume_torrent_cb(self, l, item, h):
|
def resume_torrent_cb(self, l, item, h):
|
||||||
item.widget_get().dismiss()
|
#item.widget_get().dismiss()
|
||||||
h.resume()
|
h.resume()
|
||||||
h.auto_managed(True)
|
h.auto_managed(True)
|
||||||
|
|
||||||
def pause_torrent_cb(self, l, item, h):
|
def pause_torrent_cb(self, l, item, h):
|
||||||
item.widget_get().dismiss()
|
#item.widget_get().dismiss()
|
||||||
h.auto_managed(False)
|
h.auto_managed(False)
|
||||||
h.pause()
|
h.pause()
|
||||||
|
|
||||||
def force_recheck(self, l, item, h):
|
def force_recheck(self, l, item, h):
|
||||||
item.widget_get().dismiss()
|
#item.widget_get().dismiss()
|
||||||
h.force_recheck()
|
h.force_recheck()
|
||||||
|
|
||||||
def remove_torrent_cb(self, l, item, glitem, h, with_data=False):
|
def remove_torrent_cb(self, l, item, glitem, h, with_data=False):
|
||||||
item.widget_get().dismiss()
|
#item.widget_get().dismiss()
|
||||||
ihash = self.parent.session.remove_torrent(h, with_data)
|
ihash = self.parent.session.remove_torrent(h, with_data)
|
||||||
glitem.delete()
|
glitem.delete()
|
||||||
del self.torrentitems[ihash]
|
del self.torrentitems[ihash]
|
||||||
del glitem
|
del glitem
|
||||||
|
|
||||||
def torrent_preferences_cb(self, cp, item, h):
|
def torrent_preferences_cb(self, cp, item, h):
|
||||||
item.widget_get().dismiss()
|
#item.widget_get().dismiss()
|
||||||
self.i = TorrentInfo(self, h)
|
self.i = TorrentInfo(self, h)
|
||||||
|
|
||||||
def show_error(self, title, text):
|
def show_error(self, title, text):
|
||||||
|
|
Loading…
Reference in New Issue