123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- #!/usr/bin/python3
- import os
- import sys
- from gi.repository import Gtk
- from dbus.mainloop.glib import DBusGMainLoop
- DBusGMainLoop(set_as_default=True)
- # we could use this as the base for the MockController as well
- # from ubiquity.frontend.base import Controller
- # for testing online status
- #from ubiquity.misc import add_connection_watch
- class MockController(object):
- def __init__(self, parent):
- self.parent = parent
- self.oem_user_config = None
- self.oem_config = None
- self.dbfilter = None
- self._allow_go_foward = True
- self._allow_go_backward = True
- def go_forward(self):
- self.parent.button_next.clicked()
- def get_string(self, s, lang):
- return "get_string: %s (lang=%s)" % (s, lang)
- def add_builder(self, builder):
- pass
- def allow_go_forward(self, v):
- self._allow_go_forward = v
- self.parent.button_next.set_sensitive(v)
- def allow_go_backward(self, v):
- self._allow_go_backward = v
- self.parent.button_back.set_sensitive(v)
- if __name__ == "__main__":
- """ Run with:
- ./plugin-viewer-gtk.py ubi-timezone
- """
- def _on_button_next_clicked(button):
- stop = page_gtk.plugin_on_next_clicked()
- if not stop:
- Gtk.main_quit()
- # setup env
- for envvar, path in (
- ("UBIQUITY_PLUGIN_PATH", "./ubiquity/plugins"),
- ("UBIQUITY_GLADE", "./gui/gtk")):
- if os.path.exists(path):
- os.environ[envvar] = path
- # ... and then import the plugin_manager
- from ubiquity.plugin_manager import load_plugin
- plugin_name = sys.argv[1]
- plugin_module = load_plugin(plugin_name)
- win = Gtk.Window()
- win.button_next = Gtk.Button("next")
- win.button_back = Gtk.Button("back")
- mock_controller = MockController(win)
- page_gtk = plugin_module.PageGtk(mock_controller)
- #page_gtk.plugin_translate("en")
- win.button_next.connect(
- "clicked", _on_button_next_clicked)
- win.button_back.connect(
- "clicked", lambda b: page_gtk.plugin_on_back_clicked())
- #add_connection_watch(page_gtk.plugin_set_online_state)
- # fake debconf interface:
- page_gtk.db = {'netcfg/get_hostname': 'test hostname'}
- button_box = Gtk.ButtonBox(spacing=12)
- button_box.set_layout(Gtk.ButtonBoxStyle.END)
- button_box.pack_start(win.button_back, True, True, 6)
- button_box.pack_start(win.button_next, True, True, 6)
- box = Gtk.VBox()
- if hasattr(page_gtk, 'page'):
- box.pack_start(page_gtk.page, True, True, 6)
- else:
- box.pack_start(page_gtk.current_page, True, True, 6)
- box.pack_start(button_box, True, True, 6)
- win.add(box)
- win.connect("destroy", Gtk.main_quit)
- win.show_all()
- Gtk.main()
|