~ubuntu-branches/ubuntu/maverick/pybackpack/maverick

« back to all changes in this revision

Viewing changes to pybackpack/seteditor.py

  • Committer: Bazaar Package Importer
  • Author(s): Andrew Price
  • Date: 2010-01-08 07:11:50 UTC
  • mfrom: (1.1.6 upstream) (4.1.5 sid)
  • Revision ID: james.westby@ubuntu.com-20100108071150-41seumqxmtgd23w5
Tags: 0.5.8-1
* New upstream release
* debian/copyright - Clean up and update
* debian/compat - Bump to 7
* debian/control - Bump the required version of debhelper
* debian/rules - Do not use DEB_INSTALL_CHANGELOGS_ALL - debhelper 7 can
  discover the changelog automatically.

Show diffs side-by-side

added added

removed removed

Lines of Context:
3
3
import gtk
4
4
import gtk.glade
5
5
import gobject
 
6
import gnome
 
7
import gnome.ui
6
8
try:
7
 
        import nautilusburn
 
9
        import braseromedia
8
10
except ImportError:
9
11
        pass
10
 
else:
11
 
        pass
12
12
 
13
13
import backupsets
14
14
import dialogs
15
15
from filechooser import FileChooser
16
16
 
17
17
class SetEditor:
18
 
    def __init__(self, backupsets):
 
18
    def __init__(self, bupsets):
19
19
        self.exitnotify = None
20
 
        self.backupsets = backupsets
 
20
        self.backupsets = bupsets
21
21
        try:
22
22
            self.widgets = gtk.glade.XML("%s/seteditor.glade"
23
23
                           % os.path.dirname(__file__))
48
48
        self.widgets.get_widget('cmb_dst_type').set_active(0)
49
49
        self.widgets.get_widget('notebook').set_current_page(0)
50
50
 
 
51
        self.drive_sel = None
51
52
        self.find_cd_burners()
52
53
 
53
54
    def _new_column(self):
121
122
                False otherwise
122
123
        """
123
124
 
 
125
        druidfilelist = self.widgets.get_widget('treeview_druidfilelist')
124
126
        if buset is not None:
125
127
            if buset.name == _('home'):
126
128
                return False
145
147
                self.widgets.get_widget('entry_ssh_host').set_text(host)
146
148
                self.widgets.get_widget('entry_ssh_path').set_text(path)
147
149
            elif buset.dest[:7] == "cdrw://":
148
 
                device = buset.dest.replace("cdrw://", "")
149
150
                self.widgets.get_widget('cmb_dst_type').set_active(1)
150
 
                found = False
151
 
                for row in self.widgets.get_widget('cmb_dst_burner').get_model():
152
 
                    if row[1].get_device() == device:
153
 
                        self.widgets.get_widget('cmb_dst_burner').set_active_iter(row.iter)
154
 
                        found = True
155
 
                if not found:
156
 
                    self.widgets.get_widget('cmb_dst_burner').set_active(0)
157
151
            else:
158
152
                self.widgets.get_widget('cmb_dst_type').set_active(0)
159
153
                self.widgets.get_widget('entry_new_set_def_dest').set_text(buset.dest)
160
154
            self.widgets.get_widget('new_set_overwrite').set_active(True)
161
 
            druidfilelist = self.widgets.get_widget('treeview_druidfilelist')
162
155
            druidfilelistmodel = druidfilelist.get_model()
163
156
            for f in buset.files_exclude:
164
157
                if f == "**":
180
173
                    druidfilelistmodel.append([druidfilelist.render_icon(gtk.STOCK_ADD,\
181
174
                        gtk.ICON_SIZE_MENU, "TreeView"), druidfilelist.render_icon(\
182
175
                        gtk.STOCK_FILE, gtk.ICON_SIZE_MENU, "TreeView"), f, True])
 
176
            self.widgets.get_widget('window_new_set').set_title(_("Editing backup set '%s'") % buset.name)
 
177
            self.widgets.get_widget('druid1').set_page(self.widgets.get_widget('druid_page_2'))
 
178
        else:
 
179
            self.widgets.get_widget('entry_new_set_name').set_text("")
 
180
            self.widgets.get_widget('entry_new_set_desc').set_text("")
 
181
            self.widgets.get_widget('entry_new_set_name').set_sensitive(True)
 
182
            self.widgets.get_widget('window_new_set').set_title(_("Editing new backup set"))
 
183
            self.widgets.get_widget('druid1').set_page(self.widgets.get_widget('druid_page_start'))
 
184
 
183
185
        if len(druidfilelist)==1:
184
186
            self.widgets.get_widget('druidfilelist_label').set_text("1 item")
185
187
        else:
186
188
            self.widgets.get_widget('druidfilelist_label').set_text("%d items"%len(druidfilelist))
187
189
        self.widgets.get_widget('druid_page_start').show()
188
190
        self.widgets.get_widget('druid_page_finish').show()
189
 
        self.widgets.get_widget('druid1').set_page(self.widgets.get_widget('druid_page_2'))
190
 
        self.widgets.get_widget('window_new_set').set_title(_("Editing backup set '%s'") % buset.name)
191
191
        return True
192
192
 
193
193
    # Event handlers start here
240
240
            self.widgets.get_widget('druid_summary_dest').set_text("sftp://%s@%s%s" % (user, host, path))
241
241
 
242
242
        elif self.widgets.get_widget('cmb_dst_type').get_active() == 1: # CD burner
243
 
            if self.widgets.get_widget('cmb_dst_burner').get_active() == -1:
 
243
            if self.drive_sel is None:
244
244
                return True
245
 
            dest = self.widgets.get_widget('cmb_dst_burner').get_model()[self.widgets.get_widget('cmb_dst_burner').get_active()][1].get_device()
246
 
            self.widgets.get_widget('druid_summary_dest').set_text("cdrw://%s" % dest)
247
 
            self.widgets.get_widget('chk_removable_device').set_active(True)
 
245
            active = self.drive_sel.get_active()
 
246
            if active:
 
247
                    dest = active.get_block_device()
 
248
                    self.widgets.get_widget('druid_summary_dest').set_text("cdrw://%s" % dest)
 
249
                    self.widgets.get_widget('chk_removable_device').set_active(True)
248
250
        self.widgets.get_widget('druid_page_3').set_title(_("Add Files/Folders to '%s'") % self.widgets.get_widget('entry_new_set_name').get_text())
249
251
        self.widgets.get_widget('druid_summary_name').set_text(self.widgets.get_widget('entry_new_set_name').get_text())
250
252
        self.widgets.get_widget('druid_summary_desc').set_text(self.widgets.get_widget('entry_new_set_desc').get_text())
284
286
    def filechosen_new_set_default_dest(self, filename):
285
287
        self.widgets.get_widget('entry_new_set_def_dest').set_text(filename)
286
288
 
287
 
    def on_button_refresh_cd_burners_clicked(self, widget):
288
 
        self.find_cd_burners()
289
 
 
290
289
    def on_druid_page_finish_prepare(self, widget, event):
291
290
        event.set_buttons_sensitive(False, False, False, False)
292
291
                
365
364
 
366
365
        """ Populate a combo box with the names of available CD/DVD drives """
367
366
        try:
368
 
            nautilusburn
 
367
            braseromedia
369
368
        except NameError:
370
369
            error_string = _("No CD burners available, because you do not have the python module \
371
 
nautilusburn.")
 
370
braseromedia.")
372
371
            self.widgets.get_widget('lbl_cd_burner').set_text(error_string)
373
 
            self.widgets.get_widget('cmb_dst_burner').set_sensitive(False)
374
372
        else:
375
 
            sel = nautilusburn.DriveSelection()
376
 
            self.widgets.get_widget('cmb_dst_burner').set_model(sel.get_model())
377
 
 
378
 
            if len(sel.get_model()) == 0:
379
 
                error_string = _("No CD burners were detected on your system.")
380
 
                self.widgets.get_widget('lbl_cd_burner').set_text(error_string)
381
 
                self.widgets.get_widget('cmb_dst_burner').set_sensitive(False)
382
 
            else:
383
 
                msg_string = _("Select which CD burner to use:")
384
 
                self.widgets.get_widget('lbl_cd_burner').set_text(msg_string)
385
 
                self.widgets.get_widget('cmb_dst_burner').set_active(0)
386
 
                self.widgets.get_widget('cmb_dst_burner').set_sensitive(True)
 
373
            self.drive_sel = braseromedia.DriveSelection()
 
374
            self.widgets.get_widget('hbox30').add(self.drive_sel)
 
375
            self.drive_sel.show()
387
376
 
388
377
    def on_hiddenfiles_toggled(self, event):
389
378
        fc = self.widgets.get_widget('filechooserwidget1')