X-Git-Url: http://git.asbjorn.biz/?p=swftools.git;a=blobdiff_plain;f=wx%2Fgui%2Fplugin.py;h=e20a87c2bc1cf92efb9e6bac0fa75351667464e5;hp=5cdc2a6fdd21d892c8311c62a64fcdc85453e76a;hb=ddb6b1f242031dc55e52403029ac851cc70bd1f8;hpb=d51c9b672a2a23d9e9c7bc4c2d366ca8d66bda0e diff --git a/wx/gui/plugin.py b/wx/gui/plugin.py index 5cdc2a6..e20a87c 100644 --- a/wx/gui/plugin.py +++ b/wx/gui/plugin.py @@ -29,6 +29,8 @@ from wx.lib.pubsub import Publisher from subprocess import Popen, PIPE class Plugin: + one_page_per_file = False + def before_render(self): pass @@ -44,28 +46,47 @@ class Plugin: def __find_swfcombine(self): found = False - prog = "swfcombine.exe" if "wxMSW" in wx.PlatformInfo else "swfcombine" - basedir = os.path.dirname(__file__) + if "wxMSW" in wx.PlatformInfo: + prog = "swfcombine.exe" + else: + prog = "swfcombine" + #basedir = os.path.dirname(__file__) + basedir = GPDF2SWF_BASEDIR + #print 'basedir', basedir opj = os.path.join - locations = [opj(basedir, prog)] + locations = [os.path.normpath(opj(basedir, '..', prog))] if "wxMSW" in wx.PlatformInfo: + try: + system_drive = os.environ['SYSTEMDRIVE'] + except KeyError: + system_drive = 'c:' + try: + program_files = os.environ['PROGRAMFILES'] + except KeyError: + program_files = '' locations.extend([ - opj("c:", "swftools", prog), - opj("c:", "Program Files", "SWFTools", prog) + opj("c:", os.sep, "swftools", prog), + opj("c:", os.sep, "Program Files", "SWFTools", prog), + opj(system_drive, os.sep, program_files, "SWFTools", prog), + opj(basedir, prog), ]) else: locations.extend([ - opj(os.sep, "usr", "local", "bin", prog), - opj(os.sep, "usr", "bin", prog), + opj("/usr", "local", "bin", prog), + opj("/usr", "bin", prog), + opj(basedir, '..', 'src', prog), ]) + #print locations exe = prog for e in locations: + #print e if os.path.isfile(e): exe = e found = True break + #print exe, found return exe, found def swfcombine(self, *args): @@ -88,7 +109,17 @@ class Plugin: cmd = [exe,] cmd.extend(args) - output = Popen(cmd, stdout=PIPE).communicate()[0] + if "wxMSW" in wx.PlatformInfo: + try: + import win32process + # To avoid an ugly "DOS Window" to show up + flags = win32process.CREATE_NO_WINDOW + except ImportError: + flags = 0 + else: + flags = 0 + output = Popen(cmd, stdin=PIPE, stdout=PIPE, + stderr=PIPE, creationflags=flags).communicate()[0] # Check the process output if output: