Newer
Older
from controllers.groups_overview_controller import GroupsOverview
from model.qtmodels.group_table_model import GroupTableModel
from model.qtmodels.person_table_model import PersonTableModel
from globals import Global
class MainWindow(Qt.QMainWindow, mainwindow.Ui_MainWindow):
def __init__(self, parent=None):
self.btnBack.clicked.connect(self.goBack)
self.goToGroupsOverview()
self._last_changed = 0
# all controllers have to call this when they change data in db
# it prompts every controller before current widget in stack to reload data
def dataChanged(self):
self._last_changed = self.stackedWidget.currentIndex()
def goToGroupsOverview(self):
groups_overview = GroupsOverview(self)
self.stackedWidget.addWidget(groups_overview)
self.stackedWidget.setCurrentWidget(groups_overview)
# if group_id unfilled - create new group
def goToGroupEdit(self, group=GroupEdit.NEW_GROUP):
if group == GroupEdit.NEW_GROUP:
self._last_changed = self.stackedWidget.currentIndex() + 1
group_edit = GroupEdit(self, group)
self.stackedWidget.addWidget(group_edit)
self.stackedWidget.setCurrentWidget(group_edit)
def goBack(self):
current_index = self.stackedWidget.currentIndex()
if current_index <= 0:
# we're on groups overview (do nothing)
return
if current_index <= self._last_changed:
self.stackedWidget.widget(current_index - 1).reloadData()
self._last_changed -= 1
self.stackedWidget.removeWidget(self.stackedWidget.currentWidget())
self.stackedWidget.setCurrentIndex(current_index - 1)