mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
String changes
This commit is contained in:
parent
a3b83ab1b9
commit
ef19c51c5a
@ -460,7 +460,7 @@
|
|||||||
- title: "Viewer: improve appearance of controls on small screens."
|
- title: "Viewer: improve appearance of controls on small screens."
|
||||||
tickets: [1851921]
|
tickets: [1851921]
|
||||||
|
|
||||||
- title: "Move close button in viewer preferences to left to match the rest of the content server UI."
|
- title: "Move close button in viewer preferences to left to match the rest of the Content server UI."
|
||||||
tickets: [1851937]
|
tickets: [1851937]
|
||||||
|
|
||||||
- title: "Viewer: Fix restoring user stylesheet to default not being applied until a viewer restart"
|
- title: "Viewer: Fix restoring user stylesheet to default not being applied until a viewer restart"
|
||||||
|
@ -400,11 +400,11 @@ The special field ``search`` is used for saved searches. So if you save a search
|
|||||||
"My spouse's books" you can enter ``search:"My spouse's books"`` in the Search bar to reuse the saved
|
"My spouse's books" you can enter ``search:"My spouse's books"`` in the Search bar to reuse the saved
|
||||||
search. More about saving searches below.
|
search. More about saving searches below.
|
||||||
|
|
||||||
The special field ``vl`` is used to search for books in a virtual library. For
|
The special field ``vl`` is used to search for books in a Virtual library. For
|
||||||
example, ``vl:Read`` will find all the books in the *Read* virtual library. The search
|
example, ``vl:Read`` will find all the books in the *Read* Virtual library. The search
|
||||||
``vl:Read and vl:"Science Fiction"`` will find all the books that are in both the *Read* and
|
``vl:Read and vl:"Science Fiction"`` will find all the books that are in both the *Read* and
|
||||||
*Science Fiction* virtual libraries. The value following ``vl:`` must be the name of a
|
*Science Fiction* Virtual libraries. The value following ``vl:`` must be the name of a
|
||||||
virtual library. If the virtual library name contains spaces then surround it with quotes.
|
Virtual library. If the Virtual library name contains spaces then surround it with quotes.
|
||||||
|
|
||||||
You can search for the absence or presence of a field using the special "true" and "false" values. For example::
|
You can search for the absence or presence of a field using the special "true" and "false" values. For example::
|
||||||
|
|
||||||
@ -456,7 +456,7 @@ Virtual libraries
|
|||||||
A :guilabel:`Virtual library` is a way to pretend that your calibre library has
|
A :guilabel:`Virtual library` is a way to pretend that your calibre library has
|
||||||
only a few books instead of its full collection. This is an excellent way to
|
only a few books instead of its full collection. This is an excellent way to
|
||||||
partition your large collection of books into smaller, manageable chunks. To
|
partition your large collection of books into smaller, manageable chunks. To
|
||||||
learn how to create and use virtual libraries, see the tutorial:
|
learn how to create and use Virtual libraries, see the tutorial:
|
||||||
:ref:`virtual_libraries`.
|
:ref:`virtual_libraries`.
|
||||||
|
|
||||||
.. _config_filename_metadata:
|
.. _config_filename_metadata:
|
||||||
@ -618,7 +618,7 @@ You can see if a column can be Quickview'ed by hovering your mouse over the colu
|
|||||||
|
|
||||||
Options (in :guilabel:`Preferences->Look & feel->Quickview`):
|
Options (in :guilabel:`Preferences->Look & feel->Quickview`):
|
||||||
|
|
||||||
* Respect (or not) the current virtual library. If checked then Quickview shows only books in the current virtual library. Default: respect virtual libraries
|
* Respect (or not) the current Virtual library. If checked then Quickview shows only books in the current Virtual library. Default: respect Virtual libraries
|
||||||
* Change the Quickview window contents when the column is changed on the book list using the cursor keys. Default: don't follow changes made with cursor keys
|
* Change the Quickview window contents when the column is changed on the book list using the cursor keys. Default: don't follow changes made with cursor keys
|
||||||
* Change the column being "quickview'ed" when a cell in the Quickview window is double-clicked. Otherwise the book is changed but the column being examined is not. Default: change the column
|
* Change the column being "quickview'ed" when a cell in the Quickview window is double-clicked. Otherwise the book is changed but the column being examined is not. Default: change the column
|
||||||
* Change the column being "quickview'ed" to the current column when the return key is pressed in the Quickview panel. Otherwise the book is changed but the column being examined is not. Default: change the column
|
* Change the column being "quickview'ed" to the current column when the return key is pressed in the Quickview panel. Otherwise the book is changed but the column being examined is not. Default: change the column
|
||||||
@ -719,15 +719,15 @@ calibre has several keyboard shortcuts to save you time and mouse movement. Thes
|
|||||||
* - :kbd:`Shift+Esc`
|
* - :kbd:`Shift+Esc`
|
||||||
- Focus the book list
|
- Focus the book list
|
||||||
* - :kbd:`Ctrl+Esc`
|
* - :kbd:`Ctrl+Esc`
|
||||||
- Clear the virtual library
|
- Clear the Virtual library
|
||||||
* - :kbd:`Alt+Esc`
|
* - :kbd:`Alt+Esc`
|
||||||
- Clear the additional restriction
|
- Clear the additional restriction
|
||||||
* - :kbd:`Ctrl+*`
|
* - :kbd:`Ctrl+*`
|
||||||
- Create a temporary virtual library based on the current search
|
- Create a temporary Virtual library based on the current search
|
||||||
* - :kbd:`Ctrl+Right`
|
* - :kbd:`Ctrl+Right`
|
||||||
- Select the next virtual library tab
|
- Select the next Virtual library tab
|
||||||
* - :kbd:`Ctrl+Left`
|
* - :kbd:`Ctrl+Left`
|
||||||
- Select the previous virtual library tab
|
- Select the previous Virtual library tab
|
||||||
* - :kbd:`N or F3`
|
* - :kbd:`N or F3`
|
||||||
- Find the next book that matches the current search (only works if search highlighting is turned on in search preferences)
|
- Find the next book that matches the current search (only works if search highlighting is turned on in search preferences)
|
||||||
* - :kbd:`Shift+N or Shift+F3`
|
* - :kbd:`Shift+N or Shift+F3`
|
||||||
|
@ -172,7 +172,7 @@ you can using the Tag browser in the main program.
|
|||||||
|
|
||||||
A much loved feature of the main program, :guilabel:`Virtual libraries` is
|
A much loved feature of the main program, :guilabel:`Virtual libraries` is
|
||||||
present in the server interface as well. Click the three vertical dots in the
|
present in the server interface as well. Click the three vertical dots in the
|
||||||
top right corner to choose a virtual library.
|
top right corner to choose a Virtual library.
|
||||||
|
|
||||||
The book reader
|
The book reader
|
||||||
^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^
|
||||||
|
@ -98,7 +98,7 @@ The Tag browser search mechanism knows if an item has children. If it does, clic
|
|||||||
Restrictions
|
Restrictions
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
If you search for a genre then create a saved search for it, you can use the 'restrict to' box to create a Virtual library of books with that genre. This is useful if you want to do other searches within the genre or to manage/update metadata for books in the genre. Continuing our example, you can create a Saved search named 'History.Japanese' by first clicking on the genre Japanese in the Tag browser to get a search into the search box, entering History.Japanese into the saved search box, then pushing the "save search" button (the green box with the white plus, on the right-hand side).
|
If you search for a genre then create a saved search for it, you can use the 'restrict to' box to create a Virtual library of books with that genre. This is useful if you want to do other searches within the genre or to manage/update metadata for books in the genre. Continuing our example, you can create a Saved search named 'History.Japanese' by first clicking on the genre Japanese in the Tag browser to get a search into the search field, entering History.Japanese into the saved search field, then pushing the "save search" button (the green box with the white plus, on the right-hand side).
|
||||||
|
|
||||||
.. image:: images/sg_restrict.jpg
|
.. image:: images/sg_restrict.jpg
|
||||||
:align: center
|
:align: center
|
||||||
|
@ -4,20 +4,20 @@
|
|||||||
Virtual libraries
|
Virtual libraries
|
||||||
============================
|
============================
|
||||||
|
|
||||||
In calibre, a virtual library is a way to tell calibre to open only a subset of a
|
In calibre, a Virtual library is a way to tell calibre to open only a subset of a
|
||||||
normal library. For example, you might want to only work with books by a certain
|
normal library. For example, you might want to only work with books by a certain
|
||||||
author, or books having only a certain tag. Using virtual libraries is the
|
author, or books having only a certain tag. Using Virtual libraries is the
|
||||||
preferred way of partitioning your large book collection into smaller sub
|
preferred way of partitioning your large book collection into smaller sub
|
||||||
collections. It is superior to splitting up your library into multiple smaller
|
collections. It is superior to splitting up your library into multiple smaller
|
||||||
libraries as, when you want to search through your entire collection, you can
|
libraries as, when you want to search through your entire collection, you can
|
||||||
simply go back to the full library. There is no way to search through multiple
|
simply go back to the full library. There is no way to search through multiple
|
||||||
separate libraries simultaneously in calibre.
|
separate libraries simultaneously in calibre.
|
||||||
|
|
||||||
A virtual library is different from a simple search. A search will only restrict
|
A Virtual library is different from a simple search. A search will only restrict
|
||||||
the list of books shown in the book list. A virtual library does that, and in
|
the list of books shown in the book list. A Virtual library does that, and in
|
||||||
addition it also restricts the entries shown in the :guilabel:`Tag browser` to
|
addition it also restricts the entries shown in the :guilabel:`Tag browser` to
|
||||||
the left. The Tag browser will only show tags, authors, series, publishers, etc.
|
the left. The Tag browser will only show tags, authors, series, publishers, etc.
|
||||||
that come from the books in the virtual library. A virtual library thus behaves
|
that come from the books in the Virtual library. A Virtual library thus behaves
|
||||||
as though the actual library contains only the restricted set of books.
|
as though the actual library contains only the restricted set of books.
|
||||||
|
|
||||||
Creating Virtual libraries
|
Creating Virtual libraries
|
||||||
@ -26,9 +26,9 @@ Creating Virtual libraries
|
|||||||
.. |vlb| image:: images/virtual_library_button.png
|
.. |vlb| image:: images/virtual_library_button.png
|
||||||
:class: float-left-img
|
:class: float-left-img
|
||||||
|
|
||||||
|vlb| To use a virtual library click the :guilabel:`Virtual library` button located
|
|vlb| To use a Virtual library click the :guilabel:`Virtual library` button located
|
||||||
to the left of the Search bar and select the :guilabel:`Create Virtual library`
|
to the left of the Search bar and select the :guilabel:`Create Virtual library`
|
||||||
option. As a first example, let's create a virtual library that shows us only
|
option. As a first example, let's create a Virtual library that shows us only
|
||||||
the books by a particular author. Click the :guilabel:`Authors` link as shown
|
the books by a particular author. Click the :guilabel:`Authors` link as shown
|
||||||
in the image below and choose the author you want to use and click OK.
|
in the image below and choose the author you want to use and click OK.
|
||||||
|
|
||||||
@ -77,40 +77,40 @@ Examples of useful Virtual libraries
|
|||||||
Working with Virtual libraries
|
Working with Virtual libraries
|
||||||
-------------------------------------
|
-------------------------------------
|
||||||
|
|
||||||
You can edit a previously created virtual library or remove it, by clicking the
|
You can edit a previously created Virtual library or remove it, by clicking the
|
||||||
:guilabel:`Virtual library` and choosing the appropriate action.
|
:guilabel:`Virtual library` and choosing the appropriate action.
|
||||||
|
|
||||||
You can tell calibre that you always want to apply a particular virtual library
|
You can tell calibre that you always want to apply a particular Virtual library
|
||||||
when the current library is opened, by going to
|
when the current library is opened, by going to
|
||||||
:guilabel:`Preferences->Interface->Behavior`.
|
:guilabel:`Preferences->Interface->Behavior`.
|
||||||
|
|
||||||
You can quickly use the current search as a temporary virtual library by
|
You can quickly use the current search as a temporary Virtual library by
|
||||||
clicking the :guilabel:`Virtual library` button and choosing the
|
clicking the :guilabel:`Virtual library` button and choosing the
|
||||||
:guilabel:`*current search` entry.
|
:guilabel:`*current search` entry.
|
||||||
|
|
||||||
You can display all available virtual libraries as tabs above the book list.
|
You can display all available Virtual libraries as tabs above the book list.
|
||||||
This is particularly handy if you like switching between virtual libraries very
|
This is particularly handy if you like switching between Virtual libraries very
|
||||||
often. Click the :guilabel:`Virtual library` button and select :guilabel:`Show
|
often. Click the :guilabel:`Virtual library` button and select :guilabel:`Show
|
||||||
virtual libraries as tabs`. You can re-arrange the tabs by drag and drop and
|
Virtual libraries as tabs`. You can re-arrange the tabs by drag and drop and
|
||||||
close ones you do not want to see. Closed tabs can be restored by
|
close ones you do not want to see. Closed tabs can be restored by
|
||||||
right-clicking on the tab bar.
|
right-clicking on the tab bar.
|
||||||
|
|
||||||
Using Virtual libraries in searches
|
Using Virtual libraries in searches
|
||||||
-------------------------------------
|
-------------------------------------
|
||||||
|
|
||||||
You can search for books that are in a virtual library using the ``vl:`` prefix. For
|
You can search for books that are in a Virtual library using the ``vl:`` prefix. For
|
||||||
example, ``vl:Read`` will find all the books in the *Read* virtual library. The search
|
example, ``vl:Read`` will find all the books in the *Read* Virtual library. The search
|
||||||
``vl:Read and vl:"Science Fiction"`` will find all the books that are in both the *Read* and
|
``vl:Read and vl:"Science Fiction"`` will find all the books that are in both the *Read* and
|
||||||
*Science Fiction* virtual libraries.
|
*Science Fiction* Virtual libraries.
|
||||||
|
|
||||||
The value following ``vl:`` must be the name of a virtual library. If the virtual library name
|
The value following ``vl:`` must be the name of a Virtual library. If the Virtual library name
|
||||||
contains spaces then surround it with quotes.
|
contains spaces then surround it with quotes.
|
||||||
|
|
||||||
One use for a virtual library search is in the content server. In
|
One use for a Virtual library search is in the content server. In
|
||||||
:guilabel:`Preferences->Sharing over the net->Require username/password` you
|
:guilabel:`Preferences->Sharing over the net->Require username/password` you
|
||||||
can limit the calibre libraries visible to a user. For each visible library you
|
can limit the calibre libraries visible to a user. For each visible library you
|
||||||
can specify a search expression to further limit which books are seen. Use
|
can specify a search expression to further limit which books are seen. Use
|
||||||
``vl:"Virtual library name"`` to limit the books to those in a virtual library.
|
``vl:"Virtual library name"`` to limit the books to those in a Virtual library.
|
||||||
|
|
||||||
Using additional restrictions
|
Using additional restrictions
|
||||||
-------------------------------
|
-------------------------------
|
||||||
@ -118,7 +118,7 @@ Using additional restrictions
|
|||||||
You can further restrict the books shown in a Virtual library by using
|
You can further restrict the books shown in a Virtual library by using
|
||||||
:guilabel:`Additional restrictions`. An additional restriction is saved search
|
:guilabel:`Additional restrictions`. An additional restriction is saved search
|
||||||
you previously created that can be applied to the current Virtual library to
|
you previously created that can be applied to the current Virtual library to
|
||||||
further restrict the books shown in a virtual library. For example, say you
|
further restrict the books shown in a Virtual library. For example, say you
|
||||||
have a Virtual library for books tagged as :guilabel:`Historical Fiction` and a
|
have a Virtual library for books tagged as :guilabel:`Historical Fiction` and a
|
||||||
saved search that shows you unread books, you can click the :guilabel:`Virtual
|
saved search that shows you unread books, you can click the :guilabel:`Virtual
|
||||||
Library` button and choose the :guilabel:`Additional restriction` option to
|
Library` button and choose the :guilabel:`Additional restriction` option to
|
||||||
|
@ -25,7 +25,7 @@ def option_parser(get_parser, args):
|
|||||||
%prog clone path/to/new/library
|
%prog clone path/to/new/library
|
||||||
|
|
||||||
Create a clone of the current library. This creates a new, empty library that has all the
|
Create a clone of the current library. This creates a new, empty library that has all the
|
||||||
same custom columns, virtual libraries and other settings as the current library.
|
same custom columns, Virtual libraries and other settings as the current library.
|
||||||
|
|
||||||
The cloned library will contain no books. If you want to create a full duplicate, including
|
The cloned library will contain no books. If you want to create a full duplicate, including
|
||||||
all books, then simply use your filesystem tools to copy the library folder.
|
all books, then simply use your filesystem tools to copy the library folder.
|
||||||
|
@ -505,7 +505,7 @@ class Parser(SearchQueryParser): # {{{
|
|||||||
if location == 'vl':
|
if location == 'vl':
|
||||||
vl = self.dbcache._pref('virtual_libraries', {}).get(query) if query else None
|
vl = self.dbcache._pref('virtual_libraries', {}).get(query) if query else None
|
||||||
if not vl:
|
if not vl:
|
||||||
raise ParseException(_('No such virtual library: {}').format(query))
|
raise ParseException(_('No such Virtual library: {}').format(query))
|
||||||
try:
|
try:
|
||||||
return candidates & self.dbcache.books_in_virtual_library(query)
|
return candidates & self.dbcache.books_in_virtual_library(query)
|
||||||
except RuntimeError:
|
except RuntimeError:
|
||||||
|
@ -129,7 +129,7 @@ class MatchBooks(QDialog, Ui_MatchBooks):
|
|||||||
query = unicode_type(self.search_text.text())
|
query = unicode_type(self.search_text.text())
|
||||||
if not query:
|
if not query:
|
||||||
d = error_dialog(self.gui, _('Match books'),
|
d = error_dialog(self.gui, _('Match books'),
|
||||||
_('You must enter a search expression into the search box'))
|
_('You must enter a search expression into the search field'))
|
||||||
d.exec_()
|
d.exec_()
|
||||||
return
|
return
|
||||||
try:
|
try:
|
||||||
|
@ -44,6 +44,7 @@ class TagCategories(QDialog, Ui_TagCategories):
|
|||||||
QDialog.__init__(self, window)
|
QDialog.__init__(self, window)
|
||||||
Ui_TagCategories.__init__(self)
|
Ui_TagCategories.__init__(self)
|
||||||
self.setupUi(self)
|
self.setupUi(self)
|
||||||
|
self.blank.setText('\xa0')
|
||||||
|
|
||||||
# I can't figure out how to get these into the .ui file
|
# I can't figure out how to get these into the .ui file
|
||||||
self.gridLayout_2.setColumnMinimumWidth(0, 50)
|
self.gridLayout_2.setColumnMinimumWidth(0, 50)
|
||||||
|
@ -9,7 +9,8 @@
|
|||||||
<width>628</width>
|
<width>628</width>
|
||||||
<height>482</height>
|
<height>482</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property> <property name="windowTitle">
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
<string>User categories editor</string>
|
<string>User categories editor</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowIcon">
|
<property name="windowIcon">
|
||||||
@ -148,18 +149,18 @@
|
|||||||
<widget class="QCheckBox" name="apply_vl_checkbox">
|
<widget class="QCheckBox" name="apply_vl_checkbox">
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string><p>Show items in the Available items box only if they appear in the
|
<string><p>Show items in the Available items box only if they appear in the
|
||||||
current virtual library. Applied items not in the VL will be marked
|
current Virtual library. Applied items not in the VL will be marked
|
||||||
"not on any book".</p></string>
|
"not on any book".</p></string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>&Show only available items in current virtual library</string>
|
<string>&Show only available items in current Virtual library</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="0">
|
<item row="2" column="0">
|
||||||
<widget class="QLabel" name="blank">
|
<widget class="QLabel" name="blank">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string> </string>
|
<string/>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
@ -66,11 +66,11 @@
|
|||||||
<widget class="QCheckBox" name="apply_vl_checkbox">
|
<widget class="QCheckBox" name="apply_vl_checkbox">
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string><p>Show items in the Available items box only if they appear in the
|
<string><p>Show items in the Available items box only if they appear in the
|
||||||
current virtual library. Applied items not in the VL will be marked
|
current Virtual library. Applied items not in the VL will be marked
|
||||||
"not on any book".</p></string>
|
"not on any book".</p></string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>&Show only available items in current virtual library</string>
|
<string>&Show only available items in current Virtual library</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
@ -412,12 +412,12 @@ class VLTabs(QTabBar): # {{{
|
|||||||
self.previous_action = a = QAction(self)
|
self.previous_action = a = QAction(self)
|
||||||
a.triggered.connect(partial(self.next_tab, delta=-1)), self.gui.addAction(a)
|
a.triggered.connect(partial(self.next_tab, delta=-1)), self.gui.addAction(a)
|
||||||
self.gui.keyboard.register_shortcut(
|
self.gui.keyboard.register_shortcut(
|
||||||
'virtual-library-tab-bar-next', _('Next virtual library'), action=self.next_action,
|
'virtual-library-tab-bar-next', _('Next Virtual library'), action=self.next_action,
|
||||||
default_keys=('Ctrl+Right',),
|
default_keys=('Ctrl+Right',),
|
||||||
description=_('Switch to the next Virtual library in the Virtual library tab bar')
|
description=_('Switch to the next Virtual library in the Virtual library tab bar')
|
||||||
)
|
)
|
||||||
self.gui.keyboard.register_shortcut(
|
self.gui.keyboard.register_shortcut(
|
||||||
'virtual-library-tab-bar-previous', _('Previous virtual library'), action=self.previous_action,
|
'virtual-library-tab-bar-previous', _('Previous Virtual library'), action=self.previous_action,
|
||||||
default_keys=('Ctrl+Left',),
|
default_keys=('Ctrl+Left',),
|
||||||
description=_('Switch to the previous Virtual library in the Virtual library tab bar')
|
description=_('Switch to the previous Virtual library in the Virtual library tab bar')
|
||||||
)
|
)
|
||||||
@ -501,7 +501,7 @@ class VLTabs(QTabBar): # {{{
|
|||||||
self.addTab(vl.replace('&', '&&') or _('All books'))
|
self.addTab(vl.replace('&', '&&') or _('All books'))
|
||||||
sexp = vl_map.get(vl, None)
|
sexp = vl_map.get(vl, None)
|
||||||
if sexp is not None:
|
if sexp is not None:
|
||||||
self.setTabToolTip(i, _('Search expression for this virtual library:') + '\n\n' + sexp)
|
self.setTabToolTip(i, _('Search expression for this Virtual library:') + '\n\n' + sexp)
|
||||||
self.setTabData(i, vl)
|
self.setTabData(i, vl)
|
||||||
if vl == current_lib:
|
if vl == current_lib:
|
||||||
current_idx = i
|
current_idx = i
|
||||||
@ -533,9 +533,9 @@ class VLTabs(QTabBar): # {{{
|
|||||||
s.addAction(x, partial(self.restore, x))
|
s.addAction(x, partial(self.restore, x))
|
||||||
m.addAction(_('Hide Virtual library tabs'), self.disable_bar)
|
m.addAction(_('Hide Virtual library tabs'), self.disable_bar)
|
||||||
if gprefs['vl_tabs_closable']:
|
if gprefs['vl_tabs_closable']:
|
||||||
m.addAction(_('Lock virtual library tabs'), self.lock_tab)
|
m.addAction(_('Lock Virtual library tabs'), self.lock_tab)
|
||||||
else:
|
else:
|
||||||
m.addAction(_('Unlock virtual library tabs'), self.unlock_tab)
|
m.addAction(_('Unlock Virtual library tabs'), self.unlock_tab)
|
||||||
i = self.tabAt(ev.pos())
|
i = self.tabAt(ev.pos())
|
||||||
if i > -1:
|
if i > -1:
|
||||||
vl = unicode_type(self.tabData(i) or '')
|
vl = unicode_type(self.tabData(i) or '')
|
||||||
|
@ -252,7 +252,7 @@ If not checked, the values can be Yes or No.</string>
|
|||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>Use this virtual library on calibre startup if the current library is being used. Also applied when switching to this library. Note that this setting is per library. </string>
|
<string>Use this Virtual library on calibre startup if the current library is being used. Also applied when switching to this library. Note that this setting is per library. </string>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizeAdjustPolicy">
|
<property name="sizeAdjustPolicy">
|
||||||
<enum>QComboBox::AdjustToMinimumContentsLengthWithIcon</enum>
|
<enum>QComboBox::AdjustToMinimumContentsLengthWithIcon</enum>
|
||||||
|
@ -987,7 +987,7 @@ then the tags will be displayed each on their own line.</string>
|
|||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>When checked, calibre will automatically hide any category
|
<string>When checked, calibre will automatically hide any category
|
||||||
(a column, custom or standard) that has no items to show. For example, some
|
(a column, custom or standard) that has no items to show. For example, some
|
||||||
categories might not have values when using virtual libraries. Checking this
|
categories might not have values when using Virtual libraries. Checking this
|
||||||
box will cause these empty categories to be hidden.</string>
|
box will cause these empty categories to be hidden.</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
@ -1213,11 +1213,11 @@ them to all have the same width and height</string>
|
|||||||
<widget class="QCheckBox" name="opt_qv_respects_vls">
|
<widget class="QCheckBox" name="opt_qv_respects_vls">
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>Check this box to make Quickview show books only in the
|
<string>Check this box to make Quickview show books only in the
|
||||||
current virtual library. If unchecked, Quickview ignores virtual libraries. If
|
current Virtual library. If unchecked, Quickview ignores Virtual libraries. If
|
||||||
unchecked then only row changes are taken into account.</string>
|
unchecked then only row changes are taken into account.</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>&Apply virtual libraries in Quickview panel</string>
|
<string>&Apply Virtual libraries in Quickview panel</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
@ -337,7 +337,7 @@ class SearchRestrictionMixin(object):
|
|||||||
self.clear_vl.clicked.connect(lambda x: (self.apply_virtual_library(), self.clear_additional_restriction()))
|
self.clear_vl.clicked.connect(lambda x: (self.apply_virtual_library(), self.clear_additional_restriction()))
|
||||||
|
|
||||||
self.virtual_library_tooltip = \
|
self.virtual_library_tooltip = \
|
||||||
_('Use a "virtual library" to show only a subset of the books present in this library')
|
_('Use a "Virtual library" to show only a subset of the books present in this library')
|
||||||
self.virtual_library.setToolTip(self.virtual_library_tooltip)
|
self.virtual_library.setToolTip(self.virtual_library_tooltip)
|
||||||
|
|
||||||
self.search_restriction = ComboBoxWithHelp(self)
|
self.search_restriction = ComboBoxWithHelp(self)
|
||||||
@ -384,9 +384,9 @@ class SearchRestrictionMixin(object):
|
|||||||
|
|
||||||
if add_tabs_action:
|
if add_tabs_action:
|
||||||
if gprefs['show_vl_tabs']:
|
if gprefs['show_vl_tabs']:
|
||||||
m.addAction(_('Hide virtual library tabs'), self.vl_tabs.disable_bar)
|
m.addAction(_('Hide Virtual library tabs'), self.vl_tabs.disable_bar)
|
||||||
else:
|
else:
|
||||||
m.addAction(_('Show virtual libraries as tabs'), self.vl_tabs.enable_bar)
|
m.addAction(_('Show Virtual libraries as tabs'), self.vl_tabs.enable_bar)
|
||||||
|
|
||||||
m.addSeparator()
|
m.addSeparator()
|
||||||
|
|
||||||
@ -493,7 +493,7 @@ class SearchRestrictionMixin(object):
|
|||||||
|
|
||||||
def remove_vl_triggered(self, name=None):
|
def remove_vl_triggered(self, name=None):
|
||||||
if not confirm(
|
if not confirm(
|
||||||
_('Are you sure you want to remove the virtual library <b>{0}</b>?').format(name),
|
_('Are you sure you want to remove the Virtual library <b>{0}</b>?').format(name),
|
||||||
'confirm_vl_removal', parent=self):
|
'confirm_vl_removal', parent=self):
|
||||||
return
|
return
|
||||||
self._remove_vl(name, reapply=True)
|
self._remove_vl(name, reapply=True)
|
||||||
@ -503,7 +503,7 @@ class SearchRestrictionMixin(object):
|
|||||||
db = self.library_view.model().db
|
db = self.library_view.model().db
|
||||||
virt_libs = db.prefs.get('virtual_libraries', {})
|
virt_libs = db.prefs.get('virtual_libraries', {})
|
||||||
if not virt_libs:
|
if not virt_libs:
|
||||||
return error_dialog(self, _('No virtual libraries'), _(
|
return error_dialog(self, _('No Virtual libraries'), _(
|
||||||
'No Virtual libraries present, create some first'), show=True)
|
'No Virtual libraries present, create some first'), show=True)
|
||||||
example = '<pre>{0}S{1}ome {0}B{1}ook {0}C{1}ollection</pre>'.format(
|
example = '<pre>{0}S{1}ome {0}B{1}ook {0}C{1}ollection</pre>'.format(
|
||||||
'<span style="%s">' % emphasis_style(), '</span>')
|
'<span style="%s">' % emphasis_style(), '</span>')
|
||||||
|
@ -281,7 +281,7 @@ class TagBrowserMixin(object): # {{{
|
|||||||
Delete an item from some category.
|
Delete an item from some category.
|
||||||
'''
|
'''
|
||||||
if restrict_to_book_ids:
|
if restrict_to_book_ids:
|
||||||
msg = _('%s will be deleted from books in the virtual library. Are you sure?')%orig_name
|
msg = _('%s will be deleted from books in the Virtual library. Are you sure?')%orig_name
|
||||||
else:
|
else:
|
||||||
msg = _('%s will be deleted from all books. Are you sure?')%orig_name
|
msg = _('%s will be deleted from all books. Are you sure?')%orig_name
|
||||||
if not question_dialog(self.tags_view,
|
if not question_dialog(self.tags_view,
|
||||||
|
@ -536,7 +536,7 @@ class TagsView(QTreeView): # {{{
|
|||||||
# Add the 'rename' items
|
# Add the 'rename' items
|
||||||
if self.model().get_in_vl():
|
if self.model().get_in_vl():
|
||||||
self.context_menu.addAction(self.rename_icon,
|
self.context_menu.addAction(self.rename_icon,
|
||||||
_('Rename %s in virtual library')%display_name(tag),
|
_('Rename %s in Virtual library')%display_name(tag),
|
||||||
partial(self.context_menu_handler, action='edit_item_in_vl',
|
partial(self.context_menu_handler, action='edit_item_in_vl',
|
||||||
index=index))
|
index=index))
|
||||||
self.context_menu.addAction(self.rename_icon,
|
self.context_menu.addAction(self.rename_icon,
|
||||||
@ -547,7 +547,7 @@ class TagsView(QTreeView): # {{{
|
|||||||
self._model.db.field_metadata.is_custom_field(key):
|
self._model.db.field_metadata.is_custom_field(key):
|
||||||
if self.model().get_in_vl():
|
if self.model().get_in_vl():
|
||||||
self.context_menu.addAction(self.delete_icon,
|
self.context_menu.addAction(self.delete_icon,
|
||||||
_('Delete %s in virtual library')%display_name(tag),
|
_('Delete %s in Virtual library')%display_name(tag),
|
||||||
partial(self.context_menu_handler, action='delete_item_in_vl',
|
partial(self.context_menu_handler, action='delete_item_in_vl',
|
||||||
key=key, index=tag))
|
key=key, index=tag))
|
||||||
|
|
||||||
|
@ -318,7 +318,7 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, EmailMixin, # {{{
|
|||||||
self.ctrl_esc_action = QAction(self)
|
self.ctrl_esc_action = QAction(self)
|
||||||
self.addAction(self.ctrl_esc_action)
|
self.addAction(self.ctrl_esc_action)
|
||||||
self.keyboard.register_shortcut('clear virtual library',
|
self.keyboard.register_shortcut('clear virtual library',
|
||||||
_('Clear the virtual library'), default_keys=('Ctrl+Esc',),
|
_('Clear the Virtual library'), default_keys=('Ctrl+Esc',),
|
||||||
action=self.ctrl_esc_action)
|
action=self.ctrl_esc_action)
|
||||||
self.ctrl_esc_action.triggered.connect(self.ctrl_esc)
|
self.ctrl_esc_action.triggered.connect(self.ctrl_esc)
|
||||||
|
|
||||||
|
@ -1507,7 +1507,7 @@ class BuiltinVirtualLibraries(BuiltinFormatterFunction):
|
|||||||
arg_count = 0
|
arg_count = 0
|
||||||
category = 'Get values from metadata'
|
category = 'Get values from metadata'
|
||||||
__doc__ = doc = _('virtual_libraries() -- return a comma-separated list of '
|
__doc__ = doc = _('virtual_libraries() -- return a comma-separated list of '
|
||||||
'virtual libraries that contain this book. This function '
|
'Virtual libraries that contain this book. This function '
|
||||||
'works only in the GUI. If you want to use these values '
|
'works only in the GUI. If you want to use these values '
|
||||||
'in save-to-disk or send-to-device templates then you '
|
'in save-to-disk or send-to-device templates then you '
|
||||||
'must make a custom "Column built from other columns", use '
|
'must make a custom "Column built from other columns", use '
|
||||||
|
@ -239,7 +239,7 @@ def menu_clicked(i):
|
|||||||
container.appendChild(title)
|
container.appendChild(title)
|
||||||
container.appendChild(E.div(
|
container.appendChild(E.div(
|
||||||
style='margin-top:1ex; margin-bottom: 1ex',
|
style='margin-top:1ex; margin-bottom: 1ex',
|
||||||
_('Search for books based on this category (a search term will be added to the search box)')
|
_('Search for books based on this category (a search term will be added to the search field)')
|
||||||
))
|
))
|
||||||
|
|
||||||
ul = E.ul(style='list-style:none; overflow:hidden', class_='tb-action-list')
|
ul = E.ul(style='list-style:none; overflow:hidden', class_='tb-action-list')
|
||||||
@ -502,7 +502,7 @@ def get_prefs():
|
|||||||
'to_storage': def(x): return 'yes' if x else 'no';,
|
'to_storage': def(x): return 'yes' if x else 'no';,
|
||||||
'tooltip':_('When checked, calibre will automatically hide any category'
|
'tooltip':_('When checked, calibre will automatically hide any category'
|
||||||
' (a column, custom or standard) that has no items to show. For example, some'
|
' (a column, custom or standard) that has no items to show. For example, some'
|
||||||
' categories might not have values when using virtual libraries. Checking this'
|
' categories might not have values when using Virtual libraries. Checking this'
|
||||||
' box will cause these empty categories to be hidden.'),
|
' box will cause these empty categories to be hidden.'),
|
||||||
},
|
},
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user