AppleSAWS/src/ui/diskexplorer/diskexplorer.h

109 lines
3.4 KiB
C++

#ifndef DISKEXPLORER_H
#define DISKEXPLORER_H
/*****************************************************************************
* AppleSAWS - The Apple Software Analysis WorkShop *
* Copyright (C) 2015-2021 Mark D. Long *
* *
* This program is free software: you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation, either version 3 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program. If not, see <https://www.gnu.org/licenses/>. *
*****************************************************************************/
#include <QMainWindow>
#include "catalogwidget.h"
#include "diskexplorermapwidget.h"
#include "dos33diskimage.h"
#include "hrcgcontrolsinfo.h"
#include "hexconverter.h"
#include "viewerbase.h"
#include "asciiinfodialog.h"
//#include "hexdumpviewer.h"
//#include "notesdialog.h"
#include "viewwidgetstack.h"
#include <QFrame>
#include <QTimer>
class DiskExplorer : public QMainWindow
{
Q_OBJECT
public:
explicit DiskExplorer(QWidget *parent = 0);
virtual ~DiskExplorer();
signals:
void diskFileLoading(QString filename, Dos33DiskImage *file);
void diskFileLoaded(QString filename, Dos33DiskImage *file);
void diskFileLoadFailed(QString filename, Dos33DiskImage *file);
void diskFileUnloading(Dos33DiskImage *file);
void diskFileUnloaded();
public slots:
void unloadDiskFile();
void loadDiskFile(QString filename);
void showLoadDialog(bool parentToThis = true);
private slots:
void handleShowSectorData(QByteArray data, int track, int sector, QVariant metadata);
void handleDiskItemSelectedDefaultOpen(Dos33DiskImage *disk, FileDescriptiveEntry fde);
void setDiskToolsVisible(bool visible);
void handleViewerClosing(ViewerBase *viewer);
protected:
void initUi();
void showEvent(QShowEvent *event);
void closeEvent(QCloseEvent *);
void resizeEvent(QResizeEvent *);
protected slots:
void doResize();
private:
QAction *m_setDiskToolsVisibleAction;
CatalogWidget *m_cw;
DiskExplorerMapWidget *m_demw;
QFrame *m_frame;
// HexDumpViewer *m_hdv;
ViewWidgetStack *m_vws;
QWidget *m_key;
QGridLayout *m_gridLayout;
QWidget *m_demwStatusWidget;
Dos33DiskImage *m_disk;
HRCGControlsInfo *m_hrcgDialog;
HexConverter *m_hexConverter;
AsciiInfoDialog *m_AsciiInfoDialog;
// NotesDialog *m_notesDialog;
QAction *m_action_Unload_Disk_Image;
int m_horizSizePref;
QList<ViewerBase*> m_viewerList;
bool m_toolsHidden;
};
#endif // DISKEXPLORER_H