X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fgraphics%2FGraphicsConverter.h;h=f84b9e9b11b5e7cdcaffabff9a205948d8b8358f;hb=9b4a26a252b2da164fcd6aa84feed0a738b16c10;hp=96a3b1e355ac3895c6d0df423483524e7662887c;hpb=a674f70d4a013e69a88343e5b6d13357d8a33493;p=lyx.git diff --git a/src/graphics/GraphicsConverter.h b/src/graphics/GraphicsConverter.h index 96a3b1e355..f84b9e9b11 100644 --- a/src/graphics/GraphicsConverter.h +++ b/src/graphics/GraphicsConverter.h @@ -1,72 +1,76 @@ // -*- C++ -*- /** - * \file GraphicsConverter.h - * Copyright 2002 the LyX Team - * Read the file COPYING + * \file GraphicsConverter.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 * - * The controller of a conversion process from file AA of format A to - * file BB of format B. - * Once finished, the signal finishdConversion is emitted to inform the - * instigator where to find file BB. - * If the conversion is unsuccessful, then finishedConversion will pass - * an empty string. + * Full author contact details are available in file CREDITS. + * + * The controller of a conversion process from file AA of format A to + * file BB of format B. + * Once finished, a signal is emitted to inform any listeners (connected + * through the connect() method). */ #ifndef GRAPHICSCONVERTER_H #define GRAPHICSCONVERTER_H -#ifdef __GNUG__ -#pragma interface -#endif +#include + +namespace lyx { -#include "LString.h" -#include -#include -#include +namespace support { class FileName; } -namespace grfx { +namespace graphics { -class Converter : boost::noncopyable { +class Converter { public: /// Can the conversion be performed? - static bool isReachable(string const & from_format_name, - string const & to_format_name); + static bool isReachable(std::string const & from_format_name, + std::string const & to_format_name); - /** One Converter per conversion ensures that finishedConversion + /** One Converter per conversion ensures that the (hidden) signal * is always connected to the expected slot. */ - Converter(string const & from_file, string const & to_file_base, - string const & from_format, string const & to_format); + Converter(support::FileName const & from_file, std::string const & to_file_base, + std::string const & from_format, std::string const & to_format); - /// Define an empty d-tor out-of-line to keep boost::scoped_ptr happy. + /// Needed for the pimpl ~Converter(); /// We are explicit about when we begin the conversion process. - void startConversion(); + void startConversion() const; - /** At the end of the conversion process inform the outside world - * by emitting a signal. + /** Connect and you'll be informed when the conversion process has + * finished. + * If the conversion is succesful, then the listener is passed \c true. */ - typedef boost::signal1 SignalType; + typedef boost::signal sig_type; + typedef sig_type::slot_type slot_type; /// - SignalType finishedConversion; - - /** If the convsion is succesful (finishedConversion returns \c true), - * this returns the name of the resulting file. - * If conversion fails, however, it returns an empty string. + boost::signals::connection connect(slot_type const &) const; + + /** If the conversion is succesful, this returns the name of the + * resulting file. + * If conversion fails or has not been completed, however, it + * returns an empty string. */ - string const & convertedFile() const; + support::FileName const & convertedFile() const; private: + /// noncopyable + Converter(Converter const &); + void operator=(Converter const &); + /// 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 * const pimpl_; }; - -} // namespace grfx + +} // namespace graphics +} // namespace lyx #endif // GRAPHICSCONVERTER_H