#include "support/debug.h"
#include "support/Timeout.h"
-#include <boost/bind.hpp>
+#include "support/bind.h"
#include <set>
#include <queue>
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));
}
//
/////////////////////////////////////////////////////////////////////
-typedef boost::shared_ptr<Image> ImagePtr;
+typedef shared_ptr<Image> ImagePtr;
class Loader::Impl : public boost::signals::trackable {
public:
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();
bool Loader::monitoring() const
{
- if (!pimpl_->cached_item_.get())
+ if (!pimpl_->cached_item_)
return false;
return pimpl_->cached_item_->monitoring();
unsigned long Loader::checksum() const
{
- if (!pimpl_->cached_item_.get())
+ if (!pimpl_->cached_item_)
return 0;
return pimpl_->cached_item_->checksum();
FileName const & Loader::filename() const
{
static FileName const empty;
- return pimpl_->cached_item_.get() ?
+ return pimpl_->cached_item_ ?
pimpl_->cached_item_->filename() : empty;
}
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)
// 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();
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));
}
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_();
}
if (!params_.display || status_ != Loaded)
return;
- if (!cached_item_.get()) {
+ if (!cached_item_) {
LYXERR(Debug::GRAPHICS, "pixmap not cached yet");
return;
}