示例#1
0
文件: Menu.py 项目: KurSh/netzob
    def createProjectAction_cb(self, button, entry, dialog):
        projectName = entry.get_text()

        # we verify a name has been provided
        if projectName == None or projectName == "":
            logging.warn(_("Unable to create a project with an empty name."))
            errorDialog = NetzobErrorMessage(_("Unable to create a project with an empty name."))
            return

        # We verify the project name doesn't already exist
        found = False
        for project in self.netzob.getCurrentWorkspace().getProjects():
            if project.getName() == projectName:
                found = True
        if found:
            dialogBis = gtk.Dialog(title=_("Error"), flags=0, buttons=None)
            label = gtk.Label(_("This project name already exists"))
            label.show()
            dialogBis.action_area.pack_start(label, True, True, 0)
            dialogBis.set_size_request(250, 50)
            dialogBis.show()
            dialog.destroy()
            return

        # Creation of the project
        project = Project.createProject(self.netzob.getCurrentWorkspace(), projectName)
        self.netzob.switchCurrentProject(project)

        # Refresh menu
        self.update()
        dialog.destroy()
示例#2
0
    def newProject_activate_cb(self, action):
        """Display the dialog in order to create a new project when
        the user request it through the menu."""

        finish = False
        errorMessage = None

        while not finish:
            # open Dialogbox
            builder2 = Gtk.Builder()
            builder2.add_from_file(os.path.join(ResourcesConfiguration.getStaticResources(), "ui", "dialogbox.glade"))
            dialog = builder2.get_object("newProject")
            dialog.set_transient_for(self.view.mainWindow)

            applybutton = builder2.get_object("newProjectApplyButton")
            entry = builder2.get_object("entry4")
            entry.connect("changed", self.entry_disableButtonIfEmpty_cb, applybutton)

            if errorMessage is not None:
                # Display a warning message on the dialog box
                warnLabel = builder2.get_object("NewProjectWarnLabel")
                warnLabel.set_text(errorMessage)
                warnBox = builder2.get_object("newProjectWarnBox")
                warnBox.show_all()

            # Run the dialog window and wait for the result
            result = dialog.run()

            if result == 0:
                newProjectName = entry.get_text()
                dialog.destroy()
                self.log.debug("Verify the uniqueness of project name: {0}".format(newProjectName))
                found = False
                for (projectName, projectPath) in self.currentWorkspace.getNameOfProjects():
                    if projectName == newProjectName:
                        found = True
                        break
                if found:
                    self.log.info("A project with the same name already exists ({0}, {1}), please change it.".format(projectName, projectPath))
                    errorMessage = _("A project with this name exists")
                else:
                    self.log.debug("Create new project {0}".format(newProjectName))
                    newProject = Project.createProject(self.getCurrentWorkspace(), newProjectName)
                    self.switchProject(newProject.getPath())
                    finish = True
                    errorMessage = None
            else:
                dialog.destroy()
                finish = True
示例#3
0
    def newProject_activate_cb(self, action):
        """Display the dialog in order to create a new project when
        the user request it through the menu."""

        finish = False
        errorMessage = None

        while not finish:
            # open Dialogbox
            builder2 = Gtk.Builder()
            builder2.add_from_file(os.path.join(ResourcesConfiguration.getStaticResources(), "ui", "dialogbox.glade"))
            dialog = builder2.get_object("newProject")
            dialog.set_transient_for(self.view.mainWindow)

            applybutton = builder2.get_object("newProjectApplyButton")
            entry = builder2.get_object("entry4")
            entry.connect("changed", self.entry_disableButtonIfEmpty_cb, applybutton)

            if errorMessage is not None:
                # Display a warning message on the dialog box
                warnLabel = builder2.get_object("NewProjectWarnLabel")
                warnLabel.set_text(errorMessage)
                warnBox = builder2.get_object("newProjectWarnBox")
                warnBox.show_all()

            # Run the dialog window and wait for the result
            result = dialog.run()

            if result == 0:
                newProjectName = entry.get_text()
                dialog.destroy()
                self.log.debug("Verify the uniqueness of project name: {0}".format(newProjectName))
                found = False
                for (projectName, projectPath) in self.currentWorkspace.getNameOfProjects():
                    if projectName == newProjectName:
                        found = True
                        break
                if found:
                    self.log.info("A project with the same name already exists ({0}, {1}), please change it.".format(projectName, projectPath))
                    errorMessage = _("A project with this name exists")
                else:
                    self.log.debug("Create new project {0}".format(newProjectName))
                    newProject = Project.createProject(self.getCurrentWorkspace(), newProjectName)
                    self.switchProject(newProject.getPath())
                    finish = True
                    errorMessage = None
            else:
                dialog.destroy()
                finish = True