Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--activity.py10
-rw-r--r--cardlist.py19
-rw-r--r--model.py41
3 files changed, 47 insertions, 23 deletions
diff --git a/activity.py b/activity.py
index 5362015..7aa2f13 100644
--- a/activity.py
+++ b/activity.py
@@ -296,14 +296,16 @@ class MemorizeActivity(Activity):
# asnd
asnd = self.game.model.pairs[pair].get_property('asnd')
if asnd is not None:
- game_zip.write(os.path.join(temp_snd_folder, asnd),
- os.path.join('sounds', asnd))
+ if os.path.exists(os.path.join(temp_snd_folder, asnd)):
+ game_zip.write(os.path.join(temp_snd_folder, asnd),
+ os.path.join('sounds', asnd))
# bsnd
bsnd = self.game.model.pairs[pair].get_property('bsnd')
if bsnd is not None:
- game_zip.write(os.path.join(temp_snd_folder, bsnd),
- os.path.join('sounds', bsnd))
+ if os.path.exists(os.path.join(temp_snd_folder, bsnd)):
+ game_zip.write(os.path.join(temp_snd_folder, bsnd),
+ os.path.join('sounds', bsnd))
self.game.model.game_path = self.game.model.temp_folder
self.game.model.data['name'] = str(self.get_title())
diff --git a/cardlist.py b/cardlist.py
index 96ba5c7..4d0f347 100644
--- a/cardlist.py
+++ b/cardlist.py
@@ -14,8 +14,6 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
-import os
-import shutil
from gi.repository import Gtk
from gi.repository import Gdk
@@ -118,8 +116,6 @@ class CardList(Gtk.EventBox):
def update_model(self, game_model):
game_model.pairs = {}
- game_model.create_temp_directories()
- temp_img_folder = game_model.data['pathimg']
for pair in range(len(self.pairs)):
pair_card = Pair()
@@ -146,26 +142,11 @@ class CardList(Gtk.EventBox):
if aimg is not None:
aimgfile = self.pairs[pair].get_image_path(1)
pair_card.set_property('aimg', basename(aimgfile))
- if not os.path.exists(aimgfile):
- destination_path = join(temp_img_folder,
- basename(aimgfile))
- if not os.path.exists(destination_path):
- GObject.idle_add(shutil.copyfile, aimgfile,
- destination_path)
- logging.error('copy img to %s', destination_path)
# bimg
bimg = self.pairs[pair].get_image_path(2)
if bimg is not None:
bimgfile = self.pairs[pair].get_image_path(2)
pair_card.set_property('bimg', basename(bimgfile))
- if not os.path.exists(bimgfile):
- destination_path = join(temp_img_folder,
- basename(bimgfile))
- if not os.path.exists(destination_path):
- GObject.idle_add(shutil.copyfile, bimgfile,
- destination_path)
- logging.error('copy img to %s', destination_path)
-
# asnd
asnd = self.pairs[pair].get_sound(1)
logging.debug('update_model asnd %s', asnd)
diff --git a/model.py b/model.py
index 5323fac..352b528 100644
--- a/model.py
+++ b/model.py
@@ -16,6 +16,7 @@
#
import os
+import shutil
from xml.etree.ElementTree import Element, SubElement, tostring, parse
from os import environ, makedirs, chmod
from os.path import join, basename, isdir, split, normpath, exists
@@ -435,8 +436,48 @@ class Model(object):
self.grid = grid
def create_temp_directories(self):
+ logging.error('creating temp directories model: %s', self.data)
temp_img_folder = join(self.temp_folder, 'images')
temp_snd_folder = join(self.temp_folder, 'sounds')
+
+ if 'origin' in self.data and self.data['origin'] == 'art4apps':
+
+ if not self.modified:
+ # if was not modified, don't change the temp directtories
+ return
+ else:
+ # we need copy the files used in the game to the new path
+ if not exists(temp_img_folder):
+ makedirs(temp_img_folder)
+ if not exists(temp_snd_folder):
+ makedirs(temp_snd_folder)
+ for key in self.pairs.keys():
+ # all the images exist, but not all the sounds
+ for img in (self.pairs[key].props.aimg,
+ self.pairs[key].props.bimg):
+ if img is not None:
+ origin_path = join(ART4APPS_IMAGE_PATH, img)
+ destination_path = join(temp_img_folder, img)
+ if not os.path.exists(destination_path):
+ shutil.copyfile(origin_path, destination_path)
+ logging.error('copy %s to %s', origin_path,
+ destination_path)
+
+ for snd in (self.pairs[key].props.asnd,
+ self.pairs[key].props.bsnd):
+ if snd is not None:
+ origin_path = join(ART4APPS_AUDIO_PATH,
+ self.data['language'], snd)
+ destination_path = join(temp_snd_folder, snd)
+ if os.path.exists(origin_path) and \
+ not os.path.exists(destination_path):
+ shutil.copyfile(origin_path, destination_path)
+ logging.error('copy %s to %s', origin_path,
+ destination_path)
+ # Don't look for the images in the art4apps directory
+ # after this
+ self.data['origin'] = ''
+
self.data['pathimg'] = temp_img_folder
self.data['pathsnd'] = temp_snd_folder