diff options
Diffstat (limited to 'rpms/sugar/0050-Patch-to-add-feedback-icon-to-frame.patch')
-rw-r--r-- | rpms/sugar/0050-Patch-to-add-feedback-icon-to-frame.patch | 162 |
1 files changed, 162 insertions, 0 deletions
diff --git a/rpms/sugar/0050-Patch-to-add-feedback-icon-to-frame.patch b/rpms/sugar/0050-Patch-to-add-feedback-icon-to-frame.patch new file mode 100644 index 0000000..edc6e99 --- /dev/null +++ b/rpms/sugar/0050-Patch-to-add-feedback-icon-to-frame.patch @@ -0,0 +1,162 @@ +From 274fc4539ea8d2b2cd33ae60321fdfb629375e40 Mon Sep 17 00:00:00 2001 +From: Mukesh Gupta <mukeshgupta.2006@gmail.com> +Date: Tue, 18 Jan 2011 07:54:15 +0000 +Subject: [PATCH sugar 50/74] Patch to add feedback icon to frame + +Signed-off-by: Mukesh Gupta <mukeshgupta.2006@gmail.com> +--- + extensions/deviceicon/Makefile.am | 4 +- + extensions/deviceicon/feedback.py | 129 +++++++++++++++++++++++++++++++++++++ + 2 files changed, 132 insertions(+), 1 deletions(-) + create mode 100644 extensions/deviceicon/feedback.py + +diff --git a/extensions/deviceicon/Makefile.am b/extensions/deviceicon/Makefile.am +index 3a74053..b38cbb3 100644 +--- a/extensions/deviceicon/Makefile.am ++++ b/extensions/deviceicon/Makefile.am +@@ -8,4 +8,6 @@ sugar_PYTHON = \ + speaker.py \ + touchpad.py \ + virtualkeyboard.py \ +- volume.py ++ volume.py \ ++ feedback.py ++ +diff --git a/extensions/deviceicon/feedback.py b/extensions/deviceicon/feedback.py +new file mode 100644 +index 0000000..dc40a6e +--- /dev/null ++++ b/extensions/deviceicon/feedback.py +@@ -0,0 +1,129 @@ ++# Copyright (C) Mukesh Gupta <mukeshgupta.2006@gmail.com> ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# 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 ++ ++import logging ++from gettext import gettext as _ ++import gconf ++import gtk ++from sugar.graphics import style ++from sugar.graphics.tray import TrayIcon ++from sugar.graphics.palette import Palette ++from sugar.graphics.xocolor import XoColor ++from jarabe.model import feedback_collector ++from jarabe.view import launcher ++from sugar.activity import activityfactory ++from jarabe.model import bundleregistry ++from sugar.activity.activityhandle import ActivityHandle ++ ++_ICON_NAME = 'feedback-icon' ++ ++class DeviceView(TrayIcon): ++ FRAME_POSITION_RELATIVE = 500 ++ def __init__(self): ++ client = gconf.client_get_default() ++ self._color = XoColor(client.get_string('/desktop/sugar/user/color')) ++ TrayIcon.__init__(self, icon_name=_ICON_NAME, xo_color=self._color) ++ self.create_palette() ++ ++ def create_palette(self): ++ logging.debug('palette created') ++ self.palette = BugsPalette(_('Bugs')) ++ self.palette.set_group_id('frame') ++ return self.palette ++ ++ ++class BugsPalette(Palette): ++ ++ def __init__(self, primary_text): ++ Palette.__init__(self, primary_text) ++ self._level = 0 ++ self._status_label = gtk.Label() ++ self._status_label.show() ++ self.vbox = gtk.VBox() ++ self.hbox = gtk.HBox() ++ self.set_content(self.vbox) ++ self._bugs_count_text = gtk.Label() ++ self.vbox.pack_start(self._bugs_count_text, ++ padding = style.DEFAULT_PADDING) ++ self.vbox.pack_start(self.hbox, padding = style.DEFAULT_PADDING) ++ self.vbox.show() ++ self.hbox.pack_start(self._status_label, ++ padding = style.DEFAULT_PADDING) ++ self.hbox.show() ++ self._open_log_button = gtk.Button("Open Log") ++ self._open_log_button.connect("clicked", ++ self.__open_log_activity) ++ self.hbox.pack_start(self._open_log_button, ++ padding = style.DEFAULT_PADDING) ++ self._send_report_button = gtk.Button("Send Report") ++ self._send_report_button.connect("clicked", self.__send_bug_report) ++ self.hbox.pack_start(self._send_report_button, ++ padding = style.DEFAULT_PADDING) ++ self.__get_bug_count() ++ self._bugs_count_text.show() ++ self._open_log_button.show() ++ self._send_report_button.show() ++ ++ def popup(self, immediate=False, state=None): ++ Palette.popup(self, immediate=immediate, state=state) ++ self.__update_bug_palette() ++ ++ ++ def __send_bug_report(self, button): ++ feedback_collector.submit() ++ ++ def __open_log_activity(self, path): ++ ++ registry = bundleregistry.get_registry() ++ bundle = registry.get_bundle('org.laptop.Log') ++ activity_id = activityfactory.create_activity_id() ++ client = gconf.client_get_default() ++ xo_color = XoColor(client.get_string('/desktop/sugar/user/color')) ++ launcher.add_launcher(activity_id, bundle.get_icon(), xo_color) ++ activityfactory.create(bundle, ActivityHandle(activity_id)) ++ ++ def __get_bug_count(self): ++ """This method returns the total error count""" ++ bugs_count = 0 ++ ++ ++ return bugs_count ++ ++ def __update_bug_palette(self): ++ bugs_count = self.__get_bug_count() ++ self._open_log_button.set_sensitive(False) ++ have_reports, have_errors = feedback_collector.stat() ++ #have_reports, have_errors=[True,False] ++ if have_errors: ++ self._open_log_button.set_sensitive(True) ++ else: ++ self._open_log_button.set_sensitive(False) ++ ++ ++ if have_reports: ++ self._send_report_button.set_sensitive(True) ++ else: ++ self._send_report_button.set_sensitive(False) ++ ++ if bugs_count == 0: ++ self._bugs_count_text.set_label('No Errors') ++ else : ++ self._bugs_count_text.set_label(_('Total Errors: %d' % bugs_count)) ++ ++def setup(tray): ++ client = gconf.client_get_default() ++ if client.get_bool('/desktop/sugar/feedback/enabled'): ++ tray.add_device(DeviceView()) +-- +1.7.6 + |