mirror of
https://github.com/TomHarte/CLK.git
synced 2024-11-19 08:31:11 +00:00
Adds the ZX Spectrum to Qt's New... menu.
This commit is contained in:
parent
dd7419282d
commit
21b1dab4a5
@ -1,12 +1,14 @@
|
|||||||
|
#include "mainwindow.h"
|
||||||
|
#include "settings.h"
|
||||||
|
#include "timer.h"
|
||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QStandardPaths>
|
#include <QStandardPaths>
|
||||||
|
|
||||||
#include <QtWidgets>
|
#include <QtWidgets>
|
||||||
#include <QtGlobal>
|
#include <QtGlobal>
|
||||||
|
|
||||||
#include "mainwindow.h"
|
#include <cstdio>
|
||||||
#include "settings.h"
|
|
||||||
#include "timer.h"
|
|
||||||
|
|
||||||
#include "../../Numeric/CRC.hpp"
|
#include "../../Numeric/CRC.hpp"
|
||||||
|
|
||||||
@ -462,6 +464,11 @@ void MainWindow::launchMachine() {
|
|||||||
addZX8081Menu(settingsPrefix);
|
addZX8081Menu(settingsPrefix);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case Analyser::Machine::ZXSpectrum:
|
||||||
|
addDisplayMenu(settingsPrefix, "Composite", "", "S-Video", "SCART");
|
||||||
|
addEnhancementsMenu(settingsPrefix, true, false);
|
||||||
|
break;
|
||||||
|
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -599,7 +606,7 @@ void MainWindow::addZX8081Menu(const std::string &machinePrefix) {
|
|||||||
controlsMenu->addAction(startTapeAction);
|
controlsMenu->addAction(startTapeAction);
|
||||||
connect(startTapeAction, &QAction::triggered, this, [=] {
|
connect(startTapeAction, &QAction::triggered, this, [=] {
|
||||||
std::lock_guard lock_guard(machineMutex);
|
std::lock_guard lock_guard(machineMutex);
|
||||||
static_cast<ZX8081::Machine *>(machine->raw_pointer())->set_tape_is_playing(true);
|
static_cast<Sinclair::ZX8081::Machine *>(machine->raw_pointer())->set_tape_is_playing(true);
|
||||||
updateTapeControls();
|
updateTapeControls();
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -607,7 +614,7 @@ void MainWindow::addZX8081Menu(const std::string &machinePrefix) {
|
|||||||
controlsMenu->addAction(stopTapeAction);
|
controlsMenu->addAction(stopTapeAction);
|
||||||
connect(stopTapeAction, &QAction::triggered, this, [=] {
|
connect(stopTapeAction, &QAction::triggered, this, [=] {
|
||||||
std::lock_guard lock_guard(machineMutex);
|
std::lock_guard lock_guard(machineMutex);
|
||||||
static_cast<ZX8081::Machine *>(machine->raw_pointer())->set_tape_is_playing(false);
|
static_cast<Sinclair::ZX8081::Machine *>(machine->raw_pointer())->set_tape_is_playing(false);
|
||||||
updateTapeControls();
|
updateTapeControls();
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -620,7 +627,7 @@ void MainWindow::addZX8081Menu(const std::string &machinePrefix) {
|
|||||||
|
|
||||||
void MainWindow::updateTapeControls() {
|
void MainWindow::updateTapeControls() {
|
||||||
const bool startStopEnabled = !automaticTapeControlAction->isChecked();
|
const bool startStopEnabled = !automaticTapeControlAction->isChecked();
|
||||||
const bool isPlaying = static_cast<ZX8081::Machine *>(machine->raw_pointer())->get_tape_is_playing();
|
const bool isPlaying = static_cast<Sinclair::ZX8081::Machine *>(machine->raw_pointer())->get_tape_is_playing();
|
||||||
|
|
||||||
startTapeAction->setEnabled(!isPlaying && startStopEnabled);
|
startTapeAction->setEnabled(!isPlaying && startStopEnabled);
|
||||||
stopTapeAction->setEnabled(isPlaying && startStopEnabled);
|
stopTapeAction->setEnabled(isPlaying && startStopEnabled);
|
||||||
@ -1097,6 +1104,7 @@ void MainWindow::setButtonPressed(int index, bool isPressed) {
|
|||||||
#include "../../Analyser/Static/MSX/Target.hpp"
|
#include "../../Analyser/Static/MSX/Target.hpp"
|
||||||
#include "../../Analyser/Static/Oric/Target.hpp"
|
#include "../../Analyser/Static/Oric/Target.hpp"
|
||||||
#include "../../Analyser/Static/ZX8081/Target.hpp"
|
#include "../../Analyser/Static/ZX8081/Target.hpp"
|
||||||
|
#include "../../Analyser/Static/ZXSpectrum/Target.hpp"
|
||||||
|
|
||||||
void MainWindow::startMachine() {
|
void MainWindow::startMachine() {
|
||||||
const auto selectedTab = ui->machineSelectionTabs->currentWidget();
|
const auto selectedTab = ui->machineSelectionTabs->currentWidget();
|
||||||
@ -1115,6 +1123,7 @@ void MainWindow::startMachine() {
|
|||||||
TEST(macintosh);
|
TEST(macintosh);
|
||||||
TEST(msx);
|
TEST(msx);
|
||||||
TEST(oric);
|
TEST(oric);
|
||||||
|
TEST(spectrum);
|
||||||
TEST(vic20);
|
TEST(vic20);
|
||||||
TEST(zx80);
|
TEST(zx80);
|
||||||
TEST(zx81);
|
TEST(zx81);
|
||||||
@ -1245,6 +1254,18 @@ void MainWindow::start_oric() {
|
|||||||
launchTarget(std::move(target));
|
launchTarget(std::move(target));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MainWindow::start_spectrum() {
|
||||||
|
using Target = Analyser::Static::ZXSpectrum::Target;
|
||||||
|
auto target = std::make_unique<Target>();
|
||||||
|
|
||||||
|
switch(ui->oricModelComboBox->currentIndex()) {
|
||||||
|
default: target->model = Target::Model::Plus2a; break;
|
||||||
|
case 1: target->model = Target::Model::Plus3; break;
|
||||||
|
}
|
||||||
|
|
||||||
|
launchTarget(std::move(target));
|
||||||
|
}
|
||||||
|
|
||||||
void MainWindow::start_vic20() {
|
void MainWindow::start_vic20() {
|
||||||
using Target = Analyser::Static::Commodore::Target;
|
using Target = Analyser::Static::Commodore::Target;
|
||||||
auto target = std::make_unique<Target>();
|
auto target = std::make_unique<Target>();
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
#include "../../Activity/Observer.hpp"
|
#include "../../Activity/Observer.hpp"
|
||||||
|
|
||||||
// There are machine-specific controls for the following:
|
// There are machine-specific controls for the following:
|
||||||
#include "../../Machines/ZX8081/ZX8081.hpp"
|
#include "../../Machines/Sinclair/ZX8081/ZX8081.hpp"
|
||||||
#include "../../Machines/Atari/2600/Atari2600.hpp"
|
#include "../../Machines/Atari/2600/Atari2600.hpp"
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
@ -92,6 +92,7 @@ class MainWindow : public QMainWindow, public Outputs::Speaker::Speaker::Delegat
|
|||||||
void start_macintosh();
|
void start_macintosh();
|
||||||
void start_msx();
|
void start_msx();
|
||||||
void start_oric();
|
void start_oric();
|
||||||
|
void start_spectrum();
|
||||||
void start_vic20();
|
void start_vic20();
|
||||||
void start_zx80();
|
void start_zx80();
|
||||||
void start_zx81();
|
void start_zx81();
|
||||||
|
@ -533,6 +533,55 @@
|
|||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
|
<widget class="QWidget" name="spectrumTab">
|
||||||
|
<attribute name="title">
|
||||||
|
<string>Spectrum</string>
|
||||||
|
</attribute>
|
||||||
|
<layout class="QVBoxLayout" name="spectrumLayout">
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="spectrumHorizontalLayout">
|
||||||
|
<item>
|
||||||
|
<layout class="QFormLayout" name="spectrumFormLayout">
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="spectrumModelLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>Model:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QComboBox" name="spectrumModelComboBox">
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>+2a</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>+3</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="spectrumHSpacer">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
<widget class="QWidget" name="vic20Tab">
|
<widget class="QWidget" name="vic20Tab">
|
||||||
<attribute name="title">
|
<attribute name="title">
|
||||||
<string>Vic-20</string>
|
<string>Vic-20</string>
|
||||||
|
Loading…
Reference in New Issue
Block a user