*
* \author Angus Leeming
*
- * Full author contact details are available in file CREDITS
+ * Full author contact details are available in file CREDITS.
*/
#include <config.h>
#include "GraphicsLoader.h"
-#include "GraphicsCache.h"
#include "GraphicsCacheItem.h"
#include "GraphicsImage.h"
#include "GraphicsParams.h"
#include "LoaderQueue.h"
-#include "frontends/LyXView.h"
-
#include <boost/bind.hpp>
-#include <boost/signals/trackable.hpp>
-#include <list>
-namespace grfx {
+using std::string;
+
+
+namespace lyx {
+
+using support::FileName;
+
+namespace graphics {
-struct Loader::Impl : boost::signals::trackable {
+class Loader::Impl : public boost::signals::trackable {
+public:
///
- Impl(Params const &);
+ Impl();
///
~Impl();
///
- void resetFile(string const &);
+ void resetFile(FileName const &);
///
void resetParams(Params const &);
///
/// We modify a local copy of the image once it is loaded.
Image::ImagePtr image_;
/// This signal is emitted when the image loading status changes.
- boost::signal0<void> signal_;
+ boost::signal<void()> signal_;
private:
///
///
Params params_;
-
};
Loader::Loader()
- : pimpl_(new Impl(Params()))
+ : pimpl_(new Impl)
{}
-Loader::Loader(string const & file, DisplayType type)
- : pimpl_(new Impl(Params()))
+Loader::Loader(FileName const & file, DisplayType type)
+ : pimpl_(new Impl)
{
reset(file, type);
}
-Loader::Loader(string const & file, Params const & params)
- : pimpl_(new Impl(params))
+Loader::Loader(FileName const & file, Params const & params)
+ : pimpl_(new Impl)
{
reset(file, params);
}
Loader::Loader(Loader const & other)
- : pimpl_(new Impl(other.pimpl_->params()))
-{}
+ : pimpl_(new Impl)
+{
+ Params const & params = other.pimpl_->params();
+ reset(params.filename, params);
+}
Loader::~Loader()
{}
-void Loader::reset(string const & file, DisplayType type) const
+Loader & Loader::operator=(Loader const & other)
+{
+ if (this != &other) {
+ Params const & params = other.pimpl_->params();
+ reset(params.filename, params);
+ }
+ return *this;
+}
+
+
+void Loader::reset(FileName const & file, DisplayType type) const
{
Params params;
params.display = type;
}
-void Loader::reset(string const & file, Params const & params) const
+void Loader::reset(FileName const & file, Params const & params) const
{
pimpl_->resetParams(params);
pimpl_->resetFile(file);
}
-string const & Loader::filename() const
+FileName const & Loader::filename() const
{
- static string const empty;
+ static FileName const empty;
return pimpl_->cached_item_.get() ?
pimpl_->cached_item_->filename() : empty;
}
}
-Loader::Impl::Impl(Params const & params)
- : status_(WaitingToLoad), params_(params)
+Loader::Impl::Impl()
+ : status_(WaitingToLoad)
{
}
Loader::Impl::~Impl()
{
- resetFile(string());
+ resetFile(FileName());
}
-void Loader::Impl::resetFile(string const & file)
+void Loader::Impl::resetFile(FileName const & file)
{
- string const old_file = cached_item_.get() ?
- cached_item_->filename() : string();
+ FileName const old_file = cached_item_.get() ?
+ cached_item_->filename() : FileName();
if (file == old_file)
return;
}
}
-
void Loader::Impl::startLoading()
{
if (status_ != WaitingToLoad)
}
-} // namespace grfx
+} // namespace graphics
+} // namespace lyx