1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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)
|