Refactor tabs

This commit is contained in:
BasioMeusPuga
2017-11-08 08:32:32 +05:30
parent e44deb5bd8
commit a4782d928b

View File

@@ -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)