Make the Shell own the console. Some view changes.
This commit is contained in:
parent
c8b5ab290e
commit
ce72600b02
@ -1,20 +1 @@
|
|||||||
from console import Console
|
from console import Console
|
||||||
|
|
||||||
console = None
|
|
||||||
|
|
||||||
def show():
|
|
||||||
global console
|
|
||||||
if not console:
|
|
||||||
console = Console()
|
|
||||||
console.show()
|
|
||||||
|
|
||||||
def hide():
|
|
||||||
if console:
|
|
||||||
console.hide()
|
|
||||||
|
|
||||||
def toggle_visibility():
|
|
||||||
if not console or not console.props.visible:
|
|
||||||
show()
|
|
||||||
else:
|
|
||||||
hide()
|
|
||||||
|
|
||||||
|
@ -3,10 +3,14 @@ import os
|
|||||||
import gtk
|
import gtk
|
||||||
import hippo
|
import hippo
|
||||||
|
|
||||||
|
from sugar.graphics.roundbox import CanvasRoundBox
|
||||||
|
|
||||||
class Console(gtk.Window):
|
class Console(gtk.Window):
|
||||||
def __init__(self):
|
def __init__(self, shell_model):
|
||||||
gtk.Window.__init__(self)
|
gtk.Window.__init__(self)
|
||||||
|
|
||||||
|
self._shell_model = shell_model
|
||||||
|
|
||||||
self.set_default_size(gtk.gdk.screen_width() * 3 / 4,
|
self.set_default_size(gtk.gdk.screen_width() * 3 / 4,
|
||||||
gtk.gdk.screen_height() * 3 / 4)
|
gtk.gdk.screen_height() * 3 / 4)
|
||||||
self.set_decorated(False)
|
self.set_decorated(False)
|
||||||
@ -17,8 +21,7 @@ class Console(gtk.Window):
|
|||||||
self.add(canvas)
|
self.add(canvas)
|
||||||
canvas.show()
|
canvas.show()
|
||||||
|
|
||||||
box = hippo.CanvasBox(padding=20, border_color=0x000000FF,
|
box = hippo.CanvasBox(padding=20, background_color=0x000000FF)
|
||||||
border=3)
|
|
||||||
canvas.set_root(box)
|
canvas.set_root(box)
|
||||||
|
|
||||||
self.registry = Registry()
|
self.registry = Registry()
|
||||||
|
@ -5,7 +5,6 @@ import hippo
|
|||||||
import gnomevfs
|
import gnomevfs
|
||||||
from louie import dispatcher
|
from louie import dispatcher
|
||||||
|
|
||||||
from sugar.graphics.roundbox import CanvasRoundBox
|
|
||||||
from sugar import env
|
from sugar import env
|
||||||
|
|
||||||
class LogEntry(object):
|
class LogEntry(object):
|
||||||
@ -55,7 +54,7 @@ class LogView(hippo.CanvasBox):
|
|||||||
widget.props.vadjustment.connect('changed', self._vadj_changed_cb)
|
widget.props.vadjustment.connect('changed', self._vadj_changed_cb)
|
||||||
self.append(scrollbars, hippo.PACK_EXPAND)
|
self.append(scrollbars, hippo.PACK_EXPAND)
|
||||||
|
|
||||||
self.box = hippo.CanvasBox(spacing=5)
|
self.box = hippo.CanvasBox(spacing=5, background_color=0xFFFFFFFF)
|
||||||
scrollbars.set_root(self.box)
|
scrollbars.set_root(self.box)
|
||||||
|
|
||||||
for entry_model in self.model:
|
for entry_model in self.model:
|
||||||
@ -64,10 +63,11 @@ class LogView(hippo.CanvasBox):
|
|||||||
dispatcher.connect(self._entry_added_cb, 'entry-added', self.model)
|
dispatcher.connect(self._entry_added_cb, 'entry-added', self.model)
|
||||||
|
|
||||||
def add_entry(self, entry_model):
|
def add_entry(self, entry_model):
|
||||||
entry_box = CanvasRoundBox(background_color=0xffffffff, padding=5)
|
entry_box = hippo.CanvasBox(padding=5)
|
||||||
self.box.append(entry_box)
|
self.box.append(entry_box)
|
||||||
|
|
||||||
entry = hippo.CanvasText(text=entry_model.text,
|
entry = hippo.CanvasText(text=entry_model.text,
|
||||||
|
xalign=hippo.ALIGNMENT_START,
|
||||||
size_mode=hippo.CANVAS_SIZE_WRAP_WORD)
|
size_mode=hippo.CANVAS_SIZE_WRAP_WORD)
|
||||||
entry_box.append(entry)
|
entry_box.append(entry)
|
||||||
|
|
||||||
|
@ -36,6 +36,7 @@ from view.frame.frame import Frame
|
|||||||
from view.keyhandler import KeyHandler
|
from view.keyhandler import KeyHandler
|
||||||
from view.home.HomeWindow import HomeWindow
|
from view.home.HomeWindow import HomeWindow
|
||||||
from model.shellmodel import ShellModel
|
from model.shellmodel import ShellModel
|
||||||
|
from console import Console
|
||||||
|
|
||||||
class Shell(gobject.GObject):
|
class Shell(gobject.GObject):
|
||||||
def __init__(self, model):
|
def __init__(self, model):
|
||||||
@ -64,6 +65,8 @@ class Shell(gobject.GObject):
|
|||||||
home_model.connect('pending-activity-changed',
|
home_model.connect('pending-activity-changed',
|
||||||
self._pending_activity_changed_cb)
|
self._pending_activity_changed_cb)
|
||||||
|
|
||||||
|
self._console = Console(model)
|
||||||
|
|
||||||
gobject.idle_add(self._start_journal_idle)
|
gobject.idle_add(self._start_journal_idle)
|
||||||
|
|
||||||
def _start_journal_idle(self):
|
def _start_journal_idle(self):
|
||||||
@ -165,6 +168,12 @@ class Shell(gobject.GObject):
|
|||||||
return host
|
return host
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
def toggle_console_visibility(self):
|
||||||
|
if self._console.props.visible:
|
||||||
|
self._console.hide()
|
||||||
|
else:
|
||||||
|
self._console.show()
|
||||||
|
|
||||||
def toggle_chat_visibility(self):
|
def toggle_chat_visibility(self):
|
||||||
act = self.get_current_activity()
|
act = self.get_current_activity()
|
||||||
if not act:
|
if not act:
|
||||||
|
@ -148,7 +148,7 @@ class KeyHandler(object):
|
|||||||
gobject.idle_add(self._toggle_console_visibility_cb)
|
gobject.idle_add(self._toggle_console_visibility_cb)
|
||||||
|
|
||||||
def handle_new_console(self):
|
def handle_new_console(self):
|
||||||
console.toggle_visibility()
|
self._shell.toggle_console_visibility()
|
||||||
|
|
||||||
def handle_frame(self):
|
def handle_frame(self):
|
||||||
self._shell.get_frame().notify_key_press()
|
self._shell.get_frame().notify_key_press()
|
||||||
|
Loading…
Reference in New Issue
Block a user