Added new docking support and viewer widgets for DiskExplorer

This commit is contained in:
mlong 2021-02-21 13:05:55 -06:00
parent cd782f52a9
commit c4badd2137
18 changed files with 298 additions and 54 deletions

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "ads"]
path = ads
url = https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System.git

View File

@ -6,6 +6,7 @@ MOC_DIR = ./.build
UI_DIR = ./.build UI_DIR = ./.build
OBJECTS_DIR = ./.build OBJECTS_DIR = ./.build
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = AppleSAWS TARGET = AppleSAWS
@ -32,6 +33,7 @@ INCLUDEPATH += src/sequence
INCLUDEPATH += src/ui/central INCLUDEPATH += src/ui/central
include(./ads.pri)
DEFINES += WS_VIDEO DEFINES += WS_VIDEO

1
ads Submodule

@ -0,0 +1 @@
Subproject commit 13853573ea51f9f0e682f7d005ca4443398512ae

68
ads.pri Normal file
View File

@ -0,0 +1,68 @@
DEFINES += QT_DEPRECATED_WARNINGS
DEFINES += ADS_STATIC
INCLUDEPATH += ads/src/
windows {
# MinGW
*-g++* {
QMAKE_CXXFLAGS += -Wall -Wextra -pedantic
}
# MSVC
*-msvc* {
QMAKE_CXXFLAGS += /utf-8
}
}
RESOURCES += ads/src/ads.qrc
HEADERS += \
ads/src/ads_globals.h \
ads/src/DockAreaWidget.h \
ads/src/DockAreaTabBar.h \
ads/src/DockContainerWidget.h \
ads/src/DockManager.h \
ads/src/DockWidget.h \
ads/src/DockWidgetTab.h \
ads/src/DockingStateReader.h \
ads/src/FloatingDockContainer.h \
ads/src/FloatingDragPreview.h \
ads/src/DockOverlay.h \
ads/src/DockSplitter.h \
ads/src/DockAreaTitleBar_p.h \
ads/src/DockAreaTitleBar.h \
ads/src/ElidingLabel.h \
ads/src/IconProvider.h \
ads/src/DockComponentsFactory.h \
ads/src/DockFocusController.h
SOURCES += \
ads/src/ads_globals.cpp \
ads/src/DockAreaWidget.cpp \
ads/src/DockAreaTabBar.cpp \
ads/src/DockContainerWidget.cpp \
ads/src/DockManager.cpp \
ads/src/DockWidget.cpp \
ads/src/DockingStateReader.cpp \
ads/src/DockWidgetTab.cpp \
ads/src/FloatingDockContainer.cpp \
ads/src/FloatingDragPreview.cpp \
ads/src/DockOverlay.cpp \
ads/src/DockSplitter.cpp \
ads/src/DockAreaTitleBar.cpp \
ads/src/ElidingLabel.cpp \
ads/src/IconProvider.cpp \
ads/src/DockComponentsFactory.cpp \
ads/src/DockFocusController.cpp
unix:!macx {
HEADERS += ads/src/linux/FloatingWidgetTitleBar.h
SOURCES += ads/src/linux/FloatingWidgetTitleBar.cpp
QT += x11extras
LIBS += -lxcb
}

View File

@ -1560,7 +1560,6 @@ QTabBar::tab:top {
padding-right: 4px; padding-right: 4px;
padding-top: 2px; padding-top: 2px;
padding-bottom: 2px; padding-bottom: 2px;
min-width: 5px;
border-bottom: 3px solid #32414B; border-bottom: 3px solid #32414B;
border-top-left-radius: 3px; border-top-left-radius: 3px;
border-top-right-radius: 3px; border-top-right-radius: 3px;
@ -2189,3 +2188,7 @@ DEButton {
outline: none; outline: none;
min-width: 10px; min-width: 10px;
} }
ads--CElidingLabel {
min-width: 80px;
}

View File

@ -36,10 +36,10 @@
#include <QStatusBar> #include <QStatusBar>
#include <QStackedWidget> #include <QStackedWidget>
#include <QScrollArea> #include <QScrollArea>
#include <QFile> #include <QFile>
using namespace ads;
CentralAppWindow::CentralAppWindow(QWidget *parent) : QMainWindow(parent) CentralAppWindow::CentralAppWindow(QWidget *parent) : QMainWindow(parent)
{ {
QFile f(":qdarkstyle/style.qss"); QFile f(":qdarkstyle/style.qss");
@ -50,25 +50,63 @@ CentralAppWindow::CentralAppWindow(QWidget *parent) : QMainWindow(parent)
else { else {
f.open(QFile::ReadOnly | QFile::Text); f.open(QFile::ReadOnly | QFile::Text);
QTextStream ts(&f); QTextStream ts(&f);
this->setStyleSheet(ts.readAll()); // this->setStyleSheet(ts.readAll());
this->setStyleSheet("font-family: \"Pr Number 3\"; font-size: 16px");
} }
initCentralWidget();
createActions(); createActions();
initMenuBar(); initMenuBar();
initToolBars(); initToolBars();
initDockWidgets(); initDockWidgets();
initStatusBar(); initStatusBar();
initCentralWidget();
} }
void CentralAppWindow::createActions() void CentralAppWindow::createActions()
{ {
m_quitAction = new QAction(QIcon(":/images/redblob.png"),tr("E&xit")); m_quitAction = new QAction(QIcon(":/images/redblob.png"),tr("&Quit"));
connect(m_quitAction, &QAction::triggered, connect(m_quitAction, &QAction::triggered,
qApp, &QApplication::quit); qApp, &QApplication::quit);
m_reference_action = new QAction(QIcon(":/images/redblob.png"),tr("&References"));
m_reference_action->setCheckable(true);
// connect(m_reference_action, &QAction::triggered,
// qApp, &QApplication::xxxxxx);
m_utils_action = new QAction(QIcon(":/images/redblob.png"),tr("&Utils"));
m_utils_action->setCheckable(true);
// connect(m_reference_action, &QAction::triggered,
// qApp, &QApplication::xxxxxx);
m_image_lib_action = new QAction(QIcon(":/images/redblob.png"),tr("&Disk Image\nLibrary"));
m_image_lib_action->setCheckable(true);
// connect(m_reference_action, &QAction::triggered,
// qApp, &QApplication::xxxxxx);
m_disk_explorer_action= new QAction(QIcon(":/images/redblob.png"),tr("Disk Image\n&Explorer"));
m_disk_explorer_action->setCheckable(true);
// connect(m_reference_action, &QAction::triggered,
// qApp, &QApplication::xxxxxx);
m_projects_action = new QAction(QIcon(":/images/redblob.png"),tr("&Projects"));
m_projects_action->setCheckable(true);
// connect(m_reference_action, &QAction::triggered,
// qApp, &QApplication::xxxxxx);
m_tool_action_group = new QActionGroup(this);
m_tool_action_group->addAction(m_reference_action);
m_tool_action_group->addAction(m_utils_action);
m_tool_action_group->addAction(m_image_lib_action);
m_tool_action_group->addAction(m_disk_explorer_action);
m_tool_action_group->addAction(m_projects_action);
m_tool_action_group->setExclusive(true);
m_disk_explorer_action->toggle();
} }
void CentralAppWindow::initMenuBar() void CentralAppWindow::initMenuBar()
{ {
auto filemenu = menuBar()->addMenu(tr("&File")); auto filemenu = menuBar()->addMenu(tr("&File"));
@ -87,34 +125,27 @@ void CentralAppWindow::initToolBars()
m_mainToolBar = new MainAppToolbar(this); m_mainToolBar = new MainAppToolbar(this);
m_mainToolBar->setIconSize(QSize(64,64)); m_mainToolBar->setIconSize(QSize(64,64));
m_mainToolBar->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); m_mainToolBar->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
m_mainToolBar->addAction(m_quitAction);
m_mainToolBar->setFont(QFont("Ariel",14)); m_mainToolBar->setFont(QFont("Ariel",14));
// m_mainToolBar->addAction(m_quitAction);
m_mainToolBar->addAction(m_reference_action);
m_mainToolBar->addAction(m_utils_action);
m_mainToolBar->addAction(m_image_lib_action);
m_mainToolBar->addAction(m_disk_explorer_action);
m_mainToolBar->addAction(m_projects_action);
addToolBar(Qt::LeftToolBarArea, m_mainToolBar); addToolBar(Qt::LeftToolBarArea, m_mainToolBar);
} }
void CentralAppWindow::initDockWidgets() void CentralAppWindow::initDockWidgets()
{ {
QDockWidget *container = new QDockWidget(this);
container->setMinimumWidth(200);
container->setFeatures(QDockWidget::DockWidgetMovable);
m_project_area = new QWidget(container);
m_project_area->setMinimumSize(300,200);
m_directory_area = new Dos33DiskTreeView(container); m_directory_area = new Dos33DiskTreeView();
m_directory_area->setFont(QFont("Pr Number 3", 12)); m_directory_area->setFont(QFont("Pr Number 3", 12));
m_directory_area->setMinimumSize(300,200); m_directory_area->setMinimumSize(300,200);
QSplitter *split = new QSplitter(container);
container->setWidget(split);
split->setOrientation(Qt::Vertical);
split->addWidget(m_directory_area);
split->addWidget(m_project_area);
split->setStretchFactor(0,1);
split->setStretchFactor(1,1);
split->setSizes(QList<int>({4000, 4000}));
Dos33DiskImage *img = new Dos33DiskImage("c:/develop/git/AppleSAWS/disk-images/ApplesoftToolkit.dsk"); Dos33DiskImage *img = new Dos33DiskImage("c:/develop/git/AppleSAWS/disk-images/ApplesoftToolkit.dsk");
@ -128,37 +159,73 @@ void CentralAppWindow::initDockWidgets()
model->addDiskImage(img); model->addDiskImage(img);
m_directory_area->setModel(model); m_directory_area->setModel(model);
addDockWidget(Qt::LeftDockWidgetArea,container);
auto DiskImageDockWidget = new CDockWidget("Disk Images");
DiskImageDockWidget->setWidget(m_directory_area);
DiskImageDockWidget->setMinimumSizeHintMode(CDockWidget::MinimumSizeHintFromDockWidget);
DiskImageDockWidget->resize(250, 150);
DiskImageDockWidget->setMinimumSize(200,150);
auto DiskImageWidgetArea = DockManager->addDockWidget(DockWidgetArea::LeftDockWidgetArea, DiskImageDockWidget);
//DockManager->addDockWidget(DockWidgetArea::BottomDockWidgetArea, TableDockWidget, TableArea);
// ui->menuView->addAction(TableDockWidget->toggleViewAction());
QDockWidget *stb = new QDockWidget(this);
stb->setMinimumWidth(200);
stb->setFeatures(QDockWidget::DockWidgetMovable);
// stb->setLayout(new QGridLayout());
m_toolbox = new SequenceToolBox(this); m_toolbox = new SequenceToolBox(this);
auto SequenceDockWidget = new CDockWidget("Sequences");
SequenceDockWidget->setWidget(m_toolbox);
SequenceDockWidget->setMinimumSizeHintMode(CDockWidget::MinimumSizeHintFromDockWidget);
SequenceDockWidget->resize(250, 150);
SequenceDockWidget->setMinimumSize(200,150);
auto SequenceWidgetArea = DockManager->addDockWidget(DockWidgetArea::RightDockWidgetArea, SequenceDockWidget);
addDockWidget(Qt::RightDockWidgetArea,stb);
} }
void CentralAppWindow::initCentralWidget() void CentralAppWindow::initCentralWidget()
{ {
CDockManager::setConfigFlag(CDockManager::OpaqueSplitterResize, true);
CDockManager::setConfigFlag(CDockManager::XmlCompressionEnabled, false);
CDockManager::setConfigFlag(CDockManager::FocusHighlighting, true);
CDockManager::setConfigFlag(CDockManager::TabCloseButtonIsToolButton, true);
DockManager = new CDockManager(this);
DockManager->setStyleSheet("");
m_central_stack = new QStackedWidget(this); m_central_stack = new QStackedWidget(this);
QScrollArea *sa = new QScrollArea(m_central_stack); QScrollArea *sa = new QScrollArea(m_central_stack);
sa->setWidgetResizable(true); sa->setWidgetResizable(true);
m_central_stack->addWidget(sa); m_central_stack->addWidget(sa);
setCentralWidget(m_central_stack); CentralDockWidget = new CDockWidget("CentralWidget");
CentralDockWidget->setWidget(m_central_stack);
// CentralDockWidget->setFeature(CDockWidget::NoTab,true);
m_central_dock_area = DockManager->setCentralWidget(CentralDockWidget);
Dos33DiskImage *img = new Dos33DiskImage("c:/develop/git/AppleSAWS/disk-images/ApplesoftToolkit.dsk"); Dos33DiskImage *img = new Dos33DiskImage("c:/develop/git/AppleSAWS/disk-images/ApplesoftToolkit.dsk");
auto dew = new DiskExplorerMapWidget(img->tracks(),img->sectorsPerTrack()); auto dew = new DiskExplorerMapWidget(img->tracks(),img->sectorsPerTrack());
dew->setDisk(img); dew->setDisk(img);
sa->setWidget(dew); sa->setWidget(dew);
// m_central_stack->addWidget(dew);
//new SequenceViewer() auto VWSDockWidget = new CDockWidget("Sector Contents");
VWSDockWidget->setWidget(dew->generateViewWidgetStack());
auto VWSWidgetArea = DockManager->addDockWidget(DockWidgetArea::BottomDockWidgetArea, VWSDockWidget);
auto KeyDockWidget = new CDockWidget("Key");
auto keywidget = dew->makeKeyWidget();
keywidget->setMaximumWidth(240);
KeyDockWidget->setWidget(keywidget);
KeyDockWidget->setMinimumSizeHintMode(CDockWidget::MinimumSizeHintFromDockWidget);
// KeyDockWidget->resize(250, 150);
// KeyDockWidget->setMinimumSize(200,150);
auto DiskImageWidgetArea =
DockManager->addDockWidget(DockWidgetArea::LeftDockWidgetArea, KeyDockWidget, m_central_dock_area);
} }

View File

@ -30,6 +30,12 @@ class QStatusBar;
class SequenceToolBox; class SequenceToolBox;
class QStackedWidget; class QStackedWidget;
#include "DockAreaWidget.h"
#include "DockWidget.h"
#include "DockManager.h"
#include <QActionGroup>
class CentralAppWindow : public QMainWindow class CentralAppWindow : public QMainWindow
{ {
Q_OBJECT Q_OBJECT
@ -47,6 +53,12 @@ private:
private: private:
QAction *m_quitAction; QAction *m_quitAction;
QAction *m_reference_action;
QAction *m_utils_action;
QAction *m_image_lib_action;
QAction *m_disk_explorer_action;
QAction *m_projects_action;
QActionGroup *m_tool_action_group;
MainAppToolbar *m_mainToolBar; MainAppToolbar *m_mainToolBar;
QTreeView *m_directory_area; QTreeView *m_directory_area;
@ -55,6 +67,10 @@ private:
SequenceToolBox *m_toolbox; SequenceToolBox *m_toolbox;
ads::CDockManager *DockManager;
ads::CDockWidget *CentralDockWidget;
ads::CDockAreaWidget *m_central_dock_area;
QStackedWidget *m_central_stack; QStackedWidget *m_central_stack;
}; };

View File

@ -134,7 +134,7 @@ void DiskExplorer::initUi()
// m_hdv = new HexDumpViewer(this, 10); // m_hdv = new HexDumpViewer(this, 10);
// frameLayout->addWidget(m_hdv); // frameLayout->addWidget(m_hdv);
m_vws = new ViewWidgetStack(this); m_vws = m_demw->generateViewWidgetStack(); // new ViewWidgetStack(this);
frameLayout->addWidget(m_vws); frameLayout->addWidget(m_vws);
m_gridLayout->setColumnStretch(0,4); m_gridLayout->setColumnStretch(0,4);
@ -155,8 +155,8 @@ void DiskExplorer::initUi()
connect(m_cw, &CatalogWidget::openWithDefaultViewer, connect(m_cw, &CatalogWidget::openWithDefaultViewer,
this, &DiskExplorer::handleDiskItemSelectedDefaultOpen); this, &DiskExplorer::handleDiskItemSelectedDefaultOpen);
connect(m_demw, &DiskExplorerMapWidget::showSectorData, // connect(m_demw, &DiskExplorerMapWidget::showSectorData,
this, &DiskExplorer::handleShowSectorData); // this, &DiskExplorer::handleShowSectorData);
QStatusBar *statusBar = new QStatusBar(this); QStatusBar *statusBar = new QStatusBar(this);
setStatusBar(statusBar); setStatusBar(statusBar);
@ -179,6 +179,8 @@ void DiskExplorer::unloadDiskFile()
} }
} }
void DiskExplorer::loadDiskFile(QString filename) void DiskExplorer::loadDiskFile(QString filename)
{ {
if (m_disk) { if (m_disk) {
@ -202,6 +204,7 @@ void DiskExplorer::loadDiskFile(QString filename)
void DiskExplorer::handleShowSectorData(QByteArray /*data*/, int track, int sector, QVariant metadata) void DiskExplorer::handleShowSectorData(QByteArray /*data*/, int track, int sector, QVariant metadata)
{ {
return;
ViewWidgetStack::PreferredViewer viewer = ViewWidgetStack::PreferredViewer viewer =
ViewWidgetStack::PreferredViewer::DontCare; ViewWidgetStack::PreferredViewer::DontCare;

View File

@ -65,6 +65,7 @@ private slots:
void setDiskToolsVisible(bool visible); void setDiskToolsVisible(bool visible);
void handleViewerClosing(ViewerBase *viewer); void handleViewerClosing(ViewerBase *viewer);
protected: protected:
void initUi(); void initUi();

View File

@ -157,6 +157,8 @@ void DiskExplorerMapWidget::handleButtonCheck(int track, int sector, bool checke
Sector sec = m_disk->getSector(track,sector); Sector sec = m_disk->getSector(track,sector);
QByteArray *data = sec.rawData(); QByteArray *data = sec.rawData();
emit showSectorData(*data,track,sector,QVariant((int) m_roles[TSPair(track,sector)])); emit showSectorData(*data,track,sector,QVariant((int) m_roles[TSPair(track,sector)]));
emit showSector(&sec,track,sector,m_roles[TSPair(track,sector)]);
m_trackSectorLabel->setText( m_trackSectorLabel->setText(
QString("Track: %1 Sector: %2 (%3)") QString("Track: %1 Sector: %2 (%3)")
.arg(track) .arg(track)
@ -165,6 +167,8 @@ void DiskExplorerMapWidget::handleButtonCheck(int track, int sector, bool checke
} }
else{ else{
emit showSectorData(QByteArray(),-1,-1,QVariant(-1)); emit showSectorData(QByteArray(),-1,-1,QVariant(-1));
emit showSector(nullptr, -1, -1, DiskSectorRole::Unknown);
m_trackSectorLabel->setText("No Track/Sector selected"); m_trackSectorLabel->setText("No Track/Sector selected");
} }
@ -249,7 +253,7 @@ QGroupBox *DiskExplorerMapWidget::makeKeyWidget()
{ {
int idx = 0; int idx = 0;
QGroupBox *groupbox= new QGroupBox(); QGroupBox *groupbox= new QGroupBox();
groupbox->setTitle("Key"); //groupbox->setTitle("Key");
QGridLayout *layout = new QGridLayout(); QGridLayout *layout = new QGridLayout();
layout->setVerticalSpacing(0); layout->setVerticalSpacing(0);
layout->setHorizontalSpacing(0); layout->setHorizontalSpacing(0);
@ -273,6 +277,15 @@ QGroupBox *DiskExplorerMapWidget::makeKeyWidget()
return groupbox; return groupbox;
} }
ViewWidgetStack *DiskExplorerMapWidget::generateViewWidgetStack()
{
ViewWidgetStack *vws = new ViewWidgetStack();
vws->setSector(nullptr);
connect(this, &DiskExplorerMapWidget::showSector,
vws, &ViewWidgetStack::handleShowSectorData);
return vws;
}
DEButton *DiskExplorerMapWidget::buttonAt(int track, int sector) DEButton *DiskExplorerMapWidget::buttonAt(int track, int sector)
{ {
//qDebug() << "Button At:" << track << "," << sector; //qDebug() << "Button At:" << track << "," << sector;

View File

@ -20,6 +20,7 @@
*****************************************************************************/ *****************************************************************************/
#include "dos33diskimage.h" #include "dos33diskimage.h"
#include "viewwidgetstack.h"
#include <QWidget> #include <QWidget>
#include <QPair> #include <QPair>
@ -30,6 +31,7 @@
#include <QLabel> #include <QLabel>
#include <QToolButton> #include <QToolButton>
class DEButton : public QToolButton class DEButton : public QToolButton
{ {
Q_OBJECT Q_OBJECT
@ -112,7 +114,8 @@ private:
"} " "} "
" " " "
"DEButton:checked { " "DEButton:checked { "
" font: bold italic 11px; " // " font: bold italic 11px; "
" font: bold 11px; "
"}" "}"
).arg(m_fgColor) ).arg(m_fgColor)
.arg(m_backgroundColor); .arg(m_backgroundColor);
@ -168,9 +171,12 @@ public:
QGroupBox *makeKeyWidget(); QGroupBox *makeKeyWidget();
QWidget *getStatusWidget() const { return m_statusWidget; } QWidget *getStatusWidget() const { return m_statusWidget; }
ViewWidgetStack *generateViewWidgetStack();
signals: signals:
void showSectorData(QByteArray data, int track, int sector, QVariant metadata); void showSectorData(QByteArray data, int track, int sector, QVariant metadata);
void showSector(Sector *sec, int track, int sector, DiskSectorRole role);
public slots: public slots:
void handleButtonCheck(int track, int sector, bool checked); void handleButtonCheck(int track, int sector, bool checked);
@ -206,6 +212,8 @@ protected:
int &buttonNumber, int &tslCount); int &buttonNumber, int &tslCount);
DiskSectorRole getFileTypeFromID(QString id); DiskSectorRole getFileTypeFromID(QString id);
void checkForUsedButUnknown(TSPair vtoc = TSPair(17,0)); void checkForUsedButUnknown(TSPair vtoc = TSPair(17,0));
private: private:
QMap<int, QMap<int,DEButton*> > m_buttons; QMap<int, QMap<int,DEButton*> > m_buttons;

View File

@ -21,6 +21,7 @@
#include "vtocview.h" #include "vtocview.h"
#include "catalogsectorview.h" #include "catalogsectorview.h"
#include "tslistview.h" #include "tslistview.h"
#include "DiskExplorerMapWidget.h"
ViewWidgetStack::ViewWidgetStack(QWidget *parent) : QTabWidget(parent) ViewWidgetStack::ViewWidgetStack(QWidget *parent) : QTabWidget(parent)
{ {
@ -77,3 +78,34 @@ void ViewWidgetStack::makeWidgets()
setCurrentWidget(m_hdv); setCurrentWidget(m_hdv);
} }
void ViewWidgetStack::handleShowSectorData(Sector *data, int track,
int sector, DiskSectorRole role)
{
ViewWidgetStack::PreferredViewer viewer =
ViewWidgetStack::PreferredViewer::DontCare;
bool USE_SPECIFIC_VIEWER = true; // Hook for later allowing the disuse of
if (USE_SPECIFIC_VIEWER) // default viewer switching
{
if (role == DiskSectorRole::VTOC)
{
viewer = ViewWidgetStack::PreferredViewer::VTOC;
}
else if (role == DiskSectorRole::CatalogSector)
{
viewer = ViewWidgetStack::PreferredViewer::CatalogSector;
}
else if (role == DiskSectorRole::TSList)
{
viewer = ViewWidgetStack::PreferredViewer::TSList;
}
else
{
viewer = ViewWidgetStack::PreferredViewer::HexDump;
}
}
setSector(data, viewer);
}

View File

@ -28,6 +28,7 @@ class HexDumpViewer;
class VTOCView; class VTOCView;
class CatalogSectorView; class CatalogSectorView;
class TSListView; class TSListView;
enum class DiskSectorRole;
class ViewWidgetStack : public QTabWidget class ViewWidgetStack : public QTabWidget
{ {
@ -48,6 +49,10 @@ public:
public slots: public slots:
void setSector(Sector *sec, PreferredViewer viewer = PreferredViewer::DontCare); void setSector(Sector *sec, PreferredViewer viewer = PreferredViewer::DontCare);
void handleShowSectorData(Sector *data, int track, int sector, DiskSectorRole role);
private: private:
void makeWidgets(); void makeWidgets();

View File

@ -52,7 +52,8 @@ void VTOCView::setSector(Sector *sec)
ui->m_lastAllocTrackLabel->setText(QString("%1").arg(v.lastTrackAllocated())); ui->m_lastAllocTrackLabel->setText(QString("%1").arg(v.lastTrackAllocated()));
ui->m_allocDirLabel->setText(QString("%1").arg(v.directionOfAllocation())); ui->m_allocDirLabel->setText(QString("%1 %2").arg(v.directionOfAllocation())
.arg((v.directionOfAllocation()>0)?"==>":"<=="));
ui->m_tracksPerDiskLabel->setText(QString("%1").arg(v.tracksPerDisk())); ui->m_tracksPerDiskLabel->setText(QString("%1").arg(v.tracksPerDisk()));
@ -90,7 +91,7 @@ void VTOCView::setSector(Sector *sec)
ui->m_usageTextBrowser->setText(""); ui->m_usageTextBrowser->setText("");
ui->m_usageTextBrowser->setWordWrapMode(QTextOption::NoWrap); ui->m_usageTextBrowser->setWordWrapMode(QTextOption::NoWrap);
auto format = ui->m_usageTextBrowser->currentCharFormat(); auto format = ui->m_usageTextBrowser->currentCharFormat();
format.setFont(QFont("courier new",6)); // format.setFont(QFont("courier new"/*,6*/));
ui->m_usageTextBrowser->setCurrentCharFormat(format); ui->m_usageTextBrowser->setCurrentCharFormat(format);
ui->m_usageTextBrowser->insertPlainText(usage); ui->m_usageTextBrowser->insertPlainText(usage);
@ -115,8 +116,3 @@ void VTOCView::setSector(Sector *sec)
} }
QString VTOCView::makeUsage()
{
return QString();
}

View File

@ -39,8 +39,6 @@ public:
void setSector(Sector *sec); void setSector(Sector *sec);
protected:
QString makeUsage();
private: private:
Ui::VTOCView *ui; Ui::VTOCView *ui;

View File

@ -19,7 +19,7 @@
<property name="orientation"> <property name="orientation">
<enum>Qt::Horizontal</enum> <enum>Qt::Horizontal</enum>
</property> </property>
<widget class="QWidget" name=""> <widget class="QWidget" name="layoutWidget">
<layout class="QFormLayout" name="formLayout"> <layout class="QFormLayout" name="formLayout">
<item row="1" column="0"> <item row="1" column="0">
<widget class="QLabel" name="labelx"> <widget class="QLabel" name="labelx">
@ -105,28 +105,28 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="8" column="0"> <item row="9" column="0">
<widget class="QLabel" name="label_12"> <widget class="QLabel" name="label_12">
<property name="text"> <property name="text">
<string>Sectors/Track</string> <string>Sectors/Track</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="8" column="1"> <item row="9" column="1">
<widget class="QLabel" name="m_sectorsPerTrackLabel"> <widget class="QLabel" name="m_sectorsPerTrackLabel">
<property name="text"> <property name="text">
<string>--</string> <string>--</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="9" column="0"> <item row="10" column="0">
<widget class="QLabel" name="label_14"> <widget class="QLabel" name="label_14">
<property name="text"> <property name="text">
<string>Bytes/Sector</string> <string>Bytes/Sector</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="9" column="1"> <item row="10" column="1">
<widget class="QLabel" name="m_bytesPerSectorLabel"> <widget class="QLabel" name="m_bytesPerSectorLabel">
<property name="text"> <property name="text">
<string>--</string> <string>--</string>
@ -160,9 +160,35 @@
</property> </property>
</spacer> </spacer>
</item> </item>
<item row="8" column="1">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="11" column="0">
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout> </layout>
</widget> </widget>
<widget class="QWidget" name=""> <widget class="QWidget" name="layoutWidget">
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QVBoxLayout" name="verticalLayout">
<item> <item>
<widget class="QLabel" name="label_16"> <widget class="QLabel" name="label_16">

View File

@ -19,8 +19,6 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * * along with this program. If not, see <https://www.gnu.org/licenses/>. *
*****************************************************************************/ *****************************************************************************/
#include "genericfile.h" #include "genericfile.h"
#include "fileviewerinterface.h" #include "fileviewerinterface.h"
@ -57,6 +55,7 @@ public slots:
protected: protected:
void setTextFont(const QFont &font, int forcedFontSize = -1); void setTextFont(const QFont &font, int forcedFontSize = -1);
private: private:
void setText(QString text); void setText(QString text);
void setData(QByteArray data); void setData(QByteArray data);

View File

@ -30,6 +30,9 @@
<pointsize>10</pointsize> <pointsize>10</pointsize>
</font> </font>
</property> </property>
<property name="lineWrapMode">
<enum>QTextEdit::NoWrap</enum>
</property>
</widget> </widget>
</item> </item>
</layout> </layout>