Fix library grid misalignment

This commit is contained in:
BasioMeusPuga
2017-11-28 12:13:36 +05:30
parent 7aa9b9daff
commit af1cd21ec3
3 changed files with 158 additions and 99 deletions

View File

@@ -90,7 +90,7 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
self.settings_dialog = SettingsUI() self.settings_dialog = SettingsUI()
# Hide or show the main widget of the library # Hide or show the main widget of the library
self.tableView.setVisible(False) self.stackedWidget.setCurrentIndex(0)
# Empty variables that will be infested soon # Empty variables that will be infested soon
self.last_open_books = None self.last_open_books = None
@@ -193,7 +193,7 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
# Init display models # Init display models
self.lib_ref.generate_model('build') 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() self.lib_ref.create_proxymodel()
# ListView # ListView
@@ -225,14 +225,6 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
self.last_open_books = None self.last_open_books = None
def resizeEvent(self, event=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: if event:
# This implies a vertical resize event only # This implies a vertical resize event only
# We ain't about that lifestyle # We ain't about that lifestyle
@@ -284,15 +276,14 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
def move_on(self): def move_on(self):
self.sorterProgress.setVisible(False) self.sorterProgress.setVisible(False)
self.lib_ref.create_table_model()
self.lib_ref.create_proxymodel() 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): def delete_books(self):
# TODO
# Use maptosource() here to get the view_model
# indices selected in the listView
selected_books = self.listView.selectedIndexes() selected_books = self.listView.selectedIndexes()
if selected_books: if selected_books:
def ifcontinue(box_button): def ifcontinue(box_button):
@@ -306,6 +297,7 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
self.database_path).delete_from_database(selected_hashes) self.database_path).delete_from_database(selected_hashes)
self.lib_ref.generate_model('build') self.lib_ref.generate_model('build')
self.lib_ref.create_table_model()
self.lib_ref.create_proxymodel() self.lib_ref.create_proxymodel()
selected_number = len(selected_books) selected_number = len(selected_books)
@@ -321,14 +313,14 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
def switch_library_view(self): def switch_library_view(self):
if self.libraryToolBar.coverViewButton.isChecked(): if self.libraryToolBar.coverViewButton.isChecked():
self.listView.setVisible(True) self.stackedWidget.setCurrentIndex(0)
self.tableView.setVisible(False)
self.libraryToolBar.sortingBoxAction.setVisible(True) self.libraryToolBar.sortingBoxAction.setVisible(True)
else: else:
self.listView.setVisible(False) self.stackedWidget.setCurrentIndex(1)
self.tableView.setVisible(True)
self.libraryToolBar.sortingBoxAction.setVisible(False) self.libraryToolBar.sortingBoxAction.setVisible(False)
self.resizeEvent()
def tab_switch(self): def tab_switch(self):
if self.tabWidget.currentIndex() == 0: if self.tabWidget.currentIndex() == 0:

View File

@@ -11,7 +11,7 @@ from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object): class Ui_MainWindow(object):
def setupUi(self, MainWindow): def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow") MainWindow.setObjectName("MainWindow")
MainWindow.resize(1062, 720) MainWindow.resize(1049, 720)
self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget") self.centralwidget.setObjectName("centralwidget")
self.gridLayout = QtWidgets.QGridLayout(self.centralwidget) self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
@@ -23,10 +23,20 @@ class Ui_MainWindow(object):
self.tabWidget.setObjectName("tabWidget") self.tabWidget.setObjectName("tabWidget")
self.tab = QtWidgets.QWidget() self.tab = QtWidgets.QWidget()
self.tab.setObjectName("tab") self.tab.setObjectName("tab")
self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.tab) self.gridLayout_2 = QtWidgets.QGridLayout(self.tab)
self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.gridLayout_2.setObjectName("gridLayout_2")
self.listView = QtWidgets.QListView(self.tab) self.stackedWidget = QtWidgets.QStackedWidget(self.tab)
self.listView.setFrameShape(QtWidgets.QFrame.StyledPanel) 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.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)
self.listView.setProperty("showDropIndicator", False) self.listView.setProperty("showDropIndicator", False)
self.listView.setSelectionMode(QtWidgets.QAbstractItemView.ExtendedSelection) self.listView.setSelectionMode(QtWidgets.QAbstractItemView.ExtendedSelection)
@@ -38,9 +48,16 @@ class Ui_MainWindow(object):
self.listView.setUniformItemSizes(True) self.listView.setUniformItemSizes(True)
self.listView.setWordWrap(True) self.listView.setWordWrap(True)
self.listView.setObjectName("listView") self.listView.setObjectName("listView")
self.horizontalLayout_2.addWidget(self.listView) self.gridLayout_4.addWidget(self.listView, 0, 0, 1, 1)
self.tableView = QtWidgets.QTableView(self.tab) self.stackedWidget.addWidget(self.listPage)
self.tableView.setFrameShape(QtWidgets.QFrame.StyledPanel) 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.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustToContentsOnFirstShow)
self.tableView.setEditTriggers(QtWidgets.QAbstractItemView.DoubleClicked|QtWidgets.QAbstractItemView.EditKeyPressed) self.tableView.setEditTriggers(QtWidgets.QAbstractItemView.DoubleClicked|QtWidgets.QAbstractItemView.EditKeyPressed)
self.tableView.setAlternatingRowColors(True) self.tableView.setAlternatingRowColors(True)
@@ -51,7 +68,9 @@ class Ui_MainWindow(object):
self.tableView.setObjectName("tableView") self.tableView.setObjectName("tableView")
self.tableView.horizontalHeader().setVisible(True) self.tableView.horizontalHeader().setVisible(True)
self.tableView.verticalHeader().setVisible(False) 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.tabWidget.addTab(self.tab, "")
self.horizontalLayout.addWidget(self.tabWidget) self.horizontalLayout.addWidget(self.tabWidget)
self.gridLayout.addLayout(self.horizontalLayout, 0, 0, 1, 1) self.gridLayout.addLayout(self.horizontalLayout, 0, 0, 1, 1)

View File

@@ -6,7 +6,7 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>1062</width> <width>1049</width>
<height>720</height> <height>720</height>
</rect> </rect>
</property> </property>
@@ -29,79 +29,127 @@
<attribute name="title"> <attribute name="title">
<string>Library</string> <string>Library</string>
</attribute> </attribute>
<layout class="QHBoxLayout" name="horizontalLayout_2"> <layout class="QGridLayout" name="gridLayout_2">
<item> <item row="0" column="0">
<widget class="QListView" name="listView"> <widget class="QStackedWidget" name="stackedWidget">
<property name="frameShape"> <property name="frameShape">
<enum>QFrame::StyledPanel</enum> <enum>QFrame::NoFrame</enum>
</property> </property>
<property name="editTriggers"> <property name="lineWidth">
<set>QAbstractItemView::NoEditTriggers</set>
</property>
<property name="showDropIndicator" stdset="0">
<bool>false</bool>
</property>
<property name="selectionMode">
<enum>QAbstractItemView::ExtendedSelection</enum>
</property>
<property name="movement">
<enum>QListView::Static</enum>
</property>
<property name="isWrapping" stdset="0">
<bool>true</bool>
</property>
<property name="resizeMode">
<enum>QListView::Fixed</enum>
</property>
<property name="layoutMode">
<enum>QListView::SinglePass</enum>
</property>
<property name="spacing">
<number>0</number> <number>0</number>
</property> </property>
<property name="viewMode"> <widget class="QWidget" name="listPage">
<enum>QListView::IconMode</enum> <layout class="QGridLayout" name="gridLayout_4">
</property> <property name="leftMargin">
<property name="uniformItemSizes"> <number>0</number>
<bool>true</bool> </property>
</property> <property name="topMargin">
<property name="wordWrap"> <number>0</number>
<bool>true</bool> </property>
</property> <property name="rightMargin">
</widget> <number>0</number>
</item> </property>
<item> <property name="bottomMargin">
<widget class="QTableView" name="tableView"> <number>0</number>
<property name="frameShape"> </property>
<enum>QFrame::StyledPanel</enum> <property name="spacing">
</property> <number>0</number>
<property name="sizeAdjustPolicy"> </property>
<enum>QAbstractScrollArea::AdjustToContentsOnFirstShow</enum> <item row="0" column="0">
</property> <widget class="QListView" name="listView">
<property name="editTriggers"> <property name="frameShape">
<set>QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed</set> <enum>QFrame::NoFrame</enum>
</property> </property>
<property name="alternatingRowColors"> <property name="editTriggers">
<bool>true</bool> <set>QAbstractItemView::NoEditTriggers</set>
</property> </property>
<property name="selectionBehavior"> <property name="showDropIndicator" stdset="0">
<enum>QAbstractItemView::SelectRows</enum> <bool>false</bool>
</property> </property>
<property name="gridStyle"> <property name="selectionMode">
<enum>Qt::NoPen</enum> <enum>QAbstractItemView::ExtendedSelection</enum>
</property> </property>
<property name="sortingEnabled"> <property name="movement">
<bool>true</bool> <enum>QListView::Static</enum>
</property> </property>
<property name="wordWrap"> <property name="isWrapping" stdset="0">
<bool>false</bool> <bool>true</bool>
</property> </property>
<attribute name="horizontalHeaderVisible"> <property name="resizeMode">
<bool>true</bool> <enum>QListView::Fixed</enum>
</attribute> </property>
<attribute name="verticalHeaderVisible"> <property name="layoutMode">
<bool>false</bool> <enum>QListView::SinglePass</enum>
</attribute> </property>
<property name="spacing">
<number>0</number>
</property>
<property name="viewMode">
<enum>QListView::IconMode</enum>
</property>
<property name="uniformItemSizes">
<bool>true</bool>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="tablePage">
<layout class="QGridLayout" name="gridLayout_3">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<property name="spacing">
<number>0</number>
</property>
<item row="0" column="0">
<widget class="QTableView" name="tableView">
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="sizeAdjustPolicy">
<enum>QAbstractScrollArea::AdjustToContentsOnFirstShow</enum>
</property>
<property name="editTriggers">
<set>QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed</set>
</property>
<property name="alternatingRowColors">
<bool>true</bool>
</property>
<property name="selectionBehavior">
<enum>QAbstractItemView::SelectRows</enum>
</property>
<property name="gridStyle">
<enum>Qt::NoPen</enum>
</property>
<property name="sortingEnabled">
<bool>true</bool>
</property>
<property name="wordWrap">
<bool>false</bool>
</property>
<attribute name="horizontalHeaderVisible">
<bool>true</bool>
</attribute>
<attribute name="verticalHeaderVisible">
<bool>false</bool>
</attribute>
</widget>
</item>
</layout>
</widget>
</widget> </widget>
</item> </item>
</layout> </layout>