diff --git a/AppleSAWS.pro b/AppleSAWS.pro
index f322da3..b74977d 100644
--- a/AppleSAWS.pro
+++ b/AppleSAWS.pro
@@ -36,7 +36,6 @@ SOURCES += \
src/applesoftfile/applesoftfile.cxx \
src/applesoftfile/applesofttoken.cxx \
src/applesoftfile/applesoftformatter.cxx \
- src/applesoftfile/applesoftline.cpp \
src/binaryfile/disassembler.cxx \
src/binaryfile/binaryfile.cxx \
src/textfile/textfile.cxx \
@@ -53,7 +52,8 @@ SOURCES += \
src/relocatablefile/relocatablefile.cxx \
src/binaryfile/binaryfilemetadata.cpp \
src/util/charset.cpp \
- src/ui/widgets/characterwidget.cpp
+ src/ui/widgets/characterwidget.cpp \
+ src/ui/viewers/applesoftfiledetailviewer.cpp
HEADERS += \
@@ -86,7 +86,8 @@ HEADERS += \
src/binaryfile/binaryfilemetadata.h \
src/ui/widgets/characterwidget.h \
src/util/charset.h \
- src/ui/viewers/charsetviewer.h
+ src/ui/viewers/charsetviewer.h \
+ src/ui/viewers/applesoftfiledetailviewer.h
FORMS += \
src/ui/catalogwidget.ui \
@@ -94,4 +95,5 @@ FORMS += \
src/ui/viewers/applesoftfileviewer.ui \
src/ui/viewers/disassemblerviewer.ui \
src/ui/viewers/hexdumpviewer.ui \
- src/ui/viewers/texthexdumpviewer.ui
+ src/ui/viewers/texthexdumpviewer.ui \
+ src/ui/viewers/applesoftfiledetailviewer.ui
diff --git a/src/applesoftfile/applesoftfile.cxx b/src/applesoftfile/applesoftfile.cxx
index edd8bc0..69f3a25 100644
--- a/src/applesoftfile/applesoftfile.cxx
+++ b/src/applesoftfile/applesoftfile.cxx
@@ -22,7 +22,6 @@ void ApplesoftFile::setData(QByteArray data)
quint8 addhi = m_data.at(1);
m_length = addlo + (addhi * 256);
m_data.remove(0,2);
- // m_data = m_data.left(m_length);
parse();
}
diff --git a/src/applesoftfile/applesoftline.cpp b/src/applesoftfile/applesoftline.cpp
deleted file mode 100644
index 00452ac..0000000
--- a/src/applesoftfile/applesoftline.cpp
+++ /dev/null
@@ -1,2 +0,0 @@
-#include "applesoftline.h"
-
diff --git a/src/applesoftfile/applesofttoken.cxx b/src/applesoftfile/applesofttoken.cxx
index 95fe9c7..9608c9a 100644
--- a/src/applesoftfile/applesofttoken.cxx
+++ b/src/applesoftfile/applesofttoken.cxx
@@ -106,8 +106,6 @@ QString ApplesoftToken::getHtmlPrintableString()
if (getTokenId() == ApplesoftToken::IntegerTokenVal || getTokenId() == ApplesoftToken::FloatAryVarTokenVal)
return QString("%1").arg(baseval);
-
-
return QString("%1").arg(baseval);
}
diff --git a/src/ui/viewers/applesoftfiledetailviewer.cpp b/src/ui/viewers/applesoftfiledetailviewer.cpp
new file mode 100644
index 0000000..d21a2ac
--- /dev/null
+++ b/src/ui/viewers/applesoftfiledetailviewer.cpp
@@ -0,0 +1,56 @@
+#include "applesoftfiledetailviewer.h"
+#include "ui_applesoftfiledetailviewer.h"
+
+#include
+#include
+#include
+
+
+ApplesoftFileDetailViewer::ApplesoftFileDetailViewer(QWidget *parent) :
+ QWidget(parent),
+ ui(new Ui::ApplesoftFileDetailViewer)
+{
+ ui->setupUi(this);
+}
+
+ApplesoftFileDetailViewer::~ApplesoftFileDetailViewer()
+{
+ delete ui;
+}
+
+void ApplesoftFileDetailViewer::process()
+{
+ QMap 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++;
+ }
+
+}
diff --git a/src/ui/viewers/applesoftfiledetailviewer.h b/src/ui/viewers/applesoftfiledetailviewer.h
new file mode 100644
index 0000000..48c0057
--- /dev/null
+++ b/src/ui/viewers/applesoftfiledetailviewer.h
@@ -0,0 +1,29 @@
+#ifndef APPLESOFTFILEDETAILVIEWER_H
+#define APPLESOFTFILEDETAILVIEWER_H
+
+#include
+#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 lineData) { m_lines = lineData; process(); }
+
+private:
+ void process();
+
+ Ui::ApplesoftFileDetailViewer *ui;
+ QVector m_lines;
+};
+
+#endif // APPLESOFTFILEDETAILVIEWER_H
diff --git a/src/ui/viewers/applesoftfiledetailviewer.ui b/src/ui/viewers/applesoftfiledetailviewer.ui
new file mode 100644
index 0000000..fa67e95
--- /dev/null
+++ b/src/ui/viewers/applesoftfiledetailviewer.ui
@@ -0,0 +1,46 @@
+
+
+ ApplesoftFileDetailViewer
+
+
+
+ 0
+ 0
+ 607
+ 389
+
+
+
+ Form
+
+
+ -
+
+
+ true
+
+
+ true
+
+
+
+ Type
+
+
+
+
+ Variable
+
+
+
+
+ Lines
+
+
+
+
+
+
+
+
+
diff --git a/src/ui/viewers/applesoftfileviewer.cxx b/src/ui/viewers/applesoftfileviewer.cxx
index cddb7d5..bd5ae89 100644
--- a/src/ui/viewers/applesoftfileviewer.cxx
+++ b/src/ui/viewers/applesoftfileviewer.cxx
@@ -1,6 +1,7 @@
#include "applesoftfileviewer.h"
#include "ui_applesoftfileviewer.h"
#include "applesoftformatter.h"
+#include "applesoftfiledetailviewer.h"
#include
ApplesoftFileViewer::ApplesoftFileViewer(QWidget *parent) :
@@ -19,6 +20,8 @@ ApplesoftFileViewer::ApplesoftFileViewer(QWidget *parent) :
ui->textArea->setUndoRedoEnabled(false);
ui->textArea->setUndoRedoEnabled(true);
+
+ connect(ui->varBrowserButton, SIGNAL(clicked(bool)), SLOT(launchVarBrowser()));
}
ApplesoftFileViewer::~ApplesoftFileViewer()
@@ -46,6 +49,14 @@ void ApplesoftFileViewer::setText(QString text)
ui->textArea->setHtml(text);
}
+void ApplesoftFileViewer::launchVarBrowser()
+{
+ ApplesoftFileDetailViewer *afdv = new ApplesoftFileDetailViewer();
+
+ afdv->setLineData(m_file->getLines());
+ afdv->show();
+}
+
void ApplesoftFileViewer::findText()
{
QString searchString = ui->findText->text();
diff --git a/src/ui/viewers/applesoftfileviewer.h b/src/ui/viewers/applesoftfileviewer.h
index 4b0d925..af46bcc 100644
--- a/src/ui/viewers/applesoftfileviewer.h
+++ b/src/ui/viewers/applesoftfileviewer.h
@@ -26,6 +26,9 @@ public slots:
void findText();
+protected slots:
+ void launchVarBrowser();
+
private:
ApplesoftFile *m_file;
ApplesoftFormatter *m_formatter;
diff --git a/src/ui/viewers/applesoftfileviewer.ui b/src/ui/viewers/applesoftfileviewer.ui
index 632846f..fc9c187 100644
--- a/src/ui/viewers/applesoftfileviewer.ui
+++ b/src/ui/viewers/applesoftfileviewer.ui
@@ -21,7 +21,7 @@
-
-
+
-
-
@@ -47,6 +47,13 @@
+ -
+
+
+ Var Broswer
+
+
+
-