Working on many-mode-menu feature--also fixing collision translation.

This commit is contained in:
Jim Miller 2020-10-19 21:15:23 -05:00
parent 7b4a3333e7
commit 5264a15e68
2 changed files with 120 additions and 38 deletions

View file

@ -471,8 +471,9 @@ class AddNewDialog(SizePersistedDialog):
# add collision options # add collision options
self.set_collisions() self.set_collisions()
if 'collision' in extraoptions: if 'collision' in extraoptions:
use_collision = save_collisions[extraoptions['collision']] use_collision = extraoptions['collision']
self.collision.setDisabled(True) self.collision.setDisabled(True)
self.collision.setToolTip(_("Update Mode set by menu/shortcut choice."))
else: else:
use_collision = save_collisions[self.prefs['collision']] use_collision = save_collisions[self.prefs['collision']]
self.collision.setDisabled(False) self.collision.setDisabled(False)
@ -912,12 +913,13 @@ class UpdateExistingDialog(SizePersistedDialog):
# add collision options # add collision options
self.set_collisions() self.set_collisions()
if 'collision' in extraoptions: if 'collision' in extraoptions:
use_collision = save_collisions[extraoptions['collision']] use_collision = extraoptions['collision']
self.collision.setDisabled(True) self.collision.setDisabled(True)
self.collision.setToolTip(_("Update Mode set by menu/shortcut choice."))
else: else:
use_collision = save_collisions[self.prefs['collision']] use_collision = save_collisions[self.prefs['collision']]
self.collision.setDisabled(False) self.collision.setDisabled(False)
i = self.collision.findText(save_collisions[use_collision]) i = self.collision.findText(use_collision)
if i > -1: if i > -1:
self.collision.setCurrentIndex(i) self.collision.setCurrentIndex(i)
label.setBuddy(self.collision) label.setBuddy(self.collision)

View file

@ -317,51 +317,23 @@ class FanFicFarePlugin(InterfaceAction):
shortcut_name=_('Download FanFiction Books from URLs'), shortcut_name=_('Download FanFiction Books from URLs'),
triggered=self.add_dialog) triggered=self.add_dialog)
self.add_action_add = self.create_menu_item_ex(self.menu, _('&Download from URLs ADDNEW'), image='plus.png',
unique_name='Download FanFiction Books from URLs add',
shortcut_name=_('Download FanFiction Books from URLs add'),
triggered=partial(self.add_dialog,
extraoptions={'collision':ADDNEW}) )
self.add_action_skip = self.create_menu_item_ex(self.menu, _('&Download from URLs SKIP'), image='plus.png',
unique_name='Download FanFiction Books from URLs skip',
shortcut_name=_('Download FanFiction Books from URLs skip'),
triggered=partial(self.add_dialog,
extraoptions={'collision':SKIP}) )
self.update_action = self.create_menu_item_ex(self.menu, _('&Update Existing FanFiction Books'), image='plusplus.png', self.update_action = self.create_menu_item_ex(self.menu, _('&Update Existing FanFiction Books'), image='plusplus.png',
unique_name='&Update Existing FanFiction Books', unique_name='&Update Existing FanFiction Books',
triggered=self.update_dialog) triggered=self.update_dialog)
self.update_action_upalways = self.create_menu_item_ex(self.menu, _('&Update Existing FanFiction Books UPDATEALWAYS'), image='plusplus.png',
unique_name='&Update Existing FanFiction Books UPDATEALWAYS',
triggered=partial(self.update_dialog,extraoptions={'collision':UPDATEALWAYS}))
self.update_action_ovalways = self.create_menu_item_ex(self.menu, _('&Update Existing FanFiction Books OVERWRITEALWAYS'), image='plusplus.png',
unique_name='&Update Existing FanFiction Books OVERWRITEALWAYS',
triggered=partial(self.update_dialog,extraoptions={'collision':OVERWRITEALWAYS}))
self.get_list_imap_action = self.create_menu_item_ex(self.menu, _('Get Story URLs from &Email'), image='view.png', self.get_list_imap_action = self.create_menu_item_ex(self.menu, _('Get Story URLs from &Email'), image='view.png',
unique_name='Get Story URLs from IMAP', unique_name='Get Story URLs from IMAP',
triggered=self.get_urls_from_imap_menu) triggered=self.get_urls_from_imap_menu)
self.get_list_imap_action.setVisible( bool(prefs['imapserver'] and prefs['imapuser'] and prefs['imapfolder']) ) self.get_list_imap_action.setVisible( bool(prefs['imapserver'] and prefs['imapuser'] and prefs['imapfolder']) )
self.get_list_imap_action_upalways = self.create_menu_item_ex(self.menu, _('Get Story URLs from &Email OVERWRITEALWAYS'), image='view.png',
unique_name='Get Story URLs from IMAP OVERWRITEALWAYS',
triggered=partial(self.get_urls_from_imap_menu,extraoptions={'collision':OVERWRITEALWAYS}))
self.get_list_url_action = self.create_menu_item_ex(self.menu, _('Get Story URLs from Web Page'), image='view.png', self.get_list_url_action = self.create_menu_item_ex(self.menu, _('Get Story URLs from Web Page'), image='view.png',
unique_name='Get Story URLs from Web Page', unique_name='Get Story URLs from Web Page',
triggered=self.get_urls_from_page_menu) triggered=self.get_urls_from_page_menu)
self.get_list_url_action_skip = self.create_menu_item_ex(self.menu, _('Get Story URLs from Web Page SKIP'), image='view.png',
unique_name='Get Story URLs from Web Page SKIP',
triggered=partial(self.get_urls_from_page_menu,extraoptions={'collision':SKIP}))
self.get_list_action = self.create_menu_item_ex(self.menu, _('Get Story URLs from Selected Books'), self.get_list_action = self.create_menu_item_ex(self.menu, _('Get Story URLs from Selected Books'),
unique_name='Get URLs from Selected Books', unique_name='Get URLs from Selected Books',
image='bookmarks.png', image='bookmarks.png',
triggered=self.list_story_urls) triggered=self.list_story_urls)
self.menu.addSeparator() self.menu.addSeparator()
anth_on = bool(self.get_epubmerge_plugin()) anth_on = bool(self.get_epubmerge_plugin())
self.anth_sub_menu = self.menu.addMenu(_('Anthology Options')) self.anth_sub_menu = self.menu.addMenu(_('Anthology Options'))
@ -383,11 +355,6 @@ class FanFicFarePlugin(InterfaceAction):
shortcut_name=_('Update FanFiction Anthology Epub'), shortcut_name=_('Update FanFiction Anthology Epub'),
triggered=self.update_anthology) triggered=self.update_anthology)
self.updateanth_action_ov = self.create_menu_item_ex(self.anth_sub_menu, _('Update Anthology Epub OVERWRITEALWAYS'),
image='plusplus.png',
unique_name='Update FanFiction Anthology Epub OVERWRITEALWAYS',
shortcut_name=_('Update FanFiction Anthology Epub OVERWRITEALWAYS'),
triggered=partial(self.update_anthology,extraoptions={'collision':OVERWRITEALWAYS}))
# Make, but set invisible--that way they still appear in # Make, but set invisible--that way they still appear in
# keyboard shortcuts (and can be set/reset) even when not # keyboard shortcuts (and can be set/reset) even when not
# available. Set actions, not just sub invisible because # available. Set actions, not just sub invisible because
@ -433,6 +400,119 @@ class FanFicFarePlugin(InterfaceAction):
self.add_remove_action.setVisible(rl_on and not rm_off) self.add_remove_action.setVisible(rl_on and not rm_off)
self.rl_sub_menu.menuAction().setVisible(rl_on) self.rl_sub_menu.menuAction().setVisible(rl_on)
self.modes_sub_menu = self.menu.addMenu(_('Actions by Update Modes'))
def add_mode_menu(parent_menu,unique_name,translated_name,mode,triggered):
self.create_menu_item_ex(parent_menu, mode,
unique_name='%s - %s'%(unique_name,save_collisions[mode]),
# mode is already translated
shortcut_name='%s - %s'%(translated_name,mode),
triggered=partial(triggered,
extraoptions={'collision':mode}) )
def add_action_menu(menu_name,
icon_file,
unique_name,
translated_name,
mode_list,
triggered):
sub_menu = self.modes_sub_menu.addMenu(menu_name)
sub_menu.setIcon(get_icon(icon_file))
for mode in mode_list:
add_mode_menu(sub_menu, unique_name, translated_name, mode, triggered)
add_action_menu(_('&Download from URLs'),
'plus.png',
'Download FanFiction Books from URLs',
_('Download FanFiction Books from URLs'),
(SKIP, ADDNEW, UPDATE, UPDATEALWAYS, OVERWRITE,
OVERWRITEALWAYS, CALIBREONLY, CALIBREONLYSAVECOL),
self.add_dialog)
# fromurls_sub_menu = self.modes_sub_menu.addMenu()
# fromurls_sub_menu.setIcon(get_icon('plus.png'))
# for mode in (SKIP, ADDNEW, UPDATE, UPDATEALWAYS, OVERWRITE,
# OVERWRITEALWAYS, CALIBREONLY, CALIBREONLYSAVECOL):
# add_mode_menu(fromurls_sub_menu,
# 'Download FanFiction Books from URLs',
# _('Download FanFiction Books from URLs'),
# mode,
# self.add_dialog)
add_action_menu(_('&Update Existing FanFiction Books'),
'plusplus.png',
'Update Existing FanFiction Books',
_('&Update Existing FanFiction Books'),
(UPDATE, UPDATEALWAYS, OVERWRITE, OVERWRITEALWAYS,
CALIBREONLY, CALIBREONLYSAVECOL),
self.update_dialog)
# update_sub_menu = self.modes_sub_menu.addMenu(_('&Update Existing FanFiction Books'))
# update_sub_menu.setIcon(get_icon('plusplus.png'))
# for mode in (UPDATE, UPDATEALWAYS, OVERWRITE, OVERWRITEALWAYS,
# CALIBREONLY, CALIBREONLYSAVECOL):
# add_mode_menu(update_sub_menu,
# 'Update Existing FanFiction Books',
# _('&Update Existing FanFiction Books'),
# mode,
# self.update_dialog)
add_action_menu(_('&Get Story URLs from &Email'),
'view.png',
'Get FanFiction Story URLs from Email',
_('Get FanFiction Story URLs from Email'),
(SKIP, ADDNEW, UPDATE, UPDATEALWAYS, OVERWRITE,
OVERWRITEALWAYS, CALIBREONLY, CALIBREONLYSAVECOL),
self.get_urls_from_imap_menu)
# fromimap_sub_menu = self.modes_sub_menu.addMenu(_('Get Story URLs from &Email'))
# fromimap_sub_menu.setIcon(get_icon('view.png'))
# for mode in (SKIP, ADDNEW, UPDATE, UPDATEALWAYS, OVERWRITE,
# OVERWRITEALWAYS, CALIBREONLY, CALIBREONLYSAVECOL):
# add_mode_menu(fromimap_sub_menu,
# 'Get FanFiction Story URLs from Email',
# _('Get FanFiction Story URLs from Email'),
# mode,
# self.get_urls_from_imap_menu)
add_action_menu(_('Get Story URLs from Web Page'),
'view.png',
'Get FanFiction Story URLs from Web Page',
_('Get FanFiction Story URLs from Web Page'),
(SKIP, ADDNEW, UPDATE, UPDATEALWAYS, OVERWRITE,
OVERWRITEALWAYS, CALIBREONLY, CALIBREONLYSAVECOL),
self.get_urls_from_page_menu)
# frompage_sub_menu = self.modes_sub_menu.addMenu(_('Get Story URLs from Web Page'))
# self.get_list_url_action_skip = self.create_menu_item_ex(frompage_sub_menu, _('Get Story URLs from Web Page SKIP'), image='view.png',
# unique_name='Get Story URLs from Web Page SKIP',
# triggered=partial(self.get_urls_from_page_menu,
# extraoptions={'collision':SKIP}))
add_action_menu(_('Update Anthology Epub'),
'plusplus.png',
'Update FanFiction Anthology Epub',
_('Update FanFiction Anthology Epub'),
(UPDATE, UPDATEALWAYS, OVERWRITE),
self.update_anthology)
# updateanth_sub_menu = self.modes_sub_menu.addMenu(_('Update Anthology Epub'))
# self.updateanth_action_ov = self.create_menu_item_ex(updateanth_sub_menu, _('Update Anthology Epub OVERWRITEALWAYS'),
# image='plusplus.png',
# unique_name='Update FanFiction Anthology Epub OVERWRITEALWAYS',
# shortcut_name=_('Update FanFiction Anthology Epub OVERWRITEALWAYS'),
# triggered=partial(self.update_anthology,
# extraoptions={'collision':OVERWRITEALWAYS}))
# for ac in (self.updateanth_action_ov,):
# ac.setVisible(anth_on)
## XXX conceal:
## CALIBREONLYSAVECOL when not configured
## from email when not configured
## antho when not epubmerge -- put under anth muenu?
self.menu.addSeparator() self.menu.addSeparator()
self.get_list_action = self.create_menu_item_ex(self.menu, _('Remove "New" Chapter Marks from Selected books'), self.get_list_action = self.create_menu_item_ex(self.menu, _('Remove "New" Chapter Marks from Selected books'),
unique_name='Remove "(new)" chapter marks created by personal.ini <i>mark_new_chapters</i> setting.', unique_name='Remove "(new)" chapter marks created by personal.ini <i>mark_new_chapters</i> setting.',
@ -580,7 +660,7 @@ class FanFicFarePlugin(InterfaceAction):
self.prep_downloads({ self.prep_downloads({
'fileform': prefs['fileform'], 'fileform': prefs['fileform'],
# save_collisions==convert from save value to local lang value # save_collisions==convert from save value to local lang value
'collision': save_collisions[extraoptions.get('collision',prefs['collision'])], 'collision': extraoptions.get('collision',prefs['collision']),
'updatemeta': prefs['updatemeta'], 'updatemeta': prefs['updatemeta'],
'bgmeta': False, 'bgmeta': False,
'updateepubcover': prefs['updateepubcover'], 'updateepubcover': prefs['updateepubcover'],