Update flatpak manifest
Implement automated missing cover downloading
This commit is contained in:
3
TODO
3
TODO
@@ -33,6 +33,8 @@ TODO
|
|||||||
✓ Include (action) icons with the applications
|
✓ Include (action) icons with the applications
|
||||||
✓ Drag and drop support for the library
|
✓ Drag and drop support for the library
|
||||||
✓ Tab reordering
|
✓ Tab reordering
|
||||||
|
Additional Settings:
|
||||||
|
✓ Create covers for books without them - VERY SLOW
|
||||||
Set focus to newly added file
|
Set focus to newly added file
|
||||||
Reading:
|
Reading:
|
||||||
✓ Drop down for TOC
|
✓ Drop down for TOC
|
||||||
@@ -101,7 +103,6 @@ TODO
|
|||||||
Additional Settings:
|
Additional Settings:
|
||||||
Disable progressbar - 20% book addition speed improvement
|
Disable progressbar - 20% book addition speed improvement
|
||||||
Disable cover loading when reading - Saves ~2M / book
|
Disable cover loading when reading - Saves ~2M / book
|
||||||
Create covers for books without them - VERY SLOW
|
|
||||||
Special formatting for each chapter's title
|
Special formatting for each chapter's title
|
||||||
Signal end of chapter with some text
|
Signal end of chapter with some text
|
||||||
Graphical themes
|
Graphical themes
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"app-id":"com.basiomeuspuga.Lector",
|
"app-id":"com.basiomeuspuga.Lector",
|
||||||
"runtime":"org.kde.Platform",
|
"runtime":"org.kde.Platform",
|
||||||
"runtime-version":"5.10",
|
"runtime-version":"5.12",
|
||||||
"sdk":"org.kde.Sdk",
|
"sdk":"org.kde.Sdk",
|
||||||
"command":"lector",
|
"command":"lector",
|
||||||
"rename-icon":"Lector",
|
"rename-icon":"Lector",
|
||||||
@@ -21,74 +21,107 @@
|
|||||||
},
|
},
|
||||||
"modules":[
|
"modules":[
|
||||||
{
|
{
|
||||||
"name": "python",
|
"name": "PyQt5",
|
||||||
"sources": [
|
|
||||||
{
|
|
||||||
"type": "archive",
|
|
||||||
"url": "https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tar.xz",
|
|
||||||
"sha256": "159b932bf56aeaa76fd66e7420522d8c8853d486b8567c459b84fe2ed13bcaba"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "pyqt5",
|
|
||||||
"buildsystem": "simple",
|
"buildsystem": "simple",
|
||||||
"build-commands": [
|
"build-commands": [
|
||||||
"pip3 install --prefix=/app PyQt5-5.10.1-5.10.1-cp35.cp36.cp37.cp38-abi3-manylinux1_x86_64.whl"
|
"pip3 install --prefix=/app PyQt5-5.12-5.12.1-cp35.cp36.cp37.cp38-abi3-manylinux1_x86_64.whl"
|
||||||
],
|
],
|
||||||
"modules":[
|
"modules":[
|
||||||
{
|
{
|
||||||
"name":"sip",
|
"name":"PyQt5-sip",
|
||||||
"sources":[
|
"sources":[
|
||||||
{
|
{
|
||||||
"type":"file",
|
"type":"file",
|
||||||
"url":"https://pypi.python.org/packages/8a/ea/d317ce5696dda4df7c156cd60447cda22833b38106c98250eae1451f03ec/sip-4.19.8-cp36-cp36m-manylinux1_x86_64.whl",
|
"url":"https://files.pythonhosted.org/packages/ae/9c/74fba0b62a0756d214f9aded5b0184130f7866def7532fa68823f34feefa/PyQt5_sip-4.19.14-cp37-cp37m-manylinux1_x86_64.whl",
|
||||||
"sha256":"cf98150a99e43fda7ae22abe655b6f202e491d6291486548daa56cb15a2fcf85"
|
"sha256":"04bd0bb8b6f8fa03c2dfbdfff0c8c9bfb3f46a21dd4cac73983dae93bf949523"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"buildsystem":"simple",
|
"buildsystem":"simple",
|
||||||
"build-commands":[
|
"build-commands":[
|
||||||
"pip3 install --prefix=/app sip-4.19.8-cp36-cp36m-manylinux1_x86_64.whl"
|
"pip3 install --prefix=/app PyQt5_sip-4.19.14-cp37-cp37m-manylinux1_x86_64.whl"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"sources": [
|
"sources": [
|
||||||
{
|
{
|
||||||
"type": "file",
|
"type": "file",
|
||||||
"url": "https://pypi.python.org/packages/e4/15/4e2e49f64884edbab6f833c6fd3add24d7938f2429aec1f2883e645d4d8f/PyQt5-5.10.1-5.10.1-cp35.cp36.cp37.cp38-abi3-manylinux1_x86_64.whl",
|
"url": "https://files.pythonhosted.org/packages/5e/91/9ac8827d0af428e756f461a3aa7bcbc53d6450edfe026e27569f5ff3689e/PyQt5-5.12-5.12.1-cp35.cp36.cp37.cp38-abi3-manylinux1_x86_64.whl",
|
||||||
"sha256": "1e652910bd1ffd23a3a48c510ecad23a57a853ed26b782cd54b16658e6f271ac"
|
"sha256": "fd5946795b39922f971cf92dec799aadc7544b7fa993a79b9f6059f13d817e6e"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name":"beautifulsoup",
|
"name":"beautifulsoup4",
|
||||||
"buildsystem":"simple",
|
"buildsystem":"simple",
|
||||||
"sources":[
|
"sources":[
|
||||||
{
|
{
|
||||||
"type":"archive",
|
"type":"file",
|
||||||
"url":"https://pypi.python.org/packages/fa/8d/1d14391fdaed5abada4e0f63543fef49b8331a34ca60c88bd521bcf7f782/beautifulsoup4-4.6.0.tar.gz",
|
"url":"https://files.pythonhosted.org/packages/1d/5d/3260694a59df0ec52f8b4883f5d23b130bc237602a1411fa670eae12351e/beautifulsoup4-4.7.1-py3-none-any.whl",
|
||||||
"sha256":"808b6ac932dccb0a4126558f7dfdcf41710dd44a4ef497a0bb59a77f9f078e89"
|
"sha256":"034740f6cb549b4e932ae1ab975581e6103ac8f942200a0e9759065984391858"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"modules":[
|
||||||
|
{
|
||||||
|
"name": "soupsieve",
|
||||||
|
"sources":[
|
||||||
|
{
|
||||||
|
"type":"file",
|
||||||
|
"url":"https://files.pythonhosted.org/packages/bf/b3/2473abf05c4950c6a829ed5dcbc40d8b56d4351d15d6939c8ffb7c6b1a14/soupsieve-1.7.3-py2.py3-none-any.whl",
|
||||||
|
"sha256":"466910df7561796a60748826781ebe9a888f7a1668a636ae86783f44d10aae73"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"buildsystem":"simple",
|
||||||
|
"build-commands":[
|
||||||
|
"pip3 install --prefix=/app soupsieve-1.7.3-py2.py3-none-any.whl"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"build-commands":[
|
"build-commands":[
|
||||||
"python3 setup.py build",
|
"pip3 install --prefix=/app beautifulsoup4-4.7.1-py3-none-any.whl"
|
||||||
"python3 setup.py install --prefix=/app"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "lxml",
|
"name":"xmltodict",
|
||||||
"buildsystem": "simple",
|
"buildsystem":"simple",
|
||||||
|
"sources":[
|
||||||
|
{
|
||||||
|
"type": "file",
|
||||||
|
"url":"https://files.pythonhosted.org/packages/28/fd/30d5c1d3ac29ce229f6bdc40bbc20b28f716e8b363140c26eff19122d8a5/xmltodict-0.12.0-py2.py3-none-any.whl",
|
||||||
|
"sha256":"8bbcb45cc982f48b2ca8fe7e7827c5d792f217ecf1792626f808bf41c3b86051"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"build-commands":[
|
||||||
|
"pip3 install --prefix=/app xmltodict-0.12.0-py2.py3-none-any.whl"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name":"PyMuPDF",
|
||||||
|
"buildsystem":"simple",
|
||||||
"build-commands": [
|
"build-commands": [
|
||||||
"pip3 install --prefix=/app lxml-4.2.1-cp36-cp36m-manylinux1_x86_64.whl"
|
"pip3 install --prefix=/app PyMuPDF-1.14.8-cp37-cp37m-manylinux1_x86_64.whl"
|
||||||
],
|
],
|
||||||
"sources": [
|
"sources":[
|
||||||
{
|
{
|
||||||
"type": "file",
|
"type": "file",
|
||||||
"url": "https://pypi.python.org/packages/a7/b9/ccf46cea0f698b40bca2a9c1a44039c336fe1988b82de4f7353be7a8396a/lxml-4.2.1-cp36-cp36m-manylinux1_x86_64.whl",
|
"url": "https://files.pythonhosted.org/packages/3c/df/4bfaee2631b505d502c2ba64aa437799f0a64125edb1d4c4c38044ad1ecc/PyMuPDF-1.14.8-cp37-cp37m-manylinux1_x86_64.whl",
|
||||||
"sha256": "0e3cd94c95d30ba9ca3cff40e9b2a14e1a10a4fd8131105b86c6b61648f57e4b"
|
"sha256": "a49798b58cce00e09b8a4431a5f64a400b11a0959f29507187c471208ce040a5"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name":"lxml",
|
||||||
|
"buildsystem":"simple",
|
||||||
|
"sources":[
|
||||||
|
{
|
||||||
|
"type":"file",
|
||||||
|
"url":"https://files.pythonhosted.org/packages/08/f2/04bf04e42c070f65b64dbde02d2c94851251f19f5e9f803cc8f8bc61ac77/lxml-4.3.1-cp37-cp37m-manylinux1_x86_64.whl",
|
||||||
|
"sha256":"c0a7751ba1a4bfbe7831920d98cee3ce748007eab8dfda74593d44079568219a"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"build-commands":[
|
||||||
|
"pip3 install --prefix=/app lxml-4.3.1-cp37-cp37m-manylinux1_x86_64.whl"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name":"lector",
|
"name":"lector",
|
||||||
"buildsystem":"simple",
|
"buildsystem":"simple",
|
||||||
|
@@ -165,7 +165,10 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
|
|||||||
self.libraryToolBar.reloadLibraryButton.triggered.connect(
|
self.libraryToolBar.reloadLibraryButton.triggered.connect(
|
||||||
self.settingsDialog.start_library_scan)
|
self.settingsDialog.start_library_scan)
|
||||||
self.libraryToolBar.colorButton.triggered.connect(self.get_color)
|
self.libraryToolBar.colorButton.triggered.connect(self.get_color)
|
||||||
self.libraryToolBar.settingsButton.triggered.connect(self.show_settings)
|
self.libraryToolBar.settingsButton.triggered.connect(
|
||||||
|
lambda: self.show_settings(0))
|
||||||
|
self.libraryToolBar.aboutButton.triggered.connect(
|
||||||
|
lambda: self.show_settings(3))
|
||||||
self.libraryToolBar.searchBar.textChanged.connect(self.lib_ref.update_proxymodels)
|
self.libraryToolBar.searchBar.textChanged.connect(self.lib_ref.update_proxymodels)
|
||||||
self.libraryToolBar.sortingBox.activated.connect(self.lib_ref.update_proxymodels)
|
self.libraryToolBar.sortingBox.activated.connect(self.lib_ref.update_proxymodels)
|
||||||
self.libraryToolBar.libraryFilterButton.setPopupMode(QtWidgets.QToolButton.InstantPopup)
|
self.libraryToolBar.libraryFilterButton.setPopupMode(QtWidgets.QToolButton.InstantPopup)
|
||||||
@@ -369,7 +372,7 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
|
|||||||
file_list,
|
file_list,
|
||||||
('addition', 'manual'),
|
('addition', 'manual'),
|
||||||
self.database_path,
|
self.database_path,
|
||||||
self.settings['auto_tags'],
|
self.settings,
|
||||||
self.temp_dir.path())
|
self.temp_dir.path())
|
||||||
|
|
||||||
parsed_books = books.initiate_threads()
|
parsed_books = books.initiate_threads()
|
||||||
@@ -423,7 +426,7 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
|
|||||||
file_paths,
|
file_paths,
|
||||||
('reading', None),
|
('reading', None),
|
||||||
self.database_path,
|
self.database_path,
|
||||||
True,
|
self.settings,
|
||||||
self.temp_dir.path()).initiate_threads()
|
self.temp_dir.path()).initiate_threads()
|
||||||
|
|
||||||
# TODO
|
# TODO
|
||||||
@@ -739,9 +742,15 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
|
|||||||
else:
|
else:
|
||||||
self.statusBar.setVisible(True)
|
self.statusBar.setVisible(True)
|
||||||
|
|
||||||
def show_settings(self):
|
def show_settings(self, stacked_widget_index):
|
||||||
if not self.settingsDialog.isVisible():
|
if not self.settingsDialog.isVisible():
|
||||||
self.settingsDialog.show()
|
self.settingsDialog.show()
|
||||||
|
self.settingsDialog.okButton.setVisible(False)
|
||||||
|
index = self.settingsDialog.listModel.index(
|
||||||
|
stacked_widget_index, 0)
|
||||||
|
self.settingsDialog.listView.setCurrentIndex(index)
|
||||||
|
self.settingsDialog.stackedWidget.setCurrentIndex(
|
||||||
|
stacked_widget_index)
|
||||||
else:
|
else:
|
||||||
self.settingsDialog.hide()
|
self.settingsDialog.hide()
|
||||||
|
|
||||||
|
@@ -64,6 +64,8 @@ class FB2:
|
|||||||
'author').getText(separator=' ').replace('\n', ' ')
|
'author').getText(separator=' ').replace('\n', ' ')
|
||||||
if author == '' or author is None:
|
if author == '' or author is None:
|
||||||
author = '<Unknown>'
|
author = '<Unknown>'
|
||||||
|
else:
|
||||||
|
author = author.strip()
|
||||||
|
|
||||||
# TODO
|
# TODO
|
||||||
# Account for other date formats
|
# Account for other date formats
|
||||||
|
@@ -175,6 +175,20 @@
|
|||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_16">
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="autoCover">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string><html><head/><body><p>Attempt to download missing book covers from Google books - SLOW</p></body></html></string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Download missing covers</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
|
@@ -106,6 +106,12 @@ class Ui_Dialog(object):
|
|||||||
self.attenuateTitles.setObjectName("attenuateTitles")
|
self.attenuateTitles.setObjectName("attenuateTitles")
|
||||||
self.horizontalLayout_9.addWidget(self.attenuateTitles)
|
self.horizontalLayout_9.addWidget(self.attenuateTitles)
|
||||||
self.verticalLayout_2.addLayout(self.horizontalLayout_9)
|
self.verticalLayout_2.addLayout(self.horizontalLayout_9)
|
||||||
|
self.horizontalLayout_16 = QtWidgets.QHBoxLayout()
|
||||||
|
self.horizontalLayout_16.setObjectName("horizontalLayout_16")
|
||||||
|
self.autoCover = QtWidgets.QCheckBox(self.groupBox)
|
||||||
|
self.autoCover.setObjectName("autoCover")
|
||||||
|
self.horizontalLayout_16.addWidget(self.autoCover)
|
||||||
|
self.verticalLayout_2.addLayout(self.horizontalLayout_16)
|
||||||
self.gridLayout_4.addLayout(self.verticalLayout_2, 0, 0, 1, 1)
|
self.gridLayout_4.addLayout(self.verticalLayout_2, 0, 0, 1, 1)
|
||||||
self.verticalLayout.addWidget(self.groupBox)
|
self.verticalLayout.addWidget(self.groupBox)
|
||||||
self.groupBox_2 = QtWidgets.QGroupBox(self.switchPage)
|
self.groupBox_2 = QtWidgets.QGroupBox(self.switchPage)
|
||||||
@@ -342,6 +348,8 @@ class Ui_Dialog(object):
|
|||||||
self.performCulling.setText(_translate("Dialog", "Load covers only when needed"))
|
self.performCulling.setText(_translate("Dialog", "Load covers only when needed"))
|
||||||
self.autoTags.setText(_translate("Dialog", "Generate tags from files"))
|
self.autoTags.setText(_translate("Dialog", "Generate tags from files"))
|
||||||
self.attenuateTitles.setText(_translate("Dialog", "Shrink long book titles"))
|
self.attenuateTitles.setText(_translate("Dialog", "Shrink long book titles"))
|
||||||
|
self.autoCover.setToolTip(_translate("Dialog", "<html><head/><body><p>Attempt to download missing book covers from Google books - SLOW</p></body></html>"))
|
||||||
|
self.autoCover.setText(_translate("Dialog", "Download missing covers"))
|
||||||
self.groupBox_2.setTitle(_translate("Dialog", "Reading"))
|
self.groupBox_2.setTitle(_translate("Dialog", "Reading"))
|
||||||
self.hideScrollBars.setToolTip(_translate("Dialog", "Horizontal scrolling with Alt + Scroll\n"
|
self.hideScrollBars.setToolTip(_translate("Dialog", "Horizontal scrolling with Alt + Scroll\n"
|
||||||
"Reopen book to see changes"))
|
"Reopen book to see changes"))
|
||||||
|
@@ -122,6 +122,8 @@ class Settings:
|
|||||||
'cachingEnabled', 'True').capitalize())
|
'cachingEnabled', 'True').capitalize())
|
||||||
self.parent.settings['hide_scrollbars'] = literal_eval(self.settings.value(
|
self.parent.settings['hide_scrollbars'] = literal_eval(self.settings.value(
|
||||||
'hideScrollBars', 'False').capitalize())
|
'hideScrollBars', 'False').capitalize())
|
||||||
|
self.parent.settings['auto_cover'] = literal_eval(self.settings.value(
|
||||||
|
'autoCover', 'False').capitalize())
|
||||||
self.parent.settings['scroll_speed'] = int(self.settings.value('scrollSpeed', 7))
|
self.parent.settings['scroll_speed'] = int(self.settings.value('scrollSpeed', 7))
|
||||||
self.parent.settings['consider_read_at'] = int(self.settings.value('considerReadAt', 95))
|
self.parent.settings['consider_read_at'] = int(self.settings.value('considerReadAt', 95))
|
||||||
self.parent.settings['small_increment'] = int(self.settings.value('smallIncrement', 4))
|
self.parent.settings['small_increment'] = int(self.settings.value('smallIncrement', 4))
|
||||||
@@ -211,6 +213,7 @@ class Settings:
|
|||||||
self.settings.setValue('cachingEnabled', str(current_settings['caching_enabled']))
|
self.settings.setValue('cachingEnabled', str(current_settings['caching_enabled']))
|
||||||
self.settings.setValue('hideScrollBars', str(current_settings['hide_scrollbars']))
|
self.settings.setValue('hideScrollBars', str(current_settings['hide_scrollbars']))
|
||||||
self.settings.setValue('attenuateTitles', str(current_settings['attenuate_titles']))
|
self.settings.setValue('attenuateTitles', str(current_settings['attenuate_titles']))
|
||||||
|
self.settings.setValue('autoCover', str(current_settings['auto_cover']))
|
||||||
self.settings.setValue('scrollSpeed', current_settings['scroll_speed'])
|
self.settings.setValue('scrollSpeed', current_settings['scroll_speed'])
|
||||||
self.settings.setValue('considerReadAt', current_settings['consider_read_at'])
|
self.settings.setValue('considerReadAt', current_settings['consider_read_at'])
|
||||||
self.settings.setValue('mangaMode', str(current_settings['manga_mode']))
|
self.settings.setValue('mangaMode', str(current_settings['manga_mode']))
|
||||||
|
@@ -99,6 +99,7 @@ class SettingsUI(QtWidgets.QDialog, settingswindow.Ui_Dialog):
|
|||||||
self.cachingEnabled.setChecked(self.main_window.settings['caching_enabled'])
|
self.cachingEnabled.setChecked(self.main_window.settings['caching_enabled'])
|
||||||
self.hideScrollBars.setChecked(self.main_window.settings['hide_scrollbars'])
|
self.hideScrollBars.setChecked(self.main_window.settings['hide_scrollbars'])
|
||||||
self.attenuateTitles.setChecked(self.main_window.settings['attenuate_titles'])
|
self.attenuateTitles.setChecked(self.main_window.settings['attenuate_titles'])
|
||||||
|
self.autoCover.setChecked(self.main_window.settings['auto_cover'])
|
||||||
self.scrollSpeedSlider.setValue(self.main_window.settings['scroll_speed'])
|
self.scrollSpeedSlider.setValue(self.main_window.settings['scroll_speed'])
|
||||||
self.readAtPercent.setValue(self.main_window.settings['consider_read_at'])
|
self.readAtPercent.setValue(self.main_window.settings['consider_read_at'])
|
||||||
self.smallIncrementBox.setValue(self.main_window.settings['small_increment'])
|
self.smallIncrementBox.setValue(self.main_window.settings['small_increment'])
|
||||||
@@ -112,6 +113,7 @@ class SettingsUI(QtWidgets.QDialog, settingswindow.Ui_Dialog):
|
|||||||
self.cachingEnabled.clicked.connect(self.manage_checkboxes)
|
self.cachingEnabled.clicked.connect(self.manage_checkboxes)
|
||||||
self.hideScrollBars.clicked.connect(self.manage_checkboxes)
|
self.hideScrollBars.clicked.connect(self.manage_checkboxes)
|
||||||
self.attenuateTitles.clicked.connect(self.manage_checkboxes)
|
self.attenuateTitles.clicked.connect(self.manage_checkboxes)
|
||||||
|
self.autoCover.clicked.connect(self.manage_checkboxes)
|
||||||
self.scrollSpeedSlider.valueChanged.connect(self.change_scroll_speed)
|
self.scrollSpeedSlider.valueChanged.connect(self.change_scroll_speed)
|
||||||
self.readAtPercent.valueChanged.connect(self.change_read_at)
|
self.readAtPercent.valueChanged.connect(self.change_read_at)
|
||||||
self.smallIncrementBox.valueChanged.connect(self.change_increment)
|
self.smallIncrementBox.valueChanged.connect(self.change_increment)
|
||||||
@@ -390,7 +392,8 @@ class SettingsUI(QtWidgets.QDialog, settingswindow.Ui_Dialog):
|
|||||||
'performCulling': 'perform_culling',
|
'performCulling': 'perform_culling',
|
||||||
'cachingEnabled': 'caching_enabled',
|
'cachingEnabled': 'caching_enabled',
|
||||||
'hideScrollBars': 'hide_scrollbars',
|
'hideScrollBars': 'hide_scrollbars',
|
||||||
'attenuateTitles': 'attenuate_titles'}
|
'attenuateTitles': 'attenuate_titles',
|
||||||
|
'autoCover': 'auto_cover'}
|
||||||
|
|
||||||
self.main_window.settings[
|
self.main_window.settings[
|
||||||
sender_dict[sender]] = not self.main_window.settings[sender_dict[sender]]
|
sender_dict[sender]] = not self.main_window.settings[sender_dict[sender]]
|
||||||
|
@@ -102,7 +102,7 @@ class UpdateProgress(QtCore.QObject):
|
|||||||
|
|
||||||
|
|
||||||
class BookSorter:
|
class BookSorter:
|
||||||
def __init__(self, file_list, mode, database_path, auto_tags=True, temp_dir=None):
|
def __init__(self, file_list, mode, database_path, settings, temp_dir=None):
|
||||||
# Have the GUI pass a list of files straight to here
|
# Have the GUI pass a list of files straight to here
|
||||||
# Then, on the basis of what is needed, pass the
|
# Then, on the basis of what is needed, pass the
|
||||||
# filenames to the requisite functions
|
# filenames to the requisite functions
|
||||||
@@ -115,7 +115,8 @@ class BookSorter:
|
|||||||
self.work_mode = mode[0]
|
self.work_mode = mode[0]
|
||||||
self.addition_mode = mode[1]
|
self.addition_mode = mode[1]
|
||||||
self.database_path = database_path
|
self.database_path = database_path
|
||||||
self.auto_tags = auto_tags
|
self.auto_tags = settings['auto_tags']
|
||||||
|
self.auto_cover = settings['auto_cover']
|
||||||
self.temp_dir = temp_dir
|
self.temp_dir = temp_dir
|
||||||
if database_path:
|
if database_path:
|
||||||
self.database_hashes()
|
self.database_hashes()
|
||||||
@@ -245,10 +246,9 @@ class BookSorter:
|
|||||||
if cover_image_raw:
|
if cover_image_raw:
|
||||||
cover_image = resize_image(cover_image_raw)
|
cover_image = resize_image(cover_image_raw)
|
||||||
else:
|
else:
|
||||||
# TODO
|
|
||||||
# Needs an option
|
|
||||||
# cover_image = fetch_cover(title, author)
|
|
||||||
cover_image = None
|
cover_image = None
|
||||||
|
if self.auto_cover:
|
||||||
|
cover_image = fetch_cover(title, author)
|
||||||
|
|
||||||
this_book[file_md5]['cover_image'] = cover_image
|
this_book[file_md5]['cover_image'] = cover_image
|
||||||
this_book[file_md5]['addition_mode'] = self.addition_mode
|
this_book[file_md5]['addition_mode'] = self.addition_mode
|
||||||
|
@@ -65,7 +65,7 @@ class BackGroundBookAddition(QtCore.QThread):
|
|||||||
self.file_list,
|
self.file_list,
|
||||||
('addition', self.addition_mode),
|
('addition', self.addition_mode),
|
||||||
self.database_path,
|
self.database_path,
|
||||||
self.main_window.settings['auto_tags'],
|
self.main_window.settings,
|
||||||
self.main_window.temp_dir.path())
|
self.main_window.temp_dir.path())
|
||||||
|
|
||||||
parsed_books = books.initiate_threads()
|
parsed_books = books.initiate_threads()
|
||||||
|
@@ -383,16 +383,6 @@ class LibraryToolBar(QtWidgets.QToolBar):
|
|||||||
image_factory.get_image('remove'),
|
image_factory.get_image('remove'),
|
||||||
self._translate('LibraryToolBar', 'Delete book'),
|
self._translate('LibraryToolBar', 'Delete book'),
|
||||||
self)
|
self)
|
||||||
self.colorButton = QtWidgets.QAction(
|
|
||||||
image_factory.get_image('color-picker'),
|
|
||||||
self._translate('LibraryToolBar', 'Library background color'),
|
|
||||||
self)
|
|
||||||
self.colorButton.setObjectName('libraryBackground')
|
|
||||||
self.settingsButton = QtWidgets.QAction(
|
|
||||||
image_factory.get_image('settings'),
|
|
||||||
self._translate('LibraryToolBar', 'Settings'),
|
|
||||||
self)
|
|
||||||
self.settingsButton.setCheckable(True)
|
|
||||||
|
|
||||||
self.coverViewButton = QtWidgets.QAction(
|
self.coverViewButton = QtWidgets.QAction(
|
||||||
image_factory.get_image('view-grid'),
|
image_factory.get_image('view-grid'),
|
||||||
@@ -416,6 +406,22 @@ class LibraryToolBar(QtWidgets.QToolBar):
|
|||||||
self.libraryFilterButton.setToolTip(
|
self.libraryFilterButton.setToolTip(
|
||||||
self._translate('LibraryToolBar', 'Filter library'))
|
self._translate('LibraryToolBar', 'Filter library'))
|
||||||
|
|
||||||
|
self.colorButton = QtWidgets.QAction(
|
||||||
|
image_factory.get_image('color-picker'),
|
||||||
|
self._translate('LibraryToolBar', 'Library background color'),
|
||||||
|
self)
|
||||||
|
self.colorButton.setObjectName('libraryBackground')
|
||||||
|
self.settingsButton = QtWidgets.QAction(
|
||||||
|
image_factory.get_image('settings'),
|
||||||
|
self._translate('LibraryToolBar', 'Settings'),
|
||||||
|
self)
|
||||||
|
self.settingsButton.setCheckable(True)
|
||||||
|
|
||||||
|
self.aboutButton = QtWidgets.QAction(
|
||||||
|
image_factory.get_image('about'),
|
||||||
|
self._translate('LibraryToolBar', 'About'),
|
||||||
|
self)
|
||||||
|
|
||||||
# Auto unchecks the other QToolButton in case of clicking
|
# Auto unchecks the other QToolButton in case of clicking
|
||||||
self.viewButtons = QtWidgets.QActionGroup(self)
|
self.viewButtons = QtWidgets.QActionGroup(self)
|
||||||
self.viewButtons.setExclusive(True)
|
self.viewButtons.setExclusive(True)
|
||||||
@@ -434,6 +440,7 @@ class LibraryToolBar(QtWidgets.QToolBar):
|
|||||||
self.addSeparator()
|
self.addSeparator()
|
||||||
self.addAction(self.colorButton)
|
self.addAction(self.colorButton)
|
||||||
self.addAction(self.settingsButton)
|
self.addAction(self.settingsButton)
|
||||||
|
self.addAction(self.aboutButton)
|
||||||
|
|
||||||
# Filter
|
# Filter
|
||||||
sizePolicy = QtWidgets.QSizePolicy(
|
sizePolicy = QtWidgets.QSizePolicy(
|
||||||
|
Reference in New Issue
Block a user