def __save_image_callback(self, widget): """ """ self.__save_chooser = SaveDialog() while self.__save_chooser.run() == gtk.RESPONSE_OK: type, ext = self.__save_chooser.get_filetype() file = self.__save_chooser.get_filename() if not os.path.exists(file): file += ext if os.path.exists(file): # This hack is a deep inspection in gtk.FileChooser to get # the save button. If the file with the extension exists we # set the filename set a timeout callback to save button # clicked event and call the dialog again. # TODO: Be sure that the timeout will be called after the # dialog run method. self.__save_chooser.set_filename(file) save = self.__save_chooser.action_area.get_children()[0] gobject.timeout_add(REFRESH_RATE, save.clicked) continue try: open(file, "w").close() except: self.__save_chooser.show_error() continue self.radialnet.save_drawing_to_file(file, type) break self.__save_chooser.destroy() self.__save_chooser = None
class ToolsMenu(gtk.Menu): """ """ def __init__(self, radialnet): """ """ gtk.Menu.__init__(self) self.radialnet = radialnet self.__export_chooser = None self.__create_items() def __create_items(self): """ """ self.__hosts = gtk.ImageMenuItem(_("Hosts viewer")) self.__hosts.connect("activate", self.__hosts_viewer_callback) self.__hosts_image = gtk.Image() self.__hosts_image.set_from_stock(gtk.STOCK_INDEX, gtk.ICON_SIZE_MENU) self.__hosts.set_image(self.__hosts_image) self.__save = gtk.ImageMenuItem(_("Save snapshot")) self.__save.connect("activate", self.__save_image_callback) self.__save_image = gtk.Image() self.__save_image.set_from_stock(gtk.STOCK_SAVE, gtk.ICON_SIZE_MENU) self.__save.set_image(self.__save_image) self.append(self.__hosts) self.append(self.__save) self.__hosts.show_all() self.__save.show_all() def __hosts_viewer_callback(self, widget): """ """ window = HostsViewer(self.radialnet.get_scanned_nodes()) window.show_all() window.set_keep_above(True) def __save_image_callback(self, widget): """ """ self.__save_chooser = SaveDialog() while self.__save_chooser.run() == gtk.RESPONSE_OK: type, ext = self.__save_chooser.get_filetype() file = self.__save_chooser.get_filename() if not os.path.exists(file): file += ext if os.path.exists(file): # This hack is a deep inspection in gtk.FileChooser to get # the save button. If the file with the extension exists we # set the filename set a timeout callback to save button # clicked event and call the dialog again. # TODO: Be sure that the timeout will be called after the # dialog run method. self.__save_chooser.set_filename(file) save = self.__save_chooser.action_area.get_children()[0] gobject.timeout_add(REFRESH_RATE, save.clicked) continue try: open(file, "w").close() except: self.__save_chooser.show_error() continue self.radialnet.save_drawing_to_file(file, type) break self.__save_chooser.destroy() self.__save_chooser = None def enable_dependents(self): """ """ self.__hosts.set_sensitive(True) self.__save.set_sensitive(True) def disable_dependents(self): """ """ self.__hosts.set_sensitive(False) self.__save.set_sensitive(False)