Change filename of screenshots to something more human readable
authorCraig Robbins <kde.psych@gmail.com>
Tue, 24 Mar 2015 16:42:31 +0000 (02:42 +1000)
committerCraig Robbins <kde.psych@gmail.com>
Tue, 24 Mar 2015 16:55:28 +0000 (02:55 +1000)
src/client.cpp

index 3320172f4d366292ebe0560729b9e269f608fb7c..b637e03360d58969ca1b734f45ac740bb37278dd 100644 (file)
@@ -1710,13 +1710,22 @@ void Client::makeScreenshot(IrrlichtDevice *device)
 
                if (image) {
                        raw_image->copyTo(image);
-                       irr::c8 filename[256];
-                       snprintf(filename, sizeof(filename),
-                               (std::string("%s") + DIR_DELIM + "screenshot_%u.png").c_str(),
-                                g_settings->get("screenshot_path").c_str(),
-                                device->getTimer()->getRealTime());
+
+                       std::string filename;
+
+                       time_t t = time(NULL);
+                       struct tm *tm = localtime(&t);
+                       char timetstamp_c[16]; // YYYYMMDD_HHMMSS + '\0'
+                       strftime(timetstamp_c, sizeof(timetstamp_c), "%Y%m%d_%H%M%S", tm);
+
+                       filename = g_settings->get("screenshot_path")
+                                + DIR_DELIM
+                                + std::string("screenshot_")
+                                + std::string(timetstamp_c)
+                                + ".png";
+
                        std::ostringstream sstr;
-                       if (driver->writeImageToFile(image, filename)) {
+                       if (driver->writeImageToFile(image, filename.c_str())) {
                                sstr << "Saved screenshot to '" << filename << "'";
                        } else {
                                sstr << "Failed to save screenshot '" << filename << "'";