#1126 update the status bar each time the active tab is changed

This commit is contained in:
Miguel Jacq 2020-06-07 15:07:28 +10:00
parent 1c424500f0
commit 39f20874f2
No known key found for this signature in database
GPG key ID: EEA4341C6D97A0B6
2 changed files with 22 additions and 0 deletions

View file

@ -60,6 +60,7 @@ class TabWidget(QtWidgets.QTabWidget):
# Use a custom tab bar
tab_bar = TabBar()
tab_bar.move_new_tab_button.connect(self.move_new_tab_button)
tab_bar.currentChanged.connect(self.tab_changed)
self.setTabBar(tab_bar)
# Set up the tab widget
@ -108,6 +109,24 @@ class TabWidget(QtWidgets.QTabWidget):
self.new_tab_button.move(pos)
self.new_tab_button.raise_()
def tab_changed(self):
# Active tab was changed
tab_id = self.currentIndex()
self.common.log("TabWidget", "tab_changed", f"Tab was changed to {tab_id}")
try:
mode = self.tabs[tab_id].get_mode()
if mode:
# Update the server status indicator to reflect that of the current tab
self.tabs[tab_id].update_server_status_indicator()
else:
# If this tab doesn't have a mode set yet, blank the server status indicator
self.status_bar.server_status_image_label.clear()
self.status_bar.server_status_label.clear()
except KeyError:
# When all current tabs are closed, index briefly drops to -1 before resetting to 0
# which will otherwise trigger a KeyError on tab.get_mode() above.
pass
def new_tab_clicked(self):
# Create a new tab
self.add_tab()