diff options
Diffstat (limited to 'activity.py')
-rw-r--r-- | activity.py | 85 |
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) |