/b-gtk/fix-viz

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/b-gtk/fix-viz

« back to all changes in this revision

Viewing changes to olive/status.py

  • Committer: Szilveszter Farkas (Phanatic)
  • Date: 2006-09-30 13:04:15 UTC
  • mto: (0.14.3 main)
  • mto: This revision was merged to the branch mainline in revision 86.
  • Revision ID: Szilveszter.Farkas@gmail.com-20060930130415-aba4100709e11f0a
Loads of fixes. Pyflakes cleanup.

Show diffs side-by-side

added added

removed removed

Lines of Context:
14
14
# along with this program; if not, write to the Free Software
15
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
16
 
17
 
import sys
18
 
 
19
17
try:
20
18
    import pygtk
21
19
    pygtk.require("2.0")
22
20
except:
23
21
    pass
24
 
try:
25
 
    import gtk
26
 
    import gtk.glade
27
 
    import gobject
28
 
    import pango
29
 
except:
30
 
    sys.exit(1)
31
 
 
32
 
import bzrlib
33
 
import bzrlib.errors as errors
34
 
 
35
 
if bzrlib.version_info < (0, 9):
36
 
    # function deprecated after 0.9
37
 
    from bzrlib.delta import compare_trees
38
 
 
39
 
from bzrlib.status import show_tree_status
40
 
from bzrlib.workingtree import WorkingTree
41
 
 
42
 
from dialog import OliveDialog
 
22
 
 
23
import gtk
 
24
import gtk.glade
 
25
 
 
26
from olive import gladefile
43
27
 
44
28
class OliveStatus:
45
29
    """ Display Status window and perform the needed actions. """
46
 
    def __init__(self, gladefile, comm, dialog):
 
30
    def __init__(self, wt, wtpath):
47
31
        """ Initialize the Status window. """
48
 
        self.gladefile = gladefile
49
 
        self.glade = gtk.glade.XML(self.gladefile, 'window_status')
50
 
        
51
 
        # Communication object
52
 
        self.comm = comm
53
 
        # Dialog object
54
 
        self.dialog = dialog
 
32
        self.glade = gtk.glade.XML(gladefile, 'window_status')
55
33
        
56
34
        # Get the Status window widget
57
35
        self.window = self.glade.get_widget('window_status')
58
36
        
 
37
        self.wt = wt
 
38
        self.wtpath = wtpath
 
39
        
59
40
        # Check if current location is a branch
60
 
        try:
61
 
            (self.wt, path) = WorkingTree.open_containing(self.comm.get_path())
62
 
            branch = self.wt.branch
63
 
        except errors.NotBranchError:
64
 
            self.notbranch = True
65
 
            return
66
 
        except:
67
 
            raise
68
 
        
69
 
        file_id = self.wt.path2id(path)
 
41
        file_id = self.wt.path2id(wtpath)
70
42
 
71
 
        self.notbranch = False
72
 
        if file_id is None:
73
 
            self.notbranch = True
74
 
            return
75
 
        
76
43
        # Set the old working tree
77
44
        self.old_tree = self.wt.branch.repository.revision_tree(self.wt.branch.last_revision())
78
45
        
98
65
        column.add_attribute(cell, "text", 0)
99
66
        self.treeview.append_column(column)
100
67
        
101
 
        if bzrlib.version_info < (0, 9):
102
 
            delta = compare_trees(self.old_tree, self.wt)
103
 
        else:
104
 
            delta = self.wt.changes_from(self.old_tree)
 
68
        delta = self.wt.changes_from(self.old_tree)
105
69
 
 
70
        changes = False
 
71
        
106
72
        if len(delta.added):
 
73
            changes = True
107
74
            titer = self.model.append(None, [ _('Added'), None ])
108
75
            for path, id, kind in delta.added:
109
76
                self.model.append(titer, [ path, path ])
110
77
 
111
78
        if len(delta.removed):
 
79
            changes = True
112
80
            titer = self.model.append(None, [ _('Removed'), None ])
113
81
            for path, id, kind in delta.removed:
114
82
                self.model.append(titer, [ path, path ])
115
83
 
116
84
        if len(delta.renamed):
 
85
            changes = True
117
86
            titer = self.model.append(None, [ _('Renamed'), None ])
118
87
            for oldpath, newpath, id, kind, text_modified, meta_modified \
119
88
                    in delta.renamed:
120
89
                self.model.append(titer, [ oldpath, newpath ])
121
90
 
122
91
        if len(delta.modified):
 
92
            changes = True
123
93
            titer = self.model.append(None, [ _('Modified'), None ])
124
94
            for path, id, kind, text_modified, meta_modified in delta.modified:
125
95
                self.model.append(titer, [ path, path ])
126
96
        
127
97
        done_unknown = False
128
98
        for path in self.wt.unknowns():
 
99
            changes = True
129
100
            if not done_unknown:
130
101
                titer = self.model.append(None, [ _('Unknown'), None ])
131
102
                done_unknown = True
132
103
            self.model.append(titer, [ path, path ])
133
104
 
 
105
        if not changes:
 
106
            self.model.append(None, [ _('No changes.'), None ])
 
107
 
134
108
        self.treeview.expand_all()
135
109
    
136
110
    def display(self):
137
111
        """ Display the Diff window. """
138
 
        if self.notbranch:
139
 
            self.dialog.error_dialog(_('Directory is not a branch'),
140
 
                                     _('You can perform this action only in a branch.'))
141
 
            self.close()
142
 
        else:
143
 
            self.window.show_all()
 
112
        self.window.show_all()
144
113
 
145
114
    def close(self, widget=None):
146
115
        self.window.destroy()