def close_tab(self, position=None): """ This method close a tab. Parameters: * **position** Returns: * **Types** (:class:`boolean<boolean>`) """ if position is None: position = self.get_current_page() diagram = self.get_nth_page(position) if diagram.modified: dialog = Dialog().confirm_dialog( _("Diagram ") + diagram.file_name + _("is not saved.\nIf you close it" ", changes will be lost.\n" "Confirm?"), self.main_window) result = dialog.run() dialog.destroy() if result == Gtk.ResponseType.CANCEL: return False self.remove_page(position) self.diagrams.pop(position) return True
def __delete(self, widget=None, data=None): name = self.__get_selected() if name is None: return dialog = Dialog().confirm_dialog(_("Are you sure?"), self) result = dialog.run() dialog.destroy() if result == Gtk.ResponseType.OK: self.main_window.main_control.delete_port(name) self.__update()
def __delete(self, widget=None, data=None): block = self.block_notebook.get_selected_block() if block is None: return dialog = Dialog().confirm_dialog(_("Are you sure?"), self) result = dialog.run() dialog.destroy() if result == Gtk.ResponseType.OK: self.main_window.main_control.delete_block(block) self.update()
def __property_delete(self, widget=None, data=None): treeselection = self.props_tree_view.get_selection() model, iterac = treeselection.get_selected() if iterac is None: return None dialog = Dialog().confirm_dialog(_("Are you sure?"), self.block_editor) result = dialog.run() dialog.destroy() if result != Gtk.ResponseType.OK: return path = model.get_path(iterac) del self.block.get_properties()[int(str(path))] self.__populate_property() self.__clean_side_panel()
def __delete(self, widget=None, data=None): treeselection = None treeselection = self.tree_view.get_selection() model, iterac = treeselection.get_selected() if iterac is None: return None path = model.get_path(iterac) name = model.get_value(model.get_iter(path), 0) dialog = Dialog().confirm_dialog(_("Are you sure?"), self) result = dialog.run() dialog.destroy() if result != Gtk.ResponseType.OK: return path = model.get_path(iterac) del self.codes[name] self.__populate_list() self.__clean_side_panel()
def __property_delete(self, widget=None, data=None): treeselection = None if data == "Input": treeselection = self.input_tree_view.get_selection() else: treeselection = self.output_tree_view.get_selection() model, iterac = treeselection.get_selected() if iterac is None: return None dialog = Dialog().confirm_dialog(_("Are you sure?"), self.plugin_editor) result = dialog.run() dialog.destroy() if result != Gtk.ResponseType.OK: return path = model.get_path(iterac) if data == "Input": del self.plugin.in_ports[int(str(path))] else: del self.plugin.out_ports[int(str(path))] self.__populate_lists() self.__clean_side_panel()
class WorkArea(Gtk.Notebook): """ This class contains methods related the WorkArea class. """ def __init__(self, main_window): Gtk.Notebook.__init__(self) self.main_window = main_window self.set_scrollable(True) self.diagrams = [] self.connect("switch-page", self.__on_switch_page) self.connect("page-removed", self.__on_page_removed) # ---------------------------------------------------------------------- def __on_page_removed(self, notebook, child, page_num): if self.get_n_pages() == 0: self.main_window.set_title("") # ---------------------------------------------------------------------- def __on_switch_page(self, notebook, child, page_num): self.main_window.set_title(child.file_name) # ---------------------------------------------------------------------- def add_diagram(self, diagram): """ This method add a new diagram page. Parameters: * **diagram** (:class:`Diagram<mosaicode.GUI.diagram`) """ name = diagram.patch_name index = self.append_page(diagram, self.__create_tab_label(name, diagram)) self.show_all() self.diagrams.append(diagram) self.set_current_page(self.get_n_pages() - 1) # ---------------------------------------------------------------------- def close_tab(self, position=None): """ This method close a tab. Parameters: * **position** Returns: * **Types** (:class:`boolean<boolean>`) """ if position is None: position = self.get_current_page() diagram = self.get_nth_page(position) if diagram is None: return False if diagram.modified: self.dialog = Dialog().confirm_dialog( _("Diagram ") + diagram.file_name + _("is not saved.\nIf you close it" ", changes will be lost.\n" "Confirm?"), self.main_window) result = self.dialog.run() self.dialog.destroy() if result == Gtk.ResponseType.CANCEL: return False self.remove_page(position) self.diagrams.pop(position) return True # ---------------------------------------------------------------------- def __create_tab_label(self, text, frame): """ This method create a tab label. Parameters: * **text** (:class:`str<str>`) Returns: * **box** """ box = Gtk.HBox() button = Gtk.Button() image = Gtk.Image().new_from_stock(Gtk.STOCK_CLOSE, Gtk.IconSize.MENU) button.set_image(image) button.set_relief(Gtk.ReliefStyle.NONE) button.connect('clicked', self.__on_close_button_clicked, frame) label = Gtk.Label(text) box.add(label) box.add(button) box.show_all() return box # ---------------------------------------------------------------------- def __on_close_button_clicked(self, widget, frame): index = -1 for tab in self.get_children(): index += 1 if tab == frame: break self.close_tab(index) # ---------------------------------------------------------------------- def get_current_diagram(self): """ This method get current diagram page. Return * **Types** (:class:`int<int>`) """ if self.get_current_page() > -1: return self.diagrams[self.get_current_page()] else: return None # ---------------------------------------------------------------------- def get_diagrams(self): return self.diagrams # ---------------------------------------------------------------------- def rename_diagram(self, diagram): """ This method rename a diagram page. Parameters: * **diagram** (:class:`diagram<mosaicode.GUI.diagram>`) """ index = -1 for page in self.get_children(): index += 1 if page == diagram: break tab = self.get_nth_page(index) if tab is None: return hbox = self.get_tab_label(tab) label = hbox.get_children()[0] name = diagram.patch_name if diagram.modified: name = "* " + name label.set_text(name) self.main_window.set_title(diagram.file_name) # ---------------------------------------------------------------------- def resize(self, data): """ This method resize a diagram page. Parameters: * **data** """ for diagram in self.diagrams: diagram.resize(data) # ---------------------------------------------------------------------- def close_tabs(self): """ This method close tabs. Returns: * **boolean** (:class:`boolean<boolean>`) """ n_pages = self.get_n_pages() for i in range(n_pages): if not self.close_tab(0): return False return True