]> git.lyx.org Git - lyx.git/blobdiff - src/graphics/GraphicsLoader.cpp
de.po: fix doubled accelerator keys
[lyx.git] / src / graphics / GraphicsLoader.cpp
index d2b712b60cb959ad5e9786048ddc845a5dae31a6..ecc9cd9e03959374d33b429257217ff351303ffe 100644 (file)
@@ -207,10 +207,10 @@ Loader::Loader()
 {}
 
 
-Loader::Loader(FileName const & file, DisplayType type)
+Loader::Loader(FileName const & file, bool display)
        : pimpl_(new Impl)
 {
-       reset(file, type);
+       reset(file, display);
 }
 
 
@@ -245,10 +245,10 @@ Loader & Loader::operator=(Loader const & other)
 }
 
 
-void Loader::reset(FileName const & file, DisplayType type) const
+void Loader::reset(FileName const & file, bool display) const
 {
        Params params;
-       params.display = type;
+       params.display = display;
        pimpl_->resetParams(params);
 
        pimpl_->resetFile(file);
@@ -407,10 +407,20 @@ void Loader::Impl::statusChanged()
 
 void Loader::Impl::createPixmap()
 {
-       if (!cached_item_.get() ||
-           params_.display == NoDisplay || status_ != Loaded)
+       if (!params_.display || status_ != Loaded)
                return;
 
+       if (!cached_item_.get()) {
+               LYXERR(Debug::GRAPHICS, "pixmap not cached yet");
+               return;
+       }
+
+       if (!cached_item_->image()) {
+               // There must have been a problem reading the file.
+               LYXERR(Debug::GRAPHICS, "Graphics file not loaded.");
+               return;
+       }
+
        image_.reset(cached_item_->image()->clone());
 
        bool const success = image_->setPixmap(params_);
@@ -428,8 +438,11 @@ void Loader::Impl::startLoading()
        if (status_ != WaitingToLoad)
                return;
 
-       if (cached_item_->tryDisplayFormat())
+       if (cached_item_->tryDisplayFormat()) {
+               status_ = Loaded;
+               createPixmap();
                return;
+       }
 
        LoaderQueue::get().touch(cached_item_);
 }