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
예제 #2
0
    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
예제 #3
0
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)
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)