mirror of
https://github.com/markdavidlong/AppleSAWS.git
synced 2024-09-27 13:55:21 +00:00
Added preliminary Applesoft Variable Viewer tool
This commit is contained in:
parent
6125c0523c
commit
c5d1c575e1
@ -36,7 +36,6 @@ SOURCES += \
|
|||||||
src/applesoftfile/applesoftfile.cxx \
|
src/applesoftfile/applesoftfile.cxx \
|
||||||
src/applesoftfile/applesofttoken.cxx \
|
src/applesoftfile/applesofttoken.cxx \
|
||||||
src/applesoftfile/applesoftformatter.cxx \
|
src/applesoftfile/applesoftformatter.cxx \
|
||||||
src/applesoftfile/applesoftline.cpp \
|
|
||||||
src/binaryfile/disassembler.cxx \
|
src/binaryfile/disassembler.cxx \
|
||||||
src/binaryfile/binaryfile.cxx \
|
src/binaryfile/binaryfile.cxx \
|
||||||
src/textfile/textfile.cxx \
|
src/textfile/textfile.cxx \
|
||||||
@ -53,7 +52,8 @@ SOURCES += \
|
|||||||
src/relocatablefile/relocatablefile.cxx \
|
src/relocatablefile/relocatablefile.cxx \
|
||||||
src/binaryfile/binaryfilemetadata.cpp \
|
src/binaryfile/binaryfilemetadata.cpp \
|
||||||
src/util/charset.cpp \
|
src/util/charset.cpp \
|
||||||
src/ui/widgets/characterwidget.cpp
|
src/ui/widgets/characterwidget.cpp \
|
||||||
|
src/ui/viewers/applesoftfiledetailviewer.cpp
|
||||||
|
|
||||||
|
|
||||||
HEADERS += \
|
HEADERS += \
|
||||||
@ -86,7 +86,8 @@ HEADERS += \
|
|||||||
src/binaryfile/binaryfilemetadata.h \
|
src/binaryfile/binaryfilemetadata.h \
|
||||||
src/ui/widgets/characterwidget.h \
|
src/ui/widgets/characterwidget.h \
|
||||||
src/util/charset.h \
|
src/util/charset.h \
|
||||||
src/ui/viewers/charsetviewer.h
|
src/ui/viewers/charsetviewer.h \
|
||||||
|
src/ui/viewers/applesoftfiledetailviewer.h
|
||||||
|
|
||||||
FORMS += \
|
FORMS += \
|
||||||
src/ui/catalogwidget.ui \
|
src/ui/catalogwidget.ui \
|
||||||
@ -94,4 +95,5 @@ FORMS += \
|
|||||||
src/ui/viewers/applesoftfileviewer.ui \
|
src/ui/viewers/applesoftfileviewer.ui \
|
||||||
src/ui/viewers/disassemblerviewer.ui \
|
src/ui/viewers/disassemblerviewer.ui \
|
||||||
src/ui/viewers/hexdumpviewer.ui \
|
src/ui/viewers/hexdumpviewer.ui \
|
||||||
src/ui/viewers/texthexdumpviewer.ui
|
src/ui/viewers/texthexdumpviewer.ui \
|
||||||
|
src/ui/viewers/applesoftfiledetailviewer.ui
|
||||||
|
@ -22,7 +22,6 @@ void ApplesoftFile::setData(QByteArray data)
|
|||||||
quint8 addhi = m_data.at(1);
|
quint8 addhi = m_data.at(1);
|
||||||
m_length = addlo + (addhi * 256);
|
m_length = addlo + (addhi * 256);
|
||||||
m_data.remove(0,2);
|
m_data.remove(0,2);
|
||||||
// m_data = m_data.left(m_length);
|
|
||||||
parse();
|
parse();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,2 +0,0 @@
|
|||||||
#include "applesoftline.h"
|
|
||||||
|
|
@ -106,8 +106,6 @@ QString ApplesoftToken::getHtmlPrintableString()
|
|||||||
if (getTokenId() == ApplesoftToken::IntegerTokenVal || getTokenId() == ApplesoftToken::FloatAryVarTokenVal)
|
if (getTokenId() == ApplesoftToken::IntegerTokenVal || getTokenId() == ApplesoftToken::FloatAryVarTokenVal)
|
||||||
return QString("<font color=\"blue\">%1</font>").arg(baseval);
|
return QString("<font color=\"blue\">%1</font>").arg(baseval);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return QString("<font color=\"orange\">%1</font>").arg(baseval);
|
return QString("<font color=\"orange\">%1</font>").arg(baseval);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
56
src/ui/viewers/applesoftfiledetailviewer.cpp
Normal file
56
src/ui/viewers/applesoftfiledetailviewer.cpp
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
#include "applesoftfiledetailviewer.h"
|
||||||
|
#include "ui_applesoftfiledetailviewer.h"
|
||||||
|
|
||||||
|
#include <QMap>
|
||||||
|
#include <QString>
|
||||||
|
#include <QStringList>
|
||||||
|
|
||||||
|
|
||||||
|
ApplesoftFileDetailViewer::ApplesoftFileDetailViewer(QWidget *parent) :
|
||||||
|
QWidget(parent),
|
||||||
|
ui(new Ui::ApplesoftFileDetailViewer)
|
||||||
|
{
|
||||||
|
ui->setupUi(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
ApplesoftFileDetailViewer::~ApplesoftFileDetailViewer()
|
||||||
|
{
|
||||||
|
delete ui;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ApplesoftFileDetailViewer::process()
|
||||||
|
{
|
||||||
|
QMap<QString,QStringList> vardata;
|
||||||
|
|
||||||
|
foreach (ApplesoftLine line, m_lines)
|
||||||
|
{
|
||||||
|
quint16 linenum = line.linenum;
|
||||||
|
foreach(ApplesoftToken token, line.tokens)
|
||||||
|
{
|
||||||
|
quint16 tid = token.getTokenId();
|
||||||
|
if (tid == ApplesoftToken::IntVarTokenVal ||
|
||||||
|
tid == ApplesoftToken::IntAryVarTokenVal ||
|
||||||
|
tid == ApplesoftToken::FloatVarTokenVal ||
|
||||||
|
tid == ApplesoftToken::FloatAryVarTokenVal ||
|
||||||
|
tid == ApplesoftToken::StringVarTokenVal ||
|
||||||
|
tid == ApplesoftToken::StringAryVarTokenVal)
|
||||||
|
{
|
||||||
|
QString varname = token.getStringValue();
|
||||||
|
if (varname.contains("(")) { varname.append(")"); }
|
||||||
|
vardata[varname].append(QString("%1").arg(linenum));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
QStringList keys = vardata.keys();
|
||||||
|
ui->m_varView->setRowCount(keys.count());
|
||||||
|
qSort(keys);
|
||||||
|
int idx = 0;
|
||||||
|
foreach (QString key, keys)
|
||||||
|
{
|
||||||
|
QString linenums = vardata[key].join(",");
|
||||||
|
ui->m_varView->setItem(idx,1,new QTableWidgetItem(key));
|
||||||
|
ui->m_varView->setItem(idx,2,new QTableWidgetItem(linenums));
|
||||||
|
idx++;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
29
src/ui/viewers/applesoftfiledetailviewer.h
Normal file
29
src/ui/viewers/applesoftfiledetailviewer.h
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
#ifndef APPLESOFTFILEDETAILVIEWER_H
|
||||||
|
#define APPLESOFTFILEDETAILVIEWER_H
|
||||||
|
|
||||||
|
#include <QWidget>
|
||||||
|
#include "applesoftline.h"
|
||||||
|
#include "applesofttoken.h"
|
||||||
|
|
||||||
|
namespace Ui {
|
||||||
|
class ApplesoftFileDetailViewer;
|
||||||
|
}
|
||||||
|
|
||||||
|
class ApplesoftFileDetailViewer : public QWidget
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit ApplesoftFileDetailViewer(QWidget *parent = 0);
|
||||||
|
~ApplesoftFileDetailViewer();
|
||||||
|
|
||||||
|
void setLineData(QVector<ApplesoftLine> lineData) { m_lines = lineData; process(); }
|
||||||
|
|
||||||
|
private:
|
||||||
|
void process();
|
||||||
|
|
||||||
|
Ui::ApplesoftFileDetailViewer *ui;
|
||||||
|
QVector<ApplesoftLine> m_lines;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // APPLESOFTFILEDETAILVIEWER_H
|
46
src/ui/viewers/applesoftfiledetailviewer.ui
Normal file
46
src/ui/viewers/applesoftfiledetailviewer.ui
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>ApplesoftFileDetailViewer</class>
|
||||||
|
<widget class="QWidget" name="ApplesoftFileDetailViewer">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>607</width>
|
||||||
|
<height>389</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>Form</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QTableWidget" name="m_varView">
|
||||||
|
<attribute name="horizontalHeaderVisible">
|
||||||
|
<bool>true</bool>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="horizontalHeaderStretchLastSection">
|
||||||
|
<bool>true</bool>
|
||||||
|
</attribute>
|
||||||
|
<column>
|
||||||
|
<property name="text">
|
||||||
|
<string>Type</string>
|
||||||
|
</property>
|
||||||
|
</column>
|
||||||
|
<column>
|
||||||
|
<property name="text">
|
||||||
|
<string>Variable</string>
|
||||||
|
</property>
|
||||||
|
</column>
|
||||||
|
<column>
|
||||||
|
<property name="text">
|
||||||
|
<string>Lines</string>
|
||||||
|
</property>
|
||||||
|
</column>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
@ -1,6 +1,7 @@
|
|||||||
#include "applesoftfileviewer.h"
|
#include "applesoftfileviewer.h"
|
||||||
#include "ui_applesoftfileviewer.h"
|
#include "ui_applesoftfileviewer.h"
|
||||||
#include "applesoftformatter.h"
|
#include "applesoftformatter.h"
|
||||||
|
#include "applesoftfiledetailviewer.h"
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
|
||||||
ApplesoftFileViewer::ApplesoftFileViewer(QWidget *parent) :
|
ApplesoftFileViewer::ApplesoftFileViewer(QWidget *parent) :
|
||||||
@ -19,6 +20,8 @@ ApplesoftFileViewer::ApplesoftFileViewer(QWidget *parent) :
|
|||||||
ui->textArea->setUndoRedoEnabled(false);
|
ui->textArea->setUndoRedoEnabled(false);
|
||||||
ui->textArea->setUndoRedoEnabled(true);
|
ui->textArea->setUndoRedoEnabled(true);
|
||||||
|
|
||||||
|
|
||||||
|
connect(ui->varBrowserButton, SIGNAL(clicked(bool)), SLOT(launchVarBrowser()));
|
||||||
}
|
}
|
||||||
|
|
||||||
ApplesoftFileViewer::~ApplesoftFileViewer()
|
ApplesoftFileViewer::~ApplesoftFileViewer()
|
||||||
@ -46,6 +49,14 @@ void ApplesoftFileViewer::setText(QString text)
|
|||||||
ui->textArea->setHtml(text);
|
ui->textArea->setHtml(text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ApplesoftFileViewer::launchVarBrowser()
|
||||||
|
{
|
||||||
|
ApplesoftFileDetailViewer *afdv = new ApplesoftFileDetailViewer();
|
||||||
|
|
||||||
|
afdv->setLineData(m_file->getLines());
|
||||||
|
afdv->show();
|
||||||
|
}
|
||||||
|
|
||||||
void ApplesoftFileViewer::findText()
|
void ApplesoftFileViewer::findText()
|
||||||
{
|
{
|
||||||
QString searchString = ui->findText->text();
|
QString searchString = ui->findText->text();
|
||||||
|
@ -26,6 +26,9 @@ public slots:
|
|||||||
void findText();
|
void findText();
|
||||||
|
|
||||||
|
|
||||||
|
protected slots:
|
||||||
|
void launchVarBrowser();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ApplesoftFile *m_file;
|
ApplesoftFile *m_file;
|
||||||
ApplesoftFormatter *m_formatter;
|
ApplesoftFormatter *m_formatter;
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout">
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_2" stretch="1,1">
|
<layout class="QHBoxLayout" name="horizontalLayout_2" stretch="1,1,0">
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
<item>
|
<item>
|
||||||
@ -47,6 +47,13 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="varBrowserButton">
|
||||||
|
<property name="text">
|
||||||
|
<string>Var Broswer</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="0">
|
<item row="1" column="0">
|
||||||
|
Loading…
Reference in New Issue
Block a user