UI changes

This commit is contained in:
BasioMeusPuga
2017-11-27 14:38:47 +05:30
parent 75a851e62b
commit 2ba10a75dd
4 changed files with 51 additions and 25 deletions

View File

@@ -121,7 +121,7 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
self.statusBar.addWidget(self.sorterProgress) self.statusBar.addWidget(self.sorterProgress)
self.sorterProgress.setVisible(False) self.sorterProgress.setVisible(False)
# Init the QListView # Init the Library
self.lib_ref = Library(self) self.lib_ref = Library(self)
# Application wide temporary directory # Application wide temporary directory
@@ -131,6 +131,9 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
self.libraryToolBar = LibraryToolBar(self) self.libraryToolBar = LibraryToolBar(self)
self.libraryToolBar.addButton.triggered.connect(self.add_books) self.libraryToolBar.addButton.triggered.connect(self.add_books)
self.libraryToolBar.deleteButton.triggered.connect(self.delete_books) self.libraryToolBar.deleteButton.triggered.connect(self.delete_books)
self.libraryToolBar.coverViewButton.triggered.connect(self.switch_library_view)
self.libraryToolBar.coverViewButton.setChecked(True)
self.libraryToolBar.tableViewButton.triggered.connect(self.switch_library_view)
self.libraryToolBar.settingsButton.triggered.connect(self.show_settings) self.libraryToolBar.settingsButton.triggered.connect(self.show_settings)
self.libraryToolBar.searchBar.textChanged.connect(self.lib_ref.update_proxymodel) self.libraryToolBar.searchBar.textChanged.connect(self.lib_ref.update_proxymodel)
self.libraryToolBar.sortingBox.activated.connect(self.lib_ref.update_proxymodel) self.libraryToolBar.sortingBox.activated.connect(self.lib_ref.update_proxymodel)
@@ -177,17 +180,14 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
self.available_parsers = '*.' + ' *.'.join(sorter.available_parsers) self.available_parsers = '*.' + ' *.'.join(sorter.available_parsers)
print('Available parsers: ' + self.available_parsers) print('Available parsers: ' + self.available_parsers)
# TODO self.reloadLibrary = QtWidgets.QToolButton()
# Associate this with the library switcher self.reloadLibrary.setIcon(QtGui.QIcon.fromTheme('reload'))
self.library_view_switch = QtWidgets.QToolButton() self.reloadLibrary.setAutoRaise(True)
self.library_view_switch.setIcon(QtGui.QIcon.fromTheme('view-readermode')) self.reloadLibrary.setPopupMode(QtWidgets.QToolButton.InstantPopup)
self.library_view_switch.setAutoRaise(True) self.reloadLibrary.triggered.connect(self.switch_library_view)
self.library_view_switch.setPopupMode(QtWidgets.QToolButton.InstantPopup)
self.library_view_switch.triggered.connect(self.switch_library_view)
self.tabWidget.tabBar().setTabButton( self.tabWidget.tabBar().setTabButton(
0, QtWidgets.QTabBar.RightSide, self.library_view_switch) 0, QtWidgets.QTabBar.RightSide, self.reloadLibrary)
self.library_view_switch.clicked.connect(self.switch_library_view)
self.tabWidget.tabCloseRequested.connect(self.tab_close) self.tabWidget.tabCloseRequested.connect(self.tab_close)
# Init display models # Init display models
@@ -203,7 +203,9 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
self.listView.setItemDelegate(LibraryDelegate(self.temp_dir.path())) self.listView.setItemDelegate(LibraryDelegate(self.temp_dir.path()))
# TableView # TableView
self.tableView.horizontalHeader().setSectionResizeMode(QtWidgets.QHeaderView.Stretch) self.tableView.horizontalHeader().setSectionResizeMode(
QtWidgets.QHeaderView.ResizeToContents)
self.tableView.horizontalHeader().setStretchLastSection(True)
# Keyboard shortcuts # Keyboard shortcuts
self.ks_close_tab = QtWidgets.QShortcut(QtGui.QKeySequence('Ctrl+W'), self) self.ks_close_tab = QtWidgets.QShortcut(QtGui.QKeySequence('Ctrl+W'), self)
@@ -222,6 +224,14 @@ 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
@@ -303,14 +313,14 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
msg_box.exec_() msg_box.exec_()
def switch_library_view(self): def switch_library_view(self):
if self.listView.isVisible(): if self.libraryToolBar.coverViewButton.isChecked():
self.listView.setVisible(False)
self.tableView.setVisible(True)
self.libraryToolBar.sortingBoxAction.setVisible(False)
else:
self.listView.setVisible(True) self.listView.setVisible(True)
self.tableView.setVisible(False) self.tableView.setVisible(False)
self.libraryToolBar.sortingBoxAction.setVisible(True) self.libraryToolBar.sortingBoxAction.setVisible(True)
else:
self.listView.setVisible(False)
self.tableView.setVisible(True)
self.libraryToolBar.sortingBoxAction.setVisible(False)
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(1064, 724) MainWindow.resize(1062, 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)
@@ -26,7 +26,7 @@ class Ui_MainWindow(object):
self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.tab) self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.tab)
self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.horizontalLayout_2.setObjectName("horizontalLayout_2")
self.listView = QtWidgets.QListView(self.tab) self.listView = QtWidgets.QListView(self.tab)
self.listView.setFrameShape(QtWidgets.QFrame.NoFrame) self.listView.setFrameShape(QtWidgets.QFrame.StyledPanel)
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)
@@ -40,8 +40,8 @@ class Ui_MainWindow(object):
self.listView.setObjectName("listView") self.listView.setObjectName("listView")
self.horizontalLayout_2.addWidget(self.listView) self.horizontalLayout_2.addWidget(self.listView)
self.tableView = QtWidgets.QTableView(self.tab) self.tableView = QtWidgets.QTableView(self.tab)
self.tableView.setFrameShape(QtWidgets.QFrame.NoFrame) self.tableView.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.tableView.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustToContents) 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)
self.tableView.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows) self.tableView.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows)

View File

@@ -6,8 +6,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>1064</width> <width>1062</width>
<height>724</height> <height>720</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@@ -33,7 +33,7 @@
<item> <item>
<widget class="QListView" name="listView"> <widget class="QListView" name="listView">
<property name="frameShape"> <property name="frameShape">
<enum>QFrame::NoFrame</enum> <enum>QFrame::StyledPanel</enum>
</property> </property>
<property name="editTriggers"> <property name="editTriggers">
<set>QAbstractItemView::NoEditTriggers</set> <set>QAbstractItemView::NoEditTriggers</set>
@@ -73,7 +73,7 @@
<item> <item>
<widget class="QTableView" name="tableView"> <widget class="QTableView" name="tableView">
<property name="frameShape"> <property name="frameShape">
<enum>QFrame::NoFrame</enum> <enum>QFrame::StyledPanel</enum>
</property> </property>
<property name="sizeAdjustPolicy"> <property name="sizeAdjustPolicy">
<enum>QAbstractScrollArea::AdjustToContentsOnFirstShow</enum> <enum>QAbstractScrollArea::AdjustToContentsOnFirstShow</enum>

View File

@@ -266,13 +266,29 @@ class LibraryToolBar(QtWidgets.QToolBar):
QtGui.QIcon.fromTheme('remove'), 'Delete book', self) QtGui.QIcon.fromTheme('remove'), 'Delete book', self)
self.settingsButton = QtWidgets.QAction( self.settingsButton = QtWidgets.QAction(
QtGui.QIcon.fromTheme('settings'), 'Settings', self) QtGui.QIcon.fromTheme('settings'), 'Settings', self)
self.settingsButton.setCheckable(True)
self.coverViewButton = QtWidgets.QAction(
QtGui.QIcon.fromTheme('view-grid'), 'View as covers', self)
self.coverViewButton.setCheckable(True)
self.tableViewButton = QtWidgets.QAction(
QtGui.QIcon.fromTheme('table'), 'View as table', self)
self.tableViewButton.setCheckable(True)
# Auto unchecks the other QToolButton in case of clicking
self.viewButtons = QtWidgets.QActionGroup(self)
self.viewButtons.setExclusive(True)
self.viewButtons.addAction(self.coverViewButton)
self.viewButtons.addAction(self.tableViewButton)
# Add buttons # Add buttons
self.addAction(self.addButton) self.addAction(self.addButton)
self.addAction(self.deleteButton) self.addAction(self.deleteButton)
self.addSeparator() self.addSeparator()
self.addAction(self.coverViewButton)
self.addAction(self.tableViewButton)
self.addSeparator()
self.addAction(self.settingsButton) self.addAction(self.settingsButton)
self.settingsButton.setCheckable(True)
# Filter # Filter
sizePolicy = QtWidgets.QSizePolicy( sizePolicy = QtWidgets.QSizePolicy(