Fix a few peculiarities wrt graphics. E.g., an InsetGraphic with a non-existing image showed the message that the image was loaded, instead of "No file found!".

* CacheItem::Impl::tryDisplayFormat

- Enhance description of the return value.
- Negate the return values to match the description.

* CacheItem::tryDisplayFormat

- Impl::tryDisplayFormat returns whether a conversion is needed, not whether the try was successful. Therefore, we should check the status as well.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@28754 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Vincent van Ravesteijn 2009-03-12 19:25:07 +00:00
parent 376853cd7a
commit 26529a1732

View File

@ -44,7 +44,7 @@ public:
/** /**
* If no file conversion is needed, then tryDisplayFormat() calls * If no file conversion is needed, then tryDisplayFormat() calls
* loadImage() directly. * loadImage() directly.
* \return true if a conversion is necessary. * \return true if a conversion is necessary and no error occurred.
*/ */
bool tryDisplayFormat(FileName & filename, string & from); bool tryDisplayFormat(FileName & filename, string & from);
@ -143,9 +143,8 @@ bool CacheItem::tryDisplayFormat() const
{ {
if (pimpl_->status_ != WaitingToLoad) if (pimpl_->status_ != WaitingToLoad)
pimpl_->reset(); pimpl_->reset();
FileName filename; bool const conversion_needed = pimpl_->tryDisplayFormat(FileName(), string());
string from; bool const success = status() == Loaded && !conversion_needed;
bool const success = pimpl_->tryDisplayFormat(filename, from);
if (!success) if (!success)
pimpl_->reset(); pimpl_->reset();
return success; return success;
@ -353,7 +352,7 @@ bool CacheItem::Impl::tryDisplayFormat(FileName & filename, string & from)
status_ = ErrorNoFile; status_ = ErrorNoFile;
LYXERR(Debug::GRAPHICS, "\tThe file is not readable"); LYXERR(Debug::GRAPHICS, "\tThe file is not readable");
} }
return true; return false;
} }
zipped_ = filename_.isZippedFile(); zipped_ = filename_.isZippedFile();
@ -363,7 +362,7 @@ bool CacheItem::Impl::tryDisplayFormat(FileName & filename, string & from)
if (unzipped_filename_.empty()) { if (unzipped_filename_.empty()) {
status_ = ErrorConverting; status_ = ErrorConverting;
LYXERR(Debug::GRAPHICS, "\tCould not create temporary file."); LYXERR(Debug::GRAPHICS, "\tCould not create temporary file.");
return true; return false;
} }
filename = unzipFile(filename_, unzipped_filename_.toFilesystemEncoding()); filename = unzipFile(filename_, unzipped_filename_.toFilesystemEncoding());
} else { } else {
@ -388,16 +387,16 @@ bool CacheItem::Impl::tryDisplayFormat(FileName & filename, string & from)
LYXERR(Debug::GRAPHICS, "\tNo conversion needed (from == to)!"); LYXERR(Debug::GRAPHICS, "\tNo conversion needed (from == to)!");
file_to_load_ = filename; file_to_load_ = filename;
status_ = loadImage() ? Loaded : ErrorLoading; status_ = loadImage() ? Loaded : ErrorLoading;
return true; return false;
} }
if (ConverterCache::get().inCache(filename, to_)) { if (ConverterCache::get().inCache(filename, to_)) {
LYXERR(Debug::GRAPHICS, "\tNo conversion needed (file in file cache)!"); LYXERR(Debug::GRAPHICS, "\tNo conversion needed (file in file cache)!");
file_to_load_ = ConverterCache::get().cacheName(filename, to_); file_to_load_ = ConverterCache::get().cacheName(filename, to_);
status_ = loadImage() ? Loaded : ErrorLoading; status_ = loadImage() ? Loaded : ErrorLoading;
return true; return false;
} }
return false; return true;
} }
@ -408,7 +407,7 @@ void CacheItem::Impl::convertToDisplayFormat()
// Make a local copy in case we unzip it // Make a local copy in case we unzip it
FileName filename; FileName filename;
string from; string from;
if (tryDisplayFormat(filename, from)) { if (!tryDisplayFormat(filename, from)) {
// The image status has changed, tell it to the outside world. // The image status has changed, tell it to the outside world.
statusChanged(); statusChanged();
return; return;