]> git.lyx.org Git - lyx.git/blobdiff - src/graphics/GraphicsCacheItem.cpp
Fix regression of 88603655
[lyx.git] / src / graphics / GraphicsCacheItem.cpp
index 9fab10dbf9c4549363efcf780c10a87234b61f82..ea59173eff79bc93588ed18373b7c167965f4a68 100644 (file)
@@ -26,6 +26,7 @@
 #include "support/filetools.h"
 #include "support/FileMonitor.h"
 #include "support/lassert.h"
+#include "support/unique_ptr.h"
 
 #include "support/bind.h"
 #include "support/TempFile.h"
@@ -37,7 +38,7 @@ namespace lyx {
 
 namespace graphics {
 
-class CacheItem::Impl : public boost::signals::trackable {
+class CacheItem::Impl : public boost::signals2::trackable {
 public:
 
        ///
@@ -109,18 +110,18 @@ public:
        bool remove_loaded_file_;
 
        /// The image and its loading status.
-       shared_ptr<Image> image_;
+       std::shared_ptr<Image> image_;
        ///
        ImageStatus status_;
 
        /// This signal is emitted when the image loading status changes.
-       boost::signal<void()> statusChanged;
+       boost::signals2::signal<void()> statusChanged;
 
        /// The connection of the signal ConvProcess::finishedConversion,
-       boost::signals::connection cc_;
+       boost::signals2::connection cc_;
 
        ///
-       boost::scoped_ptr<Converter> converter_;
+       unique_ptr<Converter> converter_;
 };
 
 
@@ -192,7 +193,7 @@ ImageStatus CacheItem::status() const
 }
 
 
-boost::signals::connection CacheItem::connect(slot_type const & slot) const
+boost::signals2::connection CacheItem::connect(slot_type const & slot) const
 {
        return pimpl_->statusChanged.connect(slot);
 }
@@ -244,7 +245,7 @@ void CacheItem::Impl::reset()
        if (cc_.connected())
                cc_.disconnect();
 
-       if (converter_.get())
+       if (converter_)
                converter_.reset();
 }
 
@@ -264,8 +265,8 @@ void CacheItem::Impl::imageConverted(bool success)
        string const text = success ? "succeeded" : "failed";
        LYXERR(Debug::GRAPHICS, "Image conversion " << text << '.');
 
-       file_to_load_ = converter_.get() ?
-               FileName(converter_->convertedFile()) : FileName();
+       file_to_load_ = converter_ ? FileName(converter_->convertedFile())
+                                      : FileName();
        converter_.reset();
        cc_.disconnect();
 
@@ -364,9 +365,10 @@ bool CacheItem::Impl::tryDisplayFormat(FileName & filename, string & from)
        if (zipped_) {
                string tempname = unzippedFileName(filename_.toFilesystemEncoding());
                string const ext = getExtension(tempname);
+               tempname = changeExtension(tempname, "") + "-XXXXXX";
                if (!ext.empty())
-                       tempname = changeExtension(tempname, "");
-               TempFile tempfile(tempname + "-XXXXXX." + ext);
+                       tempname = addExtension(tempname, ext);
+               TempFile tempfile(tempname);
                tempfile.setAutoRemove(false);
                unzipped_filename_ = tempfile.name();
                if (unzipped_filename_.empty()) {
@@ -436,7 +438,8 @@ void CacheItem::Impl::convertToDisplayFormat()
        // Connect a signal to this->imageConverted and pass this signal to
        // the graphics converter so that we can load the modified file
        // on completion of the conversion process.
-       converter_.reset(new Converter(filename, to_file_base.absFileName(), from, to_));
+       converter_ = make_unique<Converter>(filename, to_file_base.absFileName(),
+                                           from, to_);
        converter_->connect(bind(&Impl::imageConverted, this, _1));
        converter_->startConversion();
 }