Added the Ryzom Core Error Reporter's skeleton.
--HG-- branch : hotfix
This commit is contained in:
parent
fea7cff850
commit
8208a473c4
8 changed files with 332 additions and 0 deletions
|
@ -84,3 +84,6 @@ IF(WITH_NEL_TOOLS OR WITH_NEL_MAXPLUGIN)
|
||||||
ADD_SUBDIRECTORY(tools)
|
ADD_SUBDIRECTORY(tools)
|
||||||
ENDIF(WITH_NEL_TOOLS OR WITH_NEL_MAXPLUGIN)
|
ENDIF(WITH_NEL_TOOLS OR WITH_NEL_MAXPLUGIN)
|
||||||
|
|
||||||
|
IF(WITH_QT)
|
||||||
|
ADD_SUBDIRECTORY(rcerror)
|
||||||
|
ENDIF(WITH_QT)
|
||||||
|
|
37
code/nel/rcerror/CMakeLists.txt
Normal file
37
code/nel/rcerror/CMakeLists.txt
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SRC_DIR} ${QT_INCLUDES})
|
||||||
|
FILE(GLOB RCERROR_SRC *.cpp)
|
||||||
|
FILE(GLOB RCERROR_HDR *h)
|
||||||
|
|
||||||
|
SET(RCERROR_MOC_HDR
|
||||||
|
rcerror_socket.h
|
||||||
|
rcerror_widget.h
|
||||||
|
)
|
||||||
|
|
||||||
|
SET(RCERROR_UI
|
||||||
|
rcerror_widget.ui
|
||||||
|
)
|
||||||
|
|
||||||
|
SET(QT_USE_QTGUI TRUE)
|
||||||
|
SET(QT_USE_QTNETWORK TRUE)
|
||||||
|
SET(QT_USE_QTMAIN TRUE)
|
||||||
|
SET(QT_USE_QTOPENGL FALSE)
|
||||||
|
SET(QT_USE_QTXML FALSE)
|
||||||
|
|
||||||
|
INCLUDE(${QT_USE_FILE})
|
||||||
|
ADD_DEFINITIONS(${QT_DEFINITIONS})
|
||||||
|
|
||||||
|
QT4_WRAP_CPP(RCERROR_MOC_SRC ${RCERROR_MOC_HDR})
|
||||||
|
QT4_WRAP_UI(RCERROR_UI_HDR ${RCERROR_UI})
|
||||||
|
|
||||||
|
SOURCE_GROUP(QtResources FILES ${RCERROR_UI})
|
||||||
|
SOURCE_GROUP(QtGeneratedUiHdr FILES ${RCERROR_UI_HDR})
|
||||||
|
SOURCE_GROUP(QtGeneratedMocQrcSrc FILES ${RCERROR_MOC_SRC})
|
||||||
|
SOURCE_GROUP("source files" FILES ${RCERROR_SRC})
|
||||||
|
SOURCE_GROUP("header files" FILES ${RCERROR_HDR})
|
||||||
|
|
||||||
|
ADD_EXECUTABLE(rcerror WIN32 MACOSX_BUNDLE ${RCERROR_SRC} ${RCERROR_MOC_HDR} ${RCERROR_MOC_SRC} ${RCERROR_UI_HDR})
|
||||||
|
TARGET_LINK_LIBRARIES(rcerror ${QT_LIBRARIES} ${QT_QTMAIN_LIBRARY})
|
||||||
|
|
||||||
|
NL_DEFAULT_PROPS(rcerror "Ryzom Core Error Reporter")
|
||||||
|
NL_ADD_RUNTIME_FLAGS(rcerror)
|
||||||
|
|
50
code/nel/rcerror/rcerror.cpp
Normal file
50
code/nel/rcerror/rcerror.cpp
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
// Ryzom Core MMORPG framework - Error Reporter
|
||||||
|
//
|
||||||
|
// Copyright (C) 2015 Laszlo Kis-Adam
|
||||||
|
// Copyright (C) 2010 Ryzom Core <http://ryzomcore.org/>
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
// published by the Free Software Foundation, either version 3 of the
|
||||||
|
// License, or (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
|
||||||
|
#include "rcerror_widget.h"
|
||||||
|
#include <QApplication>
|
||||||
|
#include <QMessageBox>
|
||||||
|
|
||||||
|
int main( int argc, char **argv )
|
||||||
|
{
|
||||||
|
QApplication app( argc, argv );
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
|
||||||
|
if( argc < 2 )
|
||||||
|
{
|
||||||
|
QMessageBox::information( NULL,
|
||||||
|
QObject::tr( "Error" ),
|
||||||
|
QObject::tr( "Need to specify a path to the error report." ) );
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
RCErrorWidget w;
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
w.setFileName( argv[ 1 ] );
|
||||||
|
#else
|
||||||
|
w.setFileName( "log.log" );
|
||||||
|
#endif
|
||||||
|
|
||||||
|
w.show();
|
||||||
|
|
||||||
|
return app.exec();
|
||||||
|
}
|
20
code/nel/rcerror/rcerror_socket.cpp
Normal file
20
code/nel/rcerror/rcerror_socket.cpp
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
// Ryzom Core MMORPG framework - Error Reporter
|
||||||
|
//
|
||||||
|
// Copyright (C) 2015 Laszlo Kis-Adam
|
||||||
|
// Copyright (C) 2010 Ryzom Core <http://ryzomcore.org/>
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
// published by the Free Software Foundation, either version 3 of the
|
||||||
|
// License, or (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
#include "rcerror_socket.h"
|
||||||
|
|
23
code/nel/rcerror/rcerror_socket.h
Normal file
23
code/nel/rcerror/rcerror_socket.h
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
// Ryzom Core MMORPG framework - Error Reporter
|
||||||
|
//
|
||||||
|
// Copyright (C) 2015 Laszlo Kis-Adam
|
||||||
|
// Copyright (C) 2010 Ryzom Core <http://ryzomcore.org/>
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
// published by the Free Software Foundation, either version 3 of the
|
||||||
|
// License, or (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef RCERROR_SOCKET
|
||||||
|
#define RCERROR_SOCKET
|
||||||
|
#endif
|
||||||
|
|
70
code/nel/rcerror/rcerror_widget.cpp
Normal file
70
code/nel/rcerror/rcerror_widget.cpp
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
// Ryzom Core MMORPG framework - Error Reporter
|
||||||
|
//
|
||||||
|
// Copyright (C) 2015 Laszlo Kis-Adam
|
||||||
|
// Copyright (C) 2010 Ryzom Core <http://ryzomcore.org/>
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
// published by the Free Software Foundation, either version 3 of the
|
||||||
|
// License, or (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
|
||||||
|
#include "rcerror_widget.h"
|
||||||
|
#include <QTimer>
|
||||||
|
#include <QTextStream>
|
||||||
|
#include <QFile>
|
||||||
|
|
||||||
|
RCErrorWidget::RCErrorWidget( QWidget *parent ) :
|
||||||
|
QWidget( parent )
|
||||||
|
{
|
||||||
|
m_ui.setupUi( this );
|
||||||
|
QTimer::singleShot( 1, this, SLOT( onLoad() ) );
|
||||||
|
|
||||||
|
connect( m_ui.sendButton, SIGNAL( clicked( bool ) ), this, SLOT( onSendClicked() ) );
|
||||||
|
connect( m_ui.canceButton, SIGNAL( clicked( bool ) ), this, SLOT( onCancelClicked() ) );
|
||||||
|
connect( m_ui.emailCB, SIGNAL( stateChanged( int ) ), this, SLOT( onCBClicked() ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
RCErrorWidget::~RCErrorWidget()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void RCErrorWidget::onLoad()
|
||||||
|
{
|
||||||
|
QFile f( m_fileName );
|
||||||
|
bool b = f.open( QFile::ReadOnly | QFile::Text );
|
||||||
|
if( !b )
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
QTextStream ss( &f );
|
||||||
|
m_ui.reportEdit->setPlainText( ss.readAll() );
|
||||||
|
f.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
void RCErrorWidget::onSendClicked()
|
||||||
|
{
|
||||||
|
close();
|
||||||
|
}
|
||||||
|
|
||||||
|
void RCErrorWidget::onCancelClicked()
|
||||||
|
{
|
||||||
|
close();
|
||||||
|
}
|
||||||
|
|
||||||
|
void RCErrorWidget::onCBClicked()
|
||||||
|
{
|
||||||
|
m_ui.emailEdit->setEnabled( m_ui.emailCB->isChecked() );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
47
code/nel/rcerror/rcerror_widget.h
Normal file
47
code/nel/rcerror/rcerror_widget.h
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
// Ryzom Core MMORPG framework - Error Reporter
|
||||||
|
//
|
||||||
|
// Copyright (C) 2015 Laszlo Kis-Adam
|
||||||
|
// Copyright (C) 2010 Ryzom Core <http://ryzomcore.org/>
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
// published by the Free Software Foundation, either version 3 of the
|
||||||
|
// License, or (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef RCERROR_WIDGET
|
||||||
|
#define RCERROR_SOCKET
|
||||||
|
|
||||||
|
|
||||||
|
#include "ui_rcerror_widget.h"
|
||||||
|
|
||||||
|
class RCErrorWidget : public QWidget
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
RCErrorWidget( QWidget *parent = NULL );
|
||||||
|
~RCErrorWidget();
|
||||||
|
|
||||||
|
void setFileName( const char *fn ){ m_fileName = fn; }
|
||||||
|
|
||||||
|
private Q_SLOTS:
|
||||||
|
void onLoad();
|
||||||
|
void onSendClicked();
|
||||||
|
void onCancelClicked();
|
||||||
|
void onCBClicked();
|
||||||
|
|
||||||
|
private:
|
||||||
|
Ui::RCErrorWidget m_ui;
|
||||||
|
QString m_fileName;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
82
code/nel/rcerror/rcerror_widget.ui
Normal file
82
code/nel/rcerror/rcerror_widget.ui
Normal file
|
@ -0,0 +1,82 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>RCErrorWidget</class>
|
||||||
|
<widget class="QWidget" name="RCErrorWidget">
|
||||||
|
<property name="windowModality">
|
||||||
|
<enum>Qt::ApplicationModal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>400</width>
|
||||||
|
<height>407</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>Ryzom Core error report</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
|
<item row="0" column="0" colspan="2">
|
||||||
|
<widget class="QLabel" name="label">
|
||||||
|
<property name="text">
|
||||||
|
<string>What were you doing when the crash occured?</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0" colspan="2">
|
||||||
|
<widget class="QPlainTextEdit" name="descriptionEdit"/>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0" colspan="2">
|
||||||
|
<widget class="QLabel" name="label_2">
|
||||||
|
<property name="text">
|
||||||
|
<string>Contents of the report ( automatically generated )</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="0" colspan="2">
|
||||||
|
<widget class="QPlainTextEdit" name="reportEdit">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="textInteractionFlags">
|
||||||
|
<set>Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="0" colspan="2">
|
||||||
|
<widget class="QCheckBox" name="emailCB">
|
||||||
|
<property name="text">
|
||||||
|
<string>Email me if you have further questions, or updates on this issue</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="5" column="0" colspan="2">
|
||||||
|
<widget class="QLineEdit" name="emailEdit">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Enter your email address here</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="6" column="0">
|
||||||
|
<widget class="QPushButton" name="sendButton">
|
||||||
|
<property name="text">
|
||||||
|
<string>Send</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="6" column="1">
|
||||||
|
<widget class="QPushButton" name="canceButton">
|
||||||
|
<property name="text">
|
||||||
|
<string>Cancel</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
Loading…
Reference in a new issue