From ba429d344132c088177e853cce8ff7181570b221 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 10 Apr 2024 19:42:51 +0200 Subject: Adding upstream version 44.2. Signed-off-by: Daniel Baumann --- plugins/pythonconsole/pythonconsole/__init__.py | 75 +++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 plugins/pythonconsole/pythonconsole/__init__.py (limited to 'plugins/pythonconsole/pythonconsole/__init__.py') diff --git a/plugins/pythonconsole/pythonconsole/__init__.py b/plugins/pythonconsole/pythonconsole/__init__.py new file mode 100644 index 0000000..6405596 --- /dev/null +++ b/plugins/pythonconsole/pythonconsole/__init__.py @@ -0,0 +1,75 @@ +# -*- coding: utf-8 -*- + +# __init__.py -- plugin object +# +# Copyright (C) 2006 - Steve Frécinaux +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . + +# Parts from "Interactive Python-GTK Console" (stolen from epiphany's console.py) +# Copyright (C), 1998 James Henstridge +# Copyright (C), 2005 Adam Hooper +# Bits from gedit Python Console Plugin +# Copyrignt (C), 2005 Raphaël Slinckx + +import gi +gi.require_version('Gedit', '3.0') +gi.require_version('Peas', '1.0') +gi.require_version('PeasGtk', '1.0') +gi.require_version('Gtk', '3.0') + +from gi.repository import GObject, Gtk, Gedit, Peas, PeasGtk +from .console import PythonConsole +from .config import PythonConsoleConfigWidget + +try: + import gettext + gettext.bindtextdomain('gedit') + gettext.textdomain('gedit') + _ = gettext.gettext +except: + _ = lambda s: s + +class PythonConsolePlugin(GObject.Object, Gedit.WindowActivatable, PeasGtk.Configurable): + __gtype_name__ = "PythonConsolePlugin" + + window = GObject.Property(type=Gedit.Window) + + def __init__(self): + GObject.Object.__init__(self) + + def do_activate(self): + self._console = PythonConsole(namespace = {'__builtins__' : __builtins__, + 'gedit' : Gedit, + 'window' : self.window}) + self._console.eval('print("You can access the main window through ' \ + '\'window\' :\\n%s" % window)', False) + bottom = self.window.get_bottom_panel() + self._console.show_all() + bottom.add_titled(self._console, "GeditPythonConsolePanel", _('Python Console')) + + def do_deactivate(self): + self._console.stop() + bottom = self.window.get_bottom_panel() + bottom.remove(self._console) + + def do_update_state(self): + pass + + def do_create_configure_widget(self): + config_widget = PythonConsoleConfigWidget(self.plugin_info.get_data_dir()) + + return config_widget.configure_widget() + +# ex:et:ts=4: -- cgit v1.2.3