diff --git a/__main__.py b/__main__.py
index 70b51c5..1499dd3 100755
--- a/__main__.py
+++ b/__main__.py
@@ -45,18 +45,24 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
# Initialize application
Settings(self).read_settings() # This should populate all variables that need
# 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)
self.lib_ref = Library(self)
self.viewModel = None
- # Right align everything in the statusbar
+ # Create and right align the statusbar label widget
self.statusMessage = QtWidgets.QLabel()
self.statusMessage.setObjectName('statusMessage')
self.statusBar.addPermanentWidget(self.statusMessage)
@@ -65,9 +71,6 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
self.current_tab = None
self.current_textEdit = None
- # Toolbar switching
- self.tabWidget.currentChanged.connect(self.toolbar_switch)
-
# Tab closing
self.tabWidget.setTabsClosable(True)
self.tabWidget.tabBar().setTabButton(0, QtWidgets.QTabBar.RightSide, None)
@@ -134,11 +137,11 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
def toolbar_switch(self):
if self.tabWidget.currentIndex() == 0:
- self.BookToolBar.hide()
- self.LibraryToolBar.show()
+ self.bookToolBar.hide()
+ self.libraryToolBar.show()
else:
- self.BookToolBar.show()
- self.LibraryToolBar.hide()
+ self.bookToolBar.show()
+ self.libraryToolBar.hide()
def set_fullscreen(self):
self.current_tab = self.tabWidget.currentIndex()
@@ -246,14 +249,14 @@ class Library:
proxy_model.setSourceModel(self.parent_window.viewModel)
proxy_model.setFilterRole(QtCore.Qt.UserRole + 4)
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(
str(proxy_model.rowCount()) + ' books')
# Sorting according to roles and the drop down in the library
proxy_model.setSortRole(
- QtCore.Qt.UserRole + self.parent_window.librarySortingBox.currentIndex())
+ QtCore.Qt.UserRole + self.parent_window.libraryToolBar.sortingBox.currentIndex())
proxy_model.sort(0)
s = QtCore.QSize(160, 250) # Set icon sizing here
@@ -296,68 +299,71 @@ class Settings:
self.settings.endGroup()
-class Toolbars:
- # TODO
- # Inheritances so that this self.parent_window.
- # bullshit can be removed
- def __init__(self, parent):
- self.parent_window = parent
- self.parent_window.BookToolBar.hide()
- self.create_toolbars()
+class BookToolBar(QtWidgets.QToolBar):
+ def __init__(self, parent=None):
+ super(BookToolBar, self).__init__(parent)
+ self.parent = parent
- def create_toolbars(self):
- # Spacer
- spacer = QtWidgets.QWidget()
- spacer.setSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
+ self.setMovable(False)
+ self.setIconSize(QtCore.QSize(22, 22))
+ self.setFloatable(False)
+ self.setObjectName("LibraryToolBar")
- # Book Toolbar
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)
- self.parent_window.BookToolBar.setIconSize(QtCore.QSize(22, 22))
+ fullscreenButton.triggered.connect(self.parent.set_fullscreen)
+
+
+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(
- QtGui.QIcon.fromTheme('add'), 'Add book', self.parent_window)
+ QtGui.QIcon.fromTheme('add'), 'Add book', self)
deleteButton = QtWidgets.QAction(
- QtGui.QIcon.fromTheme('remove'), 'Delete book', self.parent_window)
+ QtGui.QIcon.fromTheme('remove'), 'Delete book', self)
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)
- settingsButton.triggered.connect(self.parent_window.create_tab_class)
- deleteButton.triggered.connect(self.parent_window.delete_books)
+ addButton.triggered.connect(self.parent.add_books)
+ deleteButton.triggered.connect(self.parent.delete_books)
# Filter
- filterEdit = QtWidgets.QLineEdit()
- filterEdit.setPlaceholderText('Search for Title, Author, Tags...')
+ self.filterEdit = QtWidgets.QLineEdit()
+ self.filterEdit.setPlaceholderText('Search for Title, Author, Tags...')
sizePolicy = QtWidgets.QSizePolicy(
QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed)
- filterEdit.setSizePolicy(sizePolicy)
- filterEdit.setContentsMargins(200, 0, 200, 0)
- filterEdit.setMinimumWidth(150)
- filterEdit.textChanged.connect(self.parent_window.reload_listview)
+ self.filterEdit.setSizePolicy(sizePolicy)
+ self.filterEdit.setContentsMargins(200, 0, 200, 0)
+ self.filterEdit.setMinimumWidth(150)
+ self.filterEdit.setObjectName('filterEdit')
+ self.filterEdit.textChanged.connect(self.parent.reload_listview)
# Sorter
sorting_choices = ['Title', 'Author', 'Year']
- sortingBox = QtWidgets.QComboBox()
- sortingBox.addItems(sorting_choices)
- sortingBox.setObjectName('sortingBox')
- sortingBox.setToolTip('Sort by')
- sortingBox.activated.connect(self.parent_window.reload_listview)
+ self.sortingBox = QtWidgets.QComboBox()
+ self.sortingBox.addItems(sorting_choices)
+ self.sortingBox.setObjectName('sortingBox')
+ self.sortingBox.setToolTip('Sort by')
+ self.sortingBox.activated.connect(self.parent.reload_listview)
# Add widgets to toolbar
- self.parent_window.LibraryToolBar.addAction(addButton)
- self.parent_window.LibraryToolBar.addAction(deleteButton)
- self.parent_window.LibraryToolBar.addSeparator()
- self.parent_window.LibraryToolBar.addAction(settingsButton)
- self.parent_window.LibraryToolBar.addWidget(spacer)
- self.parent_window.LibraryToolBar.addWidget(filterEdit)
- self.parent_window.LibraryToolBar.addWidget(spacer)
- self.parent_window.LibraryToolBar.addWidget(sortingBox)
+ self.addAction(addButton)
+ self.addAction(deleteButton)
+ self.addSeparator()
+ self.addAction(settingsButton)
+ self.addWidget(self.filterEdit)
+ self.addWidget(self.sortingBox)
class Tabs:
diff --git a/database.py b/database.py
index b4c1247..b1f416f 100644
--- a/database.py
+++ b/database.py
@@ -11,8 +11,6 @@ class DatabaseInit:
if not os.path.exists(database_path):
self.database = sqlite3.connect(database_path)
self.create_database()
- else:
- self.database = sqlite3.connect(database_path)
def create_database(self):
self.database.execute(
@@ -26,7 +24,7 @@ class DatabaseInit:
# database at time of closing
self.database.commit()
-
+ self.database.close()
class DatabaseFunctions:
def __init__(self, location_prefix):
diff --git a/mainwindow.py b/mainwindow.py
index 6bf1ca6..6478488 100644
--- a/mainwindow.py
+++ b/mainwindow.py
@@ -45,17 +45,6 @@ class Ui_MainWindow(object):
self.horizontalLayout.addWidget(self.tabWidget)
self.gridLayout.addLayout(self.horizontalLayout, 0, 0, 1, 1)
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)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
@@ -74,6 +63,4 @@ class Ui_MainWindow(object):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "Lector"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "Library"))
- self.LibraryToolBar.setWindowTitle(_translate("MainWindow", "toolBar"))
- self.BookToolBar.setWindowTitle(_translate("MainWindow", "toolBar_2"))
diff --git a/resources/main.ui b/resources/main.ui
index 914c33b..8996053 100644
--- a/resources/main.ui
+++ b/resources/main.ui
@@ -79,46 +79,6 @@
-
-
- toolBar
-
-
- false
-
-
-
- 22
- 22
-
-
-
- false
-
-
- TopToolBarArea
-
-
- false
-
-
-
-
- toolBar_2
-
-
- false
-
-
- false
-
-
- TopToolBarArea
-
-
- false
-
-