Pamhyr2/src/View/Main/NewStudyWindow.py

68 lines
2.4 KiB
Python

# -*- coding: utf-8 -*-
from Model.Study import Study
from View.ASubWindow import ASubWindow
from PyQt5.QtWidgets import (
QRadioButton, QLabel, QDateTimeEdit,
)
class NewStudyWindow(ASubWindow):
def __init__(self, study=None, title="New Study", parent=None):
super(NewStudyWindow, self).__init__(name=title, ui="NewStudy", parent=parent)
self.ui.setWindowTitle(title)
self.parent = parent
self.study = study
if not self.study is None:
self.set_line_edit_text("lineEdit_name", self.study.name)
self.set_text_edit_text("textEdit_description", self.study.description)
self.set_datetime_edit("dateTimeEdit_date", self.study.date)
if self.study.time_system == "date":
self.set_radio_button("radioButton_date", True)
self.find(QLabel, "label_date").setEnabled(True)
self.find(QDateTimeEdit, "dateTimeEdit_date").setEnabled(True)
self.connection()
def connection(self):
time = self.find(QRadioButton, "radioButton_time")
date = self.find(QRadioButton, "radioButton_date")
time.toggled.connect(self.set_time)
date.toggled.connect(self.set_date)
def set_time(self):
if self.get_radio_button("radioButton_time"):
self.find(QLabel, "label_date").setEnabled(False)
self.find(QDateTimeEdit, "dateTimeEdit_date").setEnabled(False)
def set_date(self):
if self.get_radio_button("radioButton_date"):
self.find(QLabel, "label_date").setEnabled(True)
self.find(QDateTimeEdit, "dateTimeEdit_date").setEnabled(True)
def accept(self):
name = self.get_line_edit_text("lineEdit_name")
description = self.get_text_edit_text("textEdit_description")
if self.study is None:
study = Study.new(name, description)
if self.get_radio_button("radioButton_date"):
date = self.get_datetime_edit("dateTimeEdit_date")
study.use_date(date)
self.parent.set_model(study)
else:
self.study.name = name
self.study.description = description
if self.get_radio_button("radioButton_date"):
date = self.get_datetime_edit("dateTimeEdit_date")
self.study.use_date(date)
else:
self.study.use_time()
self.done(True)