Commit ddfad4f1760548dfc2c5277854790abb6f62843c

Authored by Paulo Henrique Junqueira Amorim
1 parent ab56d6b9

FIX: Save project using relative path

invesalius/control.py
@@ -132,7 +132,7 @@ class Controller(): @@ -132,7 +132,7 @@ class Controller():
132 proj = prj.Project() 132 proj = prj.Project()
133 filepath = dialog.ShowSaveAsProjectDialog(proj.name) 133 filepath = dialog.ShowSaveAsProjectDialog(proj.name)
134 if filepath: 134 if filepath:
135 - session.RemoveTemp() 135 + #session.RemoveTemp()
136 session.OpenProject(filepath) 136 session.OpenProject(filepath)
137 else: 137 else:
138 return 138 return
invesalius/data/mask.py
@@ -43,12 +43,13 @@ class Mask(): @@ -43,12 +43,13 @@ class Mask():
43 def SavePlist(self, filename): 43 def SavePlist(self, filename):
44 mask = {} 44 mask = {}
45 filename = '%s$%s$%d' % (filename, 'mask', self.index) 45 filename = '%s$%s$%d' % (filename, 'mask', self.index)
  46 +
46 d = self.__dict__ 47 d = self.__dict__
47 for key in d: 48 for key in d:
48 if isinstance(d[key], vtk.vtkImageData): 49 if isinstance(d[key], vtk.vtkImageData):
49 img_name = '%s_%s.vti' % (filename, key) 50 img_name = '%s_%s.vti' % (filename, key)
50 iu.Export(d[key], img_name, bin=True) 51 iu.Export(d[key], img_name, bin=True)
51 - mask[key] = {'$vti': img_name} 52 + mask[key] = {'$vti': os.path.split(img_name)[1]}
52 elif key == 'edited_points': 53 elif key == 'edited_points':
53 edited_points = {} 54 edited_points = {}
54 for p in self.edited_points: 55 for p in self.edited_points:
@@ -57,7 +58,7 @@ class Mask(): @@ -57,7 +58,7 @@ class Mask():
57 else: 58 else:
58 mask[key] = d[key] 59 mask[key] = d[key]
59 plistlib.writePlist(mask, filename + '.plist') 60 plistlib.writePlist(mask, filename + '.plist')
60 - return filename + '.plist' 61 + return os.path.split(filename)[1] + '.plist'
61 62
62 def OpenPList(self, filename): 63 def OpenPList(self, filename):
63 mask = plistlib.readPlist(filename) 64 mask = plistlib.readPlist(filename)
invesalius/data/surface.py
@@ -54,11 +54,13 @@ class Surface(): @@ -54,11 +54,13 @@ class Surface():
54 if isinstance(d[key], vtk.vtkPolyData): 54 if isinstance(d[key], vtk.vtkPolyData):
55 img_name = '%s_%s.vtp' % (filename, key) 55 img_name = '%s_%s.vtp' % (filename, key)
56 pu.Export(d[key], img_name, bin=True) 56 pu.Export(d[key], img_name, bin=True)
57 - surface[key] = {'$vtp': img_name} 57 + surface[key] = {'$vtp': os.path.split(img_name)[1]}
58 else: 58 else:
59 surface[key] = d[key] 59 surface[key] = d[key]
  60 +
  61 +
60 plistlib.writePlist(surface, filename + '.plist') 62 plistlib.writePlist(surface, filename + '.plist')
61 - return filename + '.plist' 63 + return os.path.split(filename)[1] + '.plist'
62 64
63 def OpenPList(self, filename): 65 def OpenPList(self, filename):
64 surface = plistlib.readPlist(filename) 66 surface = plistlib.readPlist(filename)
invesalius/presets.py
@@ -102,7 +102,7 @@ class Presets(): @@ -102,7 +102,7 @@ class Presets():
102 preset['thresh_mri'] = self.thresh_mri.copy() 102 preset['thresh_mri'] = self.thresh_mri.copy()
103 preset['thresh_ct'] = self.thresh_ct.copy() 103 preset['thresh_ct'] = self.thresh_ct.copy()
104 plistlib.writePlist(preset, filename) 104 plistlib.writePlist(preset, filename)
105 - return filename 105 + return os.path.split(filename)[1]
106 106
107 def OpenPlist(self, filename): 107 def OpenPlist(self, filename):
108 p = plistlib.readPlist(filename) 108 p = plistlib.readPlist(filename)
invesalius/project.py
@@ -185,12 +185,10 @@ class Project(object): @@ -185,12 +185,10 @@ class Project(object):
185 project['mask_dict'] = masks 185 project['mask_dict'] = masks
186 img_file = '%s_%s.vti' % (filename_tmp, 'imagedata') 186 img_file = '%s_%s.vti' % (filename_tmp, 'imagedata')
187 iu.Export(self.imagedata, img_file, bin=True) 187 iu.Export(self.imagedata, img_file, bin=True)
188 - project['imagedata'] = {'$vti':img_file}  
189 - print project 188 + project['imagedata'] = {'$vti':os.path.split(img_file)[1]}
190 plistlib.writePlist(project, filename_tmp + '.plist') 189 plistlib.writePlist(project, filename_tmp + '.plist')
191 190
192 path = os.path.join(dir_,filename) 191 path = os.path.join(dir_,filename)
193 - print path  
194 Compress(dir_temp, path)#os.path.join("~/Desktop/","teste.inv3")) 192 Compress(dir_temp, path)#os.path.join("~/Desktop/","teste.inv3"))
195 shutil.rmtree(dir_temp) 193 shutil.rmtree(dir_temp)
196 194
@@ -248,12 +246,18 @@ class Project(object): @@ -248,12 +246,18 @@ class Project(object):
248 246
249 247
250 def Compress(folder, filename): 248 def Compress(folder, filename):
251 - file_list = glob.glob(os.path.join(folder,"*"))  
252 - tar = tarfile.open(filename, "w:gz") 249 + tmpdir, tmpdir_ = os.path.split(folder)
  250 + current_dir = os.path.abspath(".")
  251 + os.chdir(tmpdir)
  252 + file_list = glob.glob(os.path.join(tmpdir_,"*"))
  253 +
  254 + tar = tarfile.open(tmpdir_ + ".inv3", "w:gz")
253 for name in file_list: 255 for name in file_list:
254 tar.add(name) 256 tar.add(name)
255 tar.close() 257 tar.close()
256 - 258 + shutil.move(tmpdir_+ ".inv3", filename)
  259 + os.chdir(current_dir)
  260 +
257 def Extract(filename, folder): 261 def Extract(filename, folder):
258 tar = tarfile.open(filename, "r:gz") 262 tar = tarfile.open(filename, "r:gz")
259 #tar.list(verbose=True) 263 #tar.list(verbose=True)