about summary refs log tree commit diff stats
path: root/html/matt-chat/uswds/img/material-icons/cases.svg
diff options
context:
space:
mode:
Diffstat (limited to 'html/matt-chat/uswds/img/material-icons/cases.svg')
-rw-r--r--html/matt-chat/uswds/img/material-icons/cases.svg1
1 files changed, 1 insertions, 0 deletions
diff --git a/html/matt-chat/uswds/img/material-icons/cases.svg b/html/matt-chat/uswds/img/material-icons/cases.svg
new file mode 100644
index 0000000..d59480d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/cases.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 6V4l-2-2h-5L9 4v2H5v11s1 2 2 2h13s2-.98 2-2V6h-4zM4 9H2v11c0 1.11.89 2 2 2h14c1.11 0 2-.89 2-2H4V9zm7-4c0-.55.53-1 1-1h3c.46 0 1 .54 1 1v1h-5V5zM5 6h17v11c0 1.1-.9 2-2 2H7c-1.1 0-2-.9-2-2V6z"/></svg>
\ No newline at end of file
# This file is part of ranger, the console file manager.
# License: GNU GPL version 3, see the file "AUTHORS" for details.

"""The TaskView allows you to modify what the loader is doing."""

from . import Widget
from ranger.ext.accumulator import Accumulator


class TaskView(Widget, Accumulator):
    old_lst = None

    def __init__(self, win):
        Widget.__init__(self, win)
        Accumulator.__init__(self)
        self.scroll_begin = 0

    def draw(self):
        base_clr = []
        base_clr.append('in_taskview')
        lst = self.get_list()

        if self.old_lst != lst:
            self.old_lst = lst
            self.need_redraw = True

        if self.need_redraw:
            self.win.erase()
            if not self.pointer_is_synced():
                self.sync_index()

            if self.hei <= 0:
                return

            self.addstr(0, 0, "Task View")
            self.color_at(0, 0, self.wid, tuple(base_clr), 'title')

            if lst:
                for i in range(self.hei - 1):
                    i += self.scroll_begin
                    try:
                        obj = lst[i]
                    except IndexError:
                        break

                    y = i + 1
                    clr = list(base_clr)

                    if self.pointer == i:
                        clr.append('selected')

                    descr = obj.get_description()
                    if obj.progressbar_supported and obj.percent >= 0 \
                            and obj.percent <= 100:
                        self.addstr(y, 0, "%3.2f%% - %s" %
                                (obj.percent, descr), self.wid)
                        wid = int(self.wid / 100.0 * obj.percent)
                        self.color_at(y, 0, self.wid, tuple(clr))
                        self.color_at(y, 0, wid, tuple(clr), 'loaded')
                    else:
                        self.addstr(y, 0, descr, self.wid)
                        self.color_at(y, 0, self.wid, tuple(clr))

            else:
                if self.hei > 1:
                    self.addstr(1, 0, "No task in the queue.")
                    self.color_at(1, 0, self.wid, tuple(base_clr), 'error')

            self.color_reset()

    def finalize(self):
        y = self.y + 1 + self.pointer - self.scroll_begin
        self.fm.ui.win.move(y, self.x)

    def task_remove(self, i=None):
        if i is None:
            i = self.pointer

        if self.fm.loader.queue:
            self.fm.loader.remove(index=i)

    def task_move(self, to, i=None):
        if i is None:
            i = self.pointer

        self.fm.loader.move(_from=i, to=to)

    def press(self, key):
        self.fm.ui.keymaps.use_keymap('taskview')
        self.fm.ui.press(key)

    def get_list(self):
        return self.fm.loader.queue