File: problem_table.py

package info (click to toggle)
dupeguru 4.3.1-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 3,604 kB
  • sloc: python: 16,846; ansic: 424; makefile: 123
file content (44 lines) | stat: -rw-r--r-- 1,297 bytes parent folder | download | duplicates (3)
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
40
41
42
43
44
# Created By: Virgil Dupras
# Created On: 2010-04-12
# Copyright 2015 Hardcoded Software (http://www.hardcoded.net)
#
# This software is licensed under the "GPLv3" License as described in the "LICENSE" file,
# which should be included with this package. The terms are also available at
# http://www.gnu.org/licenses/gpl-3.0.html

from hscommon.gui.table import GUITable, Row
from hscommon.gui.column import Column, Columns
from hscommon.trans import trget

coltr = trget("columns")


class ProblemTable(GUITable):
    COLUMNS = [
        Column("path", coltr("File Path")),
        Column("msg", coltr("Error Message")),
    ]

    def __init__(self, problem_dialog):
        GUITable.__init__(self)
        self._columns = Columns(self)
        self.dialog = problem_dialog

    # --- Override
    def _update_selection(self):
        row = self.selected_row
        dupe = row.dupe if row is not None else None
        self.dialog.select_dupe(dupe)

    def _fill(self):
        problems = self.dialog.app.results.problems
        for dupe, msg in problems:
            self.append(ProblemRow(self, dupe, msg))


class ProblemRow(Row):
    def __init__(self, table, dupe, msg):
        Row.__init__(self, table)
        self.dupe = dupe
        self.msg = msg
        self.path = str(dupe.path)