mirror of
https://github.com/markdavidlong/AppleSAWS.git
synced 2024-12-21 22:29:30 +00:00
Hidden DiskExplorer at startup, Viewers close w/ main app exit.
This commit is contained in:
parent
dab8f1e7d4
commit
c3c80f9f1e
@ -10,6 +10,18 @@
|
|||||||
<height>560</height>
|
<height>560</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Minimum">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>16777215</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
<property name="font">
|
<property name="font">
|
||||||
<font>
|
<font>
|
||||||
<family>Courier 10 Pitch</family>
|
<family>Courier 10 Pitch</family>
|
||||||
|
@ -5,6 +5,8 @@
|
|||||||
#include <QAction>
|
#include <QAction>
|
||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
#include <QFileDialog>
|
#include <QFileDialog>
|
||||||
|
#include <QShowEvent>
|
||||||
|
#include <QDebug>
|
||||||
|
|
||||||
#include "genericfile.h"
|
#include "genericfile.h"
|
||||||
#include "viewerbase.h"
|
#include "viewerbase.h"
|
||||||
@ -13,10 +15,16 @@ DiskExplorer::DiskExplorer(QWidget *parent) : QMainWindow(parent)
|
|||||||
{
|
{
|
||||||
m_action_Unload_Disk_Image = 0;
|
m_action_Unload_Disk_Image = 0;
|
||||||
m_disk = 0;
|
m_disk = 0;
|
||||||
|
m_horizSizePref = -1;
|
||||||
|
|
||||||
|
resize(300,800);
|
||||||
initUi();
|
initUi();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DiskExplorer::~DiskExplorer()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
void DiskExplorer::initUi()
|
void DiskExplorer::initUi()
|
||||||
{
|
{
|
||||||
QMenuBar *menuBar = new QMenuBar(this);
|
QMenuBar *menuBar = new QMenuBar(this);
|
||||||
@ -33,6 +41,8 @@ void DiskExplorer::initUi()
|
|||||||
menu->addAction(m_action_Unload_Disk_Image);
|
menu->addAction(m_action_Unload_Disk_Image);
|
||||||
connect(m_action_Unload_Disk_Image, SIGNAL(triggered()), SLOT(unloadDiskFile()));
|
connect(m_action_Unload_Disk_Image, SIGNAL(triggered()), SLOT(unloadDiskFile()));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
menu->addSeparator();
|
menu->addSeparator();
|
||||||
|
|
||||||
QAction *action_Quit = new QAction(tr("&Quit"),this);
|
QAction *action_Quit = new QAction(tr("&Quit"),this);
|
||||||
@ -45,6 +55,16 @@ void DiskExplorer::initUi()
|
|||||||
QAction *action_Hex_Converter = new QAction(tr("&Hex Converter..."),this);
|
QAction *action_Hex_Converter = new QAction(tr("&Hex Converter..."),this);
|
||||||
menu->addAction(action_Hex_Converter);
|
menu->addAction(action_Hex_Converter);
|
||||||
|
|
||||||
|
menu->addSeparator();
|
||||||
|
|
||||||
|
m_setDiskToolsVisibleAction = new QAction(tr("Show &Disk tools"),this);
|
||||||
|
m_setDiskToolsVisibleAction->setCheckable(true);
|
||||||
|
m_setDiskToolsVisibleAction->setChecked(false);
|
||||||
|
connect(m_setDiskToolsVisibleAction, SIGNAL(toggled(bool)),
|
||||||
|
SLOT(setDiskToolsVisible(bool)));
|
||||||
|
menu->addAction(m_setDiskToolsVisibleAction);
|
||||||
|
|
||||||
|
|
||||||
menu = new QMenu(tr("&Misc"),this);
|
menu = new QMenu(tr("&Misc"),this);
|
||||||
menuBar->addMenu(menu);
|
menuBar->addMenu(menu);
|
||||||
|
|
||||||
@ -59,38 +79,40 @@ void DiskExplorer::initUi()
|
|||||||
connect(action_Hex_Converter, SIGNAL(triggered()), m_hexConverter, SLOT(show()));
|
connect(action_Hex_Converter, SIGNAL(triggered()), m_hexConverter, SLOT(show()));
|
||||||
|
|
||||||
|
|
||||||
QWidget *widget = new QWidget(this);
|
QWidget *widget = new QWidget(0);
|
||||||
this->setCentralWidget(widget);
|
m_gridLayout = new QGridLayout();
|
||||||
QGridLayout *layout = new QGridLayout();
|
m_gridLayout->setVerticalSpacing(4);
|
||||||
layout->setVerticalSpacing(4);
|
m_gridLayout->setHorizontalSpacing(4);
|
||||||
layout->setHorizontalSpacing(4);
|
widget->setLayout(m_gridLayout);
|
||||||
widget->setLayout(layout);
|
//m_gridLayout->setSizeConstraint(QLayout::SetFixedSize);
|
||||||
|
|
||||||
m_cw = new CatalogWidget(widget);
|
m_cw = new CatalogWidget(widget);
|
||||||
m_demw = new DiskExplorerMapWidget(35,16,widget);
|
m_demw = new DiskExplorerMapWidget(35,16,widget);
|
||||||
m_frame = new QFrame(widget);
|
m_frame = new QFrame(widget);
|
||||||
m_frame->setFrameStyle(QFrame::Raised);
|
m_frame->setFrameStyle(QFrame::Raised);
|
||||||
m_frame->setMinimumSize(200,200);
|
m_frame->setMinimumSize(200,200);
|
||||||
QGridLayout *frameLayout = new QGridLayout(this);
|
QGridLayout *frameLayout = new QGridLayout(0);
|
||||||
m_frame->setLayout(frameLayout);
|
m_frame->setLayout(frameLayout);
|
||||||
m_hdv = new HexDumpViewer(this);
|
m_hdv = new HexDumpViewer(this);
|
||||||
frameLayout->addWidget(m_hdv);
|
frameLayout->addWidget(m_hdv);
|
||||||
|
|
||||||
layout->setColumnStretch(0,4);
|
m_gridLayout->setColumnStretch(0,4);
|
||||||
layout->setColumnStretch(1,1);
|
m_gridLayout->setColumnStretch(1,1);
|
||||||
layout->setColumnStretch(2,4);
|
m_gridLayout->setColumnStretch(2,4);
|
||||||
|
|
||||||
layout->addWidget(m_cw,0,0,2,1);
|
|
||||||
layout->addWidget(m_demw,0,1,1,2);
|
|
||||||
layout->addWidget(m_demw->makeKeyWidget(),1,1);
|
|
||||||
layout->addWidget(m_frame,1,2);
|
|
||||||
|
|
||||||
|
m_gridLayout->addWidget(m_cw,0,0,2,1);
|
||||||
|
m_gridLayout->addWidget(m_demw,0,1,1,2);
|
||||||
|
m_key = m_demw->makeKeyWidget();
|
||||||
|
m_gridLayout->addWidget(m_key,1,1);
|
||||||
|
m_gridLayout->addWidget(m_frame,1,2);
|
||||||
|
this->setCentralWidget(widget);
|
||||||
|
|
||||||
connect(m_cw,SIGNAL(openWithDefaultViewer(DiskFile*,FileDescriptiveEntry)),
|
connect(m_cw,SIGNAL(openWithDefaultViewer(DiskFile*,FileDescriptiveEntry)),
|
||||||
SLOT(handleDiskItemSelectedDefaultOpen(DiskFile*,FileDescriptiveEntry)));
|
SLOT(handleDiskItemSelectedDefaultOpen(DiskFile*,FileDescriptiveEntry)));
|
||||||
|
|
||||||
connect(m_demw, SIGNAL(showSectorData(QByteArray,int,int,QVariant)),
|
connect(m_demw, SIGNAL(showSectorData(QByteArray,int,int,QVariant)),
|
||||||
SLOT(handleShowSectorData(QByteArray,int,int,QVariant)));
|
SLOT(handleShowSectorData(QByteArray,int,int,QVariant)));
|
||||||
|
|
||||||
|
setDiskToolsVisible(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -153,6 +175,68 @@ void DiskExplorer::handleDiskItemSelectedDefaultOpen(DiskFile *disk, FileDescrip
|
|||||||
file->setFilename(AppleString(fde.filename).printable().trimmed());
|
file->setFilename(AppleString(fde.filename).printable().trimmed());
|
||||||
|
|
||||||
ViewerBase *vb = new ViewerBase();
|
ViewerBase *vb = new ViewerBase();
|
||||||
|
qDebug() << "Adding viewer" << vb;
|
||||||
|
m_viewerList.append(vb);
|
||||||
|
connect(vb,SIGNAL(viewerClosing(ViewerBase*)), SLOT(handleViewerClosing(ViewerBase*)));
|
||||||
vb->setFile(file);
|
vb->setFile(file);
|
||||||
vb->show();
|
vb->show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DiskExplorer::setDiskToolsVisible(bool visible)
|
||||||
|
{
|
||||||
|
if (visible)
|
||||||
|
{
|
||||||
|
m_gridLayout->setColumnStretch(0,4);
|
||||||
|
m_gridLayout->setColumnStretch(1,1);
|
||||||
|
m_gridLayout->setColumnStretch(2,4);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_gridLayout->setColumnStretch(0,0);
|
||||||
|
m_gridLayout->setColumnStretch(1,0);
|
||||||
|
m_gridLayout->setColumnStretch(2,0);
|
||||||
|
}
|
||||||
|
|
||||||
|
m_demw->setVisible(visible);
|
||||||
|
m_frame->setVisible(visible);
|
||||||
|
m_hdv->setVisible(visible);
|
||||||
|
m_key->setVisible(visible);
|
||||||
|
|
||||||
|
if (!visible)
|
||||||
|
{
|
||||||
|
QTimer::singleShot(100, this, SLOT(doResize()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void DiskExplorer::handleViewerClosing(ViewerBase *viewer)
|
||||||
|
{
|
||||||
|
m_viewerList.removeAll(viewer);
|
||||||
|
}
|
||||||
|
|
||||||
|
void DiskExplorer::doResize()
|
||||||
|
{
|
||||||
|
resize(m_horizSizePref, this->height());
|
||||||
|
}
|
||||||
|
|
||||||
|
void DiskExplorer::showEvent(QShowEvent *event)
|
||||||
|
{
|
||||||
|
Q_UNUSED(event);
|
||||||
|
if (m_horizSizePref == -1)
|
||||||
|
{
|
||||||
|
m_horizSizePref = this->width();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void DiskExplorer::closeEvent(QCloseEvent *)
|
||||||
|
{
|
||||||
|
foreach (ViewerBase *viewer, m_viewerList)
|
||||||
|
{
|
||||||
|
if (viewer)
|
||||||
|
{
|
||||||
|
viewer->deleteLater();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -9,8 +9,10 @@
|
|||||||
#include "hrcgcontrolsinfo.h"
|
#include "hrcgcontrolsinfo.h"
|
||||||
#include "hexconverter.h"
|
#include "hexconverter.h"
|
||||||
#include "hexdumpviewer.h"
|
#include "hexdumpviewer.h"
|
||||||
|
#include "viewerbase.h"
|
||||||
|
|
||||||
#include <QFrame>
|
#include <QFrame>
|
||||||
|
#include <QTimer>
|
||||||
|
|
||||||
|
|
||||||
class DiskExplorer : public QMainWindow
|
class DiskExplorer : public QMainWindow
|
||||||
@ -18,6 +20,7 @@ class DiskExplorer : public QMainWindow
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit DiskExplorer(QWidget *parent = 0);
|
explicit DiskExplorer(QWidget *parent = 0);
|
||||||
|
virtual ~DiskExplorer();
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void diskFileLoading(QString filename, DiskFile *file);
|
void diskFileLoading(QString filename, DiskFile *file);
|
||||||
@ -35,15 +38,26 @@ private slots:
|
|||||||
void handleShowSectorData(QByteArray data, int track, int sector, QVariant metadata);
|
void handleShowSectorData(QByteArray data, int track, int sector, QVariant metadata);
|
||||||
void handleDiskItemSelectedDefaultOpen(DiskFile *disk, FileDescriptiveEntry fde);
|
void handleDiskItemSelectedDefaultOpen(DiskFile *disk, FileDescriptiveEntry fde);
|
||||||
|
|
||||||
|
void setDiskToolsVisible(bool visible);
|
||||||
|
|
||||||
|
void handleViewerClosing(ViewerBase *viewer);
|
||||||
protected:
|
protected:
|
||||||
void initUi();
|
void initUi();
|
||||||
|
|
||||||
|
void showEvent(QShowEvent *event);
|
||||||
|
void closeEvent(QCloseEvent *);
|
||||||
|
|
||||||
|
protected slots:
|
||||||
|
void doResize();
|
||||||
private:
|
private:
|
||||||
|
QAction *m_setDiskToolsVisibleAction;
|
||||||
|
|
||||||
CatalogWidget *m_cw;
|
CatalogWidget *m_cw;
|
||||||
DiskExplorerMapWidget *m_demw;
|
DiskExplorerMapWidget *m_demw;
|
||||||
QFrame *m_frame;
|
QFrame *m_frame;
|
||||||
HexDumpViewer *m_hdv;
|
HexDumpViewer *m_hdv;
|
||||||
|
QWidget *m_key;
|
||||||
|
QGridLayout *m_gridLayout;
|
||||||
|
|
||||||
DiskFile *m_disk;
|
DiskFile *m_disk;
|
||||||
|
|
||||||
@ -53,6 +67,9 @@ private:
|
|||||||
|
|
||||||
QAction *m_action_Unload_Disk_Image;
|
QAction *m_action_Unload_Disk_Image;
|
||||||
|
|
||||||
|
int m_horizSizePref;
|
||||||
|
|
||||||
|
QList<ViewerBase*> m_viewerList;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // DISKEXPLORER_H
|
#endif // DISKEXPLORER_H
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
#include "applesoftline.h"
|
#include "applesoftline.h"
|
||||||
#include "applesofttoken.h"
|
#include "applesofttoken.h"
|
||||||
|
#include <QDebug>
|
||||||
|
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
class ApplesoftFileDetailViewer;
|
class ApplesoftFileDetailViewer;
|
||||||
@ -18,7 +19,7 @@ public:
|
|||||||
~ApplesoftFileDetailViewer();
|
~ApplesoftFileDetailViewer();
|
||||||
|
|
||||||
void setLineData(QVector<ApplesoftLine> lineData);
|
void setLineData(QVector<ApplesoftLine> lineData);
|
||||||
|
void foo() { qDebug() << "AFDV::foo!"; }
|
||||||
private:
|
private:
|
||||||
void process();
|
void process();
|
||||||
|
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
#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>
|
||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
#include <QPrinter>
|
#include <QPrinter>
|
||||||
#include <QPrintDialog>
|
#include <QPrintDialog>
|
||||||
|
#include <QCloseEvent>
|
||||||
|
|
||||||
|
|
||||||
ApplesoftFileViewer::ApplesoftFileViewer(QWidget *parent) :
|
ApplesoftFileViewer::ApplesoftFileViewer(QWidget *parent) :
|
||||||
@ -13,6 +13,7 @@ ApplesoftFileViewer::ApplesoftFileViewer(QWidget *parent) :
|
|||||||
ui(new Ui::ApplesoftFileViewer)
|
ui(new Ui::ApplesoftFileViewer)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
m_afdv = Q_NULLPTR;
|
||||||
|
|
||||||
QSettings settings;
|
QSettings settings;
|
||||||
QString title = QString("AppleSoft Viewer");
|
QString title = QString("AppleSoft Viewer");
|
||||||
@ -46,6 +47,10 @@ ApplesoftFileViewer::ApplesoftFileViewer(QWidget *parent) :
|
|||||||
ApplesoftFileViewer::~ApplesoftFileViewer()
|
ApplesoftFileViewer::~ApplesoftFileViewer()
|
||||||
{
|
{
|
||||||
delete ui;
|
delete ui;
|
||||||
|
if (m_afdv)
|
||||||
|
{ m_afdv->foo();
|
||||||
|
delete m_afdv;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ApplesoftFileViewer::makeMenuOptions(QMenu *menu)
|
bool ApplesoftFileViewer::makeMenuOptions(QMenu *menu)
|
||||||
@ -283,10 +288,14 @@ void ApplesoftFileViewer::setText(QString text)
|
|||||||
|
|
||||||
void ApplesoftFileViewer::launchVarBrowser()
|
void ApplesoftFileViewer::launchVarBrowser()
|
||||||
{
|
{
|
||||||
ApplesoftFileDetailViewer *afdv = new ApplesoftFileDetailViewer();
|
if (!m_afdv)
|
||||||
|
{
|
||||||
afdv->setLineData(m_file->getLines());
|
m_afdv = new ApplesoftFileDetailViewer();
|
||||||
afdv->show();
|
qDebug() << "m_afdv = " << m_afdv;
|
||||||
|
m_afdv->setLineData(m_file->getLines());
|
||||||
|
m_afdv->setWindowTitle(QString("Variables - %1").arg(m_file->filename()));
|
||||||
|
}
|
||||||
|
m_afdv->show();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ApplesoftFileViewer::findText()
|
void ApplesoftFileViewer::findText()
|
||||||
|
@ -8,6 +8,8 @@
|
|||||||
#include "applesoftfile.h"
|
#include "applesoftfile.h"
|
||||||
#include "applesoftformatter.h"
|
#include "applesoftformatter.h"
|
||||||
#include "viewerbase.h"
|
#include "viewerbase.h"
|
||||||
|
#include "applesoftfiledetailviewer.h"
|
||||||
|
|
||||||
|
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
class ApplesoftFileViewer;
|
class ApplesoftFileViewer;
|
||||||
@ -27,8 +29,6 @@ public:
|
|||||||
ApplesoftFileViewer(QWidget *parent = 0);
|
ApplesoftFileViewer(QWidget *parent = 0);
|
||||||
~ApplesoftFileViewer();
|
~ApplesoftFileViewer();
|
||||||
|
|
||||||
// void setFormatter(ApplesoftFormatter *formatter);
|
|
||||||
|
|
||||||
virtual bool optionsMenuItems(QMenu *menu);
|
virtual bool optionsMenuItems(QMenu *menu);
|
||||||
|
|
||||||
virtual bool canPrint() const;
|
virtual bool canPrint() const;
|
||||||
@ -61,7 +61,7 @@ private:
|
|||||||
ApplesoftFormatter *m_formatter;
|
ApplesoftFormatter *m_formatter;
|
||||||
bool m_isFirstFind;
|
bool m_isFirstFind;
|
||||||
Ui::ApplesoftFileViewer *ui;
|
Ui::ApplesoftFileViewer *ui;
|
||||||
|
ApplesoftFileDetailViewer *m_afdv;
|
||||||
QAction *m_showIntsAction;
|
QAction *m_showIntsAction;
|
||||||
QAction *m_reindentCodeAction;
|
QAction *m_reindentCodeAction;
|
||||||
QAction *m_blankAfterReturnsAction;
|
QAction *m_blankAfterReturnsAction;
|
||||||
|
@ -21,16 +21,11 @@ ViewerBase::ViewerBase(QWidget *parent) :
|
|||||||
QMainWindow(parent),
|
QMainWindow(parent),
|
||||||
ui(new Ui::ViewerBase)
|
ui(new Ui::ViewerBase)
|
||||||
{
|
{
|
||||||
|
setAttribute(Qt::WA_DeleteOnClose);
|
||||||
|
|
||||||
m_stack = new QStackedWidget(this);
|
m_stack = new QStackedWidget(this);
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
|
||||||
// QScrollArea *scroller = new QScrollArea(this);
|
|
||||||
// scroller->setWidgetResizable(true);
|
|
||||||
// setCentralWidget(scroller);
|
|
||||||
// scroller->setWidget(m_stack);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
setCentralWidget(m_stack);
|
setCentralWidget(m_stack);
|
||||||
|
|
||||||
m_toolbar = new QToolBar(this);
|
m_toolbar = new QToolBar(this);
|
||||||
@ -49,6 +44,7 @@ ViewerBase::ViewerBase(QWidget *parent) :
|
|||||||
|
|
||||||
ViewerBase::~ViewerBase()
|
ViewerBase::~ViewerBase()
|
||||||
{
|
{
|
||||||
|
emit viewerClosing(this);
|
||||||
delete ui;
|
delete ui;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,6 +23,9 @@ public:
|
|||||||
|
|
||||||
void setFile(GenericFile *file);
|
void setFile(GenericFile *file);
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void viewerClosing(ViewerBase *me);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void showViewer(QString descriptor);
|
void showViewer(QString descriptor);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user