Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorflorent <florent.pigout@gmail.com>2011-08-28 00:54:56 (GMT)
committer florent <florent.pigout@gmail.com>2011-08-28 00:54:56 (GMT)
commitb1db04eb335745ba1261e18bbf0602ab9740ab4f (patch)
treec9cc313c6bbfb571a44e0c8bdb9409eb3ec117b9
parentc7e1284790246bc41a28bca4e132b4395bad5ed1 (diff)
make it work but still have 2 windows open at start??
-rw-r--r--lib/server/_server.py7
-rw-r--r--nutrinoweb/activity.py48
-rw-r--r--nutrinoweb/ui/toolbar.py6
3 files changed, 46 insertions, 15 deletions
diff --git a/lib/server/_server.py b/lib/server/_server.py
index eb7f94c..cdc9164 100644
--- a/lib/server/_server.py
+++ b/lib/server/_server.py
@@ -1,13 +1,14 @@
-# python import
-import atexit, multiprocessing
# server import
from server import config
-from server.flask import app, run_app
class Server(object):
def __init__(self):
+ # python import
+ import atexit, multiprocessing
+ # ..
+ from server.flask import run_app
# start the server
self._server = multiprocessing.Process(target=run_app)
self._server.start()
diff --git a/nutrinoweb/activity.py b/nutrinoweb/activity.py
index 0ece4a7..f02b619 100644
--- a/nutrinoweb/activity.py
+++ b/nutrinoweb/activity.py
@@ -1,5 +1,5 @@
# python import
-import logging
+import os, sys, threading, time
# gettext import
from gettext import gettext as _
@@ -8,12 +8,15 @@ from sugar.activity import activity
# hulahop import
from hulahop.webview import WebView
-# atoideweb import - first to update lib path
-import run
+# add lib path to current python path
+sys.path.append(os.path.join(activity.get_bundle_path(), 'lib'))
# server import
from server import config
-from server.flask import logger
+from server.flask import app, run_app as __run, logger
+
+# nutriweb import
+from nutrinoweb.controllers import app
# get port from config
@@ -23,28 +26,53 @@ _port = '5000' if _port is None or _port == '' else _port
URL_BASE = 'http://localhost:%s' % _port
+class ThreadServer(threading.Thread):
+
+ def __init__(self, activity_):
+ # init parent
+ threading.Thread.__init__(self)
+ # main flag
+ self._die = False
+ # start right now
+ self.start()
+
+ def kill(self):
+ self._die = True
+
+ def run(self):
+ # do run
+ __run()
+ # ...
+ while self._die is False:
+ continue
+ # ..
+ del app
+
+
def _toolbar_changed(toolbox, page, activity_):
"""Catch toolbox activity tab focus to display settings screen.
"""
# is the activity tab?
if page == 0:
# show the activity screen
- activity_.change_screen('activity')
+ activity_.change_screen('main')
else:
pass
# propagate it
return True
-class NutrinoWebActivity(run.Server, activity.Activity):
+class NutrinoWebActivity(activity.Activity):
def __init__(self, handle):
+ # init thread server
+ self._thread = ThreadServer(self)
+ # ..
+ time.sleep(5)
# init parents
activity.Activity.__init__(self, handle)
self.max_participants = 1
# ..
- run.Server.__init__(self)
- # ..
if config.Config().get('activity>use-toolbar', type_=bool):
self.__init_toolbar()
else:
@@ -97,5 +125,7 @@ class NutrinoWebActivity(run.Server, activity.Activity):
pass
def close(self, skip_save=False):
- run.Server.close(self)
+ # stop the thread
+ self._thread.kill()
+ # ..
activity.Activity.close(self, skip_save=True)
diff --git a/nutrinoweb/ui/toolbar.py b/nutrinoweb/ui/toolbar.py
index 439514d..f0811c8 100644
--- a/nutrinoweb/ui/toolbar.py
+++ b/nutrinoweb/ui/toolbar.py
@@ -24,7 +24,7 @@ def _cb_next(widget, toolbar, next_):
BUTTONS = {
- 'activity' : ['document-generic', _cb_next],
+ 'main' : ['document-generic', _cb_next],
'eating' : ['document-generic', _cb_next],
'sparetime': ['document-generic', _cb_next],
'separator': [None, None]
@@ -33,7 +33,7 @@ BUTTONS = {
TOOLBARS = {
'menu' : [
- ['activity', 'eating', 'sparetime'],
+ ['main', 'eating', 'sparetime'],
[]
],
}
@@ -42,7 +42,7 @@ TITLES = {
'menu' : {
'toolbox': _('Debug'),
'buttons': {
- 'activity' : _('Activity'),
+ 'main' : _('Activity'),
'eating' : _('Eating'),
'sparetime': _('Sparetime')
}