diff options
Diffstat (limited to 'indra/newview')
| -rw-r--r-- | indra/newview/llfloater360capture.cpp | 31 | ||||
| -rw-r--r-- | indra/newview/llviewerwindow.cpp | 29 | 
2 files changed, 29 insertions, 31 deletions
diff --git a/indra/newview/llfloater360capture.cpp b/indra/newview/llfloater360capture.cpp index ff30c83f51..25970f8a08 100644 --- a/indra/newview/llfloater360capture.cpp +++ b/indra/newview/llfloater360capture.cpp @@ -33,6 +33,7 @@  #include "llagentui.h"  #include "llbase64.h"  #include "llcallbacklist.h" +#include "lldate.h"  #include "llenvironment.h"  #include "llimagejpeg.h"  #include "llmediactrl.h" @@ -692,7 +693,15 @@ void LLFloater360Capture::handleMediaEvent(LLPluginClassMedia* self, EMediaEvent                                          );                  // execute the command on the page -                mWebBrowser->getMediaPlugin()->executeJavaScript(cmd); +                LLPluginClassMedia* plugin = mWebBrowser->getMediaPlugin(); +                if (plugin) +                { +                    plugin->executeJavaScript(cmd); +                } +                else +                { +                    LL_WARNS("360Capture") << "No media plugin found" << LL_ENDL; +                }              }          }          break; @@ -773,7 +782,15 @@ void LLFloater360Capture::onSaveLocalBtn()      // send it to the browser instance, triggering the equirectangular capture      // process and complimentary offer to save the image -    mWebBrowser->getMediaPlugin()->executeJavaScript(cmd); +    LLPluginClassMedia* plugin = mWebBrowser->getMediaPlugin(); +    if (plugin) +    { +        plugin->executeJavaScript(cmd); +    } +    else +    { +        LL_WARNS("360Capture") << "No media plugin found" << LL_ENDL; +    }  }  // We capture all 6 images sequentially and if parts of the world are moving @@ -863,15 +880,7 @@ const std::string LLFloater360Capture::generate_proposed_filename()      filename << "_";      // add in the current HH-MM-SS (with leading 0's) so users can easily save many shots in same folder -    std::time_t cur_epoch = std::time(nullptr); -    std::tm* tm_time = std::localtime(&cur_epoch); -    filename << std::setfill('0') << std::setw(4) << (tm_time->tm_year + 1900); -    filename << std::setfill('0') << std::setw(2) << (tm_time->tm_mon + 1); -    filename << std::setfill('0') << std::setw(2) << tm_time->tm_mday; -    filename << "_"; -    filename << std::setfill('0') << std::setw(2) << tm_time->tm_hour; -    filename << std::setfill('0') << std::setw(2) << tm_time->tm_min; -    filename << std::setfill('0') << std::setw(2) << tm_time->tm_sec; +    filename << LLDate::now().toLocalDateString("%Y%m%d_%H%M%S");      // the unusual way we save the output image (originates in the      // embedded browser and not the C++ code) means that the system diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 2d9f73115e..4194dd00e7 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -66,6 +66,7 @@  #include "llchatentry.h"  #include "indra_constants.h"  #include "llassetstorage.h" +#include "lldate.h"  #include "llerrorcontrol.h"  #include "llfontgl.h"  #include "llmousehandler.h" @@ -79,14 +80,12 @@  #include "message.h"  #include "object_flags.h"  #include "lltimer.h" -#include "llviewermenu.h"  #include "lltooltip.h"  #include "llmediaentry.h"  #include "llurldispatcher.h"  #include "raytrace.h"  // newview includes -#include "llagent.h"  #include "llbox.h"  #include "llchicletbar.h"  #include "llconsole.h" @@ -118,7 +117,6 @@  #include "llfontfreetype.h"  #include "llgesturemgr.h"  #include "llglheaders.h" -#include "lltooltip.h"  #include "llhudmanager.h"  #include "llhudobject.h"  #include "llhudview.h" @@ -133,7 +131,6 @@  #include "llmorphview.h"  #include "llmoveview.h"  #include "llnavigationbar.h" -#include "llnotificationhandler.h"  #include "llpaneltopinfobar.h"  #include "llpopupview.h"  #include "llpreviewtexture.h" @@ -166,17 +163,13 @@  #include "lltoolselectland.h"  #include "lltrans.h"  #include "lluictrlfactory.h" -#include "llurldispatcher.h"        // SLURL from other app instance  #include "llversioninfo.h"  #include "llvieweraudio.h" -#include "llviewercamera.h"  #include "llviewergesture.h"  #include "llviewertexturelist.h"  #include "llviewerinventory.h" -#include "llviewerinput.h"  #include "llviewermedia.h"  #include "llviewermediafocus.h" -#include "llviewermenu.h"  #include "llviewermessage.h"  #include "llviewerobjectlist.h"  #include "llviewerparcelmgr.h" @@ -210,7 +203,6 @@  #include "llwindowlistener.h"  #include "llviewerwindowlistener.h" -#include "llpaneltopinfobar.h"  #include "llcleanup.h"  #if LL_WINDOWS @@ -4806,26 +4798,23 @@ void LLViewerWindow::saveImageLocal(LLImageFormatted *image, const snapshot_save      }      // Look for an unused file name -    bool is_snapshot_name_loc_set = isSnapshotLocSet(); +    auto is_snapshot_name_loc_set = isSnapshotLocSet();      std::string filepath; -    S32 i = 1; -    S32 err = 0; -    std::string extension("." + image->getExtension()); +    auto i = 1; +    auto err = 0; +    auto extension("." + image->getExtension()); +    auto now = LLDate::now();      do      {          filepath = sSnapshotDir;          filepath += gDirUtilp->getDirDelimiter();          filepath += sSnapshotBaseName; - -        if (is_snapshot_name_loc_set) -        { -            filepath += llformat("_%.3d",i); -        } - +        filepath += now.toLocalDateString("_%Y-%m-%d_%H%M%S"); +        filepath += llformat("%.2d", i);          filepath += extension;          llstat stat_info; -        err = LLFile::stat( filepath, &stat_info ); +        err = LLFile::stat(filepath, &stat_info);          i++;      }      while( -1 != err  // Search until the file is not found (i.e., stat() gives an error).  | 
