From a54b7776320ef5aa02e6ef7378c2a011dc454885 Mon Sep 17 00:00:00 2001 From: Joris Date: Sat, 16 Oct 2021 20:09:55 +0200 Subject: Introduce due date Also: - Remove duration, difficulty and priority, - Translate to french. --- todo/gui/tasks/form/widget.py | 82 +++++++++++++++---------------------------- 1 file changed, 28 insertions(+), 54 deletions(-) (limited to 'todo/gui/tasks/form/widget.py') diff --git a/todo/gui/tasks/form/widget.py b/todo/gui/tasks/form/widget.py index a6ce488..a401eaa 100644 --- a/todo/gui/tasks/form/widget.py +++ b/todo/gui/tasks/form/widget.py @@ -3,11 +3,10 @@ from typing import Optional, Tuple, List, Any from todo.model.task import Task, ValidTaskForm from todo.model.tag import Tag -from todo.model import difficulty, priority import todo.gui.icon import todo.gui.tasks.form.state -import todo.gui.tasks.duration import todo.gui.tags.list +from todo.util.gui.date_input import DateInput class TextEditSignal(QtCore.QObject): _signal = QtCore.pyqtSignal(str, name = "textEdit") @@ -34,33 +33,11 @@ def widget( widget.setLayout(layout) init_name = task.name if task is not None else "" - name_input = name_edit(widget, layout, "Name", init_name) - - grid = QtWidgets.QWidget(widget) - layout.addWidget(grid) - grid_layout = QtWidgets.QGridLayout(grid) - grid.setLayout(grid_layout) - - init_duration = todo.gui.tasks.duration.format(task.duration) if task is not None else "" - duration_input = line_edit(grid, grid_layout, 1, "Duration", init_duration) - - init_difficulty = task.difficulty if task is not None else difficulty.Difficulty.NORMAL - difficulty_input = combo_box( - grid, - grid_layout, - 3, - "Difficulty", - [difficulty.format(d) for d in difficulty.values], - int(init_difficulty)) - - init_priority = task.priority if task is not None else priority.Priority.MIDDLE - priority_input = combo_box( - grid, - grid_layout, - 4, - "Priority", - [priority.format(d) for d in priority.values], - int(init_priority)) + name_input = name_edit(widget, layout, "Nom", init_name) + + init_due_date = (task.due_date.strftime("%d/%m/%Y") if task.due_date else None) if task else None + (due_date_input, due_date_signal) = date_edit(widget, "Échéance", init_due_date) + layout.addWidget(due_date_input) (tags_list_widget, tags_signal) = tags_selection(widget, tags) layout.addWidget(tags_list_widget) @@ -72,12 +49,8 @@ def widget( task_form_edition = todo.gui.tasks.form.state.TaskFormEdition( init_name, name_input.textChanged, - init_duration, - duration_input.textChanged, - init_difficulty, - difficulty_input.currentIndexChanged, - init_priority, - priority_input.currentIndexChanged, + init_due_date, + due_date_signal, tags, tags_signal, init_description, @@ -119,23 +92,6 @@ def name_edit( return edit -def line_edit( - parent, - layout: QtWidgets.QGridLayout, - n: int, - label: str, - default_value: str) -> QtWidgets.QLineEdit: - - label = QtWidgets.QLabel(label, parent) - layout.addWidget(label, n, 0) - - edit = QtWidgets.QLineEdit(parent) - if default_value != None: - edit.setText(default_value) - layout.addWidget(edit, n, 1) - - return edit - def combo_box( parent, layout: QtWidgets.QGridLayout, @@ -162,7 +118,8 @@ def tags_selection(parent, init_tags: List[int]) -> QtWidgets.QWidget: def text_edit( parent, label: str, - default_value: str) -> Tuple[QtWidgets.QWidget, TextEditSignal]: + default_value: str + ) -> Tuple[QtWidgets.QWidget, TextEditSignal]: widget = QtWidgets.QWidget(parent) layout = QtWidgets.QVBoxLayout(widget) @@ -181,6 +138,23 @@ def text_edit( return (widget, signal) +def date_edit( + parent, + label: str, + init_date: str + ) -> QtWidgets.QLineEdit: + + widget = QtWidgets.QWidget(parent) + layout = QtWidgets.QVBoxLayout(widget) + + label = QtWidgets.QLabel(label, parent) + layout.addWidget(label) + + date_input = DateInput(init_date, parent) + layout.addWidget(date_input) + + return (widget, date_input.textChanged) + def buttons(parent, action_title, task_form_signal, on_validate, on_cancel): widget = QtWidgets.QWidget(parent) layout = QtWidgets.QHBoxLayout(widget) @@ -199,7 +173,7 @@ def buttons(parent, action_title, task_form_signal, on_validate, on_cancel): task_form_signal.connect(on_task_form_signal) - cancel = QtWidgets.QPushButton("cancel", widget) + cancel = QtWidgets.QPushButton("Annuler", widget) cancel.setIcon(todo.gui.icon.dialog_cancel(cancel.style())) cancel.clicked.connect(on_cancel) layout.addWidget(cancel) -- cgit v1.2.3