From af1cd21ec31d499ec693a0ee7f5cb65a10eed731 Mon Sep 17 00:00:00 2001 From: BasioMeusPuga Date: Tue, 28 Nov 2017 12:13:36 +0530 Subject: [PATCH] Fix library grid misalignment --- __main__.py | 32 +++---- resources/mainwindow.py | 37 ++++++-- resources/raw/main.ui | 188 +++++++++++++++++++++++++--------------- 3 files changed, 158 insertions(+), 99 deletions(-) diff --git a/__main__.py b/__main__.py index 413ea77..d24ae14 100755 --- a/__main__.py +++ b/__main__.py @@ -90,7 +90,7 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow): self.settings_dialog = SettingsUI() # Hide or show the main widget of the library - self.tableView.setVisible(False) + self.stackedWidget.setCurrentIndex(0) # Empty variables that will be infested soon self.last_open_books = None @@ -193,7 +193,7 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow): # Init display models self.lib_ref.generate_model('build') - self.lib_ref.create_table_model() # TODO - Make this accompany other proxy model generations + self.lib_ref.create_table_model() self.lib_ref.create_proxymodel() # ListView @@ -225,14 +225,6 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow): self.last_open_books = None def resizeEvent(self, event=None): - # TODO - # View switching borks the grid - - # In case the listView isn't visible because the - # tableview is highlighted instead - if not self.listView.isVisible(): - return - if event: # This implies a vertical resize event only # We ain't about that lifestyle @@ -284,15 +276,14 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow): def move_on(self): self.sorterProgress.setVisible(False) + self.lib_ref.create_table_model() self.lib_ref.create_proxymodel() - # Create the table model - # Since images aren't displayed here, it's fast enough to not - # need addition to - # self.create_table_model() - self.lib_ref.create_table_model() - def delete_books(self): + # TODO + # Use maptosource() here to get the view_model + # indices selected in the listView + selected_books = self.listView.selectedIndexes() if selected_books: def ifcontinue(box_button): @@ -306,6 +297,7 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow): self.database_path).delete_from_database(selected_hashes) self.lib_ref.generate_model('build') + self.lib_ref.create_table_model() self.lib_ref.create_proxymodel() selected_number = len(selected_books) @@ -321,14 +313,14 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow): def switch_library_view(self): if self.libraryToolBar.coverViewButton.isChecked(): - self.listView.setVisible(True) - self.tableView.setVisible(False) + self.stackedWidget.setCurrentIndex(0) self.libraryToolBar.sortingBoxAction.setVisible(True) else: - self.listView.setVisible(False) - self.tableView.setVisible(True) + self.stackedWidget.setCurrentIndex(1) self.libraryToolBar.sortingBoxAction.setVisible(False) + self.resizeEvent() + def tab_switch(self): if self.tabWidget.currentIndex() == 0: diff --git a/resources/mainwindow.py b/resources/mainwindow.py index ce15250..a4a6de1 100644 --- a/resources/mainwindow.py +++ b/resources/mainwindow.py @@ -11,7 +11,7 @@ from PyQt5 import QtCore, QtGui, QtWidgets class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") - MainWindow.resize(1062, 720) + MainWindow.resize(1049, 720) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.gridLayout = QtWidgets.QGridLayout(self.centralwidget) @@ -23,10 +23,20 @@ class Ui_MainWindow(object): self.tabWidget.setObjectName("tabWidget") self.tab = QtWidgets.QWidget() self.tab.setObjectName("tab") - self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.tab) - self.horizontalLayout_2.setObjectName("horizontalLayout_2") - self.listView = QtWidgets.QListView(self.tab) - self.listView.setFrameShape(QtWidgets.QFrame.StyledPanel) + self.gridLayout_2 = QtWidgets.QGridLayout(self.tab) + self.gridLayout_2.setObjectName("gridLayout_2") + self.stackedWidget = QtWidgets.QStackedWidget(self.tab) + self.stackedWidget.setFrameShape(QtWidgets.QFrame.NoFrame) + self.stackedWidget.setLineWidth(0) + self.stackedWidget.setObjectName("stackedWidget") + self.listPage = QtWidgets.QWidget() + self.listPage.setObjectName("listPage") + self.gridLayout_4 = QtWidgets.QGridLayout(self.listPage) + self.gridLayout_4.setContentsMargins(0, 0, 0, 0) + self.gridLayout_4.setSpacing(0) + self.gridLayout_4.setObjectName("gridLayout_4") + self.listView = QtWidgets.QListView(self.listPage) + self.listView.setFrameShape(QtWidgets.QFrame.NoFrame) self.listView.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers) self.listView.setProperty("showDropIndicator", False) self.listView.setSelectionMode(QtWidgets.QAbstractItemView.ExtendedSelection) @@ -38,9 +48,16 @@ class Ui_MainWindow(object): self.listView.setUniformItemSizes(True) self.listView.setWordWrap(True) self.listView.setObjectName("listView") - self.horizontalLayout_2.addWidget(self.listView) - self.tableView = QtWidgets.QTableView(self.tab) - self.tableView.setFrameShape(QtWidgets.QFrame.StyledPanel) + self.gridLayout_4.addWidget(self.listView, 0, 0, 1, 1) + self.stackedWidget.addWidget(self.listPage) + self.tablePage = QtWidgets.QWidget() + self.tablePage.setObjectName("tablePage") + self.gridLayout_3 = QtWidgets.QGridLayout(self.tablePage) + self.gridLayout_3.setContentsMargins(0, 0, 0, 0) + self.gridLayout_3.setSpacing(0) + self.gridLayout_3.setObjectName("gridLayout_3") + self.tableView = QtWidgets.QTableView(self.tablePage) + self.tableView.setFrameShape(QtWidgets.QFrame.NoFrame) self.tableView.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustToContentsOnFirstShow) self.tableView.setEditTriggers(QtWidgets.QAbstractItemView.DoubleClicked|QtWidgets.QAbstractItemView.EditKeyPressed) self.tableView.setAlternatingRowColors(True) @@ -51,7 +68,9 @@ class Ui_MainWindow(object): self.tableView.setObjectName("tableView") self.tableView.horizontalHeader().setVisible(True) self.tableView.verticalHeader().setVisible(False) - self.horizontalLayout_2.addWidget(self.tableView) + self.gridLayout_3.addWidget(self.tableView, 0, 0, 1, 1) + self.stackedWidget.addWidget(self.tablePage) + self.gridLayout_2.addWidget(self.stackedWidget, 0, 0, 1, 1) self.tabWidget.addTab(self.tab, "") self.horizontalLayout.addWidget(self.tabWidget) self.gridLayout.addLayout(self.horizontalLayout, 0, 0, 1, 1) diff --git a/resources/raw/main.ui b/resources/raw/main.ui index 3958105..54f41d3 100644 --- a/resources/raw/main.ui +++ b/resources/raw/main.ui @@ -6,7 +6,7 @@ 0 0 - 1062 + 1049 720 @@ -29,79 +29,127 @@ Library - - - + + + - QFrame::StyledPanel + QFrame::NoFrame - - QAbstractItemView::NoEditTriggers - - - false - - - QAbstractItemView::ExtendedSelection - - - QListView::Static - - - true - - - QListView::Fixed - - - QListView::SinglePass - - + 0 - - QListView::IconMode - - - true - - - true - - - - - - - QFrame::StyledPanel - - - QAbstractScrollArea::AdjustToContentsOnFirstShow - - - QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed - - - true - - - QAbstractItemView::SelectRows - - - Qt::NoPen - - - true - - - false - - - true - - - false - + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + QFrame::NoFrame + + + QAbstractItemView::NoEditTriggers + + + false + + + QAbstractItemView::ExtendedSelection + + + QListView::Static + + + true + + + QListView::Fixed + + + QListView::SinglePass + + + 0 + + + QListView::IconMode + + + true + + + true + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + QFrame::NoFrame + + + QAbstractScrollArea::AdjustToContentsOnFirstShow + + + QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed + + + true + + + QAbstractItemView::SelectRows + + + Qt::NoPen + + + true + + + false + + + true + + + false + + + + +