mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Use a radio button instead of a checkbox to make it clearer what search is generated
This commit is contained in:
parent
30de50d4a9
commit
013a5bcde1
@ -8,7 +8,7 @@ from functools import partial
|
|||||||
|
|
||||||
from PyQt4.Qt import (
|
from PyQt4.Qt import (
|
||||||
Qt, QMenu, QPoint, QIcon, QDialog, QGridLayout, QLabel, QLineEdit, QComboBox,
|
Qt, QMenu, QPoint, QIcon, QDialog, QGridLayout, QLabel, QLineEdit, QComboBox,
|
||||||
QDialogButtonBox, QSize, QVBoxLayout, QListWidget, QStringList, QCheckBox)
|
QDialogButtonBox, QSize, QVBoxLayout, QListWidget, QStringList, QRadioButton)
|
||||||
|
|
||||||
from calibre.gui2 import error_dialog, question_dialog
|
from calibre.gui2 import error_dialog, question_dialog
|
||||||
from calibre.gui2.widgets import ComboBoxWithHelp
|
from calibre.gui2.widgets import ComboBoxWithHelp
|
||||||
@ -31,7 +31,10 @@ class SelectNames(QDialog): # {{{
|
|||||||
self._names.setSelectionMode(self._names.ExtendedSelection)
|
self._names.setSelectionMode(self._names.ExtendedSelection)
|
||||||
l.addWidget(self._names)
|
l.addWidget(self._names)
|
||||||
|
|
||||||
self._and = QCheckBox(_('Match all selected %s names')%txt)
|
self._or = QRadioButton(_('Match any of the selected %s names')%txt)
|
||||||
|
self._and = QRadioButton(_('Match all of the selected %s names')%txt)
|
||||||
|
self._or.setChecked(True)
|
||||||
|
l.addWidget(self._or)
|
||||||
l.addWidget(self._and)
|
l.addWidget(self._and)
|
||||||
|
|
||||||
self.bb = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel)
|
self.bb = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel)
|
||||||
@ -173,12 +176,12 @@ class CreateVirtualLibrary(QDialog): # {{{
|
|||||||
txt = unicode(txt)
|
txt = unicode(txt)
|
||||||
while txt:
|
while txt:
|
||||||
p = txt.partition('search:')
|
p = txt.partition('search:')
|
||||||
if p[1]: # found 'search:'
|
if p[1]: # found 'search:'
|
||||||
possible_search = p[2]
|
possible_search = p[2]
|
||||||
if possible_search: # something follows the 'search:'
|
if possible_search: # something follows the 'search:'
|
||||||
if possible_search[0] == '"': # strip any quotes
|
if possible_search[0] == '"': # strip any quotes
|
||||||
possible_search = possible_search[1:].partition('"')
|
possible_search = possible_search[1:].partition('"')
|
||||||
else: # find end of the search name. Is EOL, space, rparen
|
else: # find end of the search name. Is EOL, space, rparen
|
||||||
sp = possible_search.find(' ')
|
sp = possible_search.find(' ')
|
||||||
pp = possible_search.find(')')
|
pp = possible_search.find(')')
|
||||||
if pp < 0 or (sp > 0 and sp <= pp):
|
if pp < 0 or (sp > 0 and sp <= pp):
|
||||||
@ -187,7 +190,7 @@ class CreateVirtualLibrary(QDialog): # {{{
|
|||||||
else:
|
else:
|
||||||
# rparen in string before space
|
# rparen in string before space
|
||||||
possible_search = possible_search.partition(')')
|
possible_search = possible_search.partition(')')
|
||||||
txt = possible_search[2] # grab remainder of the string
|
txt = possible_search[2] # grab remainder of the string
|
||||||
search_name = possible_search[0]
|
search_name = possible_search[0]
|
||||||
if search_name.startswith('='):
|
if search_name.startswith('='):
|
||||||
search_name = search_name[1:]
|
search_name = search_name[1:]
|
||||||
@ -318,7 +321,6 @@ class SearchRestrictionMixin(object):
|
|||||||
self.edit_menu = QMenu(_('Edit Virtual Library'))
|
self.edit_menu = QMenu(_('Edit Virtual Library'))
|
||||||
self.rm_menu = QMenu(_('Remove Virtual Library'))
|
self.rm_menu = QMenu(_('Remove Virtual Library'))
|
||||||
|
|
||||||
|
|
||||||
def add_virtual_library(self, db, name, search):
|
def add_virtual_library(self, db, name, search):
|
||||||
virt_libs = db.prefs.get('virtual_libraries', {})
|
virt_libs = db.prefs.get('virtual_libraries', {})
|
||||||
virt_libs[name] = search
|
virt_libs[name] = search
|
||||||
|
Loading…
x
Reference in New Issue
Block a user