aboutsummaryrefslogtreecommitdiff
path: root/src/gui/tasks/main.py
diff options
context:
space:
mode:
authorJoris2020-05-08 14:12:47 +0200
committerJoris2020-05-08 14:14:16 +0200
commitdf828c4b141f84f731afffbe17c80618cacf9480 (patch)
treeaeae4a185c3f23da0331b32139c072ebe50b50dd /src/gui/tasks/main.py
parent2abfaddc6a3a5233018ad285421eaf531a01a283 (diff)
downloadtodo-df828c4b141f84f731afffbe17c80618cacf9480.tar.gz
todo-df828c4b141f84f731afffbe17c80618cacf9480.tar.bz2
todo-df828c4b141f84f731afffbe17c80618cacf9480.zip
Bootstrap todo-next
Diffstat (limited to 'src/gui/tasks/main.py')
-rw-r--r--src/gui/tasks/main.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/gui/tasks/main.py b/src/gui/tasks/main.py
new file mode 100644
index 0000000..3c7d3db
--- /dev/null
+++ b/src/gui/tasks/main.py
@@ -0,0 +1,39 @@
+from PyQt5 import QtWidgets, QtCore
+
+import db.tasks
+import gui.tasks.signal
+import gui.tasks.table.main
+import gui.icons
+from model.task import TaskForm
+
+def widget(database, parent):
+ widget = QtWidgets.QWidget(parent)
+
+ layout = QtWidgets.QVBoxLayout(widget)
+ widget.setLayout(layout)
+
+ add_task_signal = gui.tasks.signal.AddTask()
+
+ add_task_button = QtWidgets.QPushButton('Add a task', widget)
+ add_task_button.setIcon(gui.icons.new_folder(widget.style()))
+ add_task_button.clicked.connect(lambda: show_add_dialog(database, widget, add_task_signal))
+ layout.addWidget(add_task_button)
+
+ table = gui.tasks.table.main.widget(database, widget, add_task_signal)
+ layout.addWidget(table)
+
+ return widget
+
+def show_add_dialog(database, parent_widget, add_task_signal):
+ dialog = gui.tasks.modal.dialog(
+ parent_widget,
+ 'Add a task',
+ 'add',
+ None,
+ lambda taskForm: on_add(database, taskForm, add_task_signal))
+ dialog.exec_()
+
+def on_add(database, taskForm: TaskForm, add_task_signal):
+ task = db.tasks.insert(database.cursor(), taskForm)
+ database.commit()
+ add_task_signal.emit(task)