Small fixes

Compulsive refactor
This commit is contained in:
BasioMeusPuga
2019-01-31 12:26:40 +05:30
parent 268014cc3a
commit dfe0fceea9
5 changed files with 41 additions and 36 deletions

6
TODO
View File

@@ -64,7 +64,7 @@ TODO
✓ Spacebar should not cut off lines at the top ✓ Spacebar should not cut off lines at the top
✓ Track open bookmark windows so they can be closed quickly at exit ✓ Track open bookmark windows so they can be closed quickly at exit
✓ Search document using QTextCursor ✓ Search document using QTextCursor
Double page / column view Double page / column view
✓ For comics ✓ For comics
Caching is currently non functional Caching is currently non functional
Annotations Annotations
@@ -73,7 +73,7 @@ TODO
Adjust key navigation according to viewport dimensions Adjust key navigation according to viewport dimensions
Filetypes: Filetypes:
✓ pdf support ✓ pdf support
Parse TOC Parse TOC
✓ epub support ✓ epub support
✓ Homegrown solution please ✓ Homegrown solution please
✓ cbz, cbr support ✓ cbz, cbr support
@@ -90,8 +90,6 @@ TODO
✓ Define every widget in code ✓ Define every widget in code
Bugs: Bugs:
Deselecting all directories in the settings dialog also filters out manually added books 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 Last line in QTextBrowser should never be cut off
Does image alignment need to be centered? Does image alignment need to be centered?

View File

@@ -29,6 +29,8 @@ install_dir = os.path.realpath(__file__)
install_dir = pathlib.Path(install_dir).parents[1] install_dir = pathlib.Path(install_dir).parents[1]
sys.path.append(str(install_dir)) sys.path.append(str(install_dir))
from PyQt5 import QtWidgets, QtGui, QtCore
# Init logging # Init logging
# Must be done first and at the module level # Must be done first and at the module level
# or it won't work properly in case of the imports below # 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 = init_logging(sys.argv)
logger.log(60, 'Application started') logger.log(60, 'Application started')
from PyQt5 import QtWidgets, QtGui, QtCore
from lector import database from lector import database
from lector import sorter from lector import sorter
from lector.toolbars import LibraryToolBar, BookToolBar from lector.toolbars import LibraryToolBar, BookToolBar
@@ -178,15 +178,18 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
self.libraryToolBar.tableViewButton.trigger() self.libraryToolBar.tableViewButton.trigger()
# Book toolbar # 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( self.bookToolBar.bookmarkButton.triggered.connect(
lambda: self.tabWidget.currentWidget().toggle_side_dock(0)) lambda: self.tabWidget.currentWidget().toggle_side_dock(0))
self.bookToolBar.annotationButton.triggered.connect( self.bookToolBar.annotationButton.triggered.connect(
lambda: self.tabWidget.currentWidget().toggle_side_dock(1)) lambda: self.tabWidget.currentWidget().toggle_side_dock(1))
self.bookToolBar.searchButton.triggered.connect( self.bookToolBar.searchButton.triggered.connect(
lambda: self.tabWidget.currentWidget().toggle_side_dock(2)) lambda: self.tabWidget.currentWidget().toggle_side_dock(2))
self.bookToolBar.distractionFreeButton.triggered.connect(self.toggle_distraction_free) self.bookToolBar.distractionFreeButton.triggered.connect(
self.bookToolBar.fullscreenButton.triggered.connect(self.set_fullscreen) 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.doublePageButton.triggered.connect(self.change_page_view)
self.bookToolBar.mangaModeButton.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']: if self.settings['perform_culling']:
self.culling_timer.start(30) 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): def resizeEvent(self, event=None):
if event: if event:
# This implies a vertical resize event only # This implies a vertical resize event only
@@ -561,7 +559,8 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
delete_hashes = [ delete_hashes = [
self.lib_ref.libraryModel.data( self.lib_ref.libraryModel.data(
i, QtCore.Qt.UserRole + 6) for i in selected_indexes] 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: for i in persistent_indexes:
self.lib_ref.libraryModel.removeRow(i.row()) 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 = self.tabWidget.currentWidget()
current_tab.set_content(required_position) current_tab.set_content(required_position)
def set_fullscreen(self):
self.tabWidget.currentWidget().go_fullscreen()
def library_doubleclick(self, index): def library_doubleclick(self, index):
sender = self.sender().objectName() sender = self.sender().objectName()

View File

@@ -89,6 +89,7 @@ class AnnotationsUI(QtWidgets.QDialog, annotationswindow.Ui_Dialog):
if 'foregroundColor' in annotation_components: if 'foregroundColor' in annotation_components:
self.foregroundCheck.setChecked(True) self.foregroundCheck.setChecked(True)
self.foregroundColor = annotation_components['foregroundColor']
self.set_button_background_color( self.set_button_background_color(
self.foregroundColorButton, annotation_components['foregroundColor']) self.foregroundColorButton, annotation_components['foregroundColor'])
else: else:
@@ -96,6 +97,7 @@ class AnnotationsUI(QtWidgets.QDialog, annotationswindow.Ui_Dialog):
if 'highlightColor' in annotation_components: if 'highlightColor' in annotation_components:
self.highlightCheck.setChecked(True) self.highlightCheck.setChecked(True)
self.highlightColor = annotation_components['highlightColor']
self.set_button_background_color( self.set_button_background_color(
self.highlightColorButton, annotation_components['highlightColor']) self.highlightColorButton, annotation_components['highlightColor'])
else: else:

View File

@@ -118,8 +118,10 @@ class Bookmarks:
self.parent = parent self.parent = parent
self.parentTab = self.parent.parent self.parentTab = self.parent.parent
self.bookmarkTreeView = QtWidgets.QTreeView(self.parent) self.bookmarkTreeView = QtWidgets.QTreeView(self.parent)
self._translate = QtCore.QCoreApplication.translate self._translate = QtCore.QCoreApplication.translate
self.bookmarks_string = self._translate('SideDock', 'Bookmarks') self.bookmarks_string = self._translate('SideDock', 'Bookmarks')
self.bookmark_default = self._translate('SideDock', 'New bookmark')
self.create_widgets() self.create_widgets()
@@ -136,7 +138,6 @@ class Bookmarks:
def add_bookmark(self, position=None): def add_bookmark(self, position=None):
identifier = uuid.uuid4().hex[:10] identifier = uuid.uuid4().hex[:10]
description = self._translate('SideDock', 'New bookmark')
if self.parentTab.are_we_doing_images_only: if self.parentTab.are_we_doing_images_only:
chapter = self.parentTab.metadata['position']['current_chapter'] chapter = self.parentTab.metadata['position']['current_chapter']
@@ -149,12 +150,12 @@ class Bookmarks:
self.parentTab.metadata['bookmarks'][identifier] = { self.parentTab.metadata['bookmarks'][identifier] = {
'chapter': chapter, 'chapter': chapter,
'cursor_position': cursor_position, 'cursor_position': cursor_position,
'description': description} 'description': self.bookmark_default}
self.parent.setVisible(True) self.parent.setVisible(True)
self.parent.sideDockTabWidget.setCurrentIndex(0) self.parent.sideDockTabWidget.setCurrentIndex(0)
self.add_bookmark_to_model( self.add_bookmark_to_model(
description, chapter, cursor_position, identifier, True) self.bookmark_default, chapter, cursor_position, identifier, True)
def add_bookmark_to_model( def add_bookmark_to_model(
self, description, chapter_number, cursor_position, self, description, chapter_number, cursor_position,
@@ -276,13 +277,15 @@ class Bookmarks:
if action == deleteAction: if action == deleteAction:
child_index = self.parent.bookmarkProxyModel.mapToSource(index) child_index = self.parent.bookmarkProxyModel.mapToSource(index)
parent_index = child_index.parent() 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( delete_uuid = self.parent.bookmarkModel.data(
child_index, QtCore.Qt.UserRole + 2) child_index, QtCore.Qt.UserRole + 2)
self.parentTab.metadata['bookmarks'].pop(delete_uuid) 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: if child_rows == 1:
self.parent.bookmarkModel.removeRow(parent_index.row()) self.parent.bookmarkModel.removeRow(parent_index.row())
@@ -292,6 +295,7 @@ class Annotations:
self.parent = parent self.parent = parent
self.parentTab = self.parent.parent self.parentTab = self.parent.parent
self.annotationListView = QtWidgets.QListView(self.parent) self.annotationListView = QtWidgets.QListView(self.parent)
self._translate = QtCore.QCoreApplication.translate self._translate = QtCore.QCoreApplication.translate
self.annotations_string = self._translate('SideDock', 'Annotations') self.annotations_string = self._translate('SideDock', 'Annotations')
@@ -339,6 +343,12 @@ class Search:
self.matchWholeWordButton = QtWidgets.QToolButton(self.parent) self.matchWholeWordButton = QtWidgets.QToolButton(self.parent)
self.searchResultsTreeView = QtWidgets.QTreeView(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() self.create_widgets()
def create_widgets(self): def create_widgets(self):
@@ -361,32 +371,25 @@ class Search:
self.searchLineEdit.setFocusPolicy(QtCore.Qt.StrongFocus) self.searchLineEdit.setFocusPolicy(QtCore.Qt.StrongFocus)
self.searchLineEdit.setClearButtonEnabled(True) self.searchLineEdit.setClearButtonEnabled(True)
self._translate = QtCore.QCoreApplication.translate
self.search_string = self._translate('SideDock', 'Search')
self.searchLineEdit.setPlaceholderText(self.search_string) self.searchLineEdit.setPlaceholderText(self.search_string)
search_book_string = self._translate('SideDock', 'Search entire book')
self.searchBookButton.setIcon( self.searchBookButton.setIcon(
self.parent.main_window.QImageFactory.get_image('view-readermode')) 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.setCheckable(True)
self.searchBookButton.setAutoRaise(True) self.searchBookButton.setAutoRaise(True)
self.searchBookButton.setIconSize(QtCore.QSize(20, 20)) self.searchBookButton.setIconSize(QtCore.QSize(20, 20))
case_sensitive_string = self._translate('SideDock', 'Match case')
self.caseSensitiveSearchButton.setIcon( self.caseSensitiveSearchButton.setIcon(
self.parent.main_window.QImageFactory.get_image('search-case')) 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.setCheckable(True)
self.caseSensitiveSearchButton.setAutoRaise(True) self.caseSensitiveSearchButton.setAutoRaise(True)
self.caseSensitiveSearchButton.setIconSize(QtCore.QSize(20, 20)) self.caseSensitiveSearchButton.setIconSize(QtCore.QSize(20, 20))
match_word_string = self._translate('SideDock', 'Match word')
self.matchWholeWordButton.setIcon( self.matchWholeWordButton.setIcon(
self.parent.main_window.QImageFactory.get_image('search-word')) 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.setCheckable(True)
self.matchWholeWordButton.setAutoRaise(True) self.matchWholeWordButton.setAutoRaise(True)
self.matchWholeWordButton.setIconSize(QtCore.QSize(20, 20)) self.matchWholeWordButton.setIconSize(QtCore.QSize(20, 20))

View File

@@ -86,9 +86,15 @@ class ParseMOBI:
self.book_ref.parse_chapters( self.book_ref.parse_chapters(
temp_dir=self.temp_dir, split_large_xml=self.split_large_xml) temp_dir=self.temp_dir, split_large_xml=self.split_large_xml)
file_settings = {
'images_only': False} toc = []
return self.book['book_list'], file_settings 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: class HidePrinting:
def __enter__(self): def __enter__(self):