Change table layout. Leave Table Delegate in code for future reference.

This commit is contained in:
BasioMeusPuga
2018-03-02 11:40:07 +05:30
parent 98541a5ca3
commit d26d646e3f
3 changed files with 39 additions and 5 deletions

View File

@@ -26,7 +26,7 @@ import database
from resources import mainwindow, resources
from toolbars import LibraryToolBar, BookToolBar
from widgets import Tab, LibraryDelegate
from widgets import Tab, LibraryDelegate, TableViewProgressBarDelegate
from threaded import BackGroundTabUpdate, BackGroundBookAddition, BackGroundBookDeletion
from library import Library
from settings import Settings
@@ -222,7 +222,10 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
if 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(4, 1)
self.tableView.horizontalHeader().setStretchLastSection(True)
# self.tableView.setItemDelegateForColumn(
# 3, TableViewProgressBarDelegate(self.lib_ref.view_model, self))
self.tableView.horizontalHeader().sectionClicked.connect(
self.lib_ref.table_proxy_model.sort_table_columns)

View File

@@ -69,8 +69,9 @@ class TableProxyModel(QtCore.QSortFilterProxyModel):
# TODO
# The setData method
super(TableProxyModel, self).__init__(parent)
self.setObjectName('asdasd')
self.header_data = [
None, 'Title', 'Author', 'Status', 'Year', 'Tags']
None, 'Title', 'Author', 'Year', '%', 'Tags']
self.temp_dir = temp_dir
self.filter_text = None
self.active_library_filters = None
@@ -78,7 +79,7 @@ class TableProxyModel(QtCore.QSortFilterProxyModel):
self.role_dictionary = {
1: QtCore.Qt.UserRole, # Title
2: QtCore.Qt.UserRole + 1, # Author
4: QtCore.Qt.UserRole + 2, # Year
3: QtCore.Qt.UserRole + 2, # Year
5: QtCore.Qt.UserRole + 4} # Tags
self.common_functions = ProxyModelsCommonFunctions(self)
@@ -98,8 +99,11 @@ class TableProxyModel(QtCore.QSortFilterProxyModel):
source_index = self.mapToSource(index)
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 index.column() == 3:
if index.column() == 4:
return_pixmap = None
file_exists = item.data(QtCore.Qt.UserRole + 5)
@@ -120,7 +124,7 @@ class TableProxyModel(QtCore.QSortFilterProxyModel):
return return_pixmap
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 item.data(self.role_dictionary[index.column()])

View File

@@ -670,6 +670,33 @@ class BookmarkDelegate(QtWidgets.QStyledItemDelegate):
' ' + 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):
def __init__(self, parent=None):
super(PliantDockWidget, self).__init__(parent)