Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/view/Shell.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/view/Shell.py')
-rw-r--r--src/view/Shell.py30
1 files changed, 19 insertions, 11 deletions
diff --git a/src/view/Shell.py b/src/view/Shell.py
index 5c4c75c..cafbf60 100644
--- a/src/view/Shell.py
+++ b/src/view/Shell.py
@@ -35,10 +35,10 @@ from sugar import profile
from sugar import env
from view.ActivityHost import ActivityHost
-from view.frame.frame import Frame
+from view.frame import frame
from view.keyhandler import KeyHandler
from view.home.HomeWindow import HomeWindow
-from model.shellmodel import ShellModel
+from model import shellmodel
# #3903 - this constant can be removed and assumed to be 1 when dbus-python
# 0.82.3 is the only version used
@@ -48,22 +48,22 @@ else:
DBUS_PYTHON_TIMEOUT_UNITS_PER_SECOND = 1000
class Shell(gobject.GObject):
- def __init__(self, model):
+ def __init__(self):
gobject.GObject.__init__(self)
self._activities_starting = Set()
- self._model = model
+ self._model = shellmodel.get_instance()
self._hosts = {}
self._screen = wnck.screen_get_default()
self._current_host = None
self._pending_host = None
self._screen_rotation = 0
- self._key_handler = KeyHandler(self)
+ self._key_handler = KeyHandler()
- self._frame = Frame(self)
+ self._frame = frame.get_instance()
- self._home_window = HomeWindow(self)
+ self._home_window = HomeWindow()
self._home_window.show()
home_model = self._model.get_home()
@@ -152,7 +152,7 @@ class Shell(gobject.GObject):
def notify_launch(self, bundle_id, activity_id):
# Zoom to Home for launch feedback
- self.set_zoom_level(ShellModel.ZOOM_HOME)
+ self.set_zoom_level(shellmodel.ShellModel.ZOOM_HOME)
home_model = self._model.get_home()
home_model.notify_activity_launch(activity_id, bundle_id)
@@ -170,7 +170,7 @@ class Shell(gobject.GObject):
activityfactory.create(activity_type)
def take_activity_screenshot(self):
- if self._model.get_zoom_level() != ShellModel.ZOOM_ACTIVITY:
+ if self._model.get_zoom_level() != shellmodel.ShellModel.ZOOM_ACTIVITY:
return
if self.get_frame().visible:
return
@@ -191,7 +191,7 @@ class Shell(gobject.GObject):
self.take_activity_screenshot()
- if level == ShellModel.ZOOM_ACTIVITY:
+ if level == shellmodel.ShellModel.ZOOM_ACTIVITY:
if self._pending_host is not None:
self._pending_host.present()
self._screen.toggle_showing_desktop(False)
@@ -219,7 +219,7 @@ class Shell(gobject.GObject):
activity.get_window().activate(1)
def close_current_activity(self):
- if self._model.get_zoom_level() != ShellModel.ZOOM_ACTIVITY:
+ if self._model.get_zoom_level() != shellmodel.ShellModel.ZOOM_ACTIVITY:
return
home_model = self._model.get_home()
@@ -282,3 +282,11 @@ class Shell(gobject.GObject):
finally:
os.remove(file_path)
+_instance = None
+
+def get_instance():
+ global _instance
+ if not _instance:
+ _instance = Shell()
+ return _instance
+