Refactor toolbars
This commit is contained in:
122
__main__.py
122
__main__.py
@@ -45,18 +45,24 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
|
|||||||
# Initialize application
|
# Initialize application
|
||||||
Settings(self).read_settings() # This should populate all variables that need
|
Settings(self).read_settings() # This should populate all variables that need
|
||||||
# to be remembered across sessions
|
# to be remembered across sessions
|
||||||
Toolbars(self)
|
|
||||||
# This is an ugly hack?
|
|
||||||
# I can't seem to access the Qcombobox the usual way
|
|
||||||
self.librarySortingBox = self.LibraryToolBar.findChild(QtWidgets.QComboBox)
|
|
||||||
self.libraryFilterEdit = self.LibraryToolBar.findChild(QtWidgets.QLineEdit)
|
|
||||||
|
|
||||||
|
# Create toolbars
|
||||||
|
self.libraryToolBar = LibraryToolBar(self)
|
||||||
|
self.bookToolBar = BookToolBar(self)
|
||||||
|
self.addToolBar(self.libraryToolBar)
|
||||||
|
self.addToolBar(self.bookToolBar)
|
||||||
|
|
||||||
|
# Make the correct toolbar visible
|
||||||
|
self.toolbar_switch()
|
||||||
|
self.tabWidget.currentChanged.connect(self.toolbar_switch)
|
||||||
|
|
||||||
|
# Create the database in case it doesn't exist
|
||||||
database.DatabaseInit(self.database_path)
|
database.DatabaseInit(self.database_path)
|
||||||
|
|
||||||
self.lib_ref = Library(self)
|
self.lib_ref = Library(self)
|
||||||
self.viewModel = None
|
self.viewModel = None
|
||||||
|
|
||||||
# Right align everything in the statusbar
|
# Create and right align the statusbar label widget
|
||||||
self.statusMessage = QtWidgets.QLabel()
|
self.statusMessage = QtWidgets.QLabel()
|
||||||
self.statusMessage.setObjectName('statusMessage')
|
self.statusMessage.setObjectName('statusMessage')
|
||||||
self.statusBar.addPermanentWidget(self.statusMessage)
|
self.statusBar.addPermanentWidget(self.statusMessage)
|
||||||
@@ -65,9 +71,6 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
|
|||||||
self.current_tab = None
|
self.current_tab = None
|
||||||
self.current_textEdit = None
|
self.current_textEdit = None
|
||||||
|
|
||||||
# Toolbar switching
|
|
||||||
self.tabWidget.currentChanged.connect(self.toolbar_switch)
|
|
||||||
|
|
||||||
# Tab closing
|
# Tab closing
|
||||||
self.tabWidget.setTabsClosable(True)
|
self.tabWidget.setTabsClosable(True)
|
||||||
self.tabWidget.tabBar().setTabButton(0, QtWidgets.QTabBar.RightSide, None)
|
self.tabWidget.tabBar().setTabButton(0, QtWidgets.QTabBar.RightSide, None)
|
||||||
@@ -134,11 +137,11 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
|
|||||||
|
|
||||||
def toolbar_switch(self):
|
def toolbar_switch(self):
|
||||||
if self.tabWidget.currentIndex() == 0:
|
if self.tabWidget.currentIndex() == 0:
|
||||||
self.BookToolBar.hide()
|
self.bookToolBar.hide()
|
||||||
self.LibraryToolBar.show()
|
self.libraryToolBar.show()
|
||||||
else:
|
else:
|
||||||
self.BookToolBar.show()
|
self.bookToolBar.show()
|
||||||
self.LibraryToolBar.hide()
|
self.libraryToolBar.hide()
|
||||||
|
|
||||||
def set_fullscreen(self):
|
def set_fullscreen(self):
|
||||||
self.current_tab = self.tabWidget.currentIndex()
|
self.current_tab = self.tabWidget.currentIndex()
|
||||||
@@ -246,14 +249,14 @@ class Library:
|
|||||||
proxy_model.setSourceModel(self.parent_window.viewModel)
|
proxy_model.setSourceModel(self.parent_window.viewModel)
|
||||||
proxy_model.setFilterRole(QtCore.Qt.UserRole + 4)
|
proxy_model.setFilterRole(QtCore.Qt.UserRole + 4)
|
||||||
proxy_model.setFilterCaseSensitivity(QtCore.Qt.CaseInsensitive)
|
proxy_model.setFilterCaseSensitivity(QtCore.Qt.CaseInsensitive)
|
||||||
proxy_model.setFilterWildcard(self.parent_window.libraryFilterEdit.text())
|
proxy_model.setFilterWildcard(self.parent_window.libraryToolBar.filterEdit.text())
|
||||||
|
|
||||||
self.parent_window.statusMessage.setText(
|
self.parent_window.statusMessage.setText(
|
||||||
str(proxy_model.rowCount()) + ' books')
|
str(proxy_model.rowCount()) + ' books')
|
||||||
|
|
||||||
# Sorting according to roles and the drop down in the library
|
# Sorting according to roles and the drop down in the library
|
||||||
proxy_model.setSortRole(
|
proxy_model.setSortRole(
|
||||||
QtCore.Qt.UserRole + self.parent_window.librarySortingBox.currentIndex())
|
QtCore.Qt.UserRole + self.parent_window.libraryToolBar.sortingBox.currentIndex())
|
||||||
proxy_model.sort(0)
|
proxy_model.sort(0)
|
||||||
|
|
||||||
s = QtCore.QSize(160, 250) # Set icon sizing here
|
s = QtCore.QSize(160, 250) # Set icon sizing here
|
||||||
@@ -296,68 +299,71 @@ class Settings:
|
|||||||
self.settings.endGroup()
|
self.settings.endGroup()
|
||||||
|
|
||||||
|
|
||||||
class Toolbars:
|
class BookToolBar(QtWidgets.QToolBar):
|
||||||
# TODO
|
def __init__(self, parent=None):
|
||||||
# Inheritances so that this self.parent_window.
|
super(BookToolBar, self).__init__(parent)
|
||||||
# bullshit can be removed
|
self.parent = parent
|
||||||
def __init__(self, parent):
|
|
||||||
self.parent_window = parent
|
|
||||||
self.parent_window.BookToolBar.hide()
|
|
||||||
self.create_toolbars()
|
|
||||||
|
|
||||||
def create_toolbars(self):
|
self.setMovable(False)
|
||||||
# Spacer
|
self.setIconSize(QtCore.QSize(22, 22))
|
||||||
spacer = QtWidgets.QWidget()
|
self.setFloatable(False)
|
||||||
spacer.setSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
self.setObjectName("LibraryToolBar")
|
||||||
|
|
||||||
# Book Toolbar
|
|
||||||
fullscreenButton = QtWidgets.QAction(
|
fullscreenButton = QtWidgets.QAction(
|
||||||
QtGui.QIcon.fromTheme('view-fullscreen'), 'Fullscreen', self.parent_window)
|
QtGui.QIcon.fromTheme('view-fullscreen'), 'Fullscreen', self)
|
||||||
|
self.addAction(fullscreenButton)
|
||||||
|
self.setIconSize(QtCore.QSize(22, 22))
|
||||||
|
|
||||||
self.parent_window.BookToolBar.addAction(fullscreenButton)
|
fullscreenButton.triggered.connect(self.parent.set_fullscreen)
|
||||||
self.parent_window.BookToolBar.setIconSize(QtCore.QSize(22, 22))
|
|
||||||
|
|
||||||
|
class LibraryToolBar(QtWidgets.QToolBar):
|
||||||
|
def __init__(self, parent=None):
|
||||||
|
super(LibraryToolBar, self).__init__(parent)
|
||||||
|
self.parent = parent
|
||||||
|
|
||||||
|
self.setMovable(False)
|
||||||
|
self.setIconSize(QtCore.QSize(22, 22))
|
||||||
|
self.setFloatable(False)
|
||||||
|
self.setObjectName("LibraryToolBar")
|
||||||
|
|
||||||
fullscreenButton.triggered.connect(self.parent_window.set_fullscreen)
|
|
||||||
|
|
||||||
# Library Toolbar
|
|
||||||
addButton = QtWidgets.QAction(
|
addButton = QtWidgets.QAction(
|
||||||
QtGui.QIcon.fromTheme('add'), 'Add book', self.parent_window)
|
QtGui.QIcon.fromTheme('add'), 'Add book', self)
|
||||||
deleteButton = QtWidgets.QAction(
|
deleteButton = QtWidgets.QAction(
|
||||||
QtGui.QIcon.fromTheme('remove'), 'Delete book', self.parent_window)
|
QtGui.QIcon.fromTheme('remove'), 'Delete book', self)
|
||||||
settingsButton = QtWidgets.QAction(
|
settingsButton = QtWidgets.QAction(
|
||||||
QtGui.QIcon.fromTheme('settings'), 'Settings', self.parent_window)
|
QtGui.QIcon.fromTheme('settings'), 'Settings', self)
|
||||||
|
|
||||||
addButton.triggered.connect(self.parent_window.add_books)
|
addButton.triggered.connect(self.parent.add_books)
|
||||||
settingsButton.triggered.connect(self.parent_window.create_tab_class)
|
deleteButton.triggered.connect(self.parent.delete_books)
|
||||||
deleteButton.triggered.connect(self.parent_window.delete_books)
|
|
||||||
|
|
||||||
# Filter
|
# Filter
|
||||||
filterEdit = QtWidgets.QLineEdit()
|
self.filterEdit = QtWidgets.QLineEdit()
|
||||||
filterEdit.setPlaceholderText('Search for Title, Author, Tags...')
|
self.filterEdit.setPlaceholderText('Search for Title, Author, Tags...')
|
||||||
sizePolicy = QtWidgets.QSizePolicy(
|
sizePolicy = QtWidgets.QSizePolicy(
|
||||||
QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed)
|
QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed)
|
||||||
filterEdit.setSizePolicy(sizePolicy)
|
self.filterEdit.setSizePolicy(sizePolicy)
|
||||||
filterEdit.setContentsMargins(200, 0, 200, 0)
|
self.filterEdit.setContentsMargins(200, 0, 200, 0)
|
||||||
filterEdit.setMinimumWidth(150)
|
self.filterEdit.setMinimumWidth(150)
|
||||||
filterEdit.textChanged.connect(self.parent_window.reload_listview)
|
self.filterEdit.setObjectName('filterEdit')
|
||||||
|
self.filterEdit.textChanged.connect(self.parent.reload_listview)
|
||||||
|
|
||||||
# Sorter
|
# Sorter
|
||||||
sorting_choices = ['Title', 'Author', 'Year']
|
sorting_choices = ['Title', 'Author', 'Year']
|
||||||
sortingBox = QtWidgets.QComboBox()
|
self.sortingBox = QtWidgets.QComboBox()
|
||||||
sortingBox.addItems(sorting_choices)
|
self.sortingBox.addItems(sorting_choices)
|
||||||
sortingBox.setObjectName('sortingBox')
|
self.sortingBox.setObjectName('sortingBox')
|
||||||
sortingBox.setToolTip('Sort by')
|
self.sortingBox.setToolTip('Sort by')
|
||||||
sortingBox.activated.connect(self.parent_window.reload_listview)
|
self.sortingBox.activated.connect(self.parent.reload_listview)
|
||||||
|
|
||||||
# Add widgets to toolbar
|
# Add widgets to toolbar
|
||||||
self.parent_window.LibraryToolBar.addAction(addButton)
|
self.addAction(addButton)
|
||||||
self.parent_window.LibraryToolBar.addAction(deleteButton)
|
self.addAction(deleteButton)
|
||||||
self.parent_window.LibraryToolBar.addSeparator()
|
self.addSeparator()
|
||||||
self.parent_window.LibraryToolBar.addAction(settingsButton)
|
self.addAction(settingsButton)
|
||||||
self.parent_window.LibraryToolBar.addWidget(spacer)
|
self.addWidget(self.filterEdit)
|
||||||
self.parent_window.LibraryToolBar.addWidget(filterEdit)
|
self.addWidget(self.sortingBox)
|
||||||
self.parent_window.LibraryToolBar.addWidget(spacer)
|
|
||||||
self.parent_window.LibraryToolBar.addWidget(sortingBox)
|
|
||||||
|
|
||||||
|
|
||||||
class Tabs:
|
class Tabs:
|
||||||
|
@@ -11,8 +11,6 @@ class DatabaseInit:
|
|||||||
if not os.path.exists(database_path):
|
if not os.path.exists(database_path):
|
||||||
self.database = sqlite3.connect(database_path)
|
self.database = sqlite3.connect(database_path)
|
||||||
self.create_database()
|
self.create_database()
|
||||||
else:
|
|
||||||
self.database = sqlite3.connect(database_path)
|
|
||||||
|
|
||||||
def create_database(self):
|
def create_database(self):
|
||||||
self.database.execute(
|
self.database.execute(
|
||||||
@@ -26,7 +24,7 @@ class DatabaseInit:
|
|||||||
# database at time of closing
|
# database at time of closing
|
||||||
|
|
||||||
self.database.commit()
|
self.database.commit()
|
||||||
|
self.database.close()
|
||||||
|
|
||||||
class DatabaseFunctions:
|
class DatabaseFunctions:
|
||||||
def __init__(self, location_prefix):
|
def __init__(self, location_prefix):
|
||||||
|
@@ -45,17 +45,6 @@ class Ui_MainWindow(object):
|
|||||||
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)
|
||||||
MainWindow.setCentralWidget(self.centralwidget)
|
MainWindow.setCentralWidget(self.centralwidget)
|
||||||
self.LibraryToolBar = QtWidgets.QToolBar(MainWindow)
|
|
||||||
self.LibraryToolBar.setMovable(False)
|
|
||||||
self.LibraryToolBar.setIconSize(QtCore.QSize(22, 22))
|
|
||||||
self.LibraryToolBar.setFloatable(False)
|
|
||||||
self.LibraryToolBar.setObjectName("LibraryToolBar")
|
|
||||||
MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.LibraryToolBar)
|
|
||||||
self.BookToolBar = QtWidgets.QToolBar(MainWindow)
|
|
||||||
self.BookToolBar.setMovable(False)
|
|
||||||
self.BookToolBar.setFloatable(False)
|
|
||||||
self.BookToolBar.setObjectName("BookToolBar")
|
|
||||||
MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.BookToolBar)
|
|
||||||
self.statusBar = QtWidgets.QStatusBar(MainWindow)
|
self.statusBar = QtWidgets.QStatusBar(MainWindow)
|
||||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
|
||||||
sizePolicy.setHorizontalStretch(0)
|
sizePolicy.setHorizontalStretch(0)
|
||||||
@@ -74,6 +63,4 @@ class Ui_MainWindow(object):
|
|||||||
_translate = QtCore.QCoreApplication.translate
|
_translate = QtCore.QCoreApplication.translate
|
||||||
MainWindow.setWindowTitle(_translate("MainWindow", "Lector"))
|
MainWindow.setWindowTitle(_translate("MainWindow", "Lector"))
|
||||||
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "Library"))
|
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "Library"))
|
||||||
self.LibraryToolBar.setWindowTitle(_translate("MainWindow", "toolBar"))
|
|
||||||
self.BookToolBar.setWindowTitle(_translate("MainWindow", "toolBar_2"))
|
|
||||||
|
|
||||||
|
@@ -79,46 +79,6 @@
|
|||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QToolBar" name="LibraryToolBar">
|
|
||||||
<property name="windowTitle">
|
|
||||||
<string>toolBar</string>
|
|
||||||
</property>
|
|
||||||
<property name="movable">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="iconSize">
|
|
||||||
<size>
|
|
||||||
<width>22</width>
|
|
||||||
<height>22</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="floatable">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<attribute name="toolBarArea">
|
|
||||||
<enum>TopToolBarArea</enum>
|
|
||||||
</attribute>
|
|
||||||
<attribute name="toolBarBreak">
|
|
||||||
<bool>false</bool>
|
|
||||||
</attribute>
|
|
||||||
</widget>
|
|
||||||
<widget class="QToolBar" name="BookToolBar">
|
|
||||||
<property name="windowTitle">
|
|
||||||
<string>toolBar_2</string>
|
|
||||||
</property>
|
|
||||||
<property name="movable">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="floatable">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<attribute name="toolBarArea">
|
|
||||||
<enum>TopToolBarArea</enum>
|
|
||||||
</attribute>
|
|
||||||
<attribute name="toolBarBreak">
|
|
||||||
<bool>false</bool>
|
|
||||||
</attribute>
|
|
||||||
</widget>
|
|
||||||
<widget class="QStatusBar" name="statusBar">
|
<widget class="QStatusBar" name="statusBar">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||||
|
Reference in New Issue
Block a user