Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWalter Bender <walter.bender@gmail.com>2013-03-12 16:01:04 (GMT)
committer Walter Bender <walter.bender@gmail.com>2013-03-12 16:01:04 (GMT)
commit7dbc2f10ed836ee098161f6d8681731bda78e5c4 (patch)
tree1f6c7661038b2e0412c72af5f8cb15c31a584ca5
parent7d88e037f8b30b6703a2e6ea5b6a4e64e4bb5804 (diff)
more progress in backport
-rw-r--r--PortfolioActivity.py50
-rw-r--r--utils.py31
2 files changed, 62 insertions, 19 deletions
diff --git a/PortfolioActivity.py b/PortfolioActivity.py
index 5cccee5..80d3295 100644
--- a/PortfolioActivity.py
+++ b/PortfolioActivity.py
@@ -253,12 +253,6 @@ class PortfolioActivity(activity.Activity):
holding out scrolling window. '''
self.vbox.set_size_request(rect.width, rect.height)
- '''
- self._width = gtk.gdk.screen_width()
- self._height = gtk.gdk.screen_height()
- self._scale = gtk.gdk.screen_height() / 900.
- '''
-
def _set_screen_dpi(self):
dpi = _get_screen_dpi()
font_map_default = pangocairo.cairo_font_map_get_default()
@@ -650,6 +644,7 @@ class PortfolioActivity(activity.Activity):
owner = self._buddies[0]
title = ''
desc = ''
+ comment = []
preview = None
if hasattr(dsobj, 'metadata'):
if 'title' in dsobj.metadata:
@@ -855,7 +850,7 @@ class PortfolioActivity(activity.Activity):
self._preview.set_shape(pixbuf.scale_simple(
int(PREVIEW[self._orientation][2] * self._scale),
int(PREVIEW[self._orientation][3] * self._scale),
- GdkPixbuf.InterpType.NEAREST))
+ gtk.gdk.INTERP_NEAREST))
self._preview.set_layer(MIDDLE)
else:
if self._preview is not None:
@@ -960,7 +955,7 @@ class PortfolioActivity(activity.Activity):
if slide.thumb is None:
if slide.preview is not None:
pixbuf_thumb = slide.preview.scale_simple(
- int(w), int(h), GdkPixbuf.InterpType.TILES)
+ int(w), int(h), gtk.gdk.INTERP_TILES)
else:
pixbuf_thumb = svg_str_to_pixbuf(genblank(int(w), int(h),
self._colors))
@@ -974,6 +969,17 @@ class PortfolioActivity(activity.Activity):
slide.star.set_layer(STAR)
slide.star.move((x, y))
+ def _expose_cb(self, win, event):
+ self.do_expose_event(event)
+ return True
+
+ def do_expose_event(self, event):
+ cr = self.canvas.window.cairo_create()
+ cr.rectangle(event.area.x, event.area.y, event.area.width,
+ event.area.height)
+ cr.clip()
+ self._sprites.redraw_sprites(cr=cr)
+
def _draw_cb(self, win, context):
''' Callback to handle window draw events '''
self.do_draw_event(context)
@@ -1045,17 +1051,19 @@ class PortfolioActivity(activity.Activity):
return True
self._selected_spr.set_label(label)
if not hasattr(self, 'desc_entry'):
- self.desc_entry = Gtk.TextView()
- self.desc_entry.set_wrap_mode(Gtk.WrapMode.WORD)
+ self.desc_entry = gtk.TextView()
+ # self.desc_entry.set_wrap_mode(Gtk.WrapMode.WORD)
self.desc_entry.set_pixels_above_lines(0)
self.desc_entry.set_size_request(self._desc_wh[0],
self._desc_wh[1])
- rgba = Gdk.RGBA()
+ '''
+ rgba = gtk.gdk.RGBA()
rgba.red, rgba.green, rgba.blue = rgb(self._colors[1])
rgba.alpha = 1.
self.desc_entry.override_background_color(
- Gtk.StateFlags.NORMAL, rgba)
- font_desc = Pango.font_description_from_string(
+ gtk.StateFlags.NORMAL, rgba)
+ '''
+ font_desc = pango.font_description_from_string(
str(self.desc_size))
self.desc_entry.modify_font(font_desc)
self.fixed.put(self.desc_entry, 0, 0)
@@ -1070,15 +1078,17 @@ class PortfolioActivity(activity.Activity):
self._selected_spr = None
return True
if not hasattr(self, 'title_entry'):
- self.title_entry = Gtk.TextView()
- self.title_entry.set_justification(Gtk.Justification.CENTER)
+ self.title_entry = gtk.TextView()
+ self.title_entry.set_justification(gtk.JUSTIFY_CENTER)
self.title_entry.set_pixels_above_lines(1)
+ '''
rgba = Gdk.RGBA()
rgba.red, rgba.green, rgba.blue = rgb(self._colors[1])
rgba.alpha = 1.
self.title_entry.override_background_color(
Gtk.StateFlags.NORMAL, rgba)
- font_desc = Pango.font_description_from_string(
+ '''
+ font_desc = pango.font_description_from_string(
str(self.title_size))
self.title_entry.modify_font(font_desc)
self.fixed.put(self.title_entry, 0, 0)
@@ -1090,17 +1100,19 @@ class PortfolioActivity(activity.Activity):
self._selected_spr.set_label('')
self._saved_string = spr.labels[0]
if not hasattr(self, 'comment_entry'):
- self.comment_entry = Gtk.TextView()
- self.comment_entry.set_wrap_mode(Gtk.WrapMode.WORD)
+ self.comment_entry = gtk.TextView()
+ # self.comment_entry.set_wrap_mode(Gtk.WrapMode.WORD)
self.comment_entry.set_pixels_above_lines(0)
self.comment_entry.set_size_request(
self._new_comment_wh[0], self._new_comment_wh[1])
+ '''
rgba = Gdk.RGBA()
rgba.red, rgba.green, rgba.blue = rgb(self._colors[1])
rgba.alpha = 1.
self.comment_entry.override_background_color(
Gtk.StateFlags.NORMAL, rgba)
- font_desc = Pango.font_description_from_string(
+ '''
+ font_desc = pango.font_description_from_string(
str(self.desc_size))
self.comment_entry.modify_font(font_desc)
self.fixed.put(self.comment_entry, 0, 0)
diff --git a/utils.py b/utils.py
index 9a7db7a..f196359 100644
--- a/utils.py
+++ b/utils.py
@@ -23,6 +23,20 @@ XO175 = 'xo1.75'
UNKNOWN = 'unknown'
+def get_tablet_mode():
+ if not os.path.exists('/dev/input/event4'):
+ return False
+ try:
+ output = subprocess.call(
+ ['evtest', '--query', '/dev/input/event4', 'EV_SW',
+ 'SW_TABLET_MODE'])
+ except (OSError, subprocess.CalledProcessError):
+ return False
+ if str(output) == '10':
+ return True
+ return False
+
+
def play_audio_from_file(file_path):
""" Audio media """
command_line = ['gst-launch', 'filesrc', 'location=' + file_path,
@@ -69,6 +83,17 @@ def _get_dmi(node):
return None
+def parse_comments(comments):
+ label = ''
+ for comment in comments:
+ if 'from' in comment:
+ label += '[%s] ' % (comment['from'])
+ if 'message' in comment:
+ label += comment['message']
+ label += '\n'
+ return label
+
+
def get_path(activity, subpath):
""" Find a Rainbow-approved place for temporary files. """
try:
@@ -79,6 +104,12 @@ def get_path(activity, subpath):
"org.sugarlabs.PortfolioActivity", subpath))
+def rgb(color):
+ return float(int(color[1:3], 16) / 255.), \
+ float(int(color[3:5], 16) / 255.), \
+ float(int(color[5:7], 16) / 255.)
+
+
def _luminance(color):
''' Calculate luminance value '''
return int(color[1:3], 16) * 0.3 + int(color[3:5], 16) * 0.6 + \