All pastes #27599 Raw Edit

Mine

public text v1 · immutable
#27599 ·published 2005-11-04 14:20 UTC
rendered paste body
? pyconsole.patch
? data/gedit-2.12.pc
? plugins/python_run
Index: plugins/pythonconsole/pythonconsole.py
===================================================================
RCS file: /cvs/gnome/gedit/plugins/pythonconsole/Attic/pythonconsole.py,v
retrieving revision 1.1.2.2
diff -u -p -r1.1.2.2 pythonconsole.py
--- plugins/pythonconsole/pythonconsole.py      29 Sep 2005 20:45:18 -0000      1.1.2.2
+++ plugins/pythonconsole/pythonconsole.py      2 Nov 2005 13:22:34 -0000
@@ -1,4 +1,6 @@
 import gedit
+import sys
+import os
 
 class ConsolePlugin(gedit.Plugin):
 
@@ -8,6 +10,7 @@ class ConsolePlugin(gedit.Plugin):
        def activate(self, window):
                # Build the console widget
                cons = init_console(window)
+
                
                bottom = window.get_bottom_panel()
                image = gtk.Image()
@@ -27,7 +30,14 @@ class ConsolePlugin(gedit.Plugin):
                bottom.remove_item(cons)
                
        def update_ui(self, window):
-               pass
+               doc = window.get_active_document()
+               if not doc is None:
+                       doc_type = doc.get_mime_type()
+                       cons = window._pythonconsole_window_data
+                       if doc_type == 'text/x-python':
+                               cons.run_button.set_sensitive(True)
+                       else:
+                               cons.run_button.set_sensitive(False)
 
 def init_console(window, quit_cb=None):
        console = Console(namespace={'__builtins__' : __builtins__, 'window' : window}, quit_cb=quit_cb)
@@ -36,8 +46,10 @@ def init_console(window, quit_cb=None):
        console.eval()
        console.line.set_text("print 'You can use the window name:', window")
        console.eval()
+
        return console
-               
+
+       
 ## Begin shameless code stealing from ephy's console.py extension
 ## Code is taken as-is and can thus be updated at will by copy/pasting
 ## File: epiphany-extensions/extensions/python-console/console.py
@@ -134,8 +146,9 @@ class gtkoutfile:
 
 class Console(gtk.VBox):
        def __init__(self, namespace={}, quit_cb=None):
-               gtk.VBox.__init__(self, spacing=12)
-               self.set_border_width(12)
+               gtk.VBox.__init__(self, spacing=1)
+               self.set_border_width(1)
+               self.gedit_win = namespace['window']
 
                self.quit_cb = quit_cb
 
@@ -166,6 +179,10 @@ class Console(gtk.VBox):
                self.inputbox = gtk.HBox(spacing=2)
                self.pack_end(self.inputbox, expand=False)
                self.inputbox.show()
+               self.run_button = gtk.Button("Run Script")
+               self.run_button.connect('clicked', self.run_script)
+               self.inputbox.pack_start(self.run_button, False, False)
+               self.run_button.show()
 
                self.prompt = gtk.Label(sys.ps1)
                self.prompt.set_padding(2, 0)
@@ -325,3 +342,8 @@ class Console(gtk.VBox):
                #adj.set_value(adj.upper - adj.page_size)
                sys.stdout, self.stdout = self.stdout, sys.stdout
                sys.stderr, self.stderr = self.stderr, sys.stderr
+
+       def run_script(self, button=None):
+               s,e = self.gedit_win.get_active_document().get_bounds()
+               code = self.gedit_win.get_active_document().get_text(s, e)
+               self.run(code)