From 072887fd1861c48da7713ba1f53cf646c76f977a Mon Sep 17 00:00:00 2001 From: Simon Schampijer Date: Wed, 21 Jan 2009 10:43:55 +0000 Subject: Merge branch 'master' of gitorious@git.sugarlabs.org:sugar/mainline --- (limited to 'src') diff --git a/src/jarabe/desktop/meshbox.py b/src/jarabe/desktop/meshbox.py index ab7348c..24f55e1 100644 --- a/src/jarabe/desktop/meshbox.py +++ b/src/jarabe/desktop/meshbox.py @@ -79,7 +79,7 @@ class AccessPointView(CanvasPulsingIcon): self._active = True self._color = None - self.connect('activated', self._activate_cb) + self.connect('button-release-event', self.__button_release_event_cb) pulse_color = XoColor('%s,%s' % (style.COLOR_BUTTON_GREY.get_svg(), style.COLOR_TRANSPARENT.get_svg())) @@ -128,7 +128,7 @@ class AccessPointView(CanvasPulsingIcon): icon=self._palette_icon) self._connect_item = MenuItem(_('Connect'), 'dialog-ok') - self._connect_item.connect('activate', self._activate_cb) + self._connect_item.connect('activate', self.__connect_activate_cb) p.menu.append(self._connect_item) self._disconnect_item = MenuItem(_('Disconnect'), 'media-eject') @@ -334,7 +334,13 @@ class AccessPointView(CanvasPulsingIcon): wireless_security.group = group return wireless_security - def _activate_cb(self, icon): + def __connect_activate_cb(self, icon): + self._connect() + + def __button_release_event_cb(self, icon, event): + self._connect() + + def _connect(self): connection = network.find_connection(self._name) if connection is None: settings = Settings() diff --git a/src/jarabe/journal/listview.py b/src/jarabe/journal/listview.py index 3a5a909..7cf09d7 100644 --- a/src/jarabe/journal/listview.py +++ b/src/jarabe/journal/listview.py @@ -398,7 +398,7 @@ class BaseListView(gtk.HBox): metadata = self._last_clicked_entry.metadata if selection.target == 'text/uri-list': # Get hold of a reference so the temp file doesn't get deleted - self._temp_file_path = model.get_file(metadata) + self._temp_file_path = model.get_file(metadata['uid']) selection.set(selection.target, 8, self._temp_file_path) elif selection.target == 'journal-object-id': selection.set(selection.target, 8, metadata['uid']) diff --git a/src/jarabe/journal/volumestoolbar.py b/src/jarabe/journal/volumestoolbar.py index bb27ab7..32c8f68 100644 --- a/src/jarabe/journal/volumestoolbar.py +++ b/src/jarabe/journal/volumestoolbar.py @@ -27,6 +27,7 @@ from sugar.graphics.palette import Palette from sugar.graphics.xocolor import XoColor from jarabe.journal import model +from jarabe.view.palettes import VolumePalette class VolumesToolbar(gtk.Toolbar): __gtype_name__ = 'VolumesToolbar' @@ -77,11 +78,8 @@ class VolumesToolbar(gtk.Toolbar): def _add_button(self, mount): logging.debug('VolumeToolbar._add_button: %r' % mount.get_name()) - palette = Palette(mount.get_name()) - button = VolumeButton(mount) button.props.group = self._volume_buttons[0] - button.set_palette(palette) button.connect('toggled', self._button_toggled_cb) position = self.get_item_index(self._volume_buttons[-1]) + 1 self.insert(button, position) @@ -89,12 +87,6 @@ class VolumesToolbar(gtk.Toolbar): self._volume_buttons.append(button) - if mount.can_unmount(): - menu_item = gtk.MenuItem(_('Unmount')) - menu_item.connect('activate', self._unmount_activated_cb, mount) - palette.menu.append(menu_item) - menu_item.show() - if len(self.get_children()) > 1: self.show() @@ -149,6 +141,7 @@ class BaseButton(RadioToolButton): class VolumeButton(BaseButton): def __init__(self, mount): + self._mount = mount mount_point = mount.get_root().get_path() BaseButton.__init__(self, mount_point) @@ -160,6 +153,12 @@ class VolumeButton(BaseButton): color = XoColor(client.get_string('/desktop/sugar/user/color')) self.props.xo_color = color + def create_palette(self): + palette = VolumePalette(self._mount) + #palette.props.invoker = FrameWidgetInvoker(self) + #palette.set_group_id('frame') + return palette + class JournalButton(BaseButton): def __init__(self): BaseButton.__init__(self, mount_point='/') diff --git a/src/jarabe/model/shell.py b/src/jarabe/model/shell.py index d0b256f..bf81dfd 100644 --- a/src/jarabe/model/shell.py +++ b/src/jarabe/model/shell.py @@ -334,7 +334,9 @@ class ShellModel(gobject.GObject): self._screen.toggle_showing_desktop(True) def _update_zoom_level(self, window): - if window.get_window_type() == wnck.WINDOW_NORMAL: + if window.get_window_type() == wnck.WINDOW_DIALOG: + return + elif window.get_window_type() == wnck.WINDOW_NORMAL: new_level = self.ZOOM_ACTIVITY else: new_level = self._desktop_level diff --git a/src/jarabe/view/palettes.py b/src/jarabe/view/palettes.py index 5ba2cc2..bc542ba 100644 --- a/src/jarabe/view/palettes.py +++ b/src/jarabe/view/palettes.py @@ -18,6 +18,7 @@ import os import statvfs from gettext import gettext as _ import gconf +import logging import gobject import gtk @@ -213,8 +214,6 @@ class JournalPalette(BasePalette): self._home_activity.get_window().activate(gtk.get_current_event_time()) def __popup_cb(self, palette): - # TODO: we should be able to ask the datastore this info, as that's the - # component that knows about mount points. stat = os.statvfs(env.get_profile_path()) free_space = stat[statvfs.F_BSIZE] * stat[statvfs.F_BAVAIL] total_space = stat[statvfs.F_BSIZE] * stat[statvfs.F_BLOCKS] @@ -224,3 +223,52 @@ class JournalPalette(BasePalette): self._free_space_label.props.label = _('%(free_space)d MB Free') % \ {'free_space': free_space / (1024 * 1024)} +class VolumePalette(Palette): + def __init__(self, mount): + Palette.__init__(self, label=mount.get_name()) + self._mount = mount + + self.props.secondary_text = mount.get_root().get_path() + + vbox = gtk.VBox() + self.set_content(vbox) + vbox.show() + + self._progress_bar = gtk.ProgressBar() + vbox.add(self._progress_bar) + self._progress_bar.show() + + self._free_space_label = gtk.Label() + self._free_space_label.set_alignment(0.5, 0.5) + vbox.add(self._free_space_label) + self._free_space_label.show() + + self.connect('popup', self.__popup_cb) + + menu_item = MenuItem(_('Unmount')) + + icon = Icon(icon_name='media-eject', icon_size=gtk.ICON_SIZE_MENU) + menu_item.set_image(icon) + icon.show() + + menu_item.connect('activate', self.__unmount_activate_cb) + self.menu.append(menu_item) + menu_item.show() + + def __unmount_activate_cb(self, menu_item): + self._mount.unmount(self.__unmount_cb) + + def __unmount_cb(self, source, result): + logging.debug('__unmount_cb %r %r' % (source, result)) + + def __popup_cb(self, palette): + mount_point = self._mount.get_root().get_path() + stat = os.statvfs(mount_point) + free_space = stat[statvfs.F_BSIZE] * stat[statvfs.F_BAVAIL] + total_space = stat[statvfs.F_BSIZE] * stat[statvfs.F_BLOCKS] + + fraction = (total_space - free_space) / float(total_space) + self._progress_bar.props.fraction = fraction + self._free_space_label.props.label = _('%(free_space)d MB Free') % \ + {'free_space': free_space / (1024 * 1024)} + -- cgit v0.9.1