Menu

[r249]: / drplugins / RunFromBuffer.py  Maximize  Restore  History

Download this file

112 lines (85 with data), 3.4 kB

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
# Programmer: Daniel Pozmanter
# E-mail: drpython@bluebottle.com
# Note: You must reply to the verification e-mail to get through.
#
# Copyright 2003-2004 Daniel Pozmanter
#
# Distributed under the terms of the GPL (GNU Public License)
#
# DrPython 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 of the License, 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, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#This plugin overloads the run function to
#run using the text in txtDocument without
#saving.
#It uses a temporary file to do this.
#Changelog:
'''
For version 0.0.2:
Peter Schott's Bug Report has been fixed.
Uses the updated ExecuteWithPython function.
Uses DrFrame.ShowMessage.
Now has its own menu item, instead of overriding OnRun.
'''
#Version: 0.0.3, 08.04.2007.
#Version: 0.0.4, 19.07.2007.
#TODO: How to shade toolbar icon until something is in mem
import wx, tempfile, os, atexit
def OnAbout(DrFrame):
AboutString = '''Run From Buffer:
Version: 0.0.4
By Daniel Pozmanter
Patch by Ruben Perez
Released under the GPL.
Credits:
Peter Schott: Bug-Report.
'''
DrFrame.ShowMessage(AboutString, "About")
def OnHelp(DrFrame):
HelpString = "\n"
d = wx.lib.dialogs.ScrolledMessageDialog(DrFrame, HelpString, "Help")
d.ShowModal()
d.Destroy()
def UnInstall(DrFrame):
plugindir = DrFrame.pluginsdirectory
if os.path.exists(plugindir + "/bitmaps/16/Run From Buffer.png"):
os.remove(plugindir + "/bitmaps/16/Run From Buffer.png")
if os.path.exists(plugindir + "/bitmaps/24/Run From Buffer.png"):
os.remove(plugindir + "/bitmaps/24/Run From Buffer.png")
DrFrame.RemovePluginIcon("RunFromBuffer")
return True
def destroyTempfile(thefile):
os.remove(thefile)
def Plugin(DrFrame):
def OnRunFromBuffer(event):
text = DrFrame.txtDocument.GetText()
if DrFrame.txtDocument.filename:
fname = os.path.dirname(DrFrame.txtDocument.filename) + "/" + os.path.split(tempfile.mktemp(".py"))[1]
else:
fname = tempfile.mktemp(".py")
f = file(fname, 'wb')
f.write(text)
f.close()
largs = ""
if DrFrame.lastprogargs:
largs = " " + DrFrame.lastprogargs
command = '"' + fname.replace("\\", "/") + '"' + largs
statustext = 'Running ' + DrFrame.txtDocument.GetFilenameTitle()
DrFrame.ExecuteWithPython(command, statustext)
atexit.register(destroyTempfile, fname)
ID_RUN_FROM_BUFFER = DrFrame.GetNewId()
DrFrame.Bind(wx.EVT_MENU, OnRunFromBuffer, id=ID_RUN_FROM_BUFFER)
DrFrame.AddPluginFunction("RunFromBuffer", "Run From Buffer", OnRunFromBuffer)
DrFrame.LoadPluginShortcuts('RunFromBuffer')
DrFrame.programmenu.AppendSeparator()
DrFrame.programmenu.Append(ID_RUN_FROM_BUFFER, "Run From Buffer")