Fixes to progress updates in the Table View
This commit is contained in:
18
__main__.py
18
__main__.py
@@ -638,9 +638,20 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
|
||||
current_tab.metadata[
|
||||
'position']['is_read'] = False
|
||||
|
||||
# TODO
|
||||
# This doesn't update correctly
|
||||
# try:
|
||||
# position_perc = (
|
||||
# current_tab.metadata[
|
||||
# 'current_chapter'] * 100 / current_tab.metadata['total_chapters'])
|
||||
# except KeyError:
|
||||
# position_perc = None
|
||||
|
||||
if model_index:
|
||||
self.lib_ref.view_model.setData(
|
||||
model_index, current_tab.metadata, QtCore.Qt.UserRole + 3)
|
||||
self.lib_ref.view_model.setData(
|
||||
model_index, position_perc, QtCore.Qt.UserRole + 7)
|
||||
|
||||
# Go on to change the value of the Table of Contents box
|
||||
current_tab.change_chapter_tocBox()
|
||||
@@ -1042,12 +1053,17 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
|
||||
position['is_read'] = True
|
||||
|
||||
metadata['position'] = position
|
||||
self.lib_ref.view_model.setData(i, metadata, QtCore.Qt.UserRole + 3)
|
||||
|
||||
position_perc = None
|
||||
last_accessed_time = None
|
||||
if action == readAction:
|
||||
last_accessed_time = QtCore.QDateTime().currentDateTime()
|
||||
position_perc = 100
|
||||
|
||||
self.lib_ref.view_model.setData(i, metadata, QtCore.Qt.UserRole + 3)
|
||||
self.lib_ref.view_model.setData(i, position_perc, QtCore.Qt.UserRole + 7)
|
||||
self.lib_ref.view_model.setData(i, last_accessed_time, QtCore.Qt.UserRole + 12)
|
||||
self.lib_ref.update_proxymodels()
|
||||
|
||||
database_dict = {
|
||||
'Position': position,
|
||||
|
11
library.py
11
library.py
@@ -83,9 +83,18 @@ class Library:
|
||||
except TypeError: # Because of datetime.datetime.now() above
|
||||
date_added = i[3]
|
||||
|
||||
position_perc = None
|
||||
position = i[5]
|
||||
if position:
|
||||
position = pickle.loads(position)
|
||||
if position['is_read']:
|
||||
position_perc = 100
|
||||
else:
|
||||
try:
|
||||
position_perc = (
|
||||
position['current_chapter'] * 100 / position['total_chapters'])
|
||||
except KeyError:
|
||||
position_perc = None
|
||||
|
||||
file_exists = os.path.exists(path)
|
||||
|
||||
@@ -126,7 +135,7 @@ class Library:
|
||||
item.setData(tags, QtCore.Qt.UserRole + 4)
|
||||
item.setData(file_exists, QtCore.Qt.UserRole + 5)
|
||||
item.setData(i[8], QtCore.Qt.UserRole + 6) # File hash
|
||||
item.setData(position, QtCore.Qt.UserRole + 30)
|
||||
item.setData(position_perc, QtCore.Qt.UserRole + 7)
|
||||
item.setData(False, QtCore.Qt.UserRole + 8) # Is the cover being displayed?
|
||||
item.setData(date_added, QtCore.Qt.UserRole + 9)
|
||||
item.setData(last_accessed, QtCore.Qt.UserRole + 12)
|
||||
|
21
models.py
21
models.py
@@ -77,6 +77,7 @@ class TableProxyModel(QtCore.QSortFilterProxyModel):
|
||||
1: QtCore.Qt.UserRole, # Title
|
||||
2: QtCore.Qt.UserRole + 1, # Author
|
||||
3: QtCore.Qt.UserRole + 2, # Year
|
||||
4: QtCore.Qt.UserRole + 7, # Position percentage
|
||||
5: QtCore.Qt.UserRole + 4} # Tags
|
||||
self.common_functions = ProxyModelsCommonFunctions(self)
|
||||
|
||||
@@ -106,14 +107,25 @@ class TableProxyModel(QtCore.QSortFilterProxyModel):
|
||||
file_exists = item.data(QtCore.Qt.UserRole + 5)
|
||||
metadata = item.data(QtCore.Qt.UserRole + 3)
|
||||
position = metadata['position']
|
||||
if position:
|
||||
is_read = position['is_read']
|
||||
|
||||
if not file_exists:
|
||||
return_pixmap = pie_chart.pixmapper(
|
||||
return pie_chart.pixmapper(
|
||||
-1, None, None, QtCore.Qt.SizeHintRole + 10)
|
||||
|
||||
if position:
|
||||
current_chapter = position['current_chapter']
|
||||
total_chapters = position['total_chapters']
|
||||
if is_read:
|
||||
current_chapter = total_chapters = 100
|
||||
else:
|
||||
try:
|
||||
current_chapter = position['current_chapter']
|
||||
total_chapters = position['total_chapters']
|
||||
|
||||
if current_chapter == 1:
|
||||
raise KeyError
|
||||
except KeyError:
|
||||
return
|
||||
|
||||
return_pixmap = pie_chart.pixmapper(
|
||||
current_chapter, total_chapters, self.temp_dir,
|
||||
@@ -139,9 +151,6 @@ class TableProxyModel(QtCore.QSortFilterProxyModel):
|
||||
return output
|
||||
|
||||
def sort_table_columns(self, column):
|
||||
if column == 3:
|
||||
return
|
||||
|
||||
sorting_order = self.sender().sortIndicatorOrder()
|
||||
self.sort(0, sorting_order)
|
||||
self.setSortRole(self.role_dictionary[column])
|
||||
|
Reference in New Issue
Block a user