Use CMsgBoxDisplayer on non-windows platforms as well.

--HG--
branch : feature-crashreport
This commit is contained in:
dfighter1985 2015-02-23 01:36:50 +01:00
parent 2bb5e8e9ba
commit 8bf372056f
3 changed files with 47 additions and 38 deletions

View file

@ -1197,10 +1197,10 @@ void createDebug (const char *logPath, bool logInFile, bool eraseLastLog)
#ifdef NL_OS_WINDOWS
if (TrapCrashInDebugger || !IsDebuggerPresent ())
#endif
{
DefaultMsgBoxDisplayer = new CMsgBoxDisplayer ("DEFAULT_MBD");
}
#endif
#if LOG_IN_FILE
if (logInFile)

View file

@ -529,7 +529,7 @@ void CFileDisplayer::doDisplay ( const CLog::TDisplayInfo& args, const char *mes
// in release "<Msg>"
void CMsgBoxDisplayer::doDisplay ( const CLog::TDisplayInfo& args, const char *message)
{
#ifdef NL_OS_WINDOWS
//#ifdef NL_OS_WINDOWS
bool needSpace = false;
// stringstream ss;
@ -720,7 +720,7 @@ void CMsgBoxDisplayer::doDisplay ( const CLog::TDisplayInfo& args, const char *m
}
*/ }
#endif
//#endif
}

View file

@ -63,19 +63,61 @@ void setReportEmailFunction (void *emailFunction)
#endif
}
static string Body;
static std::string URL = "FILL_IN_CRASH_REPORT_HOSTNAME_HERE";
static void doSendReport()
{
std::string filename;
filename = "report_";
filename += NLMISC::toString( int( time( NULL ) ) );
filename += ".txt";
std::string params;
params = "-log ";
params += filename;
params += " -host ";
params += URL;
std::ofstream f;
f.open( filename.c_str() );
if( !f.good() )
return;
f << Body;
f.close();
#ifdef NL_OS_WINDOWS
NLMISC::launchProgram( "crash_report.exe", params );
#else
NLMISC::launchProgram( "crash_report", params );
#endif
// Added because NLSMIC::launcProgram needs time to launch
nlSleep( 2 * 1000 );
}
#ifndef NL_OS_WINDOWS
// GNU/Linux, do nothing
void report ()
TReportResult report (const std::string &title, const std::string &header, const std::string &subject, const std::string &body, bool enableCheckIgnore, uint debugButton, bool ignoreButton, sint quitButton, bool sendReportButton, bool &ignoreNextTime, const string &attachedFile)
{
Body = addSlashR( body );
doSendReport();
return ReportQuit;
}
#else
// Windows specific version
static string Body;
static string Subject;
static string AttachedFile;
@ -92,39 +134,6 @@ static bool CanSendMailReport= false;
static bool DebugDefaultBehavior, QuitDefaultBehavior;
static std::string URL = "FILL_IN_CRASH_REPORT_HOSTNAME_HERE";
static void doSendReport()
{
std::string filename;
filename = "report_";
filename += NLMISC::toString( time( NULL ) );
filename += ".txt";
std::string params;
params = "-log ";
params += filename;
params += " -host ";
params += URL;
std::ofstream f;
f.open( filename.c_str() );
if( !f.good() )
return;
f << Body;
f.close();
#ifdef NL_OS_WINDOWS
NLMISC::launchProgram( "crash_report.exe", params );
#else
NLMISC::launchProgram( "crash_report", params );
#endif
}
static void sendEmail()
{
if (CanSendMailReport && SendMessage(sendReport, BM_GETCHECK, 0, 0) != BST_CHECKED)