gnt-frontend for purple-remote
[python-gnt.git] / example / gntparted / dialog_delete.py
blobd48dd8e785c94200593da482d9b0389ebcb36294
1 #!/usr/bin/env python
3 """The 'Delete Partition' dialog.
4 """
6 import gobject
7 import gnt
8 import parted
9 import common
10 import sys
12 import gppart
13 import gpdevice
15 class DeleteDialog:
16 def __init__(self):
17 self.reset()
19 def reset(self):
20 self.window = None
21 self.device = None
22 self.partition = None
23 self.mwindow = None
25 def set_dev_part(self, dev, part, win):
26 self.device = dev
27 self.partition = part
28 self.mwindow = win
29 if self.partition.part is None or self.partition.part.get_num() < 0:
30 self.reset()
31 return False
32 return True
34 def show(self):
35 if self.window:
36 self.window.destroy()
37 self.window = win = gnt.Box(homo = False, vert = True)
39 win.set_toplevel(True)
40 win.set_title("Delete Partition")
41 win.set_pad(0)
43 win.add_widget(gnt.Label("Are you absolutely sure you want to delete \
44 partition " + self.device.device.get_path() + str(self.partition.part.get_num()) + "?\n\
45 Deleting the partition will cause you to lose the data in it."))
47 def delete_cb(win):
48 self.device.disk.delete_partition(self.partition.part)
49 self.device.disk.write()
50 self.mwindow.update_partition_list(None)
51 self.window.destroy()
52 pass
53 delete = gnt.Button("Delete")
54 delete .connect('activate', delete_cb)
56 def cancel_dialog(button):
57 self.window.destroy()
58 cancel = gnt.Button("Cancel")
59 cancel.connect('activate', cancel_dialog)
61 win.add_widget(common.create_box(delete, cancel))
63 def destroy_cb(win):
64 self.reset()
65 win.connect('destroy', destroy_cb)
66 win.set_alignment(gnt.ALIGN_MID)
67 win.show()
69 deletedialog = DeleteDialog()
70 def show_delete_dialog(device, partition, mwindow):
71 if not deletedialog.set_dev_part(device, partition, mwindow):
72 return
73 deletedialog.show()