def __init__(self, desktopFile):
self.desktopFile = desktopFile
(status, output) = subprocess.getstatusoutput("dpkg -S " + self.desktopFile)
package = output[:output.find(":")]
if status != 0:
warnDlg = Gtk.MessageDialog(None, 0, Gtk.MessageType.WARNING, Gtk.ButtonsType.YES_NO, _("This application has been removed. Are you sure remove the menu form the startup menu?"))
warnDlg.vbox.set_spacing(10)
response = warnDlg.run()
if response == Gtk.ResponseType.YES :
print (("removing '%s'" % self.desktopFile))
os.system("rm -f '%s'" % self.desktopFile)
os.system("rm -f '%s.desktop'" % self.desktopFile)
warnDlg.destroy()
sys.exit(0)
warnDlg = Gtk.MessageDialog(None, 0, Gtk.MessageType.WARNING, Gtk.ButtonsType.OK_CANCEL, _("The following packages will be removed:"))
warnDlg.vbox.set_spacing(10)
treeview = Gtk.TreeView()
column1 = Gtk.TreeViewColumn(_("Packages will be removed"))
renderer = Gtk.CellRendererText()
column1.pack_start(renderer, False)
column1.add_attribute(renderer, "text", 0)
treeview.append_column(column1)
model = Gtk.ListStore(str)
dependenciesString = subprocess.getoutput("apt-get -s -q remove " + package + " | grep Remv")
dependencies = string.split(dependenciesString, "\n")
for dependency in dependencies:
dependency = dependency.replace("Remv ", "")
model.append([dependency])
treeview.set_model(model)
treeview.show()
scrolledwindow = Gtk.ScrolledWindow()
scrolledwindow.set_shadow_type(Gtk.ShadowType.ETCHED_OUT)
scrolledwindow.set_size_request(300, 150)
scrolledwindow.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
scrolledwindow.add(treeview)
scrolledwindow.show()
warnDlg.get_content_area().add(scrolledwindow)
response = warnDlg.run()
if response == Gtk.ResponseType.OK :
executer = RemoveExecuter(package)
executer.start()
elif response == Gtk.ResponseType.CANCEL :
sys.exit(0)
warnDlg.destroy()
Gtk.main()
评论列表
文章目录