def prompt_for_name(self, folder, extension, action): while True: response = self.dialog.run() if response != gtk.RESPONSE_OK: break raw_name = self.name_entry.get_text() error_message = None try: raw_name = application.validate_name(raw_name) except ValueError, e: error_message = e.message if not error_message: if not (raw_name.lower().endswith("." + extension)): raw_name += "." + extension if not error_message: fullname = os.path.join(folder, raw_name) if os.path.exists(fullname): error_message = "'%s' already exists" % raw_name if error_message: dialog = gtk.MessageDialog(parent=self.dialog, buttons=gtk.BUTTONS_OK, type=gtk.MESSAGE_ERROR) dialog.set_markup("<big><b>Please choose a different name</b></big>") dialog.format_secondary_text(error_message) dialog.run() dialog.destroy() continue action(fullname) break
def __prompt_for_name(self, title, save_button_text, action, check_name=None): builder = SaveFileBuilder(title, self._get_display_name(), save_button_text, check_name) builder.dialog.set_transient_for(self.widget.get_toplevel()) if self._get_filename() != None: builder.name_entry.set_text(os.path.basename(self._get_filename())) while True: response = builder.dialog.run() if response != gtk.RESPONSE_OK: break raw_name = builder.name_entry.get_text() error_message = None try: raw_name = application.validate_name(raw_name) except ValueError, e: error_message = e.message if not error_message: extension = "." + self._get_extension() if not (raw_name.lower().endswith(extension)): raw_name += extension if not error_message: fullname = os.path.join(self.notebook.folder, raw_name) if os.path.exists(fullname): error_message = "'%s' already exists" % raw_name if error_message: dialog = gtk.MessageDialog(parent=self.widget.get_toplevel(), buttons=gtk.BUTTONS_OK, type=gtk.MESSAGE_ERROR) dialog.set_markup("<big><b>Please choose a different name</b></big>") dialog.format_secondary_text(error_message) dialog.run() dialog.destroy() continue action(fullname) break
def run(parent=None): builder = CreateNotebookBuilder() builder.dialog.set_transient_for(parent) result_window = None while True: response = builder.dialog.run() if response == 0: # gtk-builder-convert puts check/radio buttons in action-widgets continue if response != gtk.RESPONSE_OK: break error_message = None error_detail = None try: name = application.validate_name(builder.name_entry.get_text()) except ValueError, e: error_message = "<big><b>Please choose a different name</b></big>" error_detail = e.message if error_message is None: if builder.other_folder_radio_button.get_active(): parent_folder = builder.other_folder_chooser.get_filename() else: parent_folder = global_settings.notebooks_dir fullname = os.path.join(parent_folder, name) if os.path.exists(fullname): error_message = "<big><b>Please choose a different name</b></big>" error_detail = "'%s' already exists" % name if error_message is None: try: builder.dialog.hide() description = builder.description_text_view.get_buffer().props.text.strip() result_window = application.create_notebook(fullname, description=description) except OSError, e: builder.dialog.show() error_message = "<big><b>Error creating notebook</b></big>" error_detail = e.message