Small fixes
Compulsive refactor
This commit is contained in:
6
TODO
6
TODO
@@ -64,7 +64,7 @@ TODO
|
||||
✓ Spacebar should not cut off lines at the top
|
||||
✓ Track open bookmark windows so they can be closed quickly at exit
|
||||
✓ Search document using QTextCursor
|
||||
Double page / column view
|
||||
✓ Double page / column view
|
||||
✓ For comics
|
||||
Caching is currently non functional
|
||||
Annotations
|
||||
@@ -73,7 +73,7 @@ TODO
|
||||
Adjust key navigation according to viewport dimensions
|
||||
Filetypes:
|
||||
✓ pdf support
|
||||
Parse TOC
|
||||
✓ Parse TOC
|
||||
✓ epub support
|
||||
✓ Homegrown solution please
|
||||
✓ cbz, cbr support
|
||||
@@ -90,8 +90,6 @@ TODO
|
||||
✓ Define every widget in code
|
||||
Bugs:
|
||||
Deselecting all directories in the settings dialog also filters out manually added books
|
||||
Clean up 'switch' page layout
|
||||
Colors aren't loaded properly for annotation previews
|
||||
Last line in QTextBrowser should never be cut off
|
||||
Does image alignment need to be centered?
|
||||
|
||||
|
@@ -29,6 +29,8 @@ install_dir = os.path.realpath(__file__)
|
||||
install_dir = pathlib.Path(install_dir).parents[1]
|
||||
sys.path.append(str(install_dir))
|
||||
|
||||
from PyQt5 import QtWidgets, QtGui, QtCore
|
||||
|
||||
# Init logging
|
||||
# Must be done first and at the module level
|
||||
# or it won't work properly in case of the imports below
|
||||
@@ -36,8 +38,6 @@ from lector.logger import init_logging
|
||||
logger = init_logging(sys.argv)
|
||||
logger.log(60, 'Application started')
|
||||
|
||||
from PyQt5 import QtWidgets, QtGui, QtCore
|
||||
|
||||
from lector import database
|
||||
from lector import sorter
|
||||
from lector.toolbars import LibraryToolBar, BookToolBar
|
||||
@@ -178,15 +178,18 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
|
||||
self.libraryToolBar.tableViewButton.trigger()
|
||||
|
||||
# Book toolbar
|
||||
self.bookToolBar.addBookmarkButton.triggered.connect(self.add_bookmark)
|
||||
self.bookToolBar.addBookmarkButton.triggered.connect(
|
||||
lambda: self.tabWidget.currentWidget().sideDock.bookmarks.add_bookmark())
|
||||
self.bookToolBar.bookmarkButton.triggered.connect(
|
||||
lambda: self.tabWidget.currentWidget().toggle_side_dock(0))
|
||||
self.bookToolBar.annotationButton.triggered.connect(
|
||||
lambda: self.tabWidget.currentWidget().toggle_side_dock(1))
|
||||
self.bookToolBar.searchButton.triggered.connect(
|
||||
lambda: self.tabWidget.currentWidget().toggle_side_dock(2))
|
||||
self.bookToolBar.distractionFreeButton.triggered.connect(self.toggle_distraction_free)
|
||||
self.bookToolBar.fullscreenButton.triggered.connect(self.set_fullscreen)
|
||||
self.bookToolBar.distractionFreeButton.triggered.connect(
|
||||
self.toggle_distraction_free)
|
||||
self.bookToolBar.fullscreenButton.triggered.connect(
|
||||
lambda: self.tabWidget.currentWidget().go_fullscreen())
|
||||
|
||||
self.bookToolBar.doublePageButton.triggered.connect(self.change_page_view)
|
||||
self.bookToolBar.mangaModeButton.triggered.connect(self.change_page_view)
|
||||
@@ -460,11 +463,6 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
|
||||
if self.settings['perform_culling']:
|
||||
self.culling_timer.start(30)
|
||||
|
||||
def add_bookmark(self):
|
||||
if self.tabWidget.currentIndex() != 0:
|
||||
current_tab = self.tabWidget.currentWidget()
|
||||
current_tab.sideDock.bookmarks.add_bookmark()
|
||||
|
||||
def resizeEvent(self, event=None):
|
||||
if event:
|
||||
# This implies a vertical resize event only
|
||||
@@ -561,7 +559,8 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
|
||||
delete_hashes = [
|
||||
self.lib_ref.libraryModel.data(
|
||||
i, QtCore.Qt.UserRole + 6) for i in selected_indexes]
|
||||
persistent_indexes = [QtCore.QPersistentModelIndex(i) for i in selected_indexes]
|
||||
persistent_indexes = [
|
||||
QtCore.QPersistentModelIndex(i) for i in selected_indexes]
|
||||
|
||||
for i in persistent_indexes:
|
||||
self.lib_ref.libraryModel.removeRow(i.row())
|
||||
@@ -727,9 +726,6 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
|
||||
current_tab = self.tabWidget.currentWidget()
|
||||
current_tab.set_content(required_position)
|
||||
|
||||
def set_fullscreen(self):
|
||||
self.tabWidget.currentWidget().go_fullscreen()
|
||||
|
||||
def library_doubleclick(self, index):
|
||||
sender = self.sender().objectName()
|
||||
|
||||
|
@@ -89,6 +89,7 @@ class AnnotationsUI(QtWidgets.QDialog, annotationswindow.Ui_Dialog):
|
||||
|
||||
if 'foregroundColor' in annotation_components:
|
||||
self.foregroundCheck.setChecked(True)
|
||||
self.foregroundColor = annotation_components['foregroundColor']
|
||||
self.set_button_background_color(
|
||||
self.foregroundColorButton, annotation_components['foregroundColor'])
|
||||
else:
|
||||
@@ -96,6 +97,7 @@ class AnnotationsUI(QtWidgets.QDialog, annotationswindow.Ui_Dialog):
|
||||
|
||||
if 'highlightColor' in annotation_components:
|
||||
self.highlightCheck.setChecked(True)
|
||||
self.highlightColor = annotation_components['highlightColor']
|
||||
self.set_button_background_color(
|
||||
self.highlightColorButton, annotation_components['highlightColor'])
|
||||
else:
|
||||
|
@@ -118,8 +118,10 @@ class Bookmarks:
|
||||
self.parent = parent
|
||||
self.parentTab = self.parent.parent
|
||||
self.bookmarkTreeView = QtWidgets.QTreeView(self.parent)
|
||||
|
||||
self._translate = QtCore.QCoreApplication.translate
|
||||
self.bookmarks_string = self._translate('SideDock', 'Bookmarks')
|
||||
self.bookmark_default = self._translate('SideDock', 'New bookmark')
|
||||
|
||||
self.create_widgets()
|
||||
|
||||
@@ -136,7 +138,6 @@ class Bookmarks:
|
||||
|
||||
def add_bookmark(self, position=None):
|
||||
identifier = uuid.uuid4().hex[:10]
|
||||
description = self._translate('SideDock', 'New bookmark')
|
||||
|
||||
if self.parentTab.are_we_doing_images_only:
|
||||
chapter = self.parentTab.metadata['position']['current_chapter']
|
||||
@@ -149,12 +150,12 @@ class Bookmarks:
|
||||
self.parentTab.metadata['bookmarks'][identifier] = {
|
||||
'chapter': chapter,
|
||||
'cursor_position': cursor_position,
|
||||
'description': description}
|
||||
'description': self.bookmark_default}
|
||||
|
||||
self.parent.setVisible(True)
|
||||
self.parent.sideDockTabWidget.setCurrentIndex(0)
|
||||
self.add_bookmark_to_model(
|
||||
description, chapter, cursor_position, identifier, True)
|
||||
self.bookmark_default, chapter, cursor_position, identifier, True)
|
||||
|
||||
def add_bookmark_to_model(
|
||||
self, description, chapter_number, cursor_position,
|
||||
@@ -276,13 +277,15 @@ class Bookmarks:
|
||||
if action == deleteAction:
|
||||
child_index = self.parent.bookmarkProxyModel.mapToSource(index)
|
||||
parent_index = child_index.parent()
|
||||
child_rows = self.parent.bookmarkModel.itemFromIndex(parent_index).rowCount()
|
||||
child_rows = self.parent.bookmarkModel.itemFromIndex(
|
||||
parent_index).rowCount()
|
||||
delete_uuid = self.parent.bookmarkModel.data(
|
||||
child_index, QtCore.Qt.UserRole + 2)
|
||||
|
||||
self.parentTab.metadata['bookmarks'].pop(delete_uuid)
|
||||
|
||||
self.parent.bookmarkModel.removeRow(child_index.row(), child_index.parent())
|
||||
self.parent.bookmarkModel.removeRow(
|
||||
child_index.row(), child_index.parent())
|
||||
if child_rows == 1:
|
||||
self.parent.bookmarkModel.removeRow(parent_index.row())
|
||||
|
||||
@@ -292,6 +295,7 @@ class Annotations:
|
||||
self.parent = parent
|
||||
self.parentTab = self.parent.parent
|
||||
self.annotationListView = QtWidgets.QListView(self.parent)
|
||||
|
||||
self._translate = QtCore.QCoreApplication.translate
|
||||
self.annotations_string = self._translate('SideDock', 'Annotations')
|
||||
|
||||
@@ -339,6 +343,12 @@ class Search:
|
||||
self.matchWholeWordButton = QtWidgets.QToolButton(self.parent)
|
||||
self.searchResultsTreeView = QtWidgets.QTreeView(self.parent)
|
||||
|
||||
self._translate = QtCore.QCoreApplication.translate
|
||||
self.search_string = self._translate('SideDock', 'Search')
|
||||
self.search_book_string = self._translate('SideDock', 'Search entire book')
|
||||
self.case_sensitive_string = self._translate('SideDock', 'Match case')
|
||||
self.match_word_string = self._translate('SideDock', 'Match word')
|
||||
|
||||
self.create_widgets()
|
||||
|
||||
def create_widgets(self):
|
||||
@@ -361,32 +371,25 @@ class Search:
|
||||
|
||||
self.searchLineEdit.setFocusPolicy(QtCore.Qt.StrongFocus)
|
||||
self.searchLineEdit.setClearButtonEnabled(True)
|
||||
self._translate = QtCore.QCoreApplication.translate
|
||||
self.search_string = self._translate('SideDock', 'Search')
|
||||
self.searchLineEdit.setPlaceholderText(self.search_string)
|
||||
|
||||
search_book_string = self._translate('SideDock', 'Search entire book')
|
||||
|
||||
self.searchBookButton.setIcon(
|
||||
self.parent.main_window.QImageFactory.get_image('view-readermode'))
|
||||
self.searchBookButton.setToolTip(search_book_string)
|
||||
self.searchBookButton.setToolTip(self.search_book_string)
|
||||
self.searchBookButton.setCheckable(True)
|
||||
self.searchBookButton.setAutoRaise(True)
|
||||
self.searchBookButton.setIconSize(QtCore.QSize(20, 20))
|
||||
|
||||
case_sensitive_string = self._translate('SideDock', 'Match case')
|
||||
|
||||
self.caseSensitiveSearchButton.setIcon(
|
||||
self.parent.main_window.QImageFactory.get_image('search-case'))
|
||||
self.caseSensitiveSearchButton.setToolTip(case_sensitive_string)
|
||||
self.caseSensitiveSearchButton.setToolTip(self.case_sensitive_string)
|
||||
self.caseSensitiveSearchButton.setCheckable(True)
|
||||
self.caseSensitiveSearchButton.setAutoRaise(True)
|
||||
self.caseSensitiveSearchButton.setIconSize(QtCore.QSize(20, 20))
|
||||
|
||||
match_word_string = self._translate('SideDock', 'Match word')
|
||||
self.matchWholeWordButton.setIcon(
|
||||
self.parent.main_window.QImageFactory.get_image('search-word'))
|
||||
self.matchWholeWordButton.setToolTip(match_word_string)
|
||||
self.matchWholeWordButton.setToolTip(self.match_word_string)
|
||||
self.matchWholeWordButton.setCheckable(True)
|
||||
self.matchWholeWordButton.setAutoRaise(True)
|
||||
self.matchWholeWordButton.setIconSize(QtCore.QSize(20, 20))
|
||||
|
@@ -86,9 +86,15 @@ class ParseMOBI:
|
||||
|
||||
self.book_ref.parse_chapters(
|
||||
temp_dir=self.temp_dir, split_large_xml=self.split_large_xml)
|
||||
file_settings = {
|
||||
'images_only': False}
|
||||
return self.book['book_list'], file_settings
|
||||
|
||||
toc = []
|
||||
content = []
|
||||
for count, i in enumerate(self.book['book_list']):
|
||||
toc.append((1, i[0], count + 1))
|
||||
content.append(i[1])
|
||||
|
||||
# Return toc, content, images_only
|
||||
return toc, content, False
|
||||
|
||||
class HidePrinting:
|
||||
def __enter__(self):
|
||||
|
Reference in New Issue
Block a user