Newer
Older
from PyQt5.QtWidgets import QLineEdit
from model.qtmodels.person_table_model import PersonTableModel
from utils.person_table import PersonTable
Jakub Štercl
committed
from windows import groupedit
from PyQt5 import QtWidgets as Qt
from model.group import Group
Jakub Štercl
committed
NEW_GROUP = 0
def __init__(self, main_window, group, parent=None):
self.setupUi(self)
self.main_window = main_window
if group == self.NEW_GROUP:
self.setGroup(Group(Group.NEW_GROUP))
else:
self.setGroup(group)
self._editName = QLineEdit()
# insert others table
self.othersTable = PersonTable()
self.layoutOthers.insertWidget(1, self.othersTable)
self.btnDelete.clicked.connect(self.deleteGroup)
self.btnChangeName.clicked.connect(self.editName)
def setGroup(self, group):
self.group = group
self.personTable = PersonTable(group.getMembers())
self.layoutMembers.insertWidget(1, self.personTable)
self.lblName.setText(group.name)
def editName(self):
self.btnChangeName.setText("OK")
# hide label and remove it from layout
self.lblName.hide()
self.layoutName.removeWidget(self.lblName)
# make line edit the same size
if self.lblName.width() > 100:
self._editName.setFixedWidth(self.lblName.width())
else:
self._editName.setFixedWidth(100)
self._editName.setFixedHeight(self.lblName.height())
# add line edit to layout
self.layoutName.insertWidget(1, self._editName)
self._editName.show()
# change signals of button
self.btnChangeName.clicked.disconnect(self.editName)
self.btnChangeName.clicked.connect(self.changeName)
def changeName(self):
self._checkName()
self.btnChangeName.setText("Edit")
# hide line edit
self._editName.hide()
self.layoutName.removeWidget(self._editName)
#show updated label
self.layoutName.insertWidget(1, self.lblName)
self.lblName.setText(self._editName.text())
self.lblName.show()
# change signals of button
self.btnChangeName.clicked.disconnect(self.changeName)
self.btnChangeName.clicked.connect(self.editName)
# TODO check name (long enough (but not too much :)), unique ...
def _checkName(self):
...
# TODO confirmation (QMessage)
def deleteGroup(self):
self.group.delete()
self.main_window.dataChanged()
self.main_window.goBack()