X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fgraphics%2FGraphicsLoader.h;h=0a299cba1a6e89870d40e2e8251d297da110e2f8;hb=38c2cde0d8695ac5287bae218c4a33a2acf18ef8;hp=2fcd23a2622afd46c35eb8c4b32579185e07577d;hpb=5a6c9536f63220a3dbe8223f9aed8dab05aacac5;p=lyx.git diff --git a/src/graphics/GraphicsLoader.h b/src/graphics/GraphicsLoader.h index 2fcd23a262..0a299cba1a 100644 --- a/src/graphics/GraphicsLoader.h +++ b/src/graphics/GraphicsLoader.h @@ -1,14 +1,14 @@ // -*- C++ -*- /** - * \file GraphicsLoader.h + * \file GraphicsLoader.h * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * - * \author Angus Leeming + * \author Angus Leeming * - * Full author contact details are available in file CREDITS + * Full author contact details are available in file CREDITS. * - * The public face of the graphics cache. + * The public face of the graphics cache. * * * The user supplies an image file and the display parameters. * * He can change the file or the display parameters through a reset() method. @@ -18,22 +18,21 @@ * * When (status() == Ready), he can use image() to access the loaded image * and pass it to the Painter. * - * What could be simpler? + * What could be simpler? */ #ifndef GRAPHICSLOADER_H #define GRAPHICSLOADER_H #include "GraphicsTypes.h" -#include "LString.h" -#include -#include +#include "support/signals.h" -class Inset; -class BufferView; +namespace lyx { -namespace grfx { +namespace support { class FileName; } + +namespace graphics { class Image; class Params; @@ -41,35 +40,39 @@ class Params; class Loader { public: /// Must use the reset methods to make this instance usable. - Loader(); + Loader(support::FileName const & doc_file); /// The image is not transformed, just displayed as-is. - Loader(string const & file_with_path, DisplayType = ColorDisplay); + Loader(support::FileName const & doc_file, support::FileName const & file_with_path, bool display = true); /// The image is transformed before display. - Loader(string const & file_with_path, Params const &); - - /// Define an empty d-tor out-of-line to keep boost::scoped_ptr happy. + Loader(support::FileName const & doc_file, support::FileName const & file_with_path, Params const &); + /// + Loader(support::FileName const & doc_file, Loader const &); + /// + Loader(Loader const & other); + /// Needed for the pimpl ~Loader(); + Loader & operator=(Loader const &); + /// The file can be changed, or the display params, or both. - void reset(string const & file_with_path, - DisplayType = ColorDisplay) const; + void reset(support::FileName const & file_with_path, bool display = true) const; /// - void reset(string const & file_with_path, Params const &) const; + void reset(support::FileName const & file_with_path, Params const &) const; /// void reset(Params const &) const; /// Returns the absolute path of the loaded (loading?) file. - string const & filename() const; + support::FileName const & filename() const; /// - bool empty() const { return filename().empty(); } - - /// We are explicit about when we begin the loading process. - void startLoading() const; /** starting loading of the image is done by a urgency-based * decision. Here we only call LoaderQueue::touch to request it. */ - void startLoading(Inset const &) const; + void startLoading() const; + + /** Tries to reload the image. + */ + void reload() const; /** Monitor any changes to the file. * There is no point monitoring the file before startLoading() is @@ -78,11 +81,8 @@ public: void startMonitoring() const; /// bool monitoring() const; - /** Returns the check sum of filename() so that, for example, you can - * ascertain whether to output a new PostScript version of the file - * for a LaTeX run. - */ - unsigned long checksum() const; + /// + void checkModifiedAsync() const; /// How far have we got in loading the image? ImageStatus status() const; @@ -90,22 +90,27 @@ public: /** Connect and you'll be informed when the loading status of the image * changes. */ - typedef boost::signal0::slot_type slot_type; + typedef signals2::signal sig; + typedef sig::slot_type slot; /// - boost::signals::connection connect(slot_type const &) const; + signals2::connection connect(slot const &) const; /** The loaded image with Pixmap set. * If the Pixmap is not yet set (see status() for why...), returns 0. */ Image const * image() const; + double displayPixelRatio() const; + void setDisplayPixelRatio(double scale); + private: /// Use the Pimpl idiom to hide the internals. class Impl; /// The pointer never changes although *pimpl_'s contents may. - boost::scoped_ptr const pimpl_; + Impl * pimpl_; }; -} // namespace grfx +} // namespace graphics +} // namespace lyx #endif // GRAPHICSLOADER_H