From d0adf42b5f16563ecc253ee2ade77d4a6c4ca5b5 Mon Sep 17 00:00:00 2001 From: Skyler Lehmkuhl Date: Tue, 17 Jan 2012 22:00:09 -0500 Subject: [PATCH] Can now open saved files with images --- lightningbeam.py | 7 +++++++ svlgui.py | 12 +++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/lightningbeam.py b/lightningbeam.py index 270e2b8..1d4cc8f 100755 --- a/lightningbeam.py +++ b/lightningbeam.py @@ -312,9 +312,16 @@ def new_file(widget=None): def open_file(widget=None): global root MainWindow.stage.delete(root) + shutil.rmtree(svlgui.SECURETEMPDIR) thetarfile = tarfile.open(fileobj=svlgui.file_dialog("open").open("rb"),mode="r:gz") basefile = thetarfile.extractfile("basefile") root, svlgui.Library = pickle.load(basefile) + svlgui.SECURETEMPDIR = tempfile.mkdtemp() + thetarfile.extractall(path=svlgui.SECURETEMPDIR) + for i in svlgui.Library: + if i.type=="Image": + i.path = svlgui.SECURETEMPDIR+"/"+i.path.split(os.sep)[-1] + i.set_image(i.path) MainWindow.stage.add(root, 0, 0) MainWindow.stage.draw() MainWindow.timelinebox.root = root diff --git a/svlgui.py b/svlgui.py index b6f87d2..d9adfdb 100644 --- a/svlgui.py +++ b/svlgui.py @@ -151,6 +151,7 @@ if sys.platform=="linux2": #''' import pickle import tarfile + import tempfile import GUI # Using PyGUI. Experimental. from GUI import Window as OSXWindow, Button as OSXButton, Image as OSXImage from GUI import Frame as OSXFrame, Color as OSXColor, Grid as OSXGrid @@ -174,6 +175,7 @@ elif sys.platform=="win32": PLATFORM="win32" import pickle import tarfile + import tempfile import misc_funcs import GUI # Using PyGUI. Experimental. from GUI import Window as OSXWindow, Button as OSXButton, Image as OSXImage @@ -191,6 +193,7 @@ elif sys.platform=="win32": elif sys.platform=="linux-armv6l": import android import tarfile + import tempfile droid = android.Android() SYSTEM="android" TEMPDIR="/tmp" # TODO:FIXTHIS @@ -202,6 +205,7 @@ elif sys.platform=="darwin": import pickle import misc_funcs import tarfile + import tempfile import GUI # Using PyGUI. Experimental. from GUI import Window as OSXWindow, Button as OSXButton, Image as OSXImage from GUI import Frame as OSXFrame, Color as OSXColor, Grid as OSXGrid @@ -219,6 +223,9 @@ elif sys.platform=="darwin": FILE = tarfile.open(name=TEMPDIR+"/Untitled",mode="w:gz") FILE.close() + +#Used for storing images, sounds, etc. +SECURETEMPDIR = tempfile.mkdtemp() __windowlist__=[] @@ -982,6 +989,9 @@ class Image(object): elif SYSTEM=="html": cr.save() pass + def set_image(self,img): + if SYSTEM=="osx": + self.image = GUI.Image(file = img) def hitTest(self,x,y): hits = False # points "a" and "b" forms the anchored segment. @@ -2121,7 +2131,7 @@ class PublishSettingsWindow: [swlabel, 5, None, self.c4, None, "nw", ""], [htlabel, 5, None, swlabel._int(), None, "nw", ""], [Widget(self.impack), 16, None, htlabel._int(), None, "nw", ""], - [Widgest(b2),5,None,None,-5,'nw',''], + [Widget(b2),5,None,None,-5,'nw',''], [Widget(b1),None,-5,None,-5,'nw','']) self.win.present() def activate2(self):