#include "Previews.h"
#include "PreviewLoader.h"
-#include "buffer.h"
-#include "insetiterator.h"
-#include "lyxrc.h"
-#include "paragraph.h"
+#include "Buffer.h"
+#include "InsetIterator.h"
+#include "LyXRC.h"
#include "insets/Inset.h"
+using namespace std;
namespace lyx {
}
-Previews & Previews::get()
-{
- static Previews singleton;
- return singleton;
+namespace {
+typedef boost::shared_ptr<PreviewLoader> PreviewLoaderPtr;
+///
+typedef map<Buffer const *, PreviewLoaderPtr> LyxCacheType;
+///
+static LyxCacheType preview_cache_;
}
-class Previews::Impl {
-public:
- ///
- typedef boost::shared_ptr<PreviewLoader> PreviewLoaderPtr;
- ///
- typedef std::map<Buffer const *, PreviewLoaderPtr> CacheType;
- ///
- CacheType cache;
-};
-
-
-Previews::Previews()
- : pimpl_(new Impl)
-{}
-
-
-Previews::~Previews()
-{}
-
-
PreviewLoader & Previews::loader(Buffer const & buffer) const
{
- Impl::CacheType::iterator it = pimpl_->cache.find(&buffer);
+ LyxCacheType::iterator it = preview_cache_.find(&buffer);
- if (it == pimpl_->cache.end()) {
- Impl::PreviewLoaderPtr ptr(new PreviewLoader(buffer));
- pimpl_->cache[&buffer] = ptr;
+ if (it == preview_cache_.end()) {
+ PreviewLoaderPtr ptr(new PreviewLoader(buffer));
+ preview_cache_[&buffer] = ptr;
return *ptr.get();
}
void Previews::removeLoader(Buffer const & buffer) const
{
- Impl::CacheType::iterator it = pimpl_->cache.find(&buffer);
+ LyxCacheType::iterator it = preview_cache_.find(&buffer);
- if (it != pimpl_->cache.end())
- pimpl_->cache.erase(it);
+ if (it != preview_cache_.end())
+ preview_cache_.erase(it);
}
{
PreviewLoader & ploader = loader(buffer);
- InsetBase & inset = buffer.inset();
+ Inset & inset = buffer.inset();
InsetIterator it = inset_iterator_begin(inset);
InsetIterator const end = inset_iterator_end(inset);
for (; it != end; ++it)
- it->addPreview(ploader);
+ it->addPreview(it, ploader);
ploader.startLoading();
}