Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSimon Schampijer <simon@schampijer.de>2009-01-21 10:43:55 (GMT)
committer Simon Schampijer <simon@schampijer.de>2009-01-21 10:43:55 (GMT)
commit072887fd1861c48da7713ba1f53cf646c76f977a (patch)
tree0874a0be5b9ba928b46586c318c775f074e298f5 /src
parent4bb9b5147bf56b7b18de67da094dbec7b35cd653 (diff)
parent40a22bc1da60f4982e2163a9533d95213d27d7ca (diff)
Merge branch 'master' of gitorious@git.sugarlabs.org:sugar/mainline
Diffstat (limited to 'src')
-rw-r--r--src/jarabe/desktop/meshbox.py12
-rw-r--r--src/jarabe/journal/listview.py2
-rw-r--r--src/jarabe/journal/volumestoolbar.py17
-rw-r--r--src/jarabe/model/shell.py4
-rw-r--r--src/jarabe/view/palettes.py52
5 files changed, 71 insertions, 16 deletions
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)}
+