]> git.lyx.org Git - lyx.git/blobdiff - src/graphics/GraphicsLoader.cpp
ctests: regex to revert two instant_preview tests
[lyx.git] / src / graphics / GraphicsLoader.cpp
index 25caba51aa355ee67b1797345d076a2ce82284c0..4ec5c9aed92f50a3443a82741f9429bfa0eab199 100644 (file)
@@ -20,7 +20,7 @@
 #include "support/debug.h"
 #include "support/Timeout.h"
 
-#include <boost/bind.hpp>
+#include "support/bind.h"
 
 #include <set>
 #include <queue>
@@ -74,6 +74,7 @@ private:
 //static int s_numimages_ = 5;
 //static int s_millisecs_ = 500;
 
+// FIXME THREAD
 static int s_numimages_ = 10;
 static int s_millisecs_ = 500;
 
@@ -89,25 +90,24 @@ void LoaderQueue::loadNext()
        LYXERR(Debug::GRAPHICS, "LoaderQueue: "
                << cache_queue_.size() << " items in the queue");
        int counter = s_numimages_;
-       while (cache_queue_.size() && counter--) {
+       while (!cache_queue_.empty() && counter--) {
                Cache::ItemPtr ptr = cache_queue_.front();
                cache_set_.erase(ptr);
                cache_queue_.pop_front();
                if (ptr->status() == WaitingToLoad)
                        ptr->startLoading();
        }
-       if (cache_queue_.size()) {
+       if (!cache_queue_.empty())
                startLoader();
-       } else {
+       else
                stopLoader();
-       }
 }
 
 
 LoaderQueue::LoaderQueue() : timer(s_millisecs_, Timeout::ONETIME),
                             running_(false)
 {
-       timer.timeout.connect(boost::bind(&LoaderQueue::loadNext, this));
+       timer.timeout.connect(bind(&LoaderQueue::loadNext, this));
 }
 
 
@@ -159,7 +159,7 @@ void LoaderQueue::touch(Cache::ItemPtr const & item)
 //
 /////////////////////////////////////////////////////////////////////
 
-typedef boost::shared_ptr<Image> ImagePtr;
+typedef shared_ptr<Image> ImagePtr;
 
 class Loader::Impl : public boost::signals::trackable {
 public:
@@ -273,15 +273,21 @@ void Loader::reset(Params const & params) const
 
 void Loader::startLoading() const
 {
-       if (pimpl_->status_ != WaitingToLoad || !pimpl_->cached_item_.get())
+       if (pimpl_->status_ != WaitingToLoad || !pimpl_->cached_item_)
                return;
        pimpl_->startLoading();
 }
 
 
+void Loader::reload() const 
+{
+       pimpl_->cached_item_->startLoading();
+}
+
+
 void Loader::startMonitoring() const
 {
-       if (!pimpl_->cached_item_.get())
+       if (!pimpl_->cached_item_)
                return;
 
        pimpl_->cached_item_->startMonitoring();
@@ -290,7 +296,7 @@ void Loader::startMonitoring() const
 
 bool Loader::monitoring() const
 {
-       if (!pimpl_->cached_item_.get())
+       if (!pimpl_->cached_item_)
                return false;
 
        return pimpl_->cached_item_->monitoring();
@@ -299,7 +305,7 @@ bool Loader::monitoring() const
 
 unsigned long Loader::checksum() const
 {
-       if (!pimpl_->cached_item_.get())
+       if (!pimpl_->cached_item_)
                return 0;
 
        return pimpl_->cached_item_->checksum();
@@ -309,7 +315,7 @@ unsigned long Loader::checksum() const
 FileName const & Loader::filename() const
 {
        static FileName const empty;
-       return pimpl_->cached_item_.get() ?
+       return pimpl_->cached_item_ ?
                pimpl_->cached_item_->filename() : empty;
 }
 
@@ -346,7 +352,7 @@ Loader::Impl::~Impl()
 
 void Loader::Impl::resetFile(FileName const & file)
 {
-       FileName const old_file = cached_item_.get() ?
+       FileName const old_file = cached_item_ ?
                cached_item_->filename() : FileName();
 
        if (file == old_file)
@@ -362,13 +368,17 @@ void Loader::Impl::resetFile(FileName const & file)
                // signal needs to be disconnected.
                sc_.disconnect();
                cached_item_.reset();
-               Cache::get().remove(old_file);
+               if (status_ != Converting) {
+                       Cache::get().remove(old_file);
+               } else {
+                       //TODO remove cache item when it is not busy any more, see #7163
+               }
        }
 
-       status_ = cached_item_.get() ? cached_item_->status() : WaitingToLoad;
+       status_ = cached_item_ ? cached_item_->status() : WaitingToLoad;
        image_.reset();
 
-       if (cached_item_.get() || file.empty())
+       if (cached_item_ || file.empty())
                return;
 
        Cache & gc = Cache::get();
@@ -382,7 +392,7 @@ void Loader::Impl::resetFile(FileName const & file)
        if (continue_monitoring && !cached_item_->monitoring())
                cached_item_->startMonitoring();
 
-       sc_ = cached_item_->connect(boost::bind(&Impl::statusChanged, this));
+       sc_ = cached_item_->connect(bind(&Impl::statusChanged, this));
 }
 
 
@@ -392,14 +402,14 @@ void Loader::Impl::resetParams(Params const & params)
                return;
 
        params_ = params;
-       status_ = cached_item_.get() ? cached_item_->status() : WaitingToLoad;
+       status_ = cached_item_ ? cached_item_->status() : WaitingToLoad;
        image_.reset();
 }
 
 
 void Loader::Impl::statusChanged()
 {
-       status_ = cached_item_.get() ? cached_item_->status() : WaitingToLoad;
+       status_ = cached_item_ ? cached_item_->status() : WaitingToLoad;
        createPixmap();
        signal_();
 }
@@ -410,12 +420,12 @@ void Loader::Impl::createPixmap()
        if (!params_.display || status_ != Loaded)
                return;
 
-       if (!cached_item_.get()) {
+       if (!cached_item_) {
                LYXERR(Debug::GRAPHICS, "pixmap not cached yet");
                return;
        }
 
-       if (cached_item_->image()) {
+       if (!cached_item_->image()) {
                // There must have been a problem reading the file.
                LYXERR(Debug::GRAPHICS, "Graphics file not loaded.");
                return;