Refactor tabs
This commit is contained in:
41
__main__.py
41
__main__.py
@@ -80,7 +80,7 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
|
|||||||
# 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)
|
||||||
self.tabWidget.tabCloseRequested.connect(self.close_tab_class)
|
self.tabWidget.tabCloseRequested.connect(self.close_tab)
|
||||||
|
|
||||||
# ListView
|
# ListView
|
||||||
self.listView.setSpacing(15)
|
self.listView.setSpacing(15)
|
||||||
@@ -137,10 +137,6 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
|
|||||||
self.lib_ref.generate_model()
|
self.lib_ref.generate_model()
|
||||||
self.lib_ref.update_listView()
|
self.lib_ref.update_listView()
|
||||||
|
|
||||||
def close_tab_class(self, tab_index):
|
|
||||||
this_tab = Tabs(self, None)
|
|
||||||
this_tab.close_tab(tab_index)
|
|
||||||
|
|
||||||
def toolbar_switch(self):
|
def toolbar_switch(self):
|
||||||
if self.tabWidget.currentIndex() == 0:
|
if self.tabWidget.currentIndex() == 0:
|
||||||
self.bookToolBar.hide()
|
self.bookToolBar.hide()
|
||||||
@@ -171,11 +167,15 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
|
|||||||
def list_doubleclick(self, myindex):
|
def list_doubleclick(self, myindex):
|
||||||
# TODO
|
# TODO
|
||||||
# Shift focus to a currently open tab in case that is needed
|
# Shift focus to a currently open tab in case that is needed
|
||||||
# Load the book. The Tabber class should handle this
|
# Load the book.
|
||||||
index = self.listView.model().index(myindex.row(), 0)
|
index = self.listView.model().index(myindex.row(), 0)
|
||||||
book_metadata = self.listView.model().data(index, QtCore.Qt.UserRole + 3)
|
book_metadata = self.listView.model().data(index, QtCore.Qt.UserRole + 3)
|
||||||
tab_ref = Tabs(self, book_metadata)
|
tab_ref = Tab(book_metadata, self.tabWidget)
|
||||||
tab_ref.create_tab()
|
print(tab_ref.book_metadata) # Metadata upon tab creation
|
||||||
|
|
||||||
|
def close_tab(self, tab_index):
|
||||||
|
print(self.tabWidget.widget(tab_index).book_metadata) # Metadata upon tab deletion
|
||||||
|
self.tabWidget.removeTab(tab_index)
|
||||||
|
|
||||||
def closeEvent(self, event):
|
def closeEvent(self, event):
|
||||||
Settings(self).save_settings()
|
Settings(self).save_settings()
|
||||||
@@ -367,36 +367,29 @@ class LibraryToolBar(QtWidgets.QToolBar):
|
|||||||
self.addWidget(self.sortingBox)
|
self.addWidget(self.sortingBox)
|
||||||
|
|
||||||
|
|
||||||
class Tabs:
|
class Tab(QtWidgets.QWidget):
|
||||||
def __init__(self, parent, book_metadata):
|
def __init__(self, book_metadata, parent=None):
|
||||||
self.parent_window = parent
|
|
||||||
self.book_metadata = book_metadata
|
|
||||||
|
|
||||||
def create_tab(self):
|
|
||||||
# TODO
|
# TODO
|
||||||
# The display widget will probably have to be shifted to something else
|
# The display widget will probably have to be shifted to something else
|
||||||
# A horizontal slider to control flow
|
# A horizontal slider to control flow
|
||||||
# Keyboard shortcuts
|
# Keyboard shortcuts
|
||||||
|
|
||||||
|
super(Tab, self).__init__(parent)
|
||||||
|
self.parent = parent
|
||||||
|
self.book_metadata = book_metadata
|
||||||
|
|
||||||
book_title = self.book_metadata['book_title']
|
book_title = self.book_metadata['book_title']
|
||||||
book_path = self.book_metadata['book_path']
|
book_path = self.book_metadata['book_path']
|
||||||
|
|
||||||
self.tab = QtWidgets.QWidget()
|
self.gridLayout = QtWidgets.QGridLayout(self)
|
||||||
self.tab.setObjectName("newtab")
|
|
||||||
self.gridLayout = QtWidgets.QGridLayout(self.tab)
|
|
||||||
self.gridLayout.setObjectName("gridLayout")
|
self.gridLayout.setObjectName("gridLayout")
|
||||||
self.textEdit = QtWidgets.QTextEdit(self.tab)
|
self.textEdit = QtWidgets.QTextEdit(self)
|
||||||
self.textEdit.setObjectName("textEdit")
|
self.textEdit.setObjectName("textEdit")
|
||||||
self.textEdit.setFrameShape(QtWidgets.QFrame.NoFrame)
|
self.textEdit.setFrameShape(QtWidgets.QFrame.NoFrame)
|
||||||
self.gridLayout.addWidget(self.textEdit, 0, 0, 1, 1)
|
self.gridLayout.addWidget(self.textEdit, 0, 0, 1, 1)
|
||||||
self.parent_window.tabWidget.addTab(self.tab, book_title)
|
self.parent.addTab(self, book_title)
|
||||||
self.textEdit.setText(book_path)
|
self.textEdit.setText(book_path)
|
||||||
|
|
||||||
def close_tab(self, tab_index):
|
|
||||||
tab_title = self.parent_window.tabWidget.tabText(tab_index).replace('&', '')
|
|
||||||
# print(self.parent_window.tabs[tab_title])
|
|
||||||
self.parent_window.tabWidget.removeTab(tab_index)
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
app = QtWidgets.QApplication(sys.argv)
|
app = QtWidgets.QApplication(sys.argv)
|
||||||
|
Reference in New Issue
Block a user