mirror of
https://github.com/markdavidlong/AppleSAWS.git
synced 2025-04-08 08:37:19 +00:00
Added printing and export for most viewers
This commit is contained in:
parent
ce2d9dfdd6
commit
c4bc4e5127
@ -1,5 +1,5 @@
|
||||
|
||||
QT += core gui
|
||||
QT += core gui printsupport
|
||||
CONFIG += c++11
|
||||
|
||||
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
|
||||
|
@ -4,7 +4,6 @@
|
||||
#include <QWidget>
|
||||
#include <QListWidgetItem>
|
||||
|
||||
|
||||
#include "diskfile.h"
|
||||
|
||||
namespace Ui {
|
||||
|
@ -4,6 +4,9 @@
|
||||
#include "applesoftfiledetailviewer.h"
|
||||
#include <QDebug>
|
||||
#include <QSettings>
|
||||
#include <QPrinter>
|
||||
#include <QPrintDialog>
|
||||
|
||||
|
||||
ApplesoftFileViewer::ApplesoftFileViewer(QWidget *parent) :
|
||||
FileViewerInterface(parent),
|
||||
@ -14,7 +17,6 @@ ApplesoftFileViewer::ApplesoftFileViewer(QWidget *parent) :
|
||||
QSettings settings;
|
||||
QString title = QString("AppleSoft Viewer");
|
||||
m_title = title;
|
||||
emit setTitle(title);
|
||||
setWindowTitle(title);
|
||||
|
||||
m_formatter = new ApplesoftFormatter(this);
|
||||
@ -75,6 +77,7 @@ bool ApplesoftFileViewer::optionsMenuItems(QMenu *menu)
|
||||
return makeMenuOptions(menu);
|
||||
}
|
||||
|
||||
|
||||
void ApplesoftFileViewer::toggleWordWrap(bool enabled)
|
||||
{
|
||||
if (enabled)
|
||||
@ -138,7 +141,6 @@ void ApplesoftFileViewer::setFile(ApplesoftFile *file) {
|
||||
|
||||
QString title = QString("AppleSoft Viewer: %1").arg(m_file->filename());
|
||||
m_title = title;
|
||||
emit setTitle(title);
|
||||
setWindowTitle(title);
|
||||
|
||||
ui->textArea->setText(m_formatter->formatText());
|
||||
@ -164,6 +166,8 @@ void ApplesoftFileViewer::launchVarBrowser()
|
||||
|
||||
void ApplesoftFileViewer::findText()
|
||||
{
|
||||
//TODO: Make this much more robust
|
||||
|
||||
QString searchString = ui->findText->text();
|
||||
QTextDocument *document = ui->textArea->document();
|
||||
|
||||
@ -203,3 +207,47 @@ void ApplesoftFileViewer::findText()
|
||||
|
||||
m_isFirstFind = false;
|
||||
}
|
||||
|
||||
bool ApplesoftFileViewer::canPrint() const { return true; }
|
||||
|
||||
void ApplesoftFileViewer::doPrint()
|
||||
{
|
||||
QPrinter printer;
|
||||
|
||||
QPrintDialog dialog(&printer, this);
|
||||
dialog.setWindowTitle(tr("Print AppleSoft File"));
|
||||
if (ui->textArea->textCursor().hasSelection())
|
||||
dialog.addEnabledOption(QAbstractPrintDialog::PrintSelection);
|
||||
if (dialog.exec() != QDialog::Accepted) {
|
||||
return;
|
||||
}
|
||||
|
||||
ui->textArea->print(&printer);
|
||||
}
|
||||
|
||||
bool ApplesoftFileViewer::canExport() const { return true; }
|
||||
|
||||
void ApplesoftFileViewer::doExport()
|
||||
{
|
||||
QString defaultPath = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation);
|
||||
QDir savename = QDir(defaultPath).filePath(m_file->filename()+".txt");
|
||||
|
||||
QString saveName = QFileDialog::getSaveFileName(this,
|
||||
tr("Export AppleSoft"), savename.path(), tr("Text Files (*.txt)"));
|
||||
|
||||
if (saveName == "") return; // User cancelled
|
||||
|
||||
qDebug() << "Set filename: " << saveName;
|
||||
|
||||
QFile saveFile(saveName);
|
||||
if (!saveFile.open(QIODevice::WriteOnly | QIODevice::Text))
|
||||
{
|
||||
QMessageBox::warning(this,"Save Error","Could not save "+saveName);
|
||||
return;
|
||||
}
|
||||
|
||||
QTextStream out(&saveFile);
|
||||
out << ui->textArea->document()->toPlainText();
|
||||
saveFile.close();
|
||||
}
|
||||
|
||||
|
@ -25,13 +25,17 @@ public:
|
||||
|
||||
virtual bool optionsMenuItems(QMenu *menu);
|
||||
|
||||
virtual bool canPrint() const;
|
||||
|
||||
bool canExport() const;
|
||||
public slots:
|
||||
void setFile(GenericFile *file);
|
||||
void setFile(GenericFile *file);
|
||||
void setFile(ApplesoftFile *m_file);
|
||||
void setData(QByteArray data);
|
||||
void setText(QString text);
|
||||
void findText();
|
||||
|
||||
void doPrint();
|
||||
void doExport();
|
||||
|
||||
protected slots:
|
||||
void toggleWordWrap(bool enabled);
|
||||
|
@ -9,6 +9,7 @@
|
||||
#include <QAction>
|
||||
#include <QDebug>
|
||||
|
||||
|
||||
DisassemblerViewer::DisassemblerViewer(QWidget *parent) :
|
||||
FileViewerInterface(parent),
|
||||
ui(new Ui::DisassemblerViewer)
|
||||
@ -1433,3 +1434,49 @@ void DisassemblerViewer::setText(QString text)
|
||||
{
|
||||
ui->textArea->setHtml(text);
|
||||
}
|
||||
|
||||
bool DisassemblerViewer::canPrint() const { return true; }
|
||||
|
||||
void DisassemblerViewer::doPrint()
|
||||
{
|
||||
QPrinter printer;
|
||||
|
||||
QPrintDialog dialog(&printer, this);
|
||||
dialog.setWindowTitle(tr("Print Dissassembly"));
|
||||
if (ui->textArea->textCursor().hasSelection())
|
||||
dialog.addEnabledOption(QAbstractPrintDialog::PrintSelection);
|
||||
if (dialog.exec() != QDialog::Accepted) {
|
||||
qDebug() << "Cancelled";
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
ui->textArea->print(&printer);
|
||||
}
|
||||
|
||||
bool DisassemblerViewer::canExport() const { return true; }
|
||||
|
||||
void DisassemblerViewer::doExport()
|
||||
{
|
||||
QString defaultPath = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation);
|
||||
QDir savename = QDir(defaultPath).filePath(m_file->filename()+".txt");
|
||||
|
||||
QString saveName = QFileDialog::getSaveFileName(this,
|
||||
tr("Export Disassembly"), savename.path(), tr("Text Files (*.txt)"));
|
||||
|
||||
if (saveName == "") return; // User cancelled
|
||||
|
||||
qDebug() << "Set filename: " << saveName;
|
||||
|
||||
QFile saveFile(saveName);
|
||||
if (!saveFile.open(QIODevice::WriteOnly | QIODevice::Text))
|
||||
{
|
||||
QMessageBox::warning(this,"Save Error","Could not save "+saveName);
|
||||
return;
|
||||
}
|
||||
|
||||
QTextStream out(&saveFile);
|
||||
out << ui->textArea->document()->toPlainText();
|
||||
saveFile.close();
|
||||
|
||||
}
|
||||
|
@ -27,11 +27,15 @@ public:
|
||||
|
||||
QString getPotentialLabel(quint16 address);
|
||||
virtual bool optionsMenuItems(QMenu *);
|
||||
bool canPrint() const;
|
||||
bool canExport() const;
|
||||
|
||||
public slots:
|
||||
void setFile(GenericFile *file);
|
||||
void toggleWordWrap(bool enabled);
|
||||
|
||||
void doPrint();
|
||||
void doExport();
|
||||
private:
|
||||
Ui::DisassemblerViewer *ui;
|
||||
|
||||
|
@ -3,6 +3,11 @@
|
||||
|
||||
#include <QWidget>
|
||||
#include <QString>
|
||||
#include <QPrinter>
|
||||
#include <QPrintDialog>
|
||||
#include <QFileDialog>
|
||||
#include <QStandardPaths>
|
||||
#include <QMessageBox>
|
||||
|
||||
class GenericFile;
|
||||
class QMenu;
|
||||
@ -16,16 +21,18 @@ public:
|
||||
|
||||
virtual bool optionsMenuItems(QMenu *) = 0;
|
||||
|
||||
bool canPrint() const { return false; }
|
||||
virtual bool canPrint() const { return false; }
|
||||
virtual bool canExport() const { return false; }
|
||||
|
||||
QString title() const { return m_title; }
|
||||
|
||||
public slots:
|
||||
virtual void setFile(GenericFile *file) = 0;
|
||||
|
||||
void doPrint() { }
|
||||
QString title() const { return m_title; }
|
||||
virtual void doPrint() { }
|
||||
virtual void doExport() { }
|
||||
|
||||
signals:
|
||||
void setTitle(QString title);
|
||||
|
||||
protected:
|
||||
QString m_title;
|
||||
|
@ -11,6 +11,7 @@ HexDumpViewer::HexDumpViewer(QWidget *parent) :
|
||||
FileViewerInterface(parent),
|
||||
ui(new Ui::HexDumpViewer)
|
||||
{
|
||||
m_file = Q_NULLPTR;
|
||||
ui->setupUi(this);
|
||||
m_offset = 0;
|
||||
|
||||
@ -120,6 +121,7 @@ QString HexDumpViewer::valToAppleAscii(quint8 val)
|
||||
|
||||
void HexDumpViewer::setFile(GenericFile *file, quint16 offset)
|
||||
{
|
||||
m_file = file;
|
||||
QString title = QString("Hex Viewer: %1").arg(file->filename());
|
||||
setWindowTitle(title);
|
||||
|
||||
@ -153,3 +155,47 @@ void HexDumpViewer::setText(QString text)
|
||||
{
|
||||
ui->textArea->setHtml(text);
|
||||
}
|
||||
|
||||
bool HexDumpViewer::canPrint() const { return true; }
|
||||
|
||||
void HexDumpViewer::doPrint()
|
||||
{
|
||||
QPrinter printer;
|
||||
|
||||
QPrintDialog dialog(&printer, this);
|
||||
dialog.setWindowTitle(tr("Print Hex Dump"));
|
||||
if (ui->textArea->textCursor().hasSelection())
|
||||
dialog.addEnabledOption(QAbstractPrintDialog::PrintSelection);
|
||||
if (dialog.exec() != QDialog::Accepted) {
|
||||
return;
|
||||
}
|
||||
|
||||
ui->textArea->print(&printer);
|
||||
}
|
||||
|
||||
|
||||
bool HexDumpViewer::canExport() const { return true; }
|
||||
|
||||
void HexDumpViewer::doExport()
|
||||
{
|
||||
QString defaultPath = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation);
|
||||
QDir savename = QDir(defaultPath).filePath(m_file->filename()+".txt");
|
||||
|
||||
QString saveName = QFileDialog::getSaveFileName(this,
|
||||
tr("Export Hex Dump"), savename.path(), tr("Text Files (*.txt)"));
|
||||
|
||||
if (saveName == "") return; // User cancelled
|
||||
|
||||
qDebug() << "Set filename: " << saveName;
|
||||
|
||||
QFile saveFile(saveName);
|
||||
if (!saveFile.open(QIODevice::WriteOnly | QIODevice::Text))
|
||||
{
|
||||
QMessageBox::warning(this,"Save Error","Could not save "+saveName);
|
||||
return;
|
||||
}
|
||||
|
||||
QTextStream out(&saveFile);
|
||||
out << ui->textArea->document()->toPlainText();
|
||||
saveFile.close();
|
||||
}
|
||||
|
@ -26,9 +26,14 @@ public:
|
||||
|
||||
virtual bool optionsMenuItems(QMenu *menu);
|
||||
|
||||
bool canPrint() const;
|
||||
bool canExport() const;
|
||||
|
||||
public slots:
|
||||
void showHexAndAsciiValues();
|
||||
void toggleWordWrap(bool enabled);
|
||||
void doPrint();
|
||||
void doExport();
|
||||
|
||||
private:
|
||||
void setText(QString text);
|
||||
@ -39,6 +44,8 @@ private:
|
||||
|
||||
quint16 m_offset;
|
||||
QByteArray m_data;
|
||||
|
||||
GenericFile *m_file;
|
||||
};
|
||||
|
||||
#endif // HEXDUMPVIEWER_H
|
||||
|
@ -51,4 +51,55 @@ void HiresViewWidget::setFile(GenericFile *file)
|
||||
setFile(af);
|
||||
}
|
||||
}
|
||||
bool HiresViewWidget::canPrint() const { return true; }
|
||||
|
||||
void HiresViewWidget::doPrint()
|
||||
{
|
||||
QPrinter printer;
|
||||
|
||||
QPrintDialog dialog(&printer, this);
|
||||
dialog.setWindowTitle(tr("Print HiRes Image"));
|
||||
|
||||
if (dialog.exec() != QDialog::Accepted) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
QPainter painter(&printer);
|
||||
QPixmap pm = hrsw->getPixmap();
|
||||
if (!pm.isNull() && pm.width() != 0 && pm.height() != 0)
|
||||
{
|
||||
painter.drawPixmap(0,0,pm.width(),pm.height(),pm);
|
||||
}
|
||||
else
|
||||
{
|
||||
QMessageBox::warning(this,"Print Error","Could not print image");
|
||||
}
|
||||
}
|
||||
|
||||
bool HiresViewWidget::canExport() const { return true; }
|
||||
|
||||
void HiresViewWidget::doExport()
|
||||
{
|
||||
QString defaultPath = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation);
|
||||
QDir savename = QDir(defaultPath).filePath(m_file->filename()+".png");
|
||||
|
||||
QString saveName = QFileDialog::getSaveFileName(this,
|
||||
tr("Export HiRes Image"), savename.path(), tr("Png Files (*.png)"));
|
||||
|
||||
if (saveName == "") return; // User cancelled
|
||||
|
||||
qDebug() << "Set filename: " << saveName;
|
||||
|
||||
QFile saveFile(saveName);
|
||||
if (!saveFile.open(QIODevice::WriteOnly | QIODevice::Text))
|
||||
{
|
||||
QMessageBox::warning(this,"Save Error","Could not save "+saveName);
|
||||
return;
|
||||
}
|
||||
|
||||
QPixmap pm = hrsw->getPixmap();
|
||||
pm.save(savename.path());
|
||||
|
||||
}
|
||||
|
||||
|
@ -24,10 +24,14 @@ public:
|
||||
explicit HiresViewWidget(QWidget *parent = 0);
|
||||
virtual bool optionsMenuItems(QMenu *);
|
||||
|
||||
bool canPrint() const;
|
||||
bool canExport() const;
|
||||
public slots:
|
||||
void setFile(GenericFile *file);
|
||||
void setFile(BinaryFile *file);
|
||||
|
||||
void doPrint();
|
||||
void doExport();
|
||||
private:
|
||||
HiresScreenWidget *hrsw;
|
||||
|
||||
|
@ -12,6 +12,7 @@ TextHexDumpViewer::TextHexDumpViewer(QWidget *parent) :
|
||||
FileViewerInterface(parent),
|
||||
ui(new Ui::TextHexDumpViewer)
|
||||
{
|
||||
m_file = Q_NULLPTR;
|
||||
ui->setupUi(this);
|
||||
m_offset = 0;
|
||||
|
||||
@ -72,6 +73,7 @@ QString TextHexDumpViewer::makeTextStr(QByteArray data)
|
||||
|
||||
void TextHexDumpViewer::setFile(GenericFile *file, quint16 offset)
|
||||
{
|
||||
m_file = file;
|
||||
m_offset = offset;
|
||||
QByteArray data = file->data();
|
||||
|
||||
@ -127,3 +129,48 @@ bool TextHexDumpViewer::optionsMenuItems(QMenu *menu)
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TextHexDumpViewer::canPrint() const { return true; }
|
||||
|
||||
void TextHexDumpViewer::doPrint()
|
||||
{
|
||||
QPrinter printer;
|
||||
|
||||
QPrintDialog dialog(&printer, this);
|
||||
dialog.setWindowTitle(tr("Print Text File Hex Dump"));
|
||||
if (ui->textArea->textCursor().hasSelection())
|
||||
dialog.addEnabledOption(QAbstractPrintDialog::PrintSelection);
|
||||
if (dialog.exec() != QDialog::Accepted) {
|
||||
return;
|
||||
}
|
||||
|
||||
ui->textArea->print(&printer);
|
||||
}
|
||||
|
||||
|
||||
bool TextHexDumpViewer::canExport() const { return true; }
|
||||
|
||||
void TextHexDumpViewer::doExport()
|
||||
{
|
||||
QString defaultPath = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation);
|
||||
QDir savename = QDir(defaultPath).filePath(m_file->filename()+".txt");
|
||||
|
||||
QString saveName = QFileDialog::getSaveFileName(this,
|
||||
tr("Export Text Hex Dump"), savename.path(), tr("Text Files (*.txt)"));
|
||||
|
||||
if (saveName == "") return; // User cancelled
|
||||
|
||||
qDebug() << "Set filename: " << saveName;
|
||||
|
||||
QFile saveFile(saveName);
|
||||
if (!saveFile.open(QIODevice::WriteOnly | QIODevice::Text))
|
||||
{
|
||||
QMessageBox::warning(this,"Save Error","Could not save "+saveName);
|
||||
return;
|
||||
}
|
||||
|
||||
QTextStream out(&saveFile);
|
||||
out << ui->textArea->document()->toPlainText();
|
||||
saveFile.close();
|
||||
}
|
||||
|
||||
|
@ -28,8 +28,14 @@ public:
|
||||
|
||||
virtual bool optionsMenuItems(QMenu *menu);
|
||||
|
||||
bool canPrint() const;
|
||||
bool canExport() const;
|
||||
|
||||
public slots:
|
||||
void toggleWordWrap(bool enabled);
|
||||
void doPrint();
|
||||
void doExport();
|
||||
|
||||
protected:
|
||||
QString makeTextStr(QByteArray data);
|
||||
QString makeHexStr(QByteArray data);
|
||||
@ -37,6 +43,8 @@ private:
|
||||
Ui::TextHexDumpViewer *ui;
|
||||
|
||||
quint16 m_offset;
|
||||
|
||||
GenericFile *m_file;
|
||||
};
|
||||
|
||||
#endif // TEXTHEXDUMPVIEWER_H
|
||||
|
@ -21,8 +21,6 @@ ViewerBase::ViewerBase(QWidget *parent) :
|
||||
QMainWindow(parent),
|
||||
ui(new Ui::ViewerBase)
|
||||
{
|
||||
// setMinimumWidth(1024);
|
||||
|
||||
m_stack = new QStackedWidget(this);
|
||||
ui->setupUi(this);
|
||||
|
||||
@ -31,6 +29,8 @@ ViewerBase::ViewerBase(QWidget *parent) :
|
||||
// setCentralWidget(scroller);
|
||||
// scroller->setWidget(m_stack);
|
||||
|
||||
|
||||
|
||||
setCentralWidget(m_stack);
|
||||
|
||||
m_toolbar = new QToolBar(this);
|
||||
@ -57,13 +57,13 @@ void ViewerBase::setFile(GenericFile *file)
|
||||
m_file = file;
|
||||
|
||||
QString descriptor;
|
||||
QString defaultDescriptor;
|
||||
QString defaultViewerDescriptor;
|
||||
|
||||
HexDumpViewer *hdv = new HexDumpViewer(0);
|
||||
hdv->setFile(file);
|
||||
descriptor = ("Hex Dump Viewer");
|
||||
addViewer(descriptor,hdv);
|
||||
defaultDescriptor = descriptor;
|
||||
defaultViewerDescriptor = descriptor;
|
||||
|
||||
if (dynamic_cast<ApplesoftFile*>(file))
|
||||
{
|
||||
@ -71,8 +71,7 @@ void ViewerBase::setFile(GenericFile *file)
|
||||
afv->setFile(file);
|
||||
descriptor="Applesoft File Viewer";
|
||||
addViewer(descriptor,afv);
|
||||
defaultDescriptor = descriptor;
|
||||
showViewer(descriptor);
|
||||
defaultViewerDescriptor = descriptor;
|
||||
}
|
||||
else if (dynamic_cast<BinaryFile*>(file))
|
||||
{
|
||||
@ -97,20 +96,20 @@ void ViewerBase::setFile(GenericFile *file)
|
||||
dv->setFile(bf);
|
||||
descriptor = "Disassembler Viewer";
|
||||
addViewer(descriptor,dv);
|
||||
defaultDescriptor = descriptor;
|
||||
defaultViewerDescriptor = descriptor;
|
||||
|
||||
if (bf->filename().toUpper().endsWith(".SET"))
|
||||
{
|
||||
defaultDescriptor ="HRCG Character Set Viewer";
|
||||
defaultViewerDescriptor ="HRCG Character Set Viewer";
|
||||
}
|
||||
if (bf->filename().toUpper().startsWith("MAZE"))
|
||||
{
|
||||
defaultDescriptor = "MissingRing Maze Viewer";
|
||||
defaultViewerDescriptor = "MissingRing Maze Viewer";
|
||||
}
|
||||
if ((bf->address() == 0x2000 || bf->address() == 0x4000)
|
||||
&& bf->length() == 0x2000)
|
||||
{
|
||||
defaultDescriptor = "HiRes Image Viewer";
|
||||
defaultViewerDescriptor = "HiRes Image Viewer";
|
||||
}
|
||||
|
||||
}
|
||||
@ -123,7 +122,7 @@ void ViewerBase::setFile(GenericFile *file)
|
||||
descriptor = QString("Text/Hex Dump Viewer");
|
||||
addViewer(descriptor,thdv);
|
||||
|
||||
defaultDescriptor = descriptor;
|
||||
defaultViewerDescriptor = descriptor;
|
||||
}
|
||||
else if (dynamic_cast<RelocatableFile*>(file))
|
||||
{
|
||||
@ -131,12 +130,11 @@ void ViewerBase::setFile(GenericFile *file)
|
||||
dv->setFile(file);
|
||||
descriptor = "Relocatable Disassembler Viewer";
|
||||
addViewer(descriptor,dv);
|
||||
defaultDescriptor = descriptor;
|
||||
defaultViewerDescriptor = descriptor;
|
||||
|
||||
}
|
||||
connect(m_viewercombo, SIGNAL(currentIndexChanged(QString)), SLOT(showViewer(QString)));
|
||||
showViewer(defaultDescriptor);
|
||||
|
||||
showViewer(defaultViewerDescriptor);
|
||||
}
|
||||
|
||||
void ViewerBase::closeEvent(QCloseEvent *event)
|
||||
@ -159,6 +157,14 @@ void ViewerBase::showViewer(QString descriptor)
|
||||
FileViewerInterface *fvi = m_viewers[descriptor];
|
||||
if (fvi)
|
||||
{
|
||||
ui->actionExport->disconnect(SIGNAL(triggered(bool)));
|
||||
ui->actionExport->setEnabled(fvi->canExport());
|
||||
connect(ui->actionExport, SIGNAL(triggered(bool)), fvi, SLOT(doExport()));
|
||||
|
||||
ui->action_Print->disconnect(SIGNAL(triggered(bool)));
|
||||
ui->action_Print->setEnabled(fvi->canPrint());
|
||||
connect(ui->action_Print, SIGNAL(triggered(bool)), fvi, SLOT(doPrint()));
|
||||
|
||||
m_optionMenu->clear();
|
||||
m_viewercombo->setCurrentText(descriptor);
|
||||
m_stack->setCurrentWidget(fvi);
|
||||
@ -178,7 +184,7 @@ void ViewerBase::showViewer(QString descriptor)
|
||||
}
|
||||
else
|
||||
{
|
||||
qDebug() << "Could not find widget for descriptor " << descriptor;
|
||||
qDebug() << "Could not find widget for descriptor" << descriptor;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -103,6 +103,8 @@ public:
|
||||
ColRow getColRowFromAppleAddress(quint16 address);
|
||||
ColRow getColRowFromRawAddress(quint16 address);
|
||||
|
||||
QPixmap getPixmap() const { return m_pixmap; }
|
||||
|
||||
signals:
|
||||
|
||||
public slots:
|
||||
|
@ -21,6 +21,7 @@ public slots:
|
||||
void calcFromNewHex(QString value);
|
||||
void calcFromNewUint8(QString value);
|
||||
void calcFromNewInt8(QString value);
|
||||
|
||||
protected slots:
|
||||
private:
|
||||
Ui::HexConverter *ui;
|
||||
|
Loading…
x
Reference in New Issue
Block a user