33
33
import bzrlib.errors as errors
35
if bzrlib.version_info < (0, 9):
36
# function deprecated after 0.9
37
from bzrlib.delta import compare_trees
39
35
from bzrlib.status import show_tree_status
40
36
from bzrlib.workingtree import WorkingTree
42
38
from dialog import OliveDialog
40
from olive import gladefile
45
43
""" Display Status window and perform the needed actions. """
46
def __init__(self, gladefile, comm, dialog):
44
def __init__(self, gladefile, wt, wtpath):
47
45
""" Initialize the Status window. """
48
self.gladefile = gladefile
49
self.glade = gtk.glade.XML(self.gladefile, 'window_status')
51
# Communication object
46
self.glade = gtk.glade.XML(gladefile, 'window_status')
56
48
# Get the Status window widget
57
49
self.window = self.glade.get_widget('window_status')
59
53
# Check if current location is a branch
61
(self.wt, path) = WorkingTree.open_containing(self.comm.get_path())
62
branch = self.wt.branch
63
56
except errors.NotBranchError:
64
57
self.notbranch = True
69
file_id = self.wt.path2id(path)
62
file_id = self.wt.path2id(wtpath)
71
64
self.notbranch = False
72
65
if file_id is None:
98
91
column.add_attribute(cell, "text", 0)
99
92
self.treeview.append_column(column)
101
if bzrlib.version_info < (0, 9):
102
delta = compare_trees(self.old_tree, self.wt)
104
delta = self.wt.changes_from(self.old_tree)
94
delta = self.wt.changes_from(self.old_tree)
106
98
if len(delta.added):
107
100
titer = self.model.append(None, [ _('Added'), None ])
108
101
for path, id, kind in delta.added:
109
102
self.model.append(titer, [ path, path ])
111
104
if len(delta.removed):
112
106
titer = self.model.append(None, [ _('Removed'), None ])
113
107
for path, id, kind in delta.removed:
114
108
self.model.append(titer, [ path, path ])
116
110
if len(delta.renamed):
117
112
titer = self.model.append(None, [ _('Renamed'), None ])
118
113
for oldpath, newpath, id, kind, text_modified, meta_modified \
119
114
in delta.renamed:
120
115
self.model.append(titer, [ oldpath, newpath ])
122
117
if len(delta.modified):
123
119
titer = self.model.append(None, [ _('Modified'), None ])
124
120
for path, id, kind, text_modified, meta_modified in delta.modified:
125
121
self.model.append(titer, [ path, path ])
127
123
done_unknown = False
128
124
for path in self.wt.unknowns():
129
126
if not done_unknown:
130
127
titer = self.model.append(None, [ _('Unknown'), None ])
131
128
done_unknown = True
132
129
self.model.append(titer, [ path, path ])
132
self.model.append(None, [ _('No changes.'), None ])
134
134
self.treeview.expand_all()
136
136
def display(self):
137
137
""" Display the Diff window. """
138
138
if self.notbranch:
139
self.dialog.error_dialog(_('Directory is not a branch'),
139
error_dialog(_('Directory is not a branch'),
140
140
_('You can perform this action only in a branch.'))