def __init__(self): self._interfaces = set([ CLIENT, CLIENT_HANDLER, CLIENT_INTERFACE_REQUESTS, PROPERTIES_IFACE, CLIENT_APPROVER ]) bus = dbus.Bus() bus_name = dbus.service.BusName(SUGAR_CLIENT_SERVICE, bus=bus) dbus.service.Object.__init__(self, bus_name, SUGAR_CLIENT_PATH) self._prop_getters = {} self._prop_setters = {} self._prop_getters.setdefault(CLIENT, {}).update({ 'Interfaces': lambda: list(self._interfaces), }) self._prop_getters.setdefault(CLIENT_HANDLER, {}).update({ 'HandlerChannelFilter': self.__get_filters_handler_cb, }) self._prop_getters.setdefault(CLIENT_APPROVER, {}).update({ 'ApproverChannelFilter': self.__get_filters_approver_cb, }) self.got_channel = dispatch.Signal() self.got_dispatch_operation = dispatch.Signal()
def __init__(self): bus = dbus.SessionBus() bus_name = dbus.service.BusName(_DBUS_SERVICE, bus=bus) dbus.service.Object.__init__(self, bus_name, _DBUS_PATH) self._notification_counter = 0 self.notification_received = dispatch.Signal() self.notification_cancelled = dispatch.Signal()
def __init__(self, query, page_size): self._total_count = -1 self._position = -1 self._query = query self._page_size = page_size self._offset = 0 self._cache = _Cache() self.ready = dispatch.Signal() self.progress = dispatch.Signal()
def __init__(self): GObject.GObject.__init__(self) self._screen = Wnck.Screen.get_default() self._screen.connect('window-opened', self._window_opened_cb) self._screen.connect('window-closed', self._window_closed_cb) self._screen.connect('active-window-changed', self._active_window_changed_cb) self.zoom_level_changed = dispatch.Signal() self._desktop_level = self.ZOOM_HOME self._zoom_level = self.ZOOM_HOME self._current_activity = None self._activities = [] self._shared_activities = {} self._active_activity = None self._tabbing_activity = None self._launchers = {} self._modal_dialogs_counter = 0 self._screen.toggle_showing_desktop(True) settings = Gio.Settings('org.sugarlabs') self._maximum_open_activities = settings.get_int( 'maximum-number-of-open-activities')
def __init__(self): client = GConf.Client.get_default() self._layout = client.get_string(self._FAVORITES_KEY) logging.debug('FavoritesSetting layout %r', self._layout) self._mode = None self.changed = dispatch.Signal()
def __init__(self): self._bus = dbus.SystemBus() dbus.service.Object.__init__(self, self._bus, NM_SECRET_AGENT_PATH) self.secrets_request = dispatch.Signal() proxy = self._bus.get_object(NM_IFACE, NM_AGENT_MANAGER_PATH) proxy.Register("org.sugarlabs.sugar", dbus_interface=NM_AGENT_MANAGER_IFACE, reply_handler=self._register_reply_cb, error_handler=self._register_error_cb)
class CaptureSound(object): _volume = SugarExt.VolumeAlsa.new(_CAPTURE) muted_changed = dispatch.Signal() volume_changed = dispatch.Signal() def get_muted(self): return self._volume.get_mute() def get_volume(self): return self._volume.get_volume() def set_volume(self, new_volume): self._volume.set_volume(new_volume) self.volume_changed.send(None) def set_muted(self, new_state): self._volume.set_mute(new_state) self.muted_changed.send(None)
class PlaybackSound(object): _volume = SugarExt.VolumeAlsa.new(_PLAYBACK) muted_changed = dispatch.Signal() volume_changed = dispatch.Signal() VOLUME_STEP = 10 def __init__(self): self._save_timeout_id = -1 def get_muted(self): return self._volume.get_mute() def get_volume(self): return self._volume.get_volume() def set_volume(self, new_volume): self._volume.set_volume(new_volume) self.volume_changed.send(None) if self._save_timeout_id != -1: GObject.source_remove(self._save_timeout_id) self._save_timeout_id = GObject.timeout_add(_SAVE_TIMEOUT, self.save) def set_muted(self, new_state): self._volume.set_mute(new_state) self.muted_changed.send(None) if self._save_timeout_id != -1: GObject.source_remove(self._save_timeout_id) self._save_timeout_id = GObject.timeout_add(_SAVE_TIMEOUT, self.save) def save(self): self._save_timeout_id = -1 settings = Gio.Settings('org.sugarlabs.sound') settings.set_int('volume', self.get_volume()) return False def restore(self): settings = Gio.Settings('org.sugarlabs.sound') self.set_volume(settings.get_int('volume'))
def __init__(self, favorite_view): self._favorite_view = int(favorite_view) settings = Gio.Settings(self._DESKTOP_DIR) homeviews = settings.get_value(self._HOMEVIEWS_KEY).unpack() self._layout = homeviews[self._favorite_view]['layout'] logging.debug('FavoritesSetting layout %r', self._layout) self._mode = None self.changed = dispatch.Signal()
def __init__(self, favorite_view): client = GConf.Client.get_default() # Special-case 0 for backward compatibility if favorite_view == 0: self._client_string = self._FAVORITES_KEY else: self._client_string = '%s_%d' % (self._FAVORITES_KEY, favorite_view) self._layout = client.get_string(self._client_string) if self._layout is None: self._layout = favoriteslayout.RingLayout.key logging.debug('FavoritesSetting layout %r', self._layout) self._mode = None self.changed = dispatch.Signal()
FT_STATE_COMPLETED = 4 FT_STATE_CANCELLED = 5 FT_REASON_NONE = 0 FT_REASON_REQUESTED = 1 FT_REASON_LOCAL_STOPPED = 2 FT_REASON_REMOTE_STOPPED = 3 FT_REASON_LOCAL_ERROR = 4 FT_REASON_LOCAL_ERROR = 5 FT_REASON_REMOTE_ERROR = 6 # FIXME: use constants from tp-python once the spec is undrafted CHANNEL_TYPE_FILE_TRANSFER = \ 'org.freedesktop.Telepathy.Channel.Type.FileTransfer' new_file_transfer = dispatch.Signal() class BaseFileTransfer(GObject.GObject): def __init__(self, connection): GObject.GObject.__init__(self) self._connection = connection self._state = FT_STATE_NONE self._transferred_bytes = 0 self.channel = None self.buddy = None self.title = None self.file_size = None self.description = None self.mime_type = None
DS_DBUS_PATH = '/org/laptop/sugar/DataStore' # Properties the journal cares about. PROPERTIES = [ 'activity', 'activity_id', 'buddies', 'bundle_id', 'creation_time', 'filesize', 'icon-color', 'keep', 'mime_type', 'mountpoint', 'mtime', 'progress', 'timestamp', 'title', 'uid', 'preview' ] MIN_PAGES_TO_CACHE = 3 MAX_PAGES_TO_CACHE = 5 JOURNAL_METADATA_DIR = '.Sugar-Metadata' _datastore = None created = dispatch.Signal() updated = dispatch.Signal() deleted = dispatch.Signal() class _Cache(object): __gtype_name__ = 'model_Cache' def __init__(self, entries=None): self._array = [] if entries is not None: self.append_all(entries) def prepend_all(self, entries): self._array[0:0] = entries
# but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA from gi.repository import GConf from gi.repository import SugarExt from sugar3 import dispatch VOLUME_STEP = 10 muted_changed = dispatch.Signal() volume_changed = dispatch.Signal() _volume = SugarExt.VolumeAlsa() def get_muted(): return _volume.get_mute() def get_volume(): return _volume.get_volume() def set_volume(new_volume): _volume.set_volume(new_volume)