diff options
author | Simon Schampijer <simon@schampijer.de> | 2008-05-10 18:05:53 (GMT) |
---|---|---|
committer | Simon Schampijer <simon@schampijer.de> | 2008-05-10 18:05:53 (GMT) |
commit | efb13708c9dba0a7de4a7c17381a46994166494f (patch) | |
tree | 520d5caa69dc82de35d9170d5eba371b5620bfbe /src/view/home | |
parent | 9a36a9f05ca6352cc53da0920491ff7451d87089 (diff) |
Add th graphical controlpanel frontend
Diffstat (limited to 'src/view/home')
-rw-r--r-- | src/view/home/activitiesring.py | 68 |
1 files changed, 10 insertions, 58 deletions
diff --git a/src/view/home/activitiesring.py b/src/view/home/activitiesring.py index 6a4b22d..73b64e1 100644 --- a/src/view/home/activitiesring.py +++ b/src/view/home/activitiesring.py @@ -43,6 +43,7 @@ from view.home.MyIcon import MyIcon from model import shellmodel from model.shellmodel import ShellModel from hardware import schoolserver +from controlpanel.gui import ControlPanel _logger = logging.getLogger('ActivitiesRing') @@ -290,14 +291,14 @@ class _MyIcon(MyIcon): #secondary_text='Sample secondary label', icon=palette_icon) - item = MenuItem(_('About this XO')) + item = MenuItem(_('Control Panel')) icon = Icon(icon_name='computer-xo', icon_size=gtk.ICON_SIZE_MENU, xo_color=self._profile.color) item.set_image(icon) icon.show() - item.connect('activate', self._about_activate_cb) + item.connect('activate', self.__controlpanel_activate_cb) palette.menu.append(item) item.show() @@ -352,62 +353,13 @@ class _MyIcon(MyIcon): if self._profile.is_registered(): self.get_palette().menu.remove(menuitem) - def _about_activate_cb(self, menuitem): - dialog = gtk.Dialog(_('About this XO'), - self.palette, - gtk.DIALOG_MODAL | - gtk.DIALOG_DESTROY_WITH_PARENT, - (gtk.STOCK_OK, gtk.RESPONSE_OK)) - - not_available = _('Not available') - build = self._read_file('/boot/olpc_build') - if build is None: - build = not_available - label_build = gtk.Label('Build: %s' % build) - label_build.set_alignment(0, 0.5) - label_build.show() - vbox = dialog.get_child() - vbox.pack_start(label_build) - - firmware = self._read_file('/ofw/openprom/model') - if firmware is None: - firmware = not_available - else: - firmware = re.split(" +", firmware) - if len(firmware) == 3: - firmware = firmware[1] - label_firmware = gtk.Label('Firmware: %s' % firmware) - label_firmware.set_alignment(0, 0.5) - label_firmware.show() - vbox.pack_start(label_firmware) - - serial = self._read_file('/ofw/serial-number') - if serial is None: - serial = not_available - label_serial = gtk.Label('Serial Number: %s' % serial) - label_serial.set_alignment(0, 0.5) - label_serial.show() - vbox.pack_start(label_serial) - - dialog.set_default_response(gtk.RESPONSE_OK) - dialog.connect('response', self._response_cb) - dialog.show() - - def _read_file(self, path): - if os.access(path, os.R_OK) == 0: - _logger.error('read_file() No such file or directory: %s' % path) - return None - - fd = open(path, 'r') - value = fd.read() - fd.close() - if value: - value = value.strip('\n') - return value - else: - _logger.error('read_file() No information in file or directory: %s' - % path) - return None + def get_toplevel(self): + return hippo.get_canvas_for_item(self).get_toplevel() + + def __controlpanel_activate_cb(self, menuitem): + panel = ControlPanel() + panel.set_transient_for(self.get_toplevel()) + panel.show() def _response_cb(self, widget, response_id): if response_id == gtk.RESPONSE_OK: |