Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAgustin Zubiaga <aguz@sugarlabs.org>2012-06-09 03:13:32 (GMT)
committer Agustin Zubiaga <aguz@sugarlabs.org>2012-06-09 03:13:32 (GMT)
commit04db2560940c0659447f84833af8e78aa7388b0e (patch)
treed77287d71eb7f360331a2902bb2cf991398d4b49
parentea63dfebe3a23aac77a006d71062e19b80158384 (diff)
Using a thread to download the list
-rw-r--r--activity.py5
-rw-r--r--activity/activity.info2
-rw-r--r--activity/notes.svg32
-rw-r--r--canvas.py26
-rw-r--r--utils.py4
5 files changed, 27 insertions, 42 deletions
diff --git a/activity.py b/activity.py
index 08666fd..e60a51e 100644
--- a/activity.py
+++ b/activity.py
@@ -100,8 +100,11 @@ class InstallActivity(activity.Activity):
search_entry.add_clear_button()
search_item = gtk.ToolItem()
search_item.add(search_entry)
+ search_item.set_sensitive(False)
toolbarbox.toolbar.insert(search_item, -1)
+ canvas.gtk_list.setup(search_item)
+
separator = gtk.SeparatorToolItem()
separator.set_draw(False)
separator.set_expand(True)
@@ -111,9 +114,7 @@ class InstallActivity(activity.Activity):
toolbarbox.toolbar.insert(stopbtn, -1)
self.set_toolbar_box(toolbarbox)
-
self.show_all()
-
canvas.set_page(0)
diff --git a/activity/activity.info b/activity/activity.info
index 1e52566..0a20ee6 100644
--- a/activity/activity.info
+++ b/activity/activity.info
@@ -3,6 +3,6 @@ name = Install
activity_version = 1
bundle_id = org.sugarlabs.Install
exec = sugar-activity activity.InstallActivity -s
-icon = notes
+icon = activity-install
show_launcher = yes
license = GPLv3+
diff --git a/activity/notes.svg b/activity/notes.svg
deleted file mode 100644
index b0bd905..0000000
--- a/activity/notes.svg
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" ?><!-- Created with Inkscape (http://www.inkscape.org/) --><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd' [
- <!ENTITY stroke_color "#ffffff">
- <!ENTITY fill_color "#000000">
-]><svg height="55" id="svg2" inkscape:version="0.48.2 r9819" sodipodi:docname="notes.svg" version="1.1" width="55" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:svg="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
- <defs id="defs4">
- <linearGradient id="linearGradient3756" inkscape:collect="always">
- <stop id="stop3758" offset="0" style="stop-color:#0000fd;stop-opacity:1;"/>
- <stop id="stop3760" offset="1" style="stop-color:#0000fd;stop-opacity:0;"/>
- </linearGradient>
- <linearGradient gradientUnits="userSpaceOnUse" id="linearGradient3762" inkscape:collect="always" x1="431.02184" x2="459.51553" xlink:href="#linearGradient3756" y1="1010.5219" y2="1010.5219"/>
- </defs>
- <sodipodi:namedview bordercolor="#666666" borderopacity="1.0" id="base" inkscape:current-layer="layer1" inkscape:cx="-9.4403697" inkscape:cy="42.848126" inkscape:document-units="px" inkscape:guide-bbox="true" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:window-height="746" inkscape:window-maximized="1" inkscape:window-width="1280" inkscape:window-x="0" inkscape:window-y="26" inkscape:zoom="5.3044218" pagecolor="#ffffff" showgrid="false" showguides="true"/>
- <metadata id="metadata7">
- <rdf:RDF>
- <cc:Work rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
- <dc:title/>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g id="layer1" inkscape:groupmode="layer" inkscape:label="Capa 1" transform="translate(0,-997.36218)">
- <g id="clipping-text" style="display:block;stroke:&fill_color;;stroke-opacity:1" transform="matrix(0.90599684,0,0,0.99133469,4.1080154,999.0103)">
- <g id="g4127" style="stroke:&fill_color;;stroke-opacity:1;display:inline;fill:&stroke_color;;fill-opacity:1">
- <g id="g4129" style="stroke:&fill_color;;stroke-opacity:1;fill:&stroke_color;;fill-opacity:1">
- <rect height="40.802326" id="rect3376" style="fill:&stroke_color;;fill-opacity:1;stroke:&fill_color;;stroke-width:3.04907632000000017;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" transform="matrix(0.78332962,-0.62160655,0.67983097,0.73336884,0,0)" width="30.865267" x="-13.573125" y="17.59075"/>
- </g>
- </g>
- </g>
- <text id="text2992" sodipodi:linespacing="125%" style="font-size:11.91758347000000029px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:&fill_color;;fill-opacity:1;stroke:&stroke_color;;font-family:VAGRounded BT;-inkscape-font-specification:VAGRounded BT;font-stretch:normal;font-variant:normal;stroke-opacity:1;stroke-width:0.29999999999999999;stroke-miterlimit:4;stroke-dasharray:none" transform="matrix(0.99555921,0.35386732,-0.41030503,0.8586194,0,0)" x="430.87506" xml:space="preserve" y="1014.7582"><tspan id="tspan2994" sodipodi:role="line" style="fill-opacity:1;fill:&fill_color;;stroke:&stroke_color;;stroke-opacity:1" x="430.87506" y="1014.7582">Store</tspan></text>
- </g>
-</svg> \ No newline at end of file
diff --git a/canvas.py b/canvas.py
index f46e2ac..ebda586 100644
--- a/canvas.py
+++ b/canvas.py
@@ -19,6 +19,7 @@
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
import gtk
+import pango
import threading
import utils
@@ -75,7 +76,6 @@ class List(gtk.VBox):
def __init__(self, parent):
gtk.VBox.__init__(self)
- self._list = utils.get_store_list()
self.download_list = DownloadList()
self._parent = parent
@@ -83,10 +83,26 @@ class List(gtk.VBox):
self.thread = None
self.words = ''
- self.can_search = True
+ self.can_search = False
self.show_all()
+ def setup(self, search_entry):
+ label = gtk.Label(_("Loading..."))
+ label.modify_font(pango.FontDescription("25"))
+ self.pack_start(label, True, True, 0)
+ threading.Thread(target=utils.update_list).start()
+
+ self._list = utils.get_store_list()
+ if self._list:
+ search_entry.set_sensitive(True)
+ self.can_search = True
+ self.clear()
+ else:
+ label.set_text(_("Failed to download the list"))
+
+ _logger.debug(str(self._list))
+
def _add_activity(self, widget):
self.pack_start(widget, False, False, 7)
separator = gtk.HSeparator()
@@ -95,7 +111,7 @@ class List(gtk.VBox):
widget.show()
separator.show()
- def _clear(self):
+ def clear(self):
for child in self.get_children():
self.remove(child)
child = None
@@ -105,7 +121,7 @@ class List(gtk.VBox):
if self.can_search:
self.can_search = False
self.w = entry.get_text().lower()
- self._clear()
+ self.clear()
self.thread = threading.Thread(target=self._search)
self.thread.start()
else:
@@ -122,8 +138,6 @@ class List(gtk.VBox):
activity_widget = ActivityWidget(_id, self)
self._add_activity(activity_widget)
self.can_search = True
-
-
class ActivityWidget(gtk.HBox):
diff --git a/utils.py b/utils.py
index 7e7bcb3..733808c 100644
--- a/utils.py
+++ b/utils.py
@@ -26,13 +26,15 @@ import logging
from sugar.activity import activity
from sugar.bundle.activitybundle import ActivityBundle
+from gettext import gettext as _
+
# Paths
LIST_DOWNLOAD = "http://www.fing.edu.uy/~aaguiar/files/store.lst"
LIST_PATH = os.path.join(activity.get_activity_root(), 'data', 'store.lst')
TMP_DIR = os.path.join(activity.get_activity_root(), "tmp")
# Logging
-_logger = logging.getLogger('activitiesstore-activity')
+_logger = logging.getLogger('install-activity')
_logger.setLevel(logging.DEBUG)
logging.basicConfig()