]> Shamusworld >> Repos - wozmaker/blob - src/settingsdialog.cpp
Flesh out the disk settings dialog.
[wozmaker] / src / settingsdialog.cpp
1 //
2 // settingsdialog.cpp: Dialog for changing disk settings
3 //
4 // Part of the Wozmaker Project
5 // (C) 2019 Underground Software
6 // See the README and GPLv3 files for licensing and warranty information
7 //
8
9 #include "settingsdialog.h"
10
11
12 SettingsDialog::SettingsDialog(QWidget * parent/*= 0*/): QDialog(parent)
13 {
14         QGridLayout * grid = new QGridLayout;
15
16         QStringList lsl = { "Title", "Subtitle", "Publisher", "Developer", "Copyright", "Version", "Language", "Requires", "Notes", "Side", "Side Name", "Contributor" };
17
18         for(int i=0; i<12; i++)
19         {
20                 label[i].setText(lsl[i]);
21                 label[i].setAlignment(Qt::AlignRight);
22         }
23
24         grid->addWidget(&label[0], 0, 0);
25         grid->addWidget(&label[1], 1, 0);
26         grid->addWidget(&label[2], 2, 0);
27         grid->addWidget(&label[3], 3, 0);
28         grid->addWidget(&label[4], 4, 0);
29         grid->addWidget(&label[5], 5, 0);
30         grid->addWidget(&label[6], 5, 2);
31         grid->addWidget(&label[7], 6, 0, 1, 1, Qt::AlignTop);
32
33         QStringList lesl = { "Title of the software", "If there's a subtitle, put it here", "Who published the software?", "Who wrote the software?", "", "1.0", "Put any additional notes about the disk here", "A, B, Dungeon, Towne, etc.", "Who contributed this disk?" };
34
35         for(int i=0; i<9; i++)
36                 line[i].setPlaceholderText(lesl[i]);
37
38         QStringList sl1 = { "English", "Spanish", "French", "German", "Chinese", "Japanese", "Italian", "Dutch", "Portuguese", "Danish", "Finnish", "Norwegian", "Swedish", "Russian", "Polish", "Turkish", "Arabic", "Thai", "Czech", "Hungarian", "Catalan", "Croatian", "Greek", "Hebrew", "Romanian", "Slovak", "Ukrainian", "Indonesian", "Malay", "Vietnamese", "Other" };
39         QStringList sl2 = { "16K", "24K", "32K", "48K", "64K", "128K", "256K", "512K", "768K", "1M", "1.25M", "1.5M+", "Unknown" };
40         QStringList sl3 = { "Disk 1, Side A", "Disk 1, Side B", "Disk 2, Side A", "Disk 2, Side B", "Disk 3, Side A", "Disk 3, Side B", "Disk 4, Side A", "Disk 4, Side B", "Disk 5, Side A", "Disk 5, Side B", "Disk 6, Side A", "Disk 6, Side B", "Disk 7, Side A", "Disk 7, Side B", "Disk 8, Side A", "Disk 8, Side B" };
41
42         combo[0].insertItems(0, sl1);
43         combo[1].insertItems(0, sl2);
44         combo[2].insertItems(0, sl3);
45
46         grid->addWidget(&line[0], 0, 1, 1, -1);
47         grid->addWidget(&line[1], 1, 1, 1, -1);
48         grid->addWidget(&line[2], 2, 1, 1, -1);
49         grid->addWidget(&line[3], 3, 1, 1, -1);
50         grid->addWidget(&line[4], 4, 1, 1, -1);
51         grid->addWidget(&line[5], 5, 1);
52         grid->addWidget(&combo[0], 5, 3);
53
54         QGridLayout * cbGrid = new QGridLayout;
55
56         QStringList cbsl = { "][", "][+", "//e", "//c", "//e Enh.", "IIgs", "//c+", "///", "///+", "Write Protected" };
57
58         for(int i=0; i<10; i++)
59                 check[i].setText(cbsl[i]);
60
61         cbGrid->addWidget(&check[0], 0, 0);
62         cbGrid->addWidget(&check[1], 0, 1);
63         cbGrid->addWidget(&check[2], 0, 2);
64         cbGrid->addWidget(&check[3], 1, 0);
65         cbGrid->addWidget(&check[4], 1, 1);
66         cbGrid->addWidget(&check[5], 1, 2);
67         cbGrid->addWidget(&check[6], 2, 0);
68         cbGrid->addWidget(&check[7], 2, 1);
69         cbGrid->addWidget(&check[8], 2, 2);
70
71         grid->addLayout(cbGrid, 6, 1);
72         grid->addWidget(&combo[1], 6, 3, 1, 1, Qt::AlignTop);
73
74         grid->addWidget(&label[8], 7, 0);
75         grid->addWidget(&line[6], 7, 1, 1, -1);
76         grid->addWidget(&label[9], 8, 0);
77         grid->addWidget(&combo[2], 8, 1);
78         grid->addWidget(&label[10], 8, 2);
79         grid->addWidget(&line[7], 8, 3);
80         grid->addWidget(&check[9], 9, 3);
81         grid->addWidget(&label[11], 10, 0);
82         grid->addWidget(&line[8], 10, 1, 1, -1);
83
84         buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
85
86         connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept()));
87         connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
88
89         QVBoxLayout * mainLayout = new QVBoxLayout;
90         mainLayout->addLayout(grid);
91         mainLayout->addWidget(buttonBox);
92         setLayout(mainLayout);
93
94         setWindowTitle(tr("WOZ Maker Disk Settings"));
95 }
96
97
98 SettingsDialog::~SettingsDialog()
99 {
100 }
101