Esempio n. 1
0
 def task_deleted(titles):
     space = st.SText.space()
     m1 = st.SText("任务")
     task = st.SText(unicode(titles), color=st.SColor.yellow)
     m2 = st.SText("已删除")
     msg = st.STextList(m1, space, task, space, m2)
     return msg
Esempio n. 2
0
    def _task_detail_title(titles,
                           indent=0,
                           button_show_desc=True,
                           button_edit_title=False):
        # type: (TitleList, int, bool, bool) -> st.STextList
        ind = st.SText.indent(indent)
        space = st.SText.space()
        newline = st.SText.newline()

        t = Task.task_by_title_list(titles)
        ts = titles

        icon = TaskView._task_detail_icon_done(ts.copy(), t.done)
        title = TaskView._task_detail_title_text(ts.copy(), t.done)

        show_desc = st.SText()
        if t.description != '' and button_show_desc:
            show_desc = TaskView._task_detail_button_show_description(
                ts.copy())

        edit_title = st.SText()
        if button_edit_title:
            edit_title = TaskView._task_detail_icon_edit_title(ts.copy())

        r = st.STextList(ind, icon, space, title, space, show_desc, edit_title,
                         newline)
        return r
Esempio n. 3
0
    def _task_detail(titles, indent=0):
        detail_top = TaskView._task_detail_top_task(titles, indent=indent)
        detail_subs = TaskView._task_detail_sub_tasks(titles, indent=indent)

        r = st.STextList()
        r.extend(detail_top)
        r.extend(detail_subs)
        return r
Esempio n. 4
0
    def _task_detail_sub(titles, indent=0):
        # type: (TitleList, int) -> st.STextList
        title = TaskView._task_detail_title(titles.copy(), indent=indent)
        subs = TaskView._task_detail_sub_tasks(titles.copy(), indent)

        r = st.STextList()
        r.extend(title)
        r.extend(subs)
        return r
Esempio n. 5
0
    def _task_detail_main_title(titles, title_text):
        # type: (TitleList, unicode) -> st.STextList
        main_title = st.SText(title_text,
                              color=st.SColor.green,
                              styles=[st.SStyle.bold])
        add = TaskView._task_detail_button_add(titles.copy())

        msg = st.STextList(main_title, add)
        msg.append(st.SText.newline())
        return msg
Esempio n. 6
0
    def _task_list_done():
        r = st.STextList()
        root = TaskRoot.root
        undones, dones = root.split_sub_tasks_by_done()

        for t in reversed(dones):
            ts = TitleList(t.title)
            item = TaskView._task_detail_title(ts, indent=4)
            r.extend(item)
        return r
Esempio n. 7
0
    def task_detail(titles):
        # type: (TitleList) -> st.STextList
        title_text = "任务详细信息"
        main_title = TaskView._task_detail_main_title(titles, title_text)
        detail = TaskView._task_detail(titles, indent=4)

        msg = st.STextList()
        msg.extend(main_title)
        msg.extend(detail)
        return msg
Esempio n. 8
0
    def task_list_done():
        # type: () -> st.STextList
        title_text = "已完成任务列表"
        titles = TitleList()
        main_title = TaskView._task_detail_main_title(titles, title_text)
        detail = TaskView._task_list_done()

        msg = st.STextList()
        msg.extend(main_title)
        msg.extend(detail)
        return msg
Esempio n. 9
0
    def task_detail_all():
        # type: () -> st.STextList
        title_text = "搬砖信息详细信息"
        titles = TitleList()
        main_title = TaskView._task_detail_main_title(titles, title_text)

        subs = TaskView._task_detail_sub_tasks(titles, indent=0)

        msg = st.STextList()
        msg.extend(main_title)
        msg.extend(subs)
        return msg
Esempio n. 10
0
    def task_list():
        # type: () -> st.STextList
        title_text = "搬砖信息列表"
        titles = TitleList()
        main_title = TaskView._task_detail_main_title(titles, title_text)
        detail = TaskView._task_list_undone()
        more_button = TaskView._task_list_show_undone()

        msg = st.STextList()
        msg.extend(main_title)
        msg.extend(detail)
        msg.extend(more_button)
        return msg
Esempio n. 11
0
    def _task_detail_button_show_description(titles):
        # type: (TitleList) -> st.SText
        show = st.SText("[…]", color=st.SColor.white)

        h1 = st.SText("点击以查看")
        h2 = st.SText("任务描述", color=st.SColor.yellow)
        add_hover = st.STextList(h1, h2)
        show.hover_text = add_hover

        command = "!!task detail {}".format(unicode(titles))
        show.set_click_command(command)

        return show
Esempio n. 12
0
    def _task_detail_description(titles, indent=0):
        # type: (TitleList, int) -> st.STextList
        ind = st.SText.indent(indent)
        space = st.SText.space()
        newline = st.SText.newline()

        task = Task.task_by_title_list(titles.copy())

        r = st.STextList()
        if task.description != '':
            d = st.SText(task.description, color=st.SColor.gray)
            edit = TaskView._task_detail_icon_edit_desc(titles)
            r.append(ind, d, space, edit, newline)
        return r
Esempio n. 13
0
    def _task_detail_title_text(titles, done):
        # type: (TitleList, bool) -> st.SText
        title = titles.peek_tail()
        styles = [st.SStyle.strikethrough] if done else None
        color = st.SColor.darkGray if done else st.SColor.yellow
        r = st.SText(title, color=color, styles=styles)

        h1 = st.SText("点击以查看")
        h2 = st.SText("任务详情", st.SColor.yellow)
        hover = st.STextList(h1, h2)
        r.hover_text = hover

        command = "!!task detail {}".format(unicode(titles))
        r.set_click_command(command)
        return r
Esempio n. 14
0
    def _task_detail_button_add(titles):
        # type: (TitleList) -> st.SText
        add = st.SText("[+]", color=st.SColor.red)

        h1 = st.SText("点击以快速")
        h2 = st.SText("添加子任务", color=st.SColor.yellow)
        add_hover = st.STextList(h1, h2)
        add.hover_text = add_hover

        ts = unicode(titles)
        if ts != '':
            suggest = "!!task add {}.".format(ts)
        else:
            suggest = "!!task add "
        add.set_click_suggest(suggest)

        return add
Esempio n. 15
0
    def _task_detail_icon_done(titles, done):
        # type: (TitleList, bool) -> st.SText
        icon_done = st.SText("⬛", color=st.SColor.darkGray)
        icon_undone = st.SText("⬜", color=st.SColor.white)
        icon = icon_done if done else icon_undone

        done_text = "未完成" if done else "完成"
        hover_prefix = st.SText("将任务标记为")
        hover_done = st.SText(done_text, st.SColor.yellow)
        hover = st.STextList(hover_prefix, hover_done)
        icon.hover_text = hover

        option = 'undone' if done else 'done'
        command = "!!task {} {}".format(option, unicode(titles))
        icon.set_click_command(command)

        return icon
Esempio n. 16
0
    def _task_list_show_undone():
        ind = st.SText.indent(4)
        newline = st.SText.newline()

        text = "[已完成任务...]"
        msg = st.SText(text, color=st.SColor.darkGray)

        hover_text = "点击以查看已完成任务"
        hover = st.SText(hover_text)
        msg.hover_text = hover

        command = "!!task list-done"
        msg.set_click_command(command)

        r = st.STextList()
        r.append(ind, msg, newline)
        return r
Esempio n. 17
0
    def _task_detail_top_task(titles, indent=4):
        # type: (TitleList, int) -> st.STextList
        ts = titles
        t = Task.task_by_title_list(ts)

        title = TaskView._task_detail_title(
            ts,
            indent=indent,
            button_show_desc=False,
            button_edit_title=True,
        )
        desc = TaskView._task_detail_description(ts, indent=indent + 3)

        r = st.STextList()
        r.extend(title)
        r.extend(desc)
        return r
Esempio n. 18
0
    def task_added(titles):
        # type: (TitleList) -> st.STextList
        title_text = "添加成功,任务详细信息"
        root_title_list = titles.copy()
        root_title_list.pop_tail()
        main_title = TaskView._task_detail_main_title(root_title_list.copy(),
                                                      title_text)

        if root_title_list.is_empty():
            detail = TaskView._task_detail(titles.copy(), indent=2)
        else:
            detail = TaskView._task_detail(root_title_list.copy(), indent=2)

        msg = st.STextList()
        msg.extend(main_title)
        msg.extend(detail)
        return msg
Esempio n. 19
0
    def _task_detail_sub_tasks(titles, indent=0):
        # type: (TitleList, int) -> st.STextList
        task = Task.task_by_title_list(titles)
        undones, dones = task.split_sub_tasks_by_done()
        r = st.STextList()

        indent += 4
        # 逆序输出,最后创建的在最上面
        for t in reversed(undones):
            ts = titles.copy()
            ts.append(t.title)
            sub = TaskView._task_detail_sub(ts, indent=indent)
            r.extend(sub)
        for t in reversed(dones):
            ts = titles.copy()
            ts.append(t.title)
            sub = TaskView._task_detail_sub(ts, indent=indent)
            r.extend(sub)
        return r
Esempio n. 20
0
 def task_not_found(title):
     # type: (unicode) -> st.STextList
     m1 = st.SText(text="未找到任务 ")
     m2 = st.SText(text="{t}".format(t=title), color=st.SColor.yellow)
     msg = st.STextList(m1, m2)
     return msg