[kupfer] core: Optional immediate initialization of sources in SourceController
- From: Ulrik Sverdrup <usverdrup src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [kupfer] core: Optional immediate initialization of sources in SourceController
- Date: Thu, 4 Feb 2010 09:56:46 +0000 (UTC)
commit 1e5e94466d306559685e87f6e48156bea798e82d
Author: Ulrik Sverdrup <ulrik sverdrup gmail com>
Date: Wed Feb 3 23:56:03 2010 +0100
core: Optional immediate initialization of sources in SourceController
kupfer/core/sources.py | 19 ++++++++++++++-----
1 files changed, 14 insertions(+), 5 deletions(-)
---
diff --git a/kupfer/core/sources.py b/kupfer/core/sources.py
index 9707dac..095747e 100644
--- a/kupfer/core/sources.py
+++ b/kupfer/core/sources.py
@@ -246,7 +246,7 @@ class SourceController (pretty.OutputMixin):
self.loaded_successfully = False
self._restored_sources = set()
- def add(self, srcs, toplevel=False):
+ def add(self, srcs, toplevel=False, initialize=False):
sources = set(self._try_restore(srcs))
self._restored_sources.update(sources)
sources.update(srcs)
@@ -254,6 +254,9 @@ class SourceController (pretty.OutputMixin):
self.sources.update(sources)
if toplevel:
self.toplevel_sources.update(sources)
+ if initialize:
+ self._initialize_sources(sources)
+ self._cache_sources(sources)
self.rescanner.set_catalog(self.sources)
def add_text_sources(self, srcs):
self.text_sources.update(srcs)
@@ -445,17 +448,23 @@ class SourceController (pretty.OutputMixin):
def initialize(self):
"Initialize all sources and cache toplevel sources"
- for src in set(self.sources):
+ self._initialize_sources(self.sources)
+ self._cache_sources(self.toplevel_sources)
+ self.loaded_successfully = True
+ self._restored_sources.clear()
+
+ def _initialize_sources(self, sources):
+ for src in set(sources):
with self._exception_guard(src):
src.initialize()
+
+ def _cache_sources(self, sources):
# Make sure that the toplevel sources are chached
# either newly rescanned or the cache is fully loaded
- for src in set(self.toplevel_sources):
+ for src in set(sources):
with self._exception_guard(src):
force = (src not in self._restored_sources)
self.rescanner.rescan_now(src, force_update=force)
- self.loaded_successfully = True
- self._restored_sources.clear()
_source_controller = None
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]