From b5b37549ff391bb9afe7eb34935c8ccab7d3e314 Mon Sep 17 00:00:00 2001 From: Walter Bender Date: Thu, 08 Nov 2012 20:05:07 +0000 Subject: change scope of init_complete to activity parent --- diff --git a/TurtleArt/tawindow.py b/TurtleArt/tawindow.py index e0a9106..32e672b 100644 --- a/TurtleArt/tawindow.py +++ b/TurtleArt/tawindow.py @@ -95,7 +95,6 @@ class TurtleArtWindow(): self._loaded_project = '' self._sharing = False self.parent = parent - self.window_init_complete = False self.turtle_canvas = turtle_canvas self.send_event = None # method to send events over the network self.gst_available = GST_AVAILABLE @@ -263,7 +262,7 @@ class TurtleArtWindow(): CONSTANTS['height'] = int(self.canvas.height / self.coord_scale) self._icon_paths = [os.path.join(self.path, 'icons')] - self._plugins = [] + self.turtleart_plugins = [] self._init_plugins() self.lc = LogoCode(self) @@ -283,7 +282,6 @@ class TurtleArtWindow(): show=True) self.saved_pictures = [] self.block_operation = '' - self.window_init_complete = True def _set_screen_dpi(self): dpi = get_screen_dpi() @@ -329,7 +327,7 @@ class TurtleArtWindow(): # NOTE: When debugging plugins, it may be useful to not trap errors try: exec f in globals(), plugins - self._plugins.append(plugins.values()[0](self)) + self.turtleart_plugins.append(plugins.values()[0](self)) debug_output('Successfully importing %s' % (plugin_class), self.running_sugar) # Add the icon dir to the icon_theme search path @@ -356,44 +354,44 @@ class TurtleArtWindow(): self._get_plugin_home()) if plugin_name in list_plugins: number_plugin = list_plugins.index(plugin_name) - return self._plugins[number_plugin] + return self.turtleart_plugins[number_plugin] else: return None def _setup_plugins(self): ''' Initial setup -- called just once. ''' - for plugin in self._plugins: + for plugin in self.turtleart_plugins: plugin.setup() def _start_plugins(self): ''' Start is called everytime we execute blocks. ''' - for plugin in self._plugins: + for plugin in self.turtleart_plugins: plugin.start() def _stop_plugins(self): ''' Stop is called whenever we stop execution. ''' - for plugin in self._plugins: + for plugin in self.turtleart_plugins: plugin.stop() def clear_plugins(self): ''' Clear is called from the clean block and erase button. ''' - for plugin in self._plugins: + for plugin in self.turtleart_plugins: if hasattr(plugin, 'clear'): plugin.clear() def background_plugins(self): ''' Background is called when we are pushed to the background. ''' - for plugin in self._plugins: + for plugin in self.turtleart_plugins: plugin.goto_background() def foreground_plugins(self): ''' Foreground is called when we are return from the background. ''' - for plugin in self._plugins: + for plugin in self.turtleart_plugins: plugin.return_to_foreground() def quit_plugins(self): ''' Quit is called upon program exit. ''' - for plugin in self._plugins: + for plugin in self.turtleart_plugins: plugin.quit() def _setup_events(self): diff --git a/TurtleArtActivity.py b/TurtleArtActivity.py index af3acc9..0e6880a 100644 --- a/TurtleArtActivity.py +++ b/TurtleArtActivity.py @@ -79,6 +79,8 @@ class TurtleArtActivity(activity.Activity): _logger.error(str(e)) self.tw = None + self.init_complete = False + self._check_ver_change(get_path(activity, 'data')) self.connect("notify::active", self._notify_active_cb) @@ -111,6 +113,7 @@ class TurtleArtActivity(activity.Activity): self.metadata['activity count'] = str(count) self._defer_palette_move = False + self.init_complete = True # Activity toolbar callbacks def do_save_as_logo_cb(self, button): @@ -1005,7 +1008,7 @@ Plugin section of plugin.info file.') create_palette.append(False) _logger.debug('Initializing plugin...') self.tw.init_plugin(plugin_name) - self.tw._plugins[-1].setup() + self.tw.turtleart_plugins[-1].setup() self.tw.load_media_shapes() for i, palette_name in enumerate(palette_name_list): if create_palette[i]: diff --git a/turtleblocks.py b/turtleblocks.py index 5c536a2..b508c5b 100755 --- a/turtleblocks.py +++ b/turtleblocks.py @@ -89,20 +89,22 @@ class TurtleMain(): self._init_vars() self._parse_command_line() self._ensure_sugar_paths() - self._plugins = [] + self._gnome_plugins = [] if self._output_png: # Outputing to file, so no need for a canvas self.canvas = None self._build_window(interactive=False) + self.init_complete = True self._draw_and_quit() else: self._read_initial_pos() - self._init_plugins() + self._init_gnome_plugins() self._setup_gtk() self._build_window() - self._run_plugins() + self._run_gnome_plugins() self._start_gtk() + self.init_complete = True def get_config_home(self): return CONFIG_HOME @@ -125,7 +127,7 @@ class TurtleMain(): plugin_files.append(c.split('.')[0]) return plugin_files - def _init_plugins(self): + def _init_gnome_plugins(self): ''' Try launching any plugins we may have found. ''' for p in self._get_plugin_candidates(self._get_gnome_plugin_home()): P = p.capitalize() @@ -134,13 +136,13 @@ class TurtleMain(): plugin = {} try: exec f in globals(), plugin - self._plugins.append(plugin.values()[0](self)) + self._gnome_plugins.append(plugin.values()[0](self)) except ImportError, e: print 'failed to import %s: %s' % (P, str(e)) - def _run_plugins(self): + def _run_gnome_plugins(self): ''' Tell the plugin about the TurtleWindow instance. ''' - for p in self._plugins: + for p in self._gnome_plugins: p.set_tw(self.tw) def _mkdir_p(self, path): @@ -212,6 +214,7 @@ class TurtleMain(): self.current_palette = 0 self.scale = 2.0 self.tw = None + self.init_complete = False def _parse_command_line(self): ''' Try to make sense of the command-line arguments. ''' @@ -408,7 +411,7 @@ class TurtleMain(): menu_bar.append(turtle_menu) # Add menus for plugins - for p in self._plugins: + for p in self._gnome_plugins: menu_bar.append(p.get_menu()) return menu_bar @@ -421,7 +424,7 @@ class TurtleMain(): else: if self.tw.project_has_changed(): self._show_save_dialog(False) - for plugin in self.tw._plugins: + for plugin in self.tw.turtleart_plugins: if hasattr(plugin, 'quit'): plugin.quit() gtk.main_quit() -- cgit v0.9.1