mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-23 13:31:49 +00:00
Remove all generated files that still exist (perhaps because the process was
curtailed before the images were loaded.) git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@4540 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
9e8b8fe2d8
commit
627592dfc0
@ -3,6 +3,11 @@
|
||||
* PreviewLoader.C: ensure that the metrics data is used by the
|
||||
correct image!
|
||||
|
||||
* PreviewLoader.C:
|
||||
* PreviewImage.C: (Impl d-tor): remove all generated files that still
|
||||
exist (perhaps because the process was curtailed before the images
|
||||
were loaded.)
|
||||
|
||||
2002-07-05 Angus Leeming <leeming@lyx.org>
|
||||
|
||||
* PreviewImage.h:
|
||||
|
@ -32,6 +32,8 @@ struct PreviewImage::Impl : public boost::signals::trackable {
|
||||
Impl(PreviewImage & p, PreviewLoader & l,
|
||||
string const & s, string const & f, double af);
|
||||
///
|
||||
~Impl();
|
||||
///
|
||||
void startLoading();
|
||||
///
|
||||
Image const * image() const { return iloader_->image(); }
|
||||
@ -116,6 +118,12 @@ PreviewImage::Impl::Impl(PreviewImage & p, PreviewLoader & l,
|
||||
{}
|
||||
|
||||
|
||||
PreviewImage::Impl::~Impl()
|
||||
{
|
||||
lyx::unlink(iloader_->filename());
|
||||
}
|
||||
|
||||
|
||||
void PreviewImage::Impl::startLoading()
|
||||
{
|
||||
if (iloader_->status() != WaitingToLoad)
|
||||
|
@ -29,6 +29,7 @@
|
||||
|
||||
#include "support/filetools.h"
|
||||
#include "support/forkedcall.h"
|
||||
#include "support/forkedcontr.h"
|
||||
#include "support/lstrings.h"
|
||||
#include "support/lyxlib.h"
|
||||
|
||||
@ -99,6 +100,8 @@ struct PreviewLoader::Impl : public boost::signals::trackable {
|
||||
///
|
||||
Impl(PreviewLoader & p, Buffer const & b);
|
||||
///
|
||||
~Impl();
|
||||
///
|
||||
PreviewImage const * preview(string const & latex_snippet) const;
|
||||
///
|
||||
PreviewLoader::Status status(string const & latex_snippet) const;
|
||||
@ -148,11 +151,13 @@ private:
|
||||
InProgress() {}
|
||||
///
|
||||
InProgress(string const & f, PendingMap const & m)
|
||||
: metrics_file(f), snippets(m.begin(), m.end())
|
||||
: pid(0), metrics_file(f), snippets(m.begin(), m.end())
|
||||
{
|
||||
sort(snippets.begin(), snippets.end(), CompSecond());
|
||||
}
|
||||
|
||||
///
|
||||
pid_t pid;
|
||||
///
|
||||
string metrics_file;
|
||||
|
||||
@ -267,6 +272,28 @@ PreviewLoader::Impl::preview(string const & latex_snippet) const
|
||||
}
|
||||
|
||||
|
||||
PreviewLoader::Impl::~Impl()
|
||||
{
|
||||
InProgressMap::const_iterator ipit = in_progress_.begin();
|
||||
InProgressMap::const_iterator ipend = in_progress_.end();
|
||||
|
||||
for (; ipit != ipend; ++ipit) {
|
||||
pid_t pid = ipit->second.pid;
|
||||
if (pid)
|
||||
ForkedcallsController::get().kill(pid, 0);
|
||||
|
||||
lyx::unlink(ipit->second.metrics_file);
|
||||
|
||||
vector<StrPair> const & snippets = ipit->second.snippets;
|
||||
vector<StrPair>::const_iterator vit = snippets.begin();
|
||||
vector<StrPair>::const_iterator vend = snippets.end();
|
||||
for (; vit != vend; ++vit) {
|
||||
lyx::unlink(vit->second);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
PreviewLoader::Status
|
||||
PreviewLoader::Impl::status(string const & latex_snippet) const
|
||||
{
|
||||
@ -412,6 +439,7 @@ void PreviewLoader::Impl::startLoading()
|
||||
|
||||
// Store the generation process in a list of all generating processes
|
||||
// (I anticipate that this will be small!)
|
||||
inprogress.pid = call.pid();
|
||||
in_progress_[command] = inprogress;
|
||||
}
|
||||
|
||||
@ -434,6 +462,9 @@ void PreviewLoader::Impl::finishedGenerating(string const & command,
|
||||
return;
|
||||
}
|
||||
|
||||
// Reset the pid to 0 as the process has finished.
|
||||
git->second.pid = 0;
|
||||
|
||||
// Read the metrics file, if it exists
|
||||
PreviewMetrics metrics_file(git->second.metrics_file);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user