Пример #1
0
 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()
Пример #2
0
    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)
Пример #3
0
 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)
Пример #4
0
 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()
Пример #5
0
 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)
Пример #6
0
 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)
Пример #7
0
 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)
Пример #8
0
 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()
Пример #9
0
 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()
Пример #10
0
 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)
Пример #11
0
 def memory_bank_changed(self):
     g15screen.run_on_redraw(self._reload_and_popup)
Пример #12
0
 def memory_bank_changed(self):
     g15screen.run_on_redraw(self._reload_and_popup)