Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/view/home
diff options
context:
space:
mode:
authorSimon Schampijer <simon@schampijer.de>2008-05-10 18:05:53 (GMT)
committer Simon Schampijer <simon@schampijer.de>2008-05-10 18:05:53 (GMT)
commitefb13708c9dba0a7de4a7c17381a46994166494f (patch)
tree520d5caa69dc82de35d9170d5eba371b5620bfbe /src/view/home
parent9a36a9f05ca6352cc53da0920491ff7451d87089 (diff)
Add th graphical controlpanel frontend
Diffstat (limited to 'src/view/home')
-rw-r--r--src/view/home/activitiesring.py68
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: