mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-08 02:34:06 -04:00
Sigh
This commit is contained in:
parent
09590d9942
commit
c47cdad1fc
@ -147,26 +147,32 @@ class ChooseLibraryAction(InterfaceAction):
|
|||||||
self.qs_locations = [i[1] for i in locations]
|
self.qs_locations = [i[1] for i in locations]
|
||||||
self.rename_menu.clear()
|
self.rename_menu.clear()
|
||||||
self.delete_menu.clear()
|
self.delete_menu.clear()
|
||||||
quick_actions = []
|
quick_actions, rename_actions, delete_actions = [], [], []
|
||||||
for name, loc in locations:
|
for name, loc in locations:
|
||||||
ac = self.quick_menu.addAction(name, Dispatcher(partial(self.switch_requested,
|
ac = self.quick_menu.addAction(name, Dispatcher(partial(self.switch_requested,
|
||||||
loc)))
|
loc)))
|
||||||
quick_actions.append(ac)
|
quick_actions.append(ac)
|
||||||
self.rename_menu.addAction(name, Dispatcher(partial(self.rename_requested,
|
ac = self.rename_menu.addAction(name, Dispatcher(partial(self.rename_requested,
|
||||||
name, loc)))
|
name, loc)))
|
||||||
self.delete_menu.addAction(name, Dispatcher(partial(self.delete_requested,
|
rename_actions.append(ac)
|
||||||
|
ac = self.delete_menu.addAction(name, Dispatcher(partial(self.delete_requested,
|
||||||
name, loc)))
|
name, loc)))
|
||||||
|
delete_actions.append(ac)
|
||||||
|
|
||||||
|
qs_actions = []
|
||||||
for i, x in enumerate(locations[:len(self.switch_actions)]):
|
for i, x in enumerate(locations[:len(self.switch_actions)]):
|
||||||
name, loc = x
|
name, loc = x
|
||||||
ac = self.switch_actions[i]
|
ac = self.switch_actions[i]
|
||||||
ac.setText(name)
|
ac.setText(name)
|
||||||
ac.setVisible(True)
|
ac.setVisible(True)
|
||||||
|
qs_actions.append(ac)
|
||||||
|
|
||||||
self.quick_menu_action.setVisible(bool(locations))
|
self.quick_menu_action.setVisible(bool(locations))
|
||||||
self.rename_menu_action.setVisible(bool(locations))
|
self.rename_menu_action.setVisible(bool(locations))
|
||||||
self.delete_menu_action.setVisible(bool(locations))
|
self.delete_menu_action.setVisible(bool(locations))
|
||||||
self.gui.location_manager.set_switch_actions(quick_actions)
|
self.gui.location_manager.set_switch_actions(quick_actions,
|
||||||
|
rename_actions, delete_actions, qs_actions,
|
||||||
|
self.action_choose)
|
||||||
|
|
||||||
|
|
||||||
def location_selected(self, loc):
|
def location_selected(self, loc):
|
||||||
|
@ -24,7 +24,6 @@ class LocationManager(QObject): # {{{
|
|||||||
locations_changed = pyqtSignal()
|
locations_changed = pyqtSignal()
|
||||||
unmount_device = pyqtSignal()
|
unmount_device = pyqtSignal()
|
||||||
location_selected = pyqtSignal(object)
|
location_selected = pyqtSignal(object)
|
||||||
switch_actions_set = pyqtSignal(object)
|
|
||||||
|
|
||||||
def __init__(self, parent=None):
|
def __init__(self, parent=None):
|
||||||
QObject.__init__(self, parent)
|
QObject.__init__(self, parent)
|
||||||
@ -70,12 +69,23 @@ class LocationManager(QObject): # {{{
|
|||||||
ac('cardb', _('Card B'), 'sd.png',
|
ac('cardb', _('Card B'), 'sd.png',
|
||||||
_('Show books in storage card B'))
|
_('Show books in storage card B'))
|
||||||
|
|
||||||
def set_switch_actions(self, actions):
|
def set_switch_actions(self, quick_actions, rename_actions, delete_actions,
|
||||||
|
switch_actions, choose_action):
|
||||||
self.switch_menu = QMenu()
|
self.switch_menu = QMenu()
|
||||||
for ac in actions:
|
self.switch_menu.addAction(choose_action)
|
||||||
|
self.cs_menus = []
|
||||||
|
for t, acs in [(_('Quick switch'), quick_actions),
|
||||||
|
(_('Rename library'), rename_actions),
|
||||||
|
(_('Delete library'), delete_actions)]:
|
||||||
|
if acs:
|
||||||
|
self.cs_menus.append(QMenu(t))
|
||||||
|
for ac in acs:
|
||||||
|
self.cs_menus[-1].addAction(ac)
|
||||||
|
self.switch_menu.addMenu(self.cs_menus[-1])
|
||||||
|
self.switch_menu.addSeparator()
|
||||||
|
for ac in switch_actions:
|
||||||
self.switch_menu.addAction(ac)
|
self.switch_menu.addAction(ac)
|
||||||
self.library_action.setMenu(self.switch_menu)
|
self.library_action.setMenu(self.switch_menu)
|
||||||
self.switch_actions_set.emit(bool(actions))
|
|
||||||
|
|
||||||
def _location_selected(self, location, *args):
|
def _location_selected(self, location, *args):
|
||||||
if location != self.current_location and hasattr(self,
|
if location != self.current_location and hasattr(self,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user