58 lines
1.3 KiB
C++
Executable File
58 lines
1.3 KiB
C++
Executable File
#include <stdexcept>
|
|
#include "wraptempfilename.h"
|
|
|
|
WrapTempFileName::WrapTempFileName(wxString hint, wxString extension)
|
|
{
|
|
keepFiles = false;
|
|
myTempFileName = wxFileName::CreateTempFileName(hint);
|
|
if (!extension.empty())
|
|
{
|
|
myTempFileNameOriginal = myTempFileName;
|
|
myTempFileName.Replace(_T(".tmp"), extension);
|
|
}
|
|
|
|
if (myTempFileName == hint ||
|
|
myTempFileName.empty())
|
|
{
|
|
myTempFileName = wxFileName::CreateTempFileName(wxEmptyString);
|
|
if (myTempFileName.empty())
|
|
throw std::runtime_error("Cannot create temporary filename");
|
|
}
|
|
}
|
|
|
|
WrapTempFileName::~WrapTempFileName()
|
|
{
|
|
if (keepFiles)
|
|
return;
|
|
wxRemoveFile(myTempFileName);
|
|
if (!myTempFileNameOriginal.empty())
|
|
wxRemoveFile(myTempFileNameOriginal);
|
|
}
|
|
|
|
wxString WrapTempFileName::wideName()
|
|
{
|
|
return myTempFileName;
|
|
}
|
|
|
|
std::string WrapTempFileName::name()
|
|
{
|
|
std::string tmp((const char *)myTempFileName.mb_str(wxConvLocal));
|
|
return tmp;
|
|
}
|
|
|
|
wxString WrapTempFileName::originalWideName()
|
|
{
|
|
return myTempFileNameOriginal;
|
|
}
|
|
|
|
std::string WrapTempFileName::originalName()
|
|
{
|
|
std::string tmp((const char*)myTempFileNameOriginal.mb_str(wxConvLocal));
|
|
return tmp;
|
|
}
|
|
|
|
void WrapTempFileName::setKeepFiles(bool b)
|
|
{
|
|
keepFiles = b;
|
|
}
|