main windows will set shadow widget to visible if any widget changed state to working

This commit is contained in:
iLLiCiTiT 2020-12-23 16:50:28 +01:00
parent 8563e53858
commit c2f9a42eb3
3 changed files with 35 additions and 1 deletions

View file

@ -20,6 +20,7 @@ def main(user_role=None):
widget = MainWidget(user_role)
widget.show()
widget.reset()
sys.exit(app.exec_())

View file

@ -193,6 +193,9 @@ QPushButton[btn-type="expand-toggle"] {
background-color: #21252B;
}
#ShadowWidget {
font-size: 36pt;
}
QTabWidget::pane {
border-top-style: none;
}

View file

@ -1,5 +1,6 @@
from Qt import QtWidgets, QtGui
from .base import SystemWidget, ProjectWidget
from .base import CategoryState, SystemWidget, ProjectWidget
from .widgets import ShadowWidget
from .. import style
@ -31,3 +32,32 @@ class MainWidget(QtWidgets.QWidget):
layout.addWidget(header_tab_widget)
self.setLayout(layout)
self.tab_widgets = [
studio_widget,
project_widget
]
self._shadow_widget = ShadowWidget("Working...", self)
for widget in self.tab_widgets:
widget.state_changed.connect(self._on_state_change)
def _on_state_change(self):
any_working = False
for widget in self.tab_widgets:
if widget.state is CategoryState.Working:
any_working = True
break
if (
(any_working and self._shadow_widget.isVisible())
or (not any_working and not self._shadow_widget.isVisible())
):
return
self._shadow_widget.setVisible(any_working)
def reset(self):
for widget in self.tab_widgets:
widget.reset()