mirror of
https://port.numenaute.org/aleajactaest/khanat-opennel-code.git
synced 2024-12-29 20:30:54 +00:00
Added the Ryzom Core Error Reporter's skeleton.
--HG-- branch : feature-crashreport
This commit is contained in:
parent
7302023777
commit
ee0b630f95
8 changed files with 332 additions and 0 deletions
|
@ -84,3 +84,6 @@ IF(WITH_NEL_TOOLS OR WITH_NEL_MAXPLUGIN)
|
|||
ADD_SUBDIRECTORY(tools)
|
||||
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