def tracefn_dialog(mainwindow, trace_function): builder = gtkutils.load_ui("tracefn-dialog") dlg = builder.get_object("tracefn-dialog") try: name = builder.get_object("name") name.set_text(trace_function.name) return_int = builder.get_object("return_int") return_double = builder.get_object("return_double") return_string = builder.get_object("return_string") return_type = trace_function.return_type if return_type == "int": return_int.set_active(True) elif return_type == "double": return_double.set_active(True) else: return_string.set_active(True) dlg.set_title("Trace function") dlg.set_transient_for(mainwindow) if dlg.run() == gtk.RESPONSE_OK: if return_int.get_active(): return_type = "int" elif return_double.get_active(): return_type = "double" else: return_type = "std::string" trace_function.name = name.get_text() trace_function.return_type = return_type return True return False finally: dlg.destroy()
def new_project(self): def project_name_changed(w = None): name = builder.get_object("newproject-name").get_text() ok = all(c.isalnum() or c == "-" or c == "_" for c in name) and name != "" builder.get_object("newproject-dir").set_text(os.path.join(directory[0], name)) builder.get_object("newproject-ok").set_sensitive(ok) def change_directory(w): d = self.run_file_dialog("Project directory", "open-directory") if d is not None: directory[0] = d project_name_changed() builder = gtkutils.load_ui("newproject-dialog") for project_class in loader.projects: builder.get_object("newproject-target-env").append_text(project_class.get_target_env_name()) builder.get_object("newproject-target-env").set_active(0) dlg = builder.get_object("newproject-dialog") dlg.set_transient_for(self.window) builder.get_object("newproject-name").connect("changed", project_name_changed) directory = [os.getcwd()] project_name_changed() builder.get_object("newproject-dirbutton").connect("clicked", change_directory) try: if dlg.run() == gtk.RESPONSE_OK: dirname = builder.get_object("newproject-dir").get_text() if os.path.exists(dirname): self.show_error_dialog("Path '%s' already exists" % dirname) return target_env_name = builder.get_object("newproject-target-env").get_active_text() p = self._catch_io_error(lambda: loader.new_empty_project(dirname, target_env_name)) if p is not None: self.set_project(p) finally: dlg.hide()
def parameters_dialog(parameter, mainwindow): builder = gtkutils.load_ui("parameter-dialog") dlg = builder.get_object("parameter-dialog") try: name = builder.get_object("name") name.set_text(parameter.name) desc = builder.get_object("description") desc.set_text(parameter.description) default = builder.get_object("default") default.set_text(parameter.default) typename = builder.get_object("type") typename.set_text(parameter.type) policy_mandatory = builder.get_object("policy_mandatory") policy_optional = builder.get_object("policy_optional") policy_constant = builder.get_object("policy_constant") if parameter.policy == "mandatory": policy_mandatory.set_active(True) elif parameter.policy == "optional": policy_optional.set_active(True) elif parameter.policy == "constant": policy_constant.set_active(True) else: raise Exception("Invalid parameter policy") default.set_text(parameter.default) dlg.set_title("Parameter") dlg.set_transient_for(mainwindow) if dlg.run() == gtk.RESPONSE_OK: parameter.name = name.get_text() parameter.description = desc.get_text() parameter.default = default.get_text() parameter.type = typename.get_text() if policy_mandatory.get_active(): parameter.policy = "mandatory" if policy_optional.get_active(): parameter.policy = "optional" if policy_constant.get_active(): parameter.policy = "constant" parameter.changed() return True return False finally: dlg.destroy()
def sequence_dialog(sequence, mainwindow): builder = gtkutils.load_ui("sequence-dialog") dlg = builder.get_object("sequence-dialog") try: name = builder.get_object("name") name.set_text(sequence.name) name.select_region(0, -1) dlg.set_transient_for(mainwindow) if dlg.run() == gtk.RESPONSE_OK: sequence.name = name.get_text() return True return False finally: dlg.destroy()
def testname_dialog(mainwindow, codetest): builder = gtkutils.load_ui("testname-dialog") dlg = builder.get_object("testname-dialog") try: name = builder.get_object("name") name.set_text(codetest.name) name.select_region(0, -1) dlg.set_transient_for(mainwindow) if dlg.run() == gtk.RESPONSE_OK: codetest.name = name.get_text() return True else: return False finally: dlg.destroy()
def connect_dialog(mainwindow): builder = gtkutils.load_ui("connect-dialog") dlg = builder.get_object("connect-dialog") try: host = builder.get_object("host") port = builder.get_object("port") port.set_value(10000) dlg.set_title("Connect") dlg.set_transient_for(mainwindow) if dlg.run() == gtk.RESPONSE_OK: return (host.get_text(), int(port.get_value())) return None finally: dlg.destroy()
def netname_dialog(net, mainwindow): builder = gtkutils.load_ui("netname-dialog") dlg = builder.get_object("netname-dialog") try: name = builder.get_object("name") name.set_text(net.get_name()) name.select_region(0, -1) dlg.set_transient_for(mainwindow) if dlg.run() == gtk.RESPONSE_OK: net.set_name(name.get_text()) return True return False finally: dlg.destroy() def __init__(self, name, initial_value, set_fn): self.name = name self.initial_value = initial_value self.set_fn = set_fn
def tracefn_dialog(mainwindow, trace_function): if trace_function is None: mainwindow.app.show_message_dialog( "No tracing function selected.", gtk.MESSAGE_WARNING) return False builder = gtkutils.load_ui("tracefn-dialog") dlg = builder.get_object("tracefn-dialog") try: name = builder.get_object("name") name.set_text(trace_function.name) return_int = builder.get_object("return_int") return_double = builder.get_object("return_double") return_string = builder.get_object("return_string") return_type = trace_function.return_type if return_type == "int": return_int.set_active(True) elif return_type == "double": return_double.set_active(True) else: return_string.set_active(True) dlg.vbox.show_all() dlg.set_title("Trace function") dlg.set_transient_for(mainwindow) if dlg.run() == gtk.RESPONSE_OK: if return_int.get_active(): return_type = "int" elif return_double.get_active(): return_type = "double" else: return_type = "std::string" trace_function.name = name.get_text() trace_function.return_type = return_type return True return False finally: dlg.destroy()
def tracefn_dialog(mainwindow, trace_function): if trace_function is None: mainwindow.app.show_message_dialog("No tracing function selected.", gtk.MESSAGE_WARNING) return False builder = gtkutils.load_ui("tracefn-dialog") dlg = builder.get_object("tracefn-dialog") try: name = builder.get_object("name") name.set_text(trace_function.name) return_int = builder.get_object("return_int") return_double = builder.get_object("return_double") return_string = builder.get_object("return_string") return_type = trace_function.return_type if return_type == "int": return_int.set_active(True) elif return_type == "double": return_double.set_active(True) else: return_string.set_active(True) dlg.vbox.show_all() dlg.set_title("Trace function") dlg.set_transient_for(mainwindow) if dlg.run() == gtk.RESPONSE_OK: if return_int.get_active(): return_type = "int" elif return_double.get_active(): return_type = "double" else: return_type = "std::string" trace_function.name = name.get_text() trace_function.return_type = return_type return True return False finally: dlg.destroy()