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