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()
self.btnDelete.clicked.connect(self.deleteGroup)
self.btnChangeName.clicked.connect(self.editName)
def setGroup(self, group):
self.group = group
Jakub Štercl
committed
self.personTable = PersonTable(num_of_buttons=2, button_titles=("View", "-",), data=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())
Jakub Štercl
committed
# fill it with current name
self._editName.setText(self.lblName.text())
# 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)
Jakub Štercl
committed
# TODO database
def changeName(self):
Jakub Štercl
committed
try:
self.group.changeName(self._editName.text())
except ValueError as e:
msg = Qt.QMessageBox(self)
msg.setIcon(Qt.QMessageBox.Critical)
msg.setText(e.args[0])
msg.setWindowTitle("Nelze přejmenovat skupinu")
msg.setStandardButtons(Qt.QMessageBox.Ok)
msg.exec()
self._editName.setFocus()
return
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)
Jakub Štercl
committed
self.main_window.dataChanged()
def deleteGroup(self):
Jakub Štercl
committed
msg = Qt.QMessageBox(self)
msg.setIcon(Qt.QMessageBox.Question)
msg.setWindowTitle("Opravdu?")
msg.setText("Opravdu chcete smazat skupinu " + self.group.name + "?")
msg.setStandardButtons(Qt.QMessageBox.Ok|Qt.QMessageBox.Cancel)
if (msg.exec() == Qt.QMessageBox.Ok):
self.group.delete()
self.main_window.dataChanged()
self.main_window.goBack()