mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Fix #8436 (Add tag when using Add ISBN Dialog)
This commit is contained in:
parent
84d1dd94d2
commit
927c389e91
@ -91,13 +91,14 @@ class AddAction(InterfaceAction):
|
|||||||
self.gui.library_view.model().db.import_book(MetaInformation(None), [])
|
self.gui.library_view.model().db.import_book(MetaInformation(None), [])
|
||||||
self.gui.library_view.model().books_added(num)
|
self.gui.library_view.model().books_added(num)
|
||||||
|
|
||||||
def add_isbns(self, books):
|
def add_isbns(self, books, add_tags=[]):
|
||||||
from calibre.ebooks.metadata import MetaInformation
|
from calibre.ebooks.metadata import MetaInformation
|
||||||
ids = set([])
|
ids = set([])
|
||||||
|
db = self.gui.library_view.model().db
|
||||||
|
|
||||||
for x in books:
|
for x in books:
|
||||||
mi = MetaInformation(None)
|
mi = MetaInformation(None)
|
||||||
mi.isbn = x['isbn']
|
mi.isbn = x['isbn']
|
||||||
db = self.gui.library_view.model().db
|
|
||||||
if x['path'] is not None:
|
if x['path'] is not None:
|
||||||
ids.add(db.import_book(mi, [x['path']]))
|
ids.add(db.import_book(mi, [x['path']]))
|
||||||
else:
|
else:
|
||||||
@ -109,6 +110,8 @@ class AddAction(InterfaceAction):
|
|||||||
self.gui.iactions['Edit Metadata'].do_download_metadata(ids)
|
self.gui.iactions['Edit Metadata'].do_download_metadata(ids)
|
||||||
finally:
|
finally:
|
||||||
config['overwrite_author_title_metadata'] = orig
|
config['overwrite_author_title_metadata'] = orig
|
||||||
|
if add_tags and ids:
|
||||||
|
db.bulk_modify_tags(ids, add=add_tags)
|
||||||
|
|
||||||
|
|
||||||
def files_dropped(self, paths):
|
def files_dropped(self, paths):
|
||||||
@ -166,7 +169,7 @@ class AddAction(InterfaceAction):
|
|||||||
from calibre.gui2.dialogs.add_from_isbn import AddFromISBN
|
from calibre.gui2.dialogs.add_from_isbn import AddFromISBN
|
||||||
d = AddFromISBN(self.gui)
|
d = AddFromISBN(self.gui)
|
||||||
if d.exec_() == d.Accepted:
|
if d.exec_() == d.Accepted:
|
||||||
self.add_isbns(d.books)
|
self.add_isbns(d.books, add_tags=d.set_tags)
|
||||||
|
|
||||||
def add_books(self, *args):
|
def add_books(self, *args):
|
||||||
'''
|
'''
|
||||||
|
@ -12,6 +12,7 @@ from PyQt4.Qt import QDialog, QApplication
|
|||||||
from calibre.gui2.dialogs.add_from_isbn_ui import Ui_Dialog
|
from calibre.gui2.dialogs.add_from_isbn_ui import Ui_Dialog
|
||||||
from calibre.ebooks.metadata import check_isbn
|
from calibre.ebooks.metadata import check_isbn
|
||||||
from calibre.constants import iswindows
|
from calibre.constants import iswindows
|
||||||
|
from calibre.gui2 import gprefs
|
||||||
|
|
||||||
class AddFromISBN(QDialog, Ui_Dialog):
|
class AddFromISBN(QDialog, Ui_Dialog):
|
||||||
|
|
||||||
@ -25,7 +26,9 @@ class AddFromISBN(QDialog, Ui_Dialog):
|
|||||||
|
|
||||||
self.isbns = []
|
self.isbns = []
|
||||||
self.books = []
|
self.books = []
|
||||||
|
self.set_tags = []
|
||||||
self.paste_button.clicked.connect(self.paste)
|
self.paste_button.clicked.connect(self.paste)
|
||||||
|
self.add_tags.setText(', '.join(gprefs.get('add from ISBN tags', [])))
|
||||||
|
|
||||||
def paste(self, *args):
|
def paste(self, *args):
|
||||||
app = QApplication.instance()
|
app = QApplication.instance()
|
||||||
@ -37,6 +40,10 @@ class AddFromISBN(QDialog, Ui_Dialog):
|
|||||||
self.isbn_box.setPlainText(new)
|
self.isbn_box.setPlainText(new)
|
||||||
|
|
||||||
def accept(self, *args):
|
def accept(self, *args):
|
||||||
|
tags = unicode(self.add_tags.text()).strip().split(',')
|
||||||
|
tags = list(filter(None, [x.strip() for x in tags]))
|
||||||
|
gprefs['add from ISBN tags'] = tags
|
||||||
|
self.set_tags = tags
|
||||||
for line in unicode(self.isbn_box.toPlainText()).strip().splitlines():
|
for line in unicode(self.isbn_box.toPlainText()).strip().splitlines():
|
||||||
line = line.strip()
|
line = line.strip()
|
||||||
if not line:
|
if not line:
|
||||||
|
@ -18,8 +18,19 @@
|
|||||||
<normaloff>:/images/add_book.png</normaloff>:/images/add_book.png</iconset>
|
<normaloff>:/images/add_book.png</normaloff>:/images/add_book.png</iconset>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout">
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
<item row="0" column="0">
|
<item row="0" column="0" rowspan="2">
|
||||||
<widget class="QPlainTextEdit" name="isbn_box"/>
|
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||||
|
<item>
|
||||||
|
<widget class="QPlainTextEdit" name="isbn_box"/>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="paste_button">
|
||||||
|
<property name="text">
|
||||||
|
<string>&Paste from clipboard</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="1">
|
<item row="0" column="1">
|
||||||
<widget class="QLabel" name="label">
|
<widget class="QLabel" name="label">
|
||||||
@ -34,6 +45,36 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_2">
|
||||||
|
<property name="text">
|
||||||
|
<string>&Tags to set on created book entries:</string>
|
||||||
|
</property>
|
||||||
|
<property name="buddy">
|
||||||
|
<cstring>add_tags</cstring>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLineEdit" name="add_tags"/>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="verticalSpacer">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>40</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
<item row="2" column="0" colspan="2">
|
<item row="2" column="0" colspan="2">
|
||||||
<widget class="QDialogButtonBox" name="buttonBox">
|
<widget class="QDialogButtonBox" name="buttonBox">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
@ -44,13 +85,6 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="0">
|
|
||||||
<widget class="QPushButton" name="paste_button">
|
|
||||||
<property name="text">
|
|
||||||
<string>&Paste from clipboard</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
<resources>
|
<resources>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user