コード例 #1
0
ファイル: dialog.py プロジェクト: hszer0/Explicator
def show_task_dialog(pid, tid=None):
    taskdialog = gtk.Dialog(title="Task", flags=gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
        buttons=(gtk.STOCK_SAVE, gtk.RESPONSE_ACCEPT, gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL))

    taskdialog.vbox.set_size_request(200, 175)
    label = gtk.Label()
    label.set_alignment(0, 0)
    if tid is None:
        label.set_markup("<big><b>Add Task</b></big>")
    else:
        label.set_markup("<big><b>Edit Task</b></big>")
    taskdialog.vbox.pack_start(label, False)
    label = gtk.Label("Name")
    label.set_alignment(0.0, 0.0)
    taskdialog.vbox.pack_start(label, False)
    taskdialog.TaskNameEntry = gtk.Entry(max=50)
    taskdialog.TaskNameEntry.set_activates_default(True)
    taskdialog.vbox.pack_start(taskdialog.TaskNameEntry, False)
    hbox = gtk.HBox()
    vbox = gtk.VBox()
    label = gtk.Label("Status")
    label.set_alignment(0.0, 0.0)
    vbox.pack_start(label)
    taskdialog.TaskStatusCombo = gtk.combo_box_new_text()
    for status in statuslist:
        taskdialog.TaskStatusCombo.append_text(status)
    vbox.pack_start(taskdialog.TaskStatusCombo)
    taskdialog.TaskDateEntry = gtk.Entry(max=10)
    taskdialog.TaskDateEntry.set_activates_default(True)
    hbox.pack_start(vbox, False)
    vbox = gtk.VBox()
    label = gtk.Label("Due Date")
    label.set_alignment(0.0, 0.0)
    vbox.pack_start(label)
    vbox.pack_start(taskdialog.TaskDateEntry)
    hbox.pack_start(vbox)
    taskdialog.vbox.pack_start(hbox, False, padding=5)
    taskdialog.set_default_response(gtk.RESPONSE_ACCEPT)

    if tid is not None:
        taskdata = DBConnection.get_data("task", tid)
        taskdialog.TaskNameEntry.set_text(taskdata[1])
        for index, status in enumerate(statuslist):
            if taskdata[3] == status:
                taskdialog.TaskStatusCombo.set_active(index)
        taskdialog.TaskDateEntry.set_text(taskdata[4])
    else:
        taskdialog.TaskStatusCombo.set_active(1)

    taskdialog.set_position(gtk.WIN_POS_CENTER)
    taskdialog.show_all()
    response = taskdialog.run()

    if response == gtk.RESPONSE_ACCEPT:
        if tid is None:
            DBConnection.add_task(pid, taskdialog.TaskNameEntry.get_text(), get_active_text(taskdialog.TaskStatusCombo),
                taskdialog.TaskDateEntry.get_text())
            taskdialog.destroy()
        else:
            DBConnection.update_table("task", "name = '%(name)s', status = '%(status)s', duedate = '%(duedate)s'" %
                                              {"name": taskdialog.TaskNameEntry.get_text().replace("'", "''"),
                                               "status": get_active_text(taskdialog.TaskStatusCombo),
                                               "duedate": taskdialog.TaskDateEntry.get_text()}, tid)
            taskdialog.destroy()
        return True

    taskdialog.destroy()
    return False
コード例 #2
0
 def convert_action_to_task(self, widget):
     if self.pid is not None and self.aid is not None:
         actiondata = DBConnection.get_data("action", self.aid)
         DBConnection.add_task(self.pid, actiondata[1], "available",
                               "1901-01-01")
         self.remove_action(widget)