diff options
author | Pootle daemon <pootle@pootle.sugarlabs.org> | 2013-03-22 04:31:36 (GMT) |
---|---|---|
committer | Pootle daemon <pootle@pootle.sugarlabs.org> | 2013-03-22 04:31:36 (GMT) |
commit | 815b1b178d11bcee99918f63227392434984debe (patch) | |
tree | 807c40806b18ac46a2d3f7eee2ed17d6604e9804 | |
parent | cde3a263c180f2dec5d6b8bc2e18375d1247c2bf (diff) | |
parent | edf6d4698bfbfac0c202480c2f3d89102a7d95ce (diff) |
Merge branch 'master' of git.sugarlabs.org:turtleart/mainline
-rw-r--r-- | TurtleArt/tautils.py | 66 | ||||
-rw-r--r-- | TurtleArt/tawindow.py | 12 |
2 files changed, 68 insertions, 10 deletions
diff --git a/TurtleArt/tautils.py b/TurtleArt/tautils.py index 3f9d1c4..0bad48a 100644 --- a/TurtleArt/tautils.py +++ b/TurtleArt/tautils.py @@ -1,5 +1,6 @@ -#copyright (c) 2007-8, Playful Invention Company. +#copyright (c) 2007-8, Playful Invention Company #Copyright (c) 2008-13, Walter Bender +#Copyright (c) 2013 Alan Aguiar #Permission is hereby granted, free of charge, to any person obtaining a copy #of this software and associated documentation files (the "Software"), to deal @@ -20,6 +21,8 @@ #THE SOFTWARE. import gtk +import gconf +import dbus import cairo import pickle import subprocess @@ -49,6 +52,9 @@ import logging _logger = logging.getLogger('turtleart-activity') +FIRST_TIME = True + + def debug_output(message_string, running_sugar=False): ''' unified debugging output ''' if running_sugar: @@ -207,9 +213,13 @@ def get_save_name(filefilter, load_save_folder, save_file_name): gtk.FILE_CHOOSER_ACTION_SAVE, (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_SAVE, gtk.RESPONSE_OK)) dialog.set_default_response(gtk.RESPONSE_OK) + if filefilter in ['.png', '.svg']: + suffix = filefilter + else: + suffix = SUFFIX[1] if save_file_name is not None: - if not save_file_name.endswith(SUFFIX): - save_file_name = save_file_name + SUFFIX[1] + if not save_file_name.endswith(suffix): + save_file_name = save_file_name + suffix dialog.set_current_name(save_file_name) return do_dialog(dialog, filefilter, load_save_folder) @@ -763,3 +773,53 @@ def check_output(command, warning): print(warning) return None return output + + +def power_manager_off(status): + ''' + Power management in Sugar + power_manager_off(True) --> Disable power manager + power_manager_off(False) --> Use custom power manager + ''' + global FIRST_TIME + + OHM_SERVICE_NAME = 'org.freedesktop.ohm' + OHM_SERVICE_PATH = '/org/freedesktop/ohm/Keystore' + OHM_SERVICE_IFACE = 'org.freedesktop.ohm.Keystore' + PATH = '/etc/powerd/flags/inhibit-suspend' + + client = gconf.client_get_default() + + ACTUAL_POWER = True + + if FIRST_TIME: + ACTUAL_POWER = client.get_bool('/desktop/sugar/power/automatic') + FIRST_TIME = False + + if status: + VALUE = False + else: + VALUE = ACTUAL_POWER + + try: + client.set_bool('/desktop/sugar/power/automatic', VALUE) + except gconf.GError: + pass + + _bus = dbus.SystemBus() + try: + _proxy = _bus.get_object(OHM_SERVICE_NAME, OHM_SERVICE_PATH) + _keystore = dbus.Interface(_proxy, OHM_SERVICE_IFACE) + _keystore.SetKey('suspend.automatic_pm', bool(VALUE)) + except dbus.exceptions.DBusException: + if status: + try: + fd = open(PATH, 'w') + fd.close() + except IOError: + pass + elif ACTUAL_POWER: + try: + os.remove(PATH) + except OSError: + pass diff --git a/TurtleArt/tawindow.py b/TurtleArt/tawindow.py index ebc1e3d..8d2c664 100644 --- a/TurtleArt/tawindow.py +++ b/TurtleArt/tawindow.py @@ -317,11 +317,8 @@ class TurtleArtWindow(): # Add the icon dir to the icon_theme search path self._add_plugin_icon_dir(os.path.join(self._get_plugin_home(), plugin_dir)) - except ImportError as e: - debug_output('Failed to import %s: %s' % (plugin_class, str(e)), - self.running_sugar) - except: - debug_output('Failed to load %s' % (plugin_class), + except Exception as e: + debug_output('Failed to load %s: %s' % (plugin_class, str(e)), self.running_sugar) def _add_plugin_icon_dir(self, dirname): @@ -2769,7 +2766,8 @@ may not terminate.', False) self.running_blocks = True self._start_plugins() # Let the plugins know we are running. top = find_top_block(blk) - self.lc.run_blocks(top, self.just_blocks(), True) + code = self.lc.generate_code(top, self.just_blocks()) + self.lc.run_blocks(code) if self.interactive_mode: gobject.idle_add(self.lc.doevalstep) else: @@ -3984,7 +3982,7 @@ may not terminate.', False) filename = name + suffix datapath = get_path(self.activity, 'instance') elif len(name) == 0: - name = 'ta' + name = 'turtleblocks' + suffix if self.save_folder is not None: self.load_save_folder = self.save_folder filename, self.load_save_folder = get_save_name( |