Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/activity.py
diff options
context:
space:
mode:
Diffstat (limited to 'activity.py')
-rw-r--r--activity.py85
1 files changed, 52 insertions, 33 deletions
diff --git a/activity.py b/activity.py
index f6d822e..3e9f71f 100644
--- a/activity.py
+++ b/activity.py
@@ -38,7 +38,7 @@ import telepathy.client
from sugar.activity.widgets import ActivityToolbarButton
from sugar.activity.widgets import StopButton
from sugar.graphics.toolbarbox import ToolbarBox
-from sugar.graphics.radiotoolbutton import RadioToolButton
+from sugar.graphics.toggletoolbutton import ToggleToolButton
from sugar.activity.activity import Activity
from sugar.presence import presenceservice
from sugar.presence.tubeconn import TubeConnection
@@ -61,6 +61,13 @@ PATH = '/org/laptop/Memorize'
_MODE_PLAY = 1
_MODE_CREATE = 2
+# These strings are added only to enable the translators
+# to translate the words needed in the stable version
+# We can remove them when the version with the new UI is available
+# to all the users.
+
+changed_strings = [_('Play'), _('Create'), _('Game name:'), _('Equal pairs'),
+ _('addition'), _('letters'), _('sounds')]
class MemorizeActivity(Activity):
@@ -75,29 +82,16 @@ class MemorizeActivity(Activity):
self.activity_button = ActivityToolbarButton(self)
toolbar_box.toolbar.insert(self.activity_button, -1)
- tool_group = None
- self._play_button = RadioToolButton()
- self._play_button.mode = _MODE_PLAY
- self._play_button.props.icon_name = 'player_play'
- self._play_button.set_tooltip(_('Play game'))
- self._play_button.props.group = tool_group
- toolbar_box.toolbar.insert(self._play_button, -1)
- tool_group = self._play_button
-
- self._edit_button = RadioToolButton()
- self._edit_button.mode = _MODE_CREATE
- self._edit_button.props.icon_name = 'view-source'
- self._edit_button.set_tooltip(_('Edit game'))
- self._edit_button.props.group = tool_group
- toolbar_box.toolbar.insert(self._edit_button, -1)
-
- toolbar_box.toolbar.insert(gtk.SeparatorToolItem(), -1)
-
self._memorizeToolbarBuilder = \
memorizetoolbar.MemorizeToolbarBuilder(self)
toolbar_box.toolbar.insert(gtk.SeparatorToolItem(), -1)
+ self._edit_button = ToggleToolButton('view-source')
+ self._edit_button.set_tooltip(_('Edit game'))
+ self._edit_button.set_active(False)
+ toolbar_box.toolbar.insert(self._edit_button, -1)
+
self._createToolbarBuilder = \
createtoolbar.CreateToolbarBuilder(self)
@@ -122,6 +116,8 @@ class MemorizeActivity(Activity):
self.cardlist.add_pair)
self.createcardpanel.connect('update-pair',
self.cardlist.update_selected)
+ self.createcardpanel.connect('change-font',
+ self.cardlist.change_font)
self._createToolbarBuilder.connect('create_new_game',
self.cardlist.clean_list)
self._createToolbarBuilder.connect('create_new_game',
@@ -130,13 +126,10 @@ class MemorizeActivity(Activity):
self.change_equal_pairs)
self.game = game.MemorizeGame()
- self._play_button.connect('clicked', self._change_mode_bt)
- self._edit_button.connect('clicked', self._change_mode_bt)
+ self._edit_button.connect('toggled', self._change_mode_bt)
self.table.connect('key-press-event', self.table.key_press_event)
self.table.connect('card-flipped', self.game.card_flipped)
- self.table.connect('card-flipped',
- self._memorizeToolbarBuilder.card_flipped)
self.table.connect('card-overflipped', self.game.card_overflipped)
self.table.connect('card-highlighted', self.game.card_highlighted)
@@ -164,10 +157,17 @@ class MemorizeActivity(Activity):
self._memorizeToolbarBuilder.update_toolbar)
self.game.connect('change_game',
self._memorizeToolbarBuilder.update_toolbar)
+ self.game.connect('change_game',
+ self.createcardpanel.update_font_combos)
self._memorizeToolbarBuilder.connect('game_changed',
self.change_game)
+ #ARIEL connect signal 'game_saved' from memorizetoolbar
+ self._memorizeToolbarBuilder.connect('game_saved',self.save_game)
+ #ARIEL connect signal 'game_selected' from memorizetoolbar
+ self._memorizeToolbarBuilder.connect('game_selected',self.selected_game)
+
self.hbox = gtk.HBox(False)
self.set_canvas(self.hbox)
@@ -208,7 +208,6 @@ class MemorizeActivity(Activity):
game_file = os.path.join(os.path.dirname(__file__), 'demos',
'addition.zip')
self.game.load_game(game_file, 4, 'demo')
- self.cardlist.load_game(self.game)
_logger.debug('loading conventional')
self.game.add_buddy(self.owner)
else:
@@ -217,7 +216,13 @@ class MemorizeActivity(Activity):
def _change_mode_bt(self, button):
if button.get_active():
- self._change_mode(button.mode)
+ self._change_mode(_MODE_CREATE)
+ button.set_named_icon('player_play')
+ button.set_tooltip(_('Play game'))
+ else:
+ self._change_mode(_MODE_PLAY)
+ button.set_named_icon('view-source')
+ button.set_tooltip(_('Edit game'))
def read_file(self, file_path):
if 'icon-color' in self.metadata:
@@ -227,13 +232,16 @@ class MemorizeActivity(Activity):
self.change_game(None, file_path, 4, 'file',
self.metadata['title'], color)
- def close(self, skip_save=False):
+ def write_file(self, file_path):
+ logging.debug('WRITE_FILE is_demo %s', self.game.model.is_demo)
if self.game.model.is_demo:
- Activity.close(self, skip_save=True)
- else:
- Activity.close(self)
+ # if is a demo game only want keep the metadata
+ self._jobject.set_file_path(None)
+ raise NotImplementedError
+ return
+ if self.cardlist.pair_list_modified:
+ self.cardlist.update_model(self.game.model)
- def write_file(self, file_path):
temp_img_folder = os.path.join(self.game.model.temp_folder, 'images')
temp_snd_folder = os.path.join(self.game.model.temp_folder, 'sounds')
self.game.model.create_temp_directories()
@@ -272,6 +280,7 @@ class MemorizeActivity(Activity):
os.path.join('sounds', bsnd))
self.game.model.game_path = self.game.model.temp_folder
+ self.game.model.data['name'] = str(self.get_title())
self.game.model.write()
game_zip.write(os.path.join(self.game.model.temp_folder, 'game.xml'),
'game.xml')
@@ -298,6 +307,7 @@ class MemorizeActivity(Activity):
self.hbox.remove(self.table)
self.hbox.pack_start(self.createcardpanel, False)
self.hbox.pack_start(self.cardlist)
+ self.cardlist.load_game(self.game)
self.game.model.create_temp_directories()
self.createcardpanel.set_temp_folder(
self.game.model.temp_folder)
@@ -305,10 +315,10 @@ class MemorizeActivity(Activity):
else:
if self.game.model.modified:
self.cardlist.update_model(self.game.model)
+ self.save()
self.game.reset_game()
self.table.change_game(None, self.game.model.data,
self.game.model.grid)
- self.save()
self.game.model.modified = False
if self.play_mode == False:
@@ -325,8 +335,17 @@ class MemorizeActivity(Activity):
title=None, color=None):
_logger.debug('Change game %s', game_name)
self.game.change_game(widget, game_name, size, mode, title, color)
- if game_name is not None:
- self.cardlist.load_game(self.game)
+ self.cardlist.game_loaded = False
+
+ #ARIEL save game handler for the signal 'saved_game' of memorizetoolbar
+ def save_game(self, widget, filepath ):
+ _logger.debug('Save game %s', filepath)
+ self.game.save_game(filepath)
+
+ #ARIEL selected game handler for the signal 'game_selected' of memorizetoolbar
+ def selected_game(self, widget, filename ):
+ _logger.debug('Selected game %s', filename)
+ self.game.load_saved_game(filename)
def change_equal_pairs(self, widget, state):
self.cardlist.update_model(self.game.model)