Uniform tab sizes

Path search
PDF parser exception handling
This commit is contained in:
BasioMeusPuga
2018-05-13 15:54:17 -04:00
parent 3e54340694
commit ffaace2eaa
9 changed files with 38 additions and 9 deletions

View File

@@ -167,7 +167,7 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
self.bookToolBar.annotationButton.triggered.connect(self.toggle_dock_widgets) self.bookToolBar.annotationButton.triggered.connect(self.toggle_dock_widgets)
self.bookToolBar.addBookmarkButton.triggered.connect(self.add_bookmark) self.bookToolBar.addBookmarkButton.triggered.connect(self.add_bookmark)
self.bookToolBar.bookmarkButton.triggered.connect(self.toggle_dock_widgets) self.bookToolBar.bookmarkButton.triggered.connect(self.toggle_dock_widgets)
self.bookToolBar.distractionFreeButton.triggered.connect(self.toggle_dock_widgets) self.bookToolBar.distractionFreeButton.triggered.connect(self.toggle_distraction_free)
self.bookToolBar.fullscreenButton.triggered.connect(self.set_fullscreen) self.bookToolBar.fullscreenButton.triggered.connect(self.set_fullscreen)
for count, i in enumerate(self.display_profiles): for count, i in enumerate(self.display_profiles):
@@ -239,6 +239,7 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
self.listView.customContextMenuRequested.connect(self.generate_library_context_menu) self.listView.customContextMenuRequested.connect(self.generate_library_context_menu)
self.listView.verticalScrollBar().valueChanged.connect(self.start_culling_timer) self.listView.verticalScrollBar().valueChanged.connect(self.start_culling_timer)
self.listView.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded) self.listView.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded)
self.listView.setAcceptDrops(True)
self.listView.setStyleSheet( self.listView.setStyleSheet(
"QListView {{background-color: {0}}}".format( "QListView {{background-color: {0}}}".format(
@@ -699,9 +700,6 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
self.tabWidget.setCurrentIndex(self.tabWidget.count() - 1) self.tabWidget.setCurrentIndex(self.tabWidget.count() - 1)
finishing_touches() finishing_touches()
# TODO
# def dropEvent
def statusbar_visibility(self): def statusbar_visibility(self):
if self.sender() == self.libraryToolBar.searchBar: if self.sender() == self.libraryToolBar.searchBar:
if self.libraryToolBar.searchBar.text() == '': if self.libraryToolBar.searchBar.text() == '':

View File

@@ -160,6 +160,7 @@ class Library:
item.setData(False, QtCore.Qt.UserRole + 8) # Is the cover being displayed? item.setData(False, QtCore.Qt.UserRole + 8) # Is the cover being displayed?
item.setData(date_added, QtCore.Qt.UserRole + 9) item.setData(date_added, QtCore.Qt.UserRole + 9)
item.setData(last_accessed, QtCore.Qt.UserRole + 12) item.setData(last_accessed, QtCore.Qt.UserRole + 12)
item.setData(path, QtCore.Qt.UserRole + 13)
item.setIcon(QtGui.QIcon(img_pixmap)) item.setIcon(QtGui.QIcon(img_pixmap))
self.libraryModel.appendRow(item) self.libraryModel.appendRow(item)

View File

@@ -202,6 +202,7 @@ class ProxyModelsCommonFunctions:
directory_name = model.data(this_index, QtCore.Qt.UserRole + 10) directory_name = model.data(this_index, QtCore.Qt.UserRole + 10)
directory_tags = model.data(this_index, QtCore.Qt.UserRole + 11) directory_tags = model.data(this_index, QtCore.Qt.UserRole + 11)
last_accessed = model.data(this_index, QtCore.Qt.UserRole + 12) last_accessed = model.data(this_index, QtCore.Qt.UserRole + 12)
file_path = model.data(this_index, QtCore.Qt.UserRole + 13)
# Hide untouched files when sorting by last accessed # Hide untouched files when sorting by last accessed
if self.parent_model.sorting_box_position == 4 and not last_accessed: if self.parent_model.sorting_box_position == 4 and not last_accessed:
@@ -222,7 +223,9 @@ class ProxyModelsCommonFunctions:
else: else:
valid_data = [ valid_data = [
i.lower() for i in ( i.lower() for i in (
title, author, tags, directory_name, directory_tags) if i is not None] title, author, tags, directory_name,
directory_tags, file_path)
if i is not None]
for i in valid_data: for i in valid_data:
if self.parent_model.filter_text.lower() in i: if self.parent_model.filter_text.lower() in i:
return True return True

View File

@@ -64,9 +64,12 @@ class ParsePDF:
popplerqt5.Poppler.Document.Antialiasing popplerqt5.Poppler.Document.Antialiasing
and popplerqt5.Poppler.Document.TextAntialiasing) and popplerqt5.Poppler.Document.TextAntialiasing)
try:
cover_page = self.book.page(0) cover_page = self.book.page(0)
cover_image = cover_page.renderToImage(300, 300) cover_image = cover_page.renderToImage(300, 300)
return resize_image(cover_image) return resize_image(cover_image)
except AttributeError:
return None
def get_isbn(self): def get_isbn(self):
return None return None

View File

@@ -166,6 +166,13 @@
</property> </property>
</widget> </widget>
</item> </item>
<item>
<widget class="QCheckBox" name="attenuateTitles">
<property name="text">
<string>Shrink long book titles</string>
</property>
</widget>
</item>
</layout> </layout>
</item> </item>
</layout> </layout>

View File

@@ -102,6 +102,9 @@ class Ui_Dialog(object):
self.autoTags = QtWidgets.QCheckBox(self.groupBox) self.autoTags = QtWidgets.QCheckBox(self.groupBox)
self.autoTags.setObjectName("autoTags") self.autoTags.setObjectName("autoTags")
self.horizontalLayout_9.addWidget(self.autoTags) self.horizontalLayout_9.addWidget(self.autoTags)
self.attenuateTitles = QtWidgets.QCheckBox(self.groupBox)
self.attenuateTitles.setObjectName("attenuateTitles")
self.horizontalLayout_9.addWidget(self.attenuateTitles)
self.verticalLayout_2.addLayout(self.horizontalLayout_9) self.verticalLayout_2.addLayout(self.horizontalLayout_9)
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)
@@ -314,6 +317,7 @@ class Ui_Dialog(object):
self.performCulling.setToolTip(_translate("Dialog", "Enabling reduces startup time and memory usage")) self.performCulling.setToolTip(_translate("Dialog", "Enabling reduces startup time and memory usage"))
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.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"))

View File

@@ -121,6 +121,8 @@ class Settings:
'hideScrollBars', 'False').capitalize()) 'hideScrollBars', '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['attenuate_titles'] = literal_eval(self.settings.value(
'attenuateTitles', 'False').capitalize())
self.settings.endGroup() self.settings.endGroup()
self.settings.beginGroup('dialogSettings') self.settings.beginGroup('dialogSettings')
@@ -198,6 +200,7 @@ class Settings:
self.settings.setValue('dictionaryLanguage', str(current_settings['dictionary_language'])) self.settings.setValue('dictionaryLanguage', str(current_settings['dictionary_language']))
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('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.endGroup() self.settings.endGroup()

View File

@@ -95,6 +95,7 @@ class SettingsUI(QtWidgets.QDialog, settingswindow.Ui_Dialog):
self.performCulling.setChecked(self.main_window.settings['perform_culling']) self.performCulling.setChecked(self.main_window.settings['perform_culling'])
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.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'])
@@ -105,6 +106,7 @@ class SettingsUI(QtWidgets.QDialog, settingswindow.Ui_Dialog):
self.performCulling.clicked.connect(self.manage_checkboxes) self.performCulling.clicked.connect(self.manage_checkboxes)
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.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)
@@ -164,6 +166,11 @@ class SettingsUI(QtWidgets.QDialog, settingswindow.Ui_Dialog):
# Generate the filesystem treeView # Generate the filesystem treeView
self.generate_tree() self.generate_tree()
# Hide the image annotation tab
# TODO
# Maybe get off your lazy ass and write something for this
self.tabWidget.tabBar().setVisible(False)
def generate_tree(self): def generate_tree(self):
# Fetch all directories in the database # Fetch all directories in the database
paths = database.DatabaseFunctions( paths = database.DatabaseFunctions(
@@ -366,7 +373,8 @@ class SettingsUI(QtWidgets.QDialog, settingswindow.Ui_Dialog):
'fileRemember': 'remember_files', 'fileRemember': 'remember_files',
'performCulling': 'perform_culling', 'performCulling': 'perform_culling',
'cachingEnabled': 'caching_enabled', 'cachingEnabled': 'caching_enabled',
'hideScrollBars': 'hide_scrollbars'} 'hideScrollBars': 'hide_scrollbars',
'attenuateTitles': 'attenuate_titles'}
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]]

View File

@@ -187,6 +187,8 @@ class Tab(QtWidgets.QWidget):
self.bookmarkDock.setWindowOpacity(.95) self.bookmarkDock.setWindowOpacity(.95)
title = self.metadata['title'] title = self.metadata['title']
if self.main_window.settings['attenuate_titles'] and len(title) > 30:
title = title[:30] + '...'
self.main_window.tabWidget.addTab(self, title) self.main_window.tabWidget.addTab(self, title)
this_tab_index = self.main_window.tabWidget.indexOf(self) this_tab_index = self.main_window.tabWidget.indexOf(self)