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()
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