/b-gtk/fix-viz

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/b-gtk/fix-viz
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
1
# Copyright (C) 2006 by Szilveszter Farkas (Phanatic) <szilveszter.farkas@gmail.com>
0.8.46 by Szilveszter Farkas (Phanatic)
Modified OliveDialog class interface; huge cleanups.
2
#
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
3
# This program is free software; you can redistribute it and/or modify
4
# it under the terms of the GNU General Public License as published by
5
# the Free Software Foundation; either version 2 of the License, or
6
# (at your option) any later version.
0.8.46 by Szilveszter Farkas (Phanatic)
Modified OliveDialog class interface; huge cleanups.
7
#
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
8
# This program is distributed in the hope that it will be useful,
9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11
# GNU General Public License for more details.
0.8.46 by Szilveszter Farkas (Phanatic)
Modified OliveDialog class interface; huge cleanups.
12
#
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
13
# You should have received a copy of the GNU General Public License
14
# along with this program; if not, write to the Free Software
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
17
import sys
18
19
try:
20
    import pygtk
21
    pygtk.require("2.0")
22
except:
23
    pass
24
try:
25
    import gtk
26
    import gtk.glade
27
except:
28
    sys.exit(1)
29
0.11.1 by Jelmer Vernooij
Eliminate olive.backend.errors.
30
import bzrlib.errors as errors
0.8.84 by Szilveszter Farkas (Phanatic)
Huge cleanup after removing backend codebase.
31
from bzrlib.workingtree import WorkingTree
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
32
33
class OliveRemove:
34
    """ Display the Remove file(s) dialog and perform the needed actions. """
0.8.46 by Szilveszter Farkas (Phanatic)
Modified OliveDialog class interface; huge cleanups.
35
    def __init__(self, gladefile, comm, dialog):
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
36
        """ Initialize the Remove file(s) dialog. """
37
        self.gladefile = gladefile
38
        self.glade = gtk.glade.XML(self.gladefile, 'window_remove')
39
        
0.8.46 by Szilveszter Farkas (Phanatic)
Modified OliveDialog class interface; huge cleanups.
40
        # Communication object
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
41
        self.comm = comm
0.8.46 by Szilveszter Farkas (Phanatic)
Modified OliveDialog class interface; huge cleanups.
42
        # Dialog object
43
        self.dialog = dialog
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
44
        
45
        self.window = self.glade.get_widget('window_remove')
46
        
47
        # Dictionary for signal_autoconnect
48
        dic = { "on_button_remove_remove_clicked": self.remove,
49
                "on_button_remove_cancel_clicked": self.close }
50
        
51
        # Connect the signals to the handlers
52
        self.glade.signal_autoconnect(dic)
53
54
    def display(self):
0.8.23 by Szilveszter Farkas (Phanatic)
Visual feedback when Olive is busy; follow bzr API changes; commit dialog update
55
        """ Display the Remove file(s) dialog. """
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
56
        self.window.show_all()
57
        
58
    def remove(self, widget):
59
        radio_selected = self.glade.get_widget('radiobutton_remove_selected')
60
        radio_new = self.glade.get_widget('radiobutton_remove_new')
61
        
62
        directory = self.comm.get_path()
63
        
0.8.23 by Szilveszter Farkas (Phanatic)
Visual feedback when Olive is busy; follow bzr API changes; commit dialog update
64
        self.comm.set_busy(self.window)
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
65
        if radio_selected.get_active():
0.8.24 by Szilveszter Farkas (Phanatic)
Implemented context menu for the file list.
66
            # Remove only the selected file
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
67
            filename = self.comm.get_selected_right()
68
            
69
            if filename is None:
0.8.55 by Szilveszter Farkas (Phanatic)
Gettext support added.
70
                self.dialog.error_dialog(_('No file was selected'),
71
                                         _('Please select a file from the list,\nor choose the other option.'))
0.8.65 by Szilveszter Farkas (Phanatic)
Small bugfixes and changes from bzr-gtk 0.10.
72
                self.comm.set_busy(self.window, False)
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
73
                return
74
            
75
            try:
0.11.8 by Jelmer Vernooij
Integrate olive.backend.fileops
76
                wt, path = WorkingTree.open_containing(directory + '/' + filename)
77
                wt.remove(path)
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
78
            except errors.NotBranchError:
0.8.55 by Szilveszter Farkas (Phanatic)
Gettext support added.
79
                self.dialog.error_dialog(_('Directory is not a branch'),
80
                                         _('You can perform this action only in a branch.'))
0.8.23 by Szilveszter Farkas (Phanatic)
Visual feedback when Olive is busy; follow bzr API changes; commit dialog update
81
                self.comm.set_busy(self.window, False)
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
82
                return
83
            except errors.NotVersionedError:
0.8.55 by Szilveszter Farkas (Phanatic)
Gettext support added.
84
                self.dialog.error_dialog(_('File not versioned'),
85
                                         _('The selected file is not versioned.'))
0.8.23 by Szilveszter Farkas (Phanatic)
Visual feedback when Olive is busy; follow bzr API changes; commit dialog update
86
                self.comm.set_busy(self.window, False)
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
87
                return
88
            except:
89
                raise
90
        elif radio_new.get_active():
0.8.46 by Szilveszter Farkas (Phanatic)
Modified OliveDialog class interface; huge cleanups.
91
            # Remove added files recursively
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
92
            try:
0.11.8 by Jelmer Vernooij
Integrate olive.backend.fileops
93
                wt, path = WorkingTree.open_containing(directory)
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
94
            except errors.NotBranchError:
0.8.55 by Szilveszter Farkas (Phanatic)
Gettext support added.
95
                self.dialog.error_dialog(_('Directory is not a branch'),
96
                                         _('You can perform this action only in a branch.'))
0.8.23 by Szilveszter Farkas (Phanatic)
Visual feedback when Olive is busy; follow bzr API changes; commit dialog update
97
                self.comm.set_busy(self.window, False)
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
98
                return
0.8.84 by Szilveszter Farkas (Phanatic)
Huge cleanup after removing backend codebase.
99
            except:
100
                raise
101
            
102
            added = wt.changes_from(wt.basis_tree()).added
103
            file_list = sorted([f[0] for f in added], reverse=True)
104
            if len(file_list) == 0:
0.8.55 by Szilveszter Farkas (Phanatic)
Gettext support added.
105
                dialog.warning_dialog(_('No matching files'),
106
                                      _('No added files were found in the working tree.'))
0.8.23 by Szilveszter Farkas (Phanatic)
Visual feedback when Olive is busy; follow bzr API changes; commit dialog update
107
                self.comm.set_busy(self.window, False)
0.8.84 by Szilveszter Farkas (Phanatic)
Huge cleanup after removing backend codebase.
108
                return
109
            wt.remove(file_list)
0.8.19 by Szilveszter Farkas (Phanatic)
2006-07-21 Szilveszter Farkas <Szilveszter.Farkas@gmail.com>
110
        else:
111
            # This should really never happen.
112
            pass
113
        
114
        self.close()
115
        self.comm.refresh_right()
116
    
117
    def close(self, widget=None):
118
        self.window.destroy()