def _load_month_events(self, now): self._event_days = {} for c in self._page.get_children(): if isinstance(c, Cell): pass # Get all the events for this month for acc in self._account_manager.accounts: try: backend = get_backend(acc.type) if backend is None: logger.warning("Could not find a calendar backend for %s", acc.name) else: # Backends may specify if they need a network or not, so check the state from gnome15 import g15pluginmanager needs_net = g15pluginmanager.is_needs_network(backend) if not needs_net or ( needs_net and self.screen.service.network_manager.is_network_available() ): backend_events = backend.create_backend(acc, self._account_manager).get_events(now) if backend_events is None: logger.warning("Calendar returned no events, skipping") else: self._event_days = dict(list(self._event_days.items()) + \ list(backend_events.items())) else: logger.warning("Skipping backend %s because it requires the network, " \ "and the network is not availabe", acc.type) except Exception as e: logger.warning("Failed to load events for account %s.", acc.name, exc_info = e) g15screen.run_on_redraw(self._rebuild_components, now) self._page.mark_dirty()
def _load_files(self): self.lines = g15gconf.get_int_or_default(self._gconf_client, "%s/lines" % self._gconf_key, 10) file_list = self._gconf_client.get_list(self._gconf_key + "/files", gconf.VALUE_STRING) def init(): # Add new pages for file_path in file_list: if not file_path in self._pages: pg = G15TailPage(self, file_path) self._pages[file_path] = pg else: self._pages[file_path]._reload() # Remove pages that no longer exist to_remove = [] for file_path in self._pages: page = self._pages[file_path] if not page.file_path in file_list: self._screen.del_page(page) to_remove.append(file_path) for page in to_remove: del self._pages[page] g15screen.run_on_redraw(init)
def _adjust_calendar_date(self, amount): o_date = self._get_calendar_date() self._calendar_date = o_date + datetime.timedelta(amount) if amount == 0 or o_date.month != self._calendar_date.month or o_date.year != self._calendar_date.year: self._load_month_events(self._calendar_date) else: g15screen.run_on_redraw(self._rebuild_components, self._calendar_date)
def _load_month_events(self, now): self._event_days = {} for c in self._page.get_children(): if isinstance(c, Cell): pass # Get all the events for this month for acc in self._account_manager.accounts: try: backend = get_backend(acc.type) if backend is None: logger.warning("Could not find a calendar backend for %s", acc.name) else: # Backends may specify if they need a network or not, so check the state import gnome15.g15pluginmanager as g15pluginmanager needs_net = g15pluginmanager.is_needs_network(backend) if not needs_net or ( needs_net and self.screen.service.network_manager.is_network_available() ): backend_events = backend.create_backend(acc, self._account_manager).get_events(now) if backend_events is None: logger.warning("Calendar returned no events, skipping") else: self._event_days = dict(self._event_days.items() + \ backend_events.items()) else: logger.warning("Skipping backend %s because it requires the network, " \ "and the network is not availabe", acc.type) except Exception as e: logger.warning("Failed to load events for account %s.", acc.name, exc_info = e) g15screen.run_on_redraw(self._rebuild_components, now) self._page.mark_dirty()
def deactivate(self): g15plugin.G15Plugin.deactivate(self) self.screen.service.network_manager.listeners.append(self._network_state_changed) self._account_manager.remove_change_listener(self._accounts_changed) self.screen.key_handler.action_listeners.remove(self) if self._timer != None: self._timer.cancel() if self._page != None: g15screen.run_on_redraw(self.screen.del_page, self._page)
def run(self): for line in tailer.tail(open(self.page.file_path), self.page.plugin.lines): g15screen.run_on_redraw(self._add_line, line) self.fd = open(self.page.file_path) try: for line in tailer.follow(self.fd): if self._stopped: break g15screen.run_on_redraw(self._add_line, line) if self._stopped: break except ValueError as e: logger.debug("Error while reading", exc_info = e) if not self._stopped: raise e self.page.redraw()
def run(self): for line in tailer.tail(open(self.page.file_path), self.page.plugin.lines): g15screen.run_on_redraw(self._add_line, line) self.fd = open(self.page.file_path) try: for line in tailer.follow(self.fd): if self._stopped: break g15screen.run_on_redraw(self._add_line, line) if self._stopped: break except ValueError as e: logger.debug("Error while reading", exc_info=e) if not self._stopped: raise e self.page.redraw()
def memory_bank_changed(self): g15screen.run_on_redraw(self._reload_and_popup)