diff --git a/AppleSAWS.pro b/AppleSAWS.pro index ee35835..30726a3 100644 --- a/AppleSAWS.pro +++ b/AppleSAWS.pro @@ -55,7 +55,6 @@ SOURCES += \ src/ui/widgets/characterwidget.cpp \ src/ui/viewers/applesoftfiledetailviewer.cpp \ src/ui/widgets/hexconverter.cpp \ - src/ui/widgets/hrcgcontrolsinfo.cpp \ src/ui/viewers/viewerbase.cpp \ src/ui/viewers/fileviewerinterface.cpp diff --git a/src/ui/viewers/applesoftfileviewer.cxx b/src/ui/viewers/applesoftfileviewer.cxx index e14323f..84050e3 100644 --- a/src/ui/viewers/applesoftfileviewer.cxx +++ b/src/ui/viewers/applesoftfileviewer.cxx @@ -34,9 +34,6 @@ ApplesoftFileViewer::~ApplesoftFileViewer() bool ApplesoftFileViewer::makeMenuOptions(QMenu *menu) { - qDebug() << "makeMenuOptions()"; - - QSettings settings; QAction *action = new QAction("Show &Ints as Hex",menu); @@ -67,7 +64,6 @@ bool ApplesoftFileViewer::makeMenuOptions(QMenu *menu) bool ApplesoftFileViewer::optionsMenuItems(QMenu *menu) { - qDebug() << "AFV::optionMenuItems()"; return makeMenuOptions(menu); } diff --git a/src/ui/viewers/charsetviewer.cpp b/src/ui/viewers/charsetviewer.cpp index 04950f2..3faa1cd 100644 --- a/src/ui/viewers/charsetviewer.cpp +++ b/src/ui/viewers/charsetviewer.cpp @@ -1,6 +1,8 @@ #include "charsetviewer.h" #include - +#include +#include +#include CharSetViewer::CharSetViewer(QWidget *parent) : FileViewerInterface(parent) { @@ -52,3 +54,84 @@ void CharSetViewer::setFile(BinaryFile *file) } } } + +bool CharSetViewer::optionsMenuItems(QMenu *menu) +{ + QSettings settings; + + QAction *action = new QAction("Show &Grid",menu); + action->setCheckable(true); + action->setChecked(settings.value("CharSetViewer.ShowGrid",true).toBool()); + showGrid(settings.value("CharSetViewer.ShowGrid",true).toBool()); + connect(action, SIGNAL(toggled(bool)),SLOT(showGrid(bool))); + menu->addAction(action); + + action = new QAction("&Enable Bit Shift",menu); + action->setCheckable(true); + action->setChecked(settings.value("CharSetViewer.EnableBitShift",true).toBool()); + enableBitShift(settings.value("CharSetViewer.EnableBitShift",true).toBool()); + connect(action, SIGNAL(toggled(bool)),SLOT(enableBitShift(bool))); + menu->addAction(action); + + return true; +} + + +QList CharSetViewer::getChildren() +{ + QList retval; + foreach (QObject *child, children()) + { + if (dynamic_cast(child)) + { + retval.append(dynamic_cast(child)); + } + } + return retval; +} + +void CharSetViewer::setFgColor(QColor color) +{ + foreach (auto child, getChildren()) + { + child->setFgColor(color); + } +} + +void CharSetViewer::setBgColor(QColor color) +{ + foreach (auto child, getChildren()) + { + child->setBgColor(color); + } +} + +void CharSetViewer::setGridColor(QColor color) +{ + foreach (auto child, getChildren()) + { + child->setGridColor(color); + } +} + +void CharSetViewer::showGrid(bool show) +{ + QSettings settings; + settings.setValue("CharSetViewer.ShowGrid",show); + + foreach (auto child, getChildren()) + { + child->showGrid(show); + } +} + +void CharSetViewer::enableBitShift(bool enable) +{ + QSettings settings; + settings.setValue("CharSetViewer.EnableBitShift",enable); + + foreach (auto child, getChildren()) + { + child->enableBitShift(enable); + } +} diff --git a/src/ui/viewers/charsetviewer.h b/src/ui/viewers/charsetviewer.h index 394488d..3674afa 100644 --- a/src/ui/viewers/charsetviewer.h +++ b/src/ui/viewers/charsetviewer.h @@ -16,10 +16,22 @@ public: void setFile(GenericFile *file); void setFile(BinaryFile *file); - virtual bool optionsMenuItems(QMenu *) { return false; } + virtual bool optionsMenuItems(QMenu *menu); + +public slots: + void setFgColor(QColor color); + void setBgColor(QColor color); + void setGridColor(QColor color); + + void showGrid(bool show); + void enableBitShift(bool enable); + signals: +protected: + QList getChildren(); + private: BinaryFile *m_file; diff --git a/src/ui/viewers/hiresviewwidget.cxx b/src/ui/viewers/hiresviewwidget.cxx index 638727d..aa347b0 100644 --- a/src/ui/viewers/hiresviewwidget.cxx +++ b/src/ui/viewers/hiresviewwidget.cxx @@ -5,6 +5,7 @@ #include #include #include +#include #include @@ -13,8 +14,9 @@ HiresViewWidget::HiresViewWidget(QWidget *parent) : FileViewerInterface(parent) { resize(561,384); - m_viewMode = Color2; - m_showScanLines = true; + QSettings settings; + m_viewMode = static_cast(settings.value("HiresViewWidget.ViewMode",Color2).toInt()); + m_showScanLines = settings.value("HiresViewWidget.ShowScanLines",true).toBool(); if (m_rowTable == 0) { makeOffsetTable(); } @@ -42,7 +44,8 @@ HiresViewWidget::HiresViewWidget(QWidget *parent) : showScanLinesAction = new QAction("Show Scan Lines",this); showScanLinesAction->setCheckable(true); - showScanLinesAction->setChecked(true); + showScanLinesAction->setChecked(m_showScanLines); + connect(ntscAction, SIGNAL(toggled(bool)), this, SLOT(handleNtscAction(bool))); connect(monochromeAction, SIGNAL(toggled(bool)), this, SLOT(handleMonochromeAction(bool))); @@ -57,6 +60,8 @@ void HiresViewWidget::handleNtscAction(bool toggled) { m_viewMode = Color2; update(); } + QSettings settings; + settings.setValue("HiresViewWidget.ViewMode",m_viewMode); } void HiresViewWidget::handleMonochromeAction(bool toggled) { @@ -64,6 +69,8 @@ void HiresViewWidget::handleMonochromeAction(bool toggled) { m_viewMode = Monochrome; update(); } + QSettings settings; + settings.setValue("HiresViewWidget.ViewMode",m_viewMode); } void HiresViewWidget::handlePerPixelColorAction(bool toggled) { @@ -71,11 +78,15 @@ void HiresViewWidget::handlePerPixelColorAction(bool toggled) { m_viewMode = Color1; update(); } + QSettings settings; + settings.setValue("HiresViewWidget.ViewMode",m_viewMode); } void HiresViewWidget::handleShowScanLinesAction(bool toggled) { m_showScanLines = toggled; update(); + QSettings settings; + settings.setValue("HiresViewWidget.ShowScanLines",toggled); } void HiresViewWidget::paintEvent(QPaintEvent *event) @@ -511,6 +522,16 @@ void HiresViewWidget::contextMenuEvent(QContextMenuEvent *event) { menu.exec(event->globalPos()); } +bool HiresViewWidget::optionsMenuItems(QMenu *menu) +{ + menu->addAction(monochromeAction); + menu->addAction(ntscAction); + menu->addAction(perPixelColorAction); + menu->addSeparator(); + menu->addAction(showScanLinesAction); + return true; +} + void HiresViewWidget::setFile(GenericFile *file) { BinaryFile *af = dynamic_cast(file); diff --git a/src/ui/viewers/hiresviewwidget.h b/src/ui/viewers/hiresviewwidget.h index b5a66d8..4f0ce20 100644 --- a/src/ui/viewers/hiresviewwidget.h +++ b/src/ui/viewers/hiresviewwidget.h @@ -51,7 +51,7 @@ public: static QBitArray byteToBits(quint8 byte); void contextMenuEvent(QContextMenuEvent *); - virtual bool optionsMenuItems(QMenu *) { return false; } + virtual bool optionsMenuItems(QMenu *); signals: @@ -67,6 +67,7 @@ protected slots: void handleMonochromeAction(bool toggled); void handlePerPixelColorAction(bool toggled); void handleShowScanLinesAction(bool toggled); + private: QPixmap m_pixmap; QByteArray m_data; diff --git a/src/ui/viewers/viewerbase.cpp b/src/ui/viewers/viewerbase.cpp index 2ae7def..f55764e 100644 --- a/src/ui/viewers/viewerbase.cpp +++ b/src/ui/viewers/viewerbase.cpp @@ -20,7 +20,8 @@ ViewerBase::ViewerBase(QWidget *parent) : QMainWindow(parent), ui(new Ui::ViewerBase) { - setMinimumWidth(1024); + // setMinimumWidth(1024); + m_stack = new QStackedWidget(this); ui->setupUi(this); setCentralWidget(m_stack); @@ -37,7 +38,6 @@ ViewerBase::ViewerBase(QWidget *parent) : m_optionMenu = new QMenu("&Viewer"); menuBar()->addMenu(m_optionMenu); m_optionMenu->setEnabled(false); - } ViewerBase::~ViewerBase() @@ -135,7 +135,6 @@ void ViewerBase::addViewer(QString descriptor, FileViewerInterface *viewer) void ViewerBase::showViewer(QString descriptor) { - qDebug() << "showViewer"; FileViewerInterface *fvi = m_viewers[descriptor]; if (fvi) { diff --git a/src/ui/widgets/hrcgcontrolsinfo.cpp b/src/ui/widgets/hrcgcontrolsinfo.cpp deleted file mode 100644 index 2223a71..0000000 --- a/src/ui/widgets/hrcgcontrolsinfo.cpp +++ /dev/null @@ -1,15 +0,0 @@ -#include "hrcgcontrolsinfo.h" -#include "ui_hrcgcontrolsinfo.h" - -HRCGControlsInfo::HRCGControlsInfo(QWidget *parent) : - QDialog(parent), - ui(new Ui::HRCGControlsInfo) -{ - ui->setupUi(this); - ui->tableWidget->resizeColumnsToContents(); -} - -HRCGControlsInfo::~HRCGControlsInfo() -{ - delete ui; -} diff --git a/src/ui/widgets/hrcgcontrolsinfo.h b/src/ui/widgets/hrcgcontrolsinfo.h index b56b963..a29a98d 100644 --- a/src/ui/widgets/hrcgcontrolsinfo.h +++ b/src/ui/widgets/hrcgcontrolsinfo.h @@ -2,6 +2,8 @@ #define HRCGCONTROLSINFO_H #include +#include "ui_hrcgcontrolsinfo.h" + namespace Ui { class HRCGControlsInfo; @@ -12,8 +14,17 @@ class HRCGControlsInfo : public QDialog Q_OBJECT public: - explicit HRCGControlsInfo(QWidget *parent = 0); - ~HRCGControlsInfo(); + explicit HRCGControlsInfo(QWidget *parent = 0) : + QDialog(parent), + ui(new Ui::HRCGControlsInfo) + { + ui->setupUi(this); + ui->tableWidget->resizeColumnsToContents(); + } + ~HRCGControlsInfo() + { + delete ui; + } private: Ui::HRCGControlsInfo *ui;