Change table layout. Leave Table Delegate in code for future reference.
This commit is contained in:
@@ -26,7 +26,7 @@ import database
|
|||||||
|
|
||||||
from resources import mainwindow, resources
|
from resources import mainwindow, resources
|
||||||
from toolbars import LibraryToolBar, BookToolBar
|
from toolbars import LibraryToolBar, BookToolBar
|
||||||
from widgets import Tab, LibraryDelegate
|
from widgets import Tab, LibraryDelegate, TableViewProgressBarDelegate
|
||||||
from threaded import BackGroundTabUpdate, BackGroundBookAddition, BackGroundBookDeletion
|
from threaded import BackGroundTabUpdate, BackGroundBookAddition, BackGroundBookDeletion
|
||||||
from library import Library
|
from library import Library
|
||||||
from settings import Settings
|
from settings import Settings
|
||||||
@@ -222,7 +222,10 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
|
|||||||
if self.settings['main_window_headers']:
|
if self.settings['main_window_headers']:
|
||||||
for count, i in enumerate(self.settings['main_window_headers']):
|
for count, i in enumerate(self.settings['main_window_headers']):
|
||||||
self.tableView.horizontalHeader().resizeSection(count, int(i))
|
self.tableView.horizontalHeader().resizeSection(count, int(i))
|
||||||
|
self.tableView.horizontalHeader().resizeSection(4, 1)
|
||||||
self.tableView.horizontalHeader().setStretchLastSection(True)
|
self.tableView.horizontalHeader().setStretchLastSection(True)
|
||||||
|
# self.tableView.setItemDelegateForColumn(
|
||||||
|
# 3, TableViewProgressBarDelegate(self.lib_ref.view_model, self))
|
||||||
self.tableView.horizontalHeader().sectionClicked.connect(
|
self.tableView.horizontalHeader().sectionClicked.connect(
|
||||||
self.lib_ref.table_proxy_model.sort_table_columns)
|
self.lib_ref.table_proxy_model.sort_table_columns)
|
||||||
|
|
||||||
|
12
models.py
12
models.py
@@ -69,8 +69,9 @@ class TableProxyModel(QtCore.QSortFilterProxyModel):
|
|||||||
# TODO
|
# TODO
|
||||||
# The setData method
|
# The setData method
|
||||||
super(TableProxyModel, self).__init__(parent)
|
super(TableProxyModel, self).__init__(parent)
|
||||||
|
self.setObjectName('asdasd')
|
||||||
self.header_data = [
|
self.header_data = [
|
||||||
None, 'Title', 'Author', 'Status', 'Year', 'Tags']
|
None, 'Title', 'Author', 'Year', '%', 'Tags']
|
||||||
self.temp_dir = temp_dir
|
self.temp_dir = temp_dir
|
||||||
self.filter_text = None
|
self.filter_text = None
|
||||||
self.active_library_filters = None
|
self.active_library_filters = None
|
||||||
@@ -78,7 +79,7 @@ class TableProxyModel(QtCore.QSortFilterProxyModel):
|
|||||||
self.role_dictionary = {
|
self.role_dictionary = {
|
||||||
1: QtCore.Qt.UserRole, # Title
|
1: QtCore.Qt.UserRole, # Title
|
||||||
2: QtCore.Qt.UserRole + 1, # Author
|
2: QtCore.Qt.UserRole + 1, # Author
|
||||||
4: QtCore.Qt.UserRole + 2, # Year
|
3: QtCore.Qt.UserRole + 2, # Year
|
||||||
5: QtCore.Qt.UserRole + 4} # Tags
|
5: QtCore.Qt.UserRole + 4} # Tags
|
||||||
self.common_functions = ProxyModelsCommonFunctions(self)
|
self.common_functions = ProxyModelsCommonFunctions(self)
|
||||||
|
|
||||||
@@ -98,8 +99,11 @@ class TableProxyModel(QtCore.QSortFilterProxyModel):
|
|||||||
source_index = self.mapToSource(index)
|
source_index = self.mapToSource(index)
|
||||||
item = self.sourceModel().item(source_index.row(), 0)
|
item = self.sourceModel().item(source_index.row(), 0)
|
||||||
|
|
||||||
|
if role == QtCore.Qt.TextAlignmentRole and index.column() == 3:
|
||||||
|
return QtCore.Qt.AlignHCenter
|
||||||
|
|
||||||
if role == QtCore.Qt.DecorationRole:
|
if role == QtCore.Qt.DecorationRole:
|
||||||
if index.column() == 3:
|
if index.column() == 4:
|
||||||
return_pixmap = None
|
return_pixmap = None
|
||||||
|
|
||||||
file_exists = item.data(QtCore.Qt.UserRole + 5)
|
file_exists = item.data(QtCore.Qt.UserRole + 5)
|
||||||
@@ -120,7 +124,7 @@ class TableProxyModel(QtCore.QSortFilterProxyModel):
|
|||||||
return return_pixmap
|
return return_pixmap
|
||||||
|
|
||||||
elif role == QtCore.Qt.DisplayRole or role == QtCore.Qt.EditRole:
|
elif role == QtCore.Qt.DisplayRole or role == QtCore.Qt.EditRole:
|
||||||
if index.column() in (0, 3): # Cover and Status
|
if index.column() in (0, 4): # Cover and Status
|
||||||
return QtCore.QVariant()
|
return QtCore.QVariant()
|
||||||
|
|
||||||
return item.data(self.role_dictionary[index.column()])
|
return item.data(self.role_dictionary[index.column()])
|
||||||
|
27
widgets.py
27
widgets.py
@@ -670,6 +670,33 @@ class BookmarkDelegate(QtWidgets.QStyledItemDelegate):
|
|||||||
' ' + chapter_name)
|
' ' + chapter_name)
|
||||||
|
|
||||||
|
|
||||||
|
class TableViewProgressBarDelegate(QtWidgets.QStyledItemDelegate):
|
||||||
|
def __init__(self, item_model, parent=None):
|
||||||
|
super(TableViewProgressBarDelegate, self).__init__(parent)
|
||||||
|
self.parent = parent
|
||||||
|
self.item_model = item_model
|
||||||
|
|
||||||
|
def paint(self, painter, option, index):
|
||||||
|
item = self.item_model.item(index.row())
|
||||||
|
position = item.data(QtCore.Qt.UserRole + 7)
|
||||||
|
|
||||||
|
if position:
|
||||||
|
current_chapter = position['current_chapter']
|
||||||
|
total_chapters = position['total_chapters']
|
||||||
|
|
||||||
|
progress = (current_chapter * 100) // total_chapters
|
||||||
|
|
||||||
|
progressBarOption = QtWidgets.QStyleOptionProgressBar()
|
||||||
|
progressBarOption.rect = option.rect
|
||||||
|
progressBarOption.minimum = 0
|
||||||
|
progressBarOption.maximum = 100
|
||||||
|
progressBarOption.progress = progress
|
||||||
|
progressBarOption.textVisible = False
|
||||||
|
|
||||||
|
QtWidgets.QApplication.style().drawControl(
|
||||||
|
QtWidgets.QStyle.CE_ProgressBar, progressBarOption, painter)
|
||||||
|
|
||||||
|
|
||||||
class PliantDockWidget(QtWidgets.QDockWidget):
|
class PliantDockWidget(QtWidgets.QDockWidget):
|
||||||
def __init__(self, parent=None):
|
def __init__(self, parent=None):
|
||||||
super(PliantDockWidget, self).__init__(parent)
|
super(PliantDockWidget, self).__init__(parent)
|
||||||
|
Reference in New Issue
Block a user