diff --git a/code/nel/tools/misc/crash_report/crash_report.cpp b/code/nel/tools/misc/crash_report/crash_report.cpp index e083de126..0c9e4fc93 100644 --- a/code/nel/tools/misc/crash_report/crash_report.cpp +++ b/code/nel/tools/misc/crash_report/crash_report.cpp @@ -88,5 +88,11 @@ int main( int argc, char **argv ) w.setup( params ); w.show(); - return app.exec(); + int ret = app.exec(); + + if( ret != EXIT_SUCCESS ) + return ret; + else + return w.getReturnValue(); + } \ No newline at end of file diff --git a/code/nel/tools/misc/crash_report/crash_report_widget.cpp b/code/nel/tools/misc/crash_report/crash_report_widget.cpp index 889606d99..609c58562 100644 --- a/code/nel/tools/misc/crash_report/crash_report_widget.cpp +++ b/code/nel/tools/misc/crash_report/crash_report_widget.cpp @@ -173,18 +173,26 @@ void CCrashReportWidget::onCBClicked() void CCrashReportWidget::onAlwaysIgnoreClicked() { + m_returnValue = ERET_ALWAYS_IGNORE; + close(); } void CCrashReportWidget::onIgnoreClicked() { + m_returnValue = ERET_IGNORE; + close(); } void CCrashReportWidget::onAbortClicked() { + m_returnValue = ERET_ABORT; + close(); } void CCrashReportWidget::onBreakClicked() { + m_returnValue = ERET_BREAK; + close(); } diff --git a/code/nel/tools/misc/crash_report/crash_report_widget.h b/code/nel/tools/misc/crash_report/crash_report_widget.h index b0039e0e2..db3d85b47 100644 --- a/code/nel/tools/misc/crash_report/crash_report_widget.h +++ b/code/nel/tools/misc/crash_report/crash_report_widget.h @@ -31,12 +31,24 @@ class CCrashReportWidget : public QWidget { Q_OBJECT public: + + enum EReturnValue + { + ERET_NULL = 0, + ERET_ALWAYS_IGNORE = 21, + ERET_IGNORE = 22, + ERET_ABORT = 23, + ERET_BREAK = 24 + }; + CCrashReportWidget( QWidget *parent = NULL ); ~CCrashReportWidget(); void setFileName( const char *fn ){ m_fileName = fn; } void setup( const std::vector< std::pair< std::string, std::string > > ¶ms ); + + EReturnValue getReturnValue() const{ return m_returnValue; } private Q_SLOTS: void onLoad(); @@ -62,6 +74,7 @@ private: bool m_developerMode; bool m_forceSend; + EReturnValue m_returnValue; }; #endif diff --git a/code/ryzom/client/src/init.cpp b/code/ryzom/client/src/init.cpp index f0fd40dae..2ffc6e8e0 100644 --- a/code/ryzom/client/src/init.cpp +++ b/code/ryzom/client/src/init.cpp @@ -538,6 +538,8 @@ void checkDriverVersion() void checkDriverDepth () { + nlassert( false ); + // Check desktop is in 32 bit else no window mode allowed. if (ClientCfg.Windowed) {