def insert_color(self, text): window = pluma.app_get_default().get_active_window() view = window.get_active_view() if not view or not view.get_editable(): return doc = view.get_buffer() if not doc: return doc.begin_user_action() # Get the color bounds = self.get_color_position(doc) if not bounds: doc.delete_selection(False, True) else: doc.delete(bounds[0], bounds[1]) doc.insert_at_cursor('#' + text) doc.end_user_action()
def _save_tabs(self): # Save opened tabs in configuration file self._config.add_section("documents") # Get active document app = pluma.app_get_default() win = app.get_active_window() doc = win.get_active_document() if doc: cur_uri = doc.get_uri() else: cur_uri = None doc = None # Create new document list n = 1 for uri in self._docs: # Setup option name name = "document" + str(n).rjust(3).replace(" ", "0") # Check if current document is active if uri == cur_uri: doc = name self._config.set("documents", name, uri) n = n + 1 # Remeber active document if doc: self._config.set("common", "active_document", doc)
def _get_doc_list(self): # Get document URI list app = pluma.app_get_default() win = app.get_active_window() docs = win.get_documents() # Return list of documents which having URI's return [d.get_uri() for d in docs if d.get_uri()]
def _on_doc_loaded(self, doc, arg): # Switches to saved active document tab # Activate tab app = pluma.app_get_default() win = app.get_active_window() win.set_active_tab(self._active_tab) # Close empty tab if any if self._empty_tab: win.close_tab(self._empty_tab)
def lookup(self, path): if path.startswith('/'): return None for doc in pluma.app_get_default().get_documents(): if doc.is_local(): location = doc.get_location() if location and location.get_uri().endswith(path): return location return None
def lookup(self, path): if path.startswith("/"): return None for doc in pluma.app_get_default().get_documents(): if doc.is_local(): location = doc.get_location() if location and location.get_uri().endswith(path): return location return None
def create_configure_dialog(self): if not self.dlg: self.dlg = Manager(self.get_data_dir()) else: self.dlg.run() window = pluma.app_get_default().get_active_window() if window: self.dlg.dlg.set_transient_for(window) return self.dlg.dlg
def __init__(self, main_widget, datadir, parent_window=None): super(Dialog, self).__init__() if parent_window is None: parent_window = pluma.app_get_default().get_active_window() self.parent = parent_window self.ui = gtk.Builder() self.ui.add_from_file(os.path.join(datadir, self.UI_FILE)) self.ui.set_translation_domain(domain=GETTEXT_PACKAGE) self.dialog = self.ui.get_object(main_widget) self.dialog.connect('delete-event', self.on_delete_event)
def __init__(self, main_widget, datadir, parent_window = None): super(Dialog, self).__init__() if parent_window is None: parent_window = pluma.app_get_default().get_active_window() self.parent = parent_window self.ui = gtk.Builder() self.ui.add_from_file(os.path.join(datadir, self.UI_FILE)) self.ui.set_translation_domain(domain=GETTEXT_PACKAGE) self.dialog = self.ui.get_object(main_widget) self.dialog.connect('delete-event', self.on_delete_event)
def load_session(self, session, window=None): # Note: a session has to stand on its own window. app = pluma.app_get_default() if window is None: window = app.get_active_window() tab = window.get_active_tab() if tab is not None and not (tab.get_document().is_untouched() and tab.get_state() == pluma.TAB_STATE_NORMAL): window = app.create_window() window.show() pluma.commands.load_uris(window, session.files, None, 0)
def get_current_color(self): window = pluma.app_get_default().get_active_window() doc = window.get_active_document() if not doc: return None bounds = self.get_color_position(doc) if bounds: return doc.get_text(bounds[0], bounds[1]) else: return None
def open_dialog(self): if not self._manager: self._manager = Manager(self.get_data_dir()) if self._manager_default_size: self._manager.dialog.set_default_size(*self._manager_default_size) self._manager.dialog.connect('destroy', self.on_manager_destroy) window = pluma.app_get_default().get_active_window() self._manager.run(window) return self._manager.dialog
def lookup(self, path): if path.startswith('/'): return None for doc in pluma.app_get_default().get_documents(): if doc.is_local(): location = doc.get_location() if location: rel_path = location.get_parent().get_path() joined_path = os.path.join(rel_path, path) if os.path.isfile(joined_path): return gio.File(joined_path) return None
def lookup(self, path): if path.startswith("/"): return None for doc in pluma.app_get_default().get_documents(): if doc.is_local(): location = doc.get_location() if location: rel_path = location.get_parent().get_path() joined_path = os.path.join(rel_path, path) if os.path.isfile(joined_path): return gio.File(joined_path) return None
def load_session(self, session, window=None): # Note: a session has to stand on its own window. app = pluma.app_get_default() if window is None: window = app.get_active_window() tab = window.get_active_tab() if tab is not None and \ not (tab.get_document().is_untouched() and \ tab.get_state() == pluma.TAB_STATE_NORMAL): window = app.create_window() window.show() pluma.commands.load_uris(window, session.files, None, 0)
def get_instance(self): window = pluma.app_get_default().get_active_window() return self._instances[window], window
def on_tool_manager_dialog_focus_out(self, dialog, event): self.save_current_tool() for window in pluma.app_get_default().get_windows(): helper = window.get_data("ExternalToolsPluginWindowData") helper.menu.update()
def update_session_menu(self): for window in pluma.app_get_default().get_windows(): window.get_data(self.WINDOW_DATA_KEY).update_session_menu()
def build_model(self, force_reload = False): window = pluma.app_get_default().get_active_window() if window: view = window.get_active_view() if not view: current_lang = None else: current_lang = view.get_buffer().get_language() source_view = self['source_view_snippet'] else: current_lang = None tree_view = self['tree_view_snippets'] expand = None if not self.model or force_reload: self.model = gtk.TreeStore(str, str, object) self.model.set_sort_column_id(self.SORT_COLUMN, gtk.SORT_ASCENDING) manager = get_language_manager() langs = pluma.language_manager_list_languages_sorted(manager, True) piter = self.model.append(None, (_('Global'), '', None)) # Add dummy node self.model.append(piter, ('', '', None)) nm = None if current_lang: nm = current_lang.get_name() for lang in langs: name = lang.get_name() parent = self.model.append(None, (name, name, lang)) # Add dummy node self.model.append(parent, ('', '', None)) if (nm == name): expand = parent else: if current_lang: piter = self.model.get_iter_first() nm = current_lang.get_name() while piter: lang = self.model.get_value(piter, \ self.SORT_COLUMN) if lang == nm: expand = piter break; piter = self.model.iter_next(piter) tree_view.set_model(self.model) if not expand: expand = self.model.get_iter_root() tree_view.expand_row(self.model.get_path(expand), False) self.select_iter(expand)
def build_model(self, force_reload=False): window = pluma.app_get_default().get_active_window() if window: view = window.get_active_view() if not view: current_lang = None else: current_lang = view.get_buffer().get_language() source_view = self['source_view_snippet'] else: current_lang = None tree_view = self['tree_view_snippets'] expand = None if not self.model or force_reload: self.model = gtk.TreeStore(str, str, object) self.model.set_sort_column_id(self.SORT_COLUMN, gtk.SORT_ASCENDING) manager = get_language_manager() langs = pluma.language_manager_list_languages_sorted(manager, True) piter = self.model.append(None, (_('Global'), '', None)) # Add dummy node self.model.append(piter, ('', '', None)) nm = None if current_lang: nm = current_lang.get_name() for lang in langs: name = lang.get_name() parent = self.model.append(None, (name, name, lang)) # Add dummy node self.model.append(parent, ('', '', None)) if (nm == name): expand = parent else: if current_lang: piter = self.model.get_iter_first() nm = current_lang.get_name() while piter: lang = self.model.get_value(piter, \ self.SORT_COLUMN) if lang == nm: expand = piter break piter = self.model.iter_next(piter) tree_view.set_model(self.model) if not expand: expand = self.model.get_iter_root() tree_view.expand_row(self.model.get_path(expand), False) self.select_iter(expand)