Changed: Save screenshots with year-month-day info in filename

This commit is contained in:
Nimetu 2015-12-29 14:34:24 +02:00
parent 2c5c96689a
commit e8bbbe04e4

View file

@ -666,12 +666,35 @@ bool screenshotZBuffer(const std::string &filename)
return true; return true;
} }
static std::string findNewScreenShotFileName(std::string filename)
{
static char cstime[25];
time_t dtime;
time(&dtime);
struct tm *tms = localtime(&dtime);
if (tms)
{
strftime(cstime, 25, "%Y-%m-%d", tms);
std::string::size_type pos = filename.find_last_of('.');
// fallback if no extension is given
if (pos == std::string::npos)
filename = filename + "_" + cstime + "_";
else
filename = filename.substr(0, pos) + "_" + cstime + "_" + filename.substr(pos);
}
// screenshot_YYYY-MM-DD_000.jpg
return CFile::findNewFile(filename);
}
void screenShotTGA() void screenShotTGA()
{ {
CBitmap btm; CBitmap btm;
getBuffer (btm); getBuffer (btm);
string filename = CFile::findNewFile (ScreenshotsDirectory+"screenshot.tga"); string filename = findNewScreenShotFileName(ScreenshotsDirectory+"screenshot.tga");
COFile fs(filename); COFile fs(filename);
if (!btm.writeTGA(fs, 24, false)) if (!btm.writeTGA(fs, 24, false))
@ -693,7 +716,7 @@ void screenShotPNG()
CBitmap btm; CBitmap btm;
getBuffer (btm); getBuffer (btm);
string filename = CFile::findNewFile (ScreenshotsDirectory+"screenshot.png"); string filename = findNewScreenShotFileName(ScreenshotsDirectory+"screenshot.png");
COFile fs(filename); COFile fs(filename);
if (!btm.writePNG(fs, 24)) if (!btm.writePNG(fs, 24))
@ -715,7 +738,7 @@ void screenShotJPG()
CBitmap btm; CBitmap btm;
getBuffer (btm); getBuffer (btm);
string filename = CFile::findNewFile (ScreenshotsDirectory+"screenshot.jpg"); string filename = findNewScreenShotFileName(ScreenshotsDirectory+"screenshot.jpg");
COFile fs(filename); COFile fs(filename);
if (!btm.writeJPG(fs)) if (!btm.writeJPG(fs))