Project creation dialog.
| 177 | |
| 178 | |
| 179 | class ProjectCreator(QtWidgets.QDialog): |
| 180 | """Project creation dialog.""" |
| 181 | |
| 182 | def __init__(self, parent): |
| 183 | super().__init__(parent) |
| 184 | self.parent = parent |
| 185 | self.setWindowTitle("New Project") |
| 186 | self.setModal(True) |
| 187 | self.setMinimumWidth(parent.screen_width // 2) |
| 188 | today = datetime.today().strftime("%Y-%m-%d") |
| 189 | self.name_default = "-".join(("{}", "{}", today)) |
| 190 | self.proj_default = "" |
| 191 | self.exp_default = "" |
| 192 | self.loc_default = parent.project_folder |
| 193 | |
| 194 | self.bodypart_list = None |
| 195 | self.individuals_list = None |
| 196 | self.unique_bodyparts_list = None |
| 197 | |
| 198 | self.toggle_3d = Switch() |
| 199 | self.toggle_3d.setChecked(False) |
| 200 | self.madlc_toggle = Switch() |
| 201 | self.madlc_toggle.setChecked(False) |
| 202 | self.unique_toggle = Switch() |
| 203 | self.unique_toggle.setChecked(False) |
| 204 | self.identity_toggle = Switch() |
| 205 | self.identity_toggle.setChecked(False) |
| 206 | |
| 207 | main_layout = QtWidgets.QVBoxLayout(self) |
| 208 | self.user_frame = self.lay_out_user_frame() |
| 209 | self.video_frame = self.lay_out_video_frame() |
| 210 | self.create_button = QtWidgets.QPushButton("Create") |
| 211 | self.create_button.setDefault(True) |
| 212 | self.create_button.clicked.connect(self.finalize_project) |
| 213 | main_layout.addWidget(self.user_frame) |
| 214 | main_layout.addWidget(self.video_frame) |
| 215 | main_layout.addWidget(self.create_button, alignment=QtCore.Qt.AlignRight) |
| 216 | |
| 217 | def lay_out_user_frame(self): |
| 218 | user_frame = QtWidgets.QFrame(self) |
| 219 | user_frame.setFrameShape(user_frame.Shape.StyledPanel) |
| 220 | user_frame.setLineWidth(0) |
| 221 | |
| 222 | proj_label = QtWidgets.QLabel("Project:", user_frame) |
| 223 | self.proj_line = QtWidgets.QLineEdit(self.proj_default, user_frame) |
| 224 | self.proj_line.setPlaceholderText("my project's name") |
| 225 | self._default_style = self.proj_line.styleSheet() |
| 226 | self.proj_line.textEdited.connect(self.update_project_name) |
| 227 | |
| 228 | exp_label = QtWidgets.QLabel("Experimenter:", user_frame) |
| 229 | self.exp_line = QtWidgets.QLineEdit(self.exp_default, user_frame) |
| 230 | self.exp_line.setPlaceholderText("my nickname") |
| 231 | self.exp_line.textEdited.connect(self.update_experimenter_name) |
| 232 | |
| 233 | loc_label = ClickableLabel("Location:", parent=user_frame) |
| 234 | loc_label.signal.connect(self.on_click) |
| 235 | self.loc_line = QtWidgets.QLineEdit(self.loc_default, user_frame) |
| 236 | self.loc_line.setReadOnly(True) |