2 // modelsbiostab.cpp: Models & Bios tab on the settings dialog
4 // Part of the Virtual Jaguar Project
5 /// See the README and GPLv3 files for licensing and warranty information
7 // JPM = Jean-Paul Mari <djipi.mari@gmail.com>
10 // --- ---------- ------------------------------------------------------------
11 // JPM 09/03/2018 Created this file
14 #include "configdialog.h"
15 #include "modelsbiostab.h"
20 ModelsBiosTab::ModelsBiosTab(QWidget
* parent
/*= 0*/): QWidget(parent
),
21 listJaguarModel(new QComboBox()),
22 listRetailBIOS(new QComboBox()),
23 listDevBIOS(new QComboBox()),
24 JaguarModel(JAG_NULL_SERIES
),
29 #ifdef NEWMODELSBIOSHANDLER
31 QLabel
*labelModel
= new QLabel("Jaguar model");
32 QHBoxLayout
*layoutModel
= new QHBoxLayout
;
33 layoutModel
->addWidget(labelModel
);
34 listJaguarModel
->addItem("Model K", QVariant(JAG_K_SERIES
));
35 listJaguarModel
->addItem("Model M", QVariant(JAG_M_SERIES
));
36 layoutModel
->addWidget(listJaguarModel
);
37 QVBoxLayout
*layout1
= new QVBoxLayout
;
38 layout1
->addLayout(layoutModel
);
41 QHBoxLayout
*layoutRetailBIOS
= new QHBoxLayout
;
42 useRetailBIOS
= new QCheckBox(tr("Retail BIOS"));
43 layoutRetailBIOS
->addWidget(useRetailBIOS
);
44 QVBoxLayout
*layout2
= new QVBoxLayout
;
45 layout2
->addLayout(layoutRetailBIOS
);
47 layoutRetailBIOS
->addWidget(listRetailBIOS
);
49 // Developer BIOS select
50 QHBoxLayout
*layoutDevBIOS
= new QHBoxLayout
;
51 useDevBIOS
= new QCheckBox(tr("Developer BIOS"));
52 layoutDevBIOS
->addWidget(useDevBIOS
);
53 QVBoxLayout
*layout3
= new QVBoxLayout
;
54 layout3
->addLayout(layoutDevBIOS
);
57 listDevBIOS
->addItem("Stubulator '93", QVariant(BT_STUBULATOR_1
));
58 listDevBIOS
->addItem("Stubulator '94", QVariant(BT_STUBULATOR_2
));
59 layoutDevBIOS
->addWidget(listDevBIOS
);
62 layout1
->addLayout(layout2
);
63 layout1
->addLayout(layout3
);
67 connect(useRetailBIOS
, SIGNAL(stateChanged(int)), this, SLOT(stateChangedUseRetailBIOS(int)));
68 connect(useDevBIOS
, SIGNAL(stateChanged(int)), this, SLOT(stateChangedUseDevBIOS(int)));
69 connect(listJaguarModel
, SIGNAL(currentIndexChanged(int)), this, SLOT(CurrentIndexJaguarModel(int)));
70 connect(listDevBIOS
, SIGNAL(currentIndexChanged(int)), this, SLOT(CurrentIndexDevBIOS(int)));
76 void ModelsBiosTab::stateChangedUseDevBIOS(int usedevbios
)
78 #ifdef NEWMODELSBIOSHANDLER
79 if ((UseDevBIOS
= usedevbios
))
81 stateChangedUseRetailBIOS(0);
82 BIOSValue
= listDevBIOS
->itemData(listDevBIOS
->currentIndex()).toInt();
87 useDevBIOS
->setChecked(false);
95 void ModelsBiosTab::stateChangedUseRetailBIOS(int useretailbios
)
97 #ifdef NEWMODELSBIOSHANDLER
98 if ((UseRetailBIOS
= useretailbios
))
100 stateChangedUseDevBIOS(0);
105 listRetailBIOS
->clear();
106 listRetailBIOS
->addItem("Model K", QVariant(BT_K_SERIES
));
107 BIOSValue
= BT_K_SERIES
;
111 listRetailBIOS
->clear();
112 listRetailBIOS
->addItem("Model M", QVariant(BT_M_SERIES
));
113 BIOSValue
= BT_M_SERIES
;
120 listRetailBIOS
->show();
124 useRetailBIOS
->setChecked(false);
125 listRetailBIOS
->hide();
131 // Get the index from the Jaguar models list
132 void ModelsBiosTab::CurrentIndexJaguarModel(int index
)
134 #ifdef NEWMODELSBIOSHANDLER
135 JaguarModel
= listJaguarModel
->itemData(index
).toInt();
136 stateChangedUseRetailBIOS(UseRetailBIOS
);
141 // Get the index from the developer BIOS list
142 void ModelsBiosTab::CurrentIndexDevBIOS(int index
)
144 #ifdef NEWMODELSBIOSHANDLER
145 BIOSValue
= listDevBIOS
->itemData(index
).toInt();
151 ModelsBiosTab::~ModelsBiosTab()
153 #ifdef NEWMODELSBIOSHANDLER
158 // Load & Update the tabs dialog from the settings
159 void ModelsBiosTab::GetSettings(void)
161 #ifdef NEWMODELSBIOSHANDLER
162 listJaguarModel
->setCurrentIndex(listJaguarModel
->findData((JaguarModel
= vjs
.jaguarModel
)));
163 listDevBIOS
->setCurrentIndex(listDevBIOS
->findData((BIOSValue
= vjs
.biosType
)));
164 useRetailBIOS
->setChecked((UseRetailBIOS
= vjs
.useRetailBIOS
));
165 useDevBIOS
->setChecked((UseDevBIOS
= vjs
.useDevBIOS
));
170 // Save & Update the settings from the tabs dialog
171 void ModelsBiosTab::SetSettings(void)
173 #ifdef NEWMODELSBIOSHANDLER
174 vjs
.jaguarModel
= JaguarModel
;
175 if (!(vjs
.useJaguarBIOS
= (UseRetailBIOS
| UseDevBIOS
)))
181 vjs
.biosType
= BIOSValue
;
183 vjs
.useRetailBIOS
= UseRetailBIOS
;
184 vjs
.useDevBIOS
= UseDevBIOS
;