Added initial code data logger window layout for Qt GUI.
This commit is contained in:
parent
250ae371b6
commit
086d523566
|
@ -432,6 +432,7 @@ set(SRC_DRIVERS_SDL
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/drivers/Qt/LuaControl.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/drivers/Qt/LuaControl.cpp
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/drivers/Qt/CheatsConf.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/drivers/Qt/CheatsConf.cpp
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/drivers/Qt/HexEditor.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/drivers/Qt/HexEditor.cpp
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/drivers/Qt/CodeDataLogger.cpp
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/drivers/Qt/SymbolicDebug.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/drivers/Qt/SymbolicDebug.cpp
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/drivers/Qt/ConsoleDebugger.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/drivers/Qt/ConsoleDebugger.cpp
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/drivers/Qt/ConsoleUtilities.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/drivers/Qt/ConsoleUtilities.cpp
|
||||||
|
|
|
@ -0,0 +1,168 @@
|
||||||
|
// CodeDataLogger.cpp
|
||||||
|
//
|
||||||
|
#include <QDir>
|
||||||
|
#include <QInputDialog>
|
||||||
|
#include <QMessageBox>
|
||||||
|
|
||||||
|
#include "Qt/CodeDataLogger.h"
|
||||||
|
#include "Qt/main.h"
|
||||||
|
#include "Qt/dface.h"
|
||||||
|
#include "Qt/input.h"
|
||||||
|
#include "Qt/config.h"
|
||||||
|
#include "Qt/fceuWrapper.h"
|
||||||
|
|
||||||
|
//----------------------------------------------------
|
||||||
|
CodeDataLoggerDialog_t::CodeDataLoggerDialog_t(QWidget *parent)
|
||||||
|
: QDialog( parent )
|
||||||
|
{
|
||||||
|
QVBoxLayout *mainLayout, *vbox1, *vbox;
|
||||||
|
QHBoxLayout *hbox;
|
||||||
|
QGridLayout *grid;
|
||||||
|
QGroupBox *frame, *subframe;
|
||||||
|
QPushButton *btn;
|
||||||
|
QLabel *lbl;
|
||||||
|
|
||||||
|
updateTimer = new QTimer( this );
|
||||||
|
|
||||||
|
connect( updateTimer, &QTimer::timeout, this, &CodeDataLoggerDialog_t::updatePeriodic );
|
||||||
|
|
||||||
|
setWindowTitle( tr("Code Data Logger") );
|
||||||
|
|
||||||
|
mainLayout = new QVBoxLayout();
|
||||||
|
vbox1 = new QVBoxLayout();
|
||||||
|
grid = new QGridLayout();
|
||||||
|
lbl = new QLabel( tr("Press Start to Run Logger") );
|
||||||
|
cdlFileLabel = new QLabel( tr("CDL File:") );
|
||||||
|
|
||||||
|
vbox1->addLayout( grid );
|
||||||
|
vbox1->addWidget( lbl );
|
||||||
|
vbox1->addWidget( cdlFileLabel );
|
||||||
|
|
||||||
|
frame = new QGroupBox(tr("Code/Data Log Status"));
|
||||||
|
frame->setLayout( vbox1 );
|
||||||
|
|
||||||
|
prgLoggedCodeLabel = new QLabel( tr("0x00000 0.00%") );
|
||||||
|
prgLoggedDataLabel = new QLabel( tr("0x00000 0.00%") );
|
||||||
|
prgUnloggedLabel = new QLabel( tr("0x00000 0.00%") );
|
||||||
|
chrLoggedCodeLabel = new QLabel( tr("0x00000 0.00%") );
|
||||||
|
chrLoggedDataLabel = new QLabel( tr("0x00000 0.00%") );
|
||||||
|
chrUnloggedLabel = new QLabel( tr("0x00000 0.00%") );
|
||||||
|
autoSaveCdlCbox = new QCheckBox( tr("Auto-save .CDL when closing ROMs") );
|
||||||
|
autoLoadCdlCbox = new QCheckBox( tr("Auto-load .CDL when opening this window") );
|
||||||
|
autoResumeLogCbox = new QCheckBox( tr("Auto-resume logging when loading ROMs") );
|
||||||
|
|
||||||
|
subframe = new QGroupBox(tr("PRG Logged as Code"));
|
||||||
|
vbox = new QVBoxLayout();
|
||||||
|
vbox->addWidget( prgLoggedCodeLabel );
|
||||||
|
subframe->setLayout( vbox );
|
||||||
|
|
||||||
|
grid->addWidget( subframe, 0, 0, Qt::AlignCenter );
|
||||||
|
|
||||||
|
subframe = new QGroupBox(tr("PRG Logged as Data"));
|
||||||
|
vbox = new QVBoxLayout();
|
||||||
|
vbox->addWidget( prgLoggedDataLabel );
|
||||||
|
subframe->setLayout( vbox );
|
||||||
|
|
||||||
|
grid->addWidget( subframe, 0, 1, Qt::AlignCenter );
|
||||||
|
|
||||||
|
subframe = new QGroupBox(tr("PRG not Logged"));
|
||||||
|
vbox = new QVBoxLayout();
|
||||||
|
vbox->addWidget( prgUnloggedLabel );
|
||||||
|
subframe->setLayout( vbox );
|
||||||
|
|
||||||
|
grid->addWidget( subframe, 0, 2, Qt::AlignCenter );
|
||||||
|
|
||||||
|
subframe = new QGroupBox(tr("CHR Logged as Code"));
|
||||||
|
vbox = new QVBoxLayout();
|
||||||
|
vbox->addWidget( chrLoggedCodeLabel );
|
||||||
|
subframe->setLayout( vbox );
|
||||||
|
|
||||||
|
grid->addWidget( subframe, 1, 0, Qt::AlignCenter );
|
||||||
|
|
||||||
|
subframe = new QGroupBox(tr("CHR Logged as Data"));
|
||||||
|
vbox = new QVBoxLayout();
|
||||||
|
vbox->addWidget( chrLoggedDataLabel );
|
||||||
|
subframe->setLayout( vbox );
|
||||||
|
|
||||||
|
grid->addWidget( subframe, 1, 1, Qt::AlignCenter );
|
||||||
|
|
||||||
|
subframe = new QGroupBox(tr("CHR not Logged"));
|
||||||
|
vbox = new QVBoxLayout();
|
||||||
|
vbox->addWidget( chrUnloggedLabel );
|
||||||
|
subframe->setLayout( vbox );
|
||||||
|
|
||||||
|
grid->addWidget( subframe, 1, 2, Qt::AlignCenter );
|
||||||
|
|
||||||
|
grid = new QGridLayout();
|
||||||
|
vbox1->addLayout( grid );
|
||||||
|
btn = new QPushButton( tr("Reset Log") );
|
||||||
|
grid->addWidget( btn, 0, 0, Qt::AlignCenter );
|
||||||
|
|
||||||
|
btn = new QPushButton( tr("Start") );
|
||||||
|
grid->addWidget( btn, 0, 1, Qt::AlignCenter );
|
||||||
|
|
||||||
|
btn = new QPushButton( tr("Save") );
|
||||||
|
grid->addWidget( btn, 0, 2, Qt::AlignCenter );
|
||||||
|
|
||||||
|
btn = new QPushButton( tr("Load") );
|
||||||
|
grid->addWidget( btn, 1, 0, Qt::AlignCenter );
|
||||||
|
|
||||||
|
btn = new QPushButton( tr("Save As") );
|
||||||
|
grid->addWidget( btn, 1, 2, Qt::AlignCenter );
|
||||||
|
|
||||||
|
hbox = new QHBoxLayout();
|
||||||
|
vbox1->addLayout( hbox );
|
||||||
|
|
||||||
|
subframe = new QGroupBox(tr("Logging Workflow Options"));
|
||||||
|
vbox = new QVBoxLayout();
|
||||||
|
vbox->addWidget( autoSaveCdlCbox );
|
||||||
|
vbox->addWidget( autoLoadCdlCbox );
|
||||||
|
vbox->addWidget( autoResumeLogCbox );
|
||||||
|
subframe->setLayout( vbox );
|
||||||
|
hbox->addWidget( subframe );
|
||||||
|
|
||||||
|
subframe = new QGroupBox(tr("Generate ROM"));
|
||||||
|
vbox = new QVBoxLayout();
|
||||||
|
|
||||||
|
btn = new QPushButton( tr("Save Stripped Data") );
|
||||||
|
vbox->addWidget( btn );
|
||||||
|
btn = new QPushButton( tr("Save Unused Data") );
|
||||||
|
vbox->addWidget( btn );
|
||||||
|
subframe->setLayout( vbox );
|
||||||
|
hbox->addWidget( subframe );
|
||||||
|
|
||||||
|
mainLayout->addWidget( frame );
|
||||||
|
|
||||||
|
setLayout( mainLayout );
|
||||||
|
|
||||||
|
updateTimer->start( 100 ); // 10hz
|
||||||
|
|
||||||
|
}
|
||||||
|
//----------------------------------------------------
|
||||||
|
CodeDataLoggerDialog_t::~CodeDataLoggerDialog_t(void)
|
||||||
|
{
|
||||||
|
updateTimer->stop();
|
||||||
|
|
||||||
|
printf("Code Data Logger Window Deleted\n");
|
||||||
|
}
|
||||||
|
//----------------------------------------------------
|
||||||
|
void CodeDataLoggerDialog_t::closeEvent(QCloseEvent *event)
|
||||||
|
{
|
||||||
|
printf("Code Data Logger Close Window Event\n");
|
||||||
|
done(0);
|
||||||
|
deleteLater();
|
||||||
|
event->accept();
|
||||||
|
}
|
||||||
|
//----------------------------------------------------
|
||||||
|
void CodeDataLoggerDialog_t::closeWindow(void)
|
||||||
|
{
|
||||||
|
printf("Code Data Logger Close Window\n");
|
||||||
|
done(0);
|
||||||
|
deleteLater();
|
||||||
|
}
|
||||||
|
//----------------------------------------------------
|
||||||
|
void CodeDataLoggerDialog_t::updatePeriodic(void)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
//----------------------------------------------------
|
|
@ -0,0 +1,48 @@
|
||||||
|
// CodeDataLogger.h
|
||||||
|
//
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <QWidget>
|
||||||
|
#include <QDialog>
|
||||||
|
#include <QVBoxLayout>
|
||||||
|
#include <QHBoxLayout>
|
||||||
|
#include <QComboBox>
|
||||||
|
#include <QCheckBox>
|
||||||
|
#include <QPushButton>
|
||||||
|
#include <QLabel>
|
||||||
|
#include <QFrame>
|
||||||
|
#include <QTimer>
|
||||||
|
#include <QGroupBox>
|
||||||
|
#include <QCloseEvent>
|
||||||
|
|
||||||
|
class CodeDataLoggerDialog_t : public QDialog
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
CodeDataLoggerDialog_t(QWidget *parent = 0);
|
||||||
|
~CodeDataLoggerDialog_t(void);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
QTimer *updateTimer;
|
||||||
|
QLabel *prgLoggedCodeLabel;
|
||||||
|
QLabel *prgLoggedDataLabel;
|
||||||
|
QLabel *prgUnloggedLabel;
|
||||||
|
QLabel *chrLoggedCodeLabel;
|
||||||
|
QLabel *chrLoggedDataLabel;
|
||||||
|
QLabel *chrUnloggedLabel;
|
||||||
|
QLabel *cdlFileLabel;
|
||||||
|
QCheckBox *autoSaveCdlCbox;
|
||||||
|
QCheckBox *autoLoadCdlCbox;
|
||||||
|
QCheckBox *autoResumeLogCbox;
|
||||||
|
void closeEvent(QCloseEvent *bar);
|
||||||
|
private:
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
void closeWindow(void);
|
||||||
|
private slots:
|
||||||
|
void updatePeriodic(void);
|
||||||
|
|
||||||
|
};
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
#include "Qt/LuaControl.h"
|
#include "Qt/LuaControl.h"
|
||||||
#include "Qt/CheatsConf.h"
|
#include "Qt/CheatsConf.h"
|
||||||
#include "Qt/HexEditor.h"
|
#include "Qt/HexEditor.h"
|
||||||
|
#include "Qt/CodeDataLogger.h"
|
||||||
#include "Qt/ConsoleDebugger.h"
|
#include "Qt/ConsoleDebugger.h"
|
||||||
#include "Qt/ConsoleUtilities.h"
|
#include "Qt/ConsoleUtilities.h"
|
||||||
#include "Qt/ConsoleSoundConf.h"
|
#include "Qt/ConsoleSoundConf.h"
|
||||||
|
@ -483,7 +484,7 @@ void consoleWin_t::createMainMenu(void)
|
||||||
// Debug
|
// Debug
|
||||||
debugMenu = menuBar()->addMenu(tr("Debug"));
|
debugMenu = menuBar()->addMenu(tr("Debug"));
|
||||||
|
|
||||||
// Debug -> Hex Editor
|
// Debug -> Debugger
|
||||||
debuggerAct = new QAction(tr("Debugger..."), this);
|
debuggerAct = new QAction(tr("Debugger..."), this);
|
||||||
//debuggerAct->setShortcut( QKeySequence(tr("Shift+F7")));
|
//debuggerAct->setShortcut( QKeySequence(tr("Shift+F7")));
|
||||||
debuggerAct->setStatusTip(tr("Open 6502 Debugger"));
|
debuggerAct->setStatusTip(tr("Open 6502 Debugger"));
|
||||||
|
@ -499,6 +500,14 @@ void consoleWin_t::createMainMenu(void)
|
||||||
|
|
||||||
debugMenu->addAction(hexEditAct);
|
debugMenu->addAction(hexEditAct);
|
||||||
|
|
||||||
|
// Debug -> Code/Data Logger
|
||||||
|
codeDataLogAct = new QAction(tr("Code/Data Logger..."), this);
|
||||||
|
//codeDataLogAct->setShortcut( QKeySequence(tr("Shift+F7")));
|
||||||
|
codeDataLogAct->setStatusTip(tr("Open Code Data Logger"));
|
||||||
|
connect(codeDataLogAct, SIGNAL(triggered()), this, SLOT(openCodeDataLogger(void)) );
|
||||||
|
|
||||||
|
debugMenu->addAction(codeDataLogAct);
|
||||||
|
|
||||||
//-----------------------------------------------------------------------
|
//-----------------------------------------------------------------------
|
||||||
// Movie
|
// Movie
|
||||||
movieMenu = menuBar()->addMenu(tr("Movie"));
|
movieMenu = menuBar()->addMenu(tr("Movie"));
|
||||||
|
@ -1003,6 +1012,17 @@ void consoleWin_t::openHexEditor(void)
|
||||||
hexEditWin->show();
|
hexEditWin->show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void consoleWin_t::openCodeDataLogger(void)
|
||||||
|
{
|
||||||
|
CodeDataLoggerDialog_t *cdlWin;
|
||||||
|
|
||||||
|
//printf("Open Code Data Logger Window\n");
|
||||||
|
|
||||||
|
cdlWin = new CodeDataLoggerDialog_t(this);
|
||||||
|
|
||||||
|
cdlWin->show();
|
||||||
|
}
|
||||||
|
|
||||||
void consoleWin_t::toggleAutoResume(void)
|
void consoleWin_t::toggleAutoResume(void)
|
||||||
{
|
{
|
||||||
//printf("Auto Resume: %i\n", autoResume->isChecked() );
|
//printf("Auto Resume: %i\n", autoResume->isChecked() );
|
||||||
|
|
|
@ -90,6 +90,7 @@ class consoleWin_t : public QMainWindow
|
||||||
QAction *fdsLoadBiosAct;
|
QAction *fdsLoadBiosAct;
|
||||||
QAction *cheatsAct;
|
QAction *cheatsAct;
|
||||||
QAction *debuggerAct;
|
QAction *debuggerAct;
|
||||||
|
QAction *codeDataLogAct;
|
||||||
QAction *hexEditAct;
|
QAction *hexEditAct;
|
||||||
QAction *openMovAct;
|
QAction *openMovAct;
|
||||||
QAction *stopMovAct;
|
QAction *stopMovAct;
|
||||||
|
@ -133,6 +134,7 @@ class consoleWin_t : public QMainWindow
|
||||||
void openHotkeyConfWin(void);
|
void openHotkeyConfWin(void);
|
||||||
void openPaletteConfWin(void);
|
void openPaletteConfWin(void);
|
||||||
void openGuiConfWin(void);
|
void openGuiConfWin(void);
|
||||||
|
void openCodeDataLogger(void);
|
||||||
void toggleAutoResume(void);
|
void toggleAutoResume(void);
|
||||||
void toggleFullscreen(void);
|
void toggleFullscreen(void);
|
||||||
void updatePeriodic(void);
|
void updatePeriodic(void);
|
||||||
|
|
Loading…
Reference in New Issue