def __init__(self, main_controller): self.main_controller = main_controller main_controller.welcomescreen_controller = self self._recent_files = [] from virtaal.views.welcomescreenview import WelcomeScreenView self.view = WelcomeScreenView(self) main_controller.store_controller.connect('store-closed', self._on_store_closed) main_controller.store_controller.connect('store-loaded', self._on_store_loaded)
def __init__(self, main_controller): self.main_controller = main_controller main_controller.welcomescreen_controller = self self._recent_files = [] self.view = WelcomeScreenView(self) main_controller.store_controller.connect('store-closed', self._on_store_closed) main_controller.store_controller.connect('store-loaded', self._on_store_loaded)
class WelcomeScreenController(BaseController): """ Contains logic for the welcome screen. """ MAX_RECENT = 5 """The maximum number of recent items to display.""" LINKS = { 'manual': _('http://translate.sourceforge.net/wiki/virtaal/using_virtaal'), 'locguide': _('http://translate.sourceforge.net/wiki/guide/start'), # FIXME: The URL below should be replaced with a proper feedback URL 'feedback': _("http://translate.sourceforge.net/wiki/virtaal/index#contact"), 'features_more': _('http://translate.sourceforge.net/wiki/virtaal/features') } # INITIALIZERS # def __init__(self, main_controller): self.main_controller = main_controller main_controller.welcomescreen_controller = self self._recent_files = [] from virtaal.views.welcomescreenview import WelcomeScreenView self.view = WelcomeScreenView(self) main_controller.store_controller.connect('store-closed', self._on_store_closed) main_controller.store_controller.connect('store-loaded', self._on_store_loaded) # METHODS # def activate(self): """Show the welcome screen and trigger activation logic (ie. find recent files).""" import gobject gobject.idle_add(self.update_recent, priority=gobject.PRIORITY_LOW) self.view.show() def open_cheatsheat(self): from virtaal.support import openmailto # FIXME: The URL below is just a temporary solution openmailto.open( _('http://translate.sourceforge.net/wiki/virtaal/cheatsheet')) def open_file(self, filename=None): self.main_controller.open_file(filename) def open_recent(self, n): n -= 1 # Shift from nominal value [1; 5] to index value [0; 4] if 0 <= n <= len(self._recent_files) - 1: self.open_file(self._recent_files[n]['uri'].decode('utf-8')) else: import logging logging.debug( 'Invalid recent file index (%d) given. Recent files: %s)' % (n, self._recent_files)) def open_tutorial(self): self.main_controller.open_tutorial() def try_open_link(self, name): if name not in self.LINKS: return False from virtaal.support import openmailto openmailto.open(self.LINKS[name]) return True def update_recent(self): from virtaal.views import recent self._recent_files = [{ 'name': i.get_display_name(), 'uri': i.get_uri_display() } for i in recent.rc.get_items()[:self.MAX_RECENT]] self.view.update_recent_buttons(self._recent_files) # EVENT HANDLERS # def _on_store_closed(self, store_controller): self.activate() def _on_store_loaded(self, store_controller): self.view.hide()
class WelcomeScreenController(BaseController): """ Contains logic for the welcome screen. """ MAX_RECENT = 5 """The maximum number of recent items to display.""" LINKS = { 'manual': _('http://translate.sourceforge.net/wiki/virtaal/using_virtaal'), 'locguide': 'http://translate.sourceforge.net/wiki/guide/start', # FIXME: The URL below should be replaced with a proper feedback URL 'feedback': "http://translate.sourceforge.net/wiki/virtaal/index#contact", 'features_more': _('http://translate.sourceforge.net/wiki/virtaal/features') } # INITIALIZERS # def __init__(self, main_controller): self.main_controller = main_controller main_controller.welcomescreen_controller = self self._recent_files = [] self.view = WelcomeScreenView(self) main_controller.store_controller.connect('store-closed', self._on_store_closed) main_controller.store_controller.connect('store-loaded', self._on_store_loaded) # METHODS # def activate(self): """Show the welcome screen and trigger activation logic (ie. find recent files).""" self.update_recent() self.view.show() def open_cheatsheat(self): # FIXME: The URL below is just a temporary solution openmailto.open('http://translate.sourceforge.net/wiki/virtaal/cheatsheet') def open_file(self): self.main_controller.open_file() def open_recent(self, n): n -= 1 # Shift from nominal value [1; 5] to index value [0; 4] if 0 <= n <= len(self._recent_files)-1: self.main_controller.open_file(self._recent_files[n]['uri']) else: logging.debug('Invalid recent file index (%d) given. Recent files: %s)' % (n, self._recent_files)) def open_tutorial(self): self.main_controller.open_tutorial() def try_open_link(self, name): if name not in self.LINKS: return False openmailto.open(self.LINKS[name]) return True def update_recent(self): self._recent_files = [{ 'name': i.get_display_name(), 'uri': i.get_uri_display() } for i in recent.rc.get_items()[:self.MAX_RECENT] ] self.view.update_recent_buttons(self._recent_files) # EVENT HANDLERS # def _on_store_closed(self, store_controller): self.activate() def _on_store_loaded(self, store_controller): self.view.hide()