2009-04-22 20:04:28 +02:00

201 lines
5.8 KiB
C++
Executable File

void PathSettingsWindow::setup() {
panel = new QWidget;
layout = new QVBoxLayout;
layout->setMargin(0);
layout->setSpacing(0);
title = new QLabel("Default Folder Paths");
title->setProperty("class", "title");
layout->addWidget(title);
gameLabel = new QLabel("Games:");
layout->addWidget(gameLabel);
games = new QHBoxLayout; {
games->setMargin(0);
gamePath = new QLineEdit;
gamePath->setReadOnly(true);
games->addWidget(gamePath);
gameSelect = new QPushButton("Select ...");
games->addWidget(gameSelect);
gameDefault = new QPushButton("Default");
games->addWidget(gameDefault);
}
games->setSpacing(Style::WidgetSpacing);
layout->addLayout(games);
layout->addSpacing(Style::WidgetSpacing);
saveLabel = new QLabel("Save RAM:");
layout->addWidget(saveLabel);
saves = new QHBoxLayout; {
saves->setMargin(0);
savePath = new QLineEdit;
savePath->setReadOnly(true);
saves->addWidget(savePath);
saveSelect = new QPushButton("Select ...");
saves->addWidget(saveSelect);
saveDefault = new QPushButton("Default");
saves->addWidget(saveDefault);
}
saves->setSpacing(Style::WidgetSpacing);
layout->addLayout(saves);
layout->addSpacing(Style::WidgetSpacing);
patchLabel = new QLabel("UPS patches:");
layout->addWidget(patchLabel);
patches = new QHBoxLayout; {
patches->setMargin(0);
patchPath = new QLineEdit;
patchPath->setReadOnly(true);
patches->addWidget(patchPath);
patchSelect = new QPushButton("Select ...");
patches->addWidget(patchSelect);
patchDefault = new QPushButton("Default");
patches->addWidget(patchDefault);
}
patches->setSpacing(Style::WidgetSpacing);
layout->addLayout(patches);
layout->addSpacing(Style::WidgetSpacing);
cheatLabel = new QLabel("Cheat codes:");
layout->addWidget(cheatLabel);
cheats = new QHBoxLayout; {
cheats->setMargin(0);
cheatPath = new QLineEdit;
cheatPath->setReadOnly(true);
cheats->addWidget(cheatPath);
cheatSelect = new QPushButton("Select ...");
cheats->addWidget(cheatSelect);
cheatDefault = new QPushButton("Default");
cheats->addWidget(cheatDefault);
}
cheats->setSpacing(Style::WidgetSpacing);
layout->addLayout(cheats);
layout->addSpacing(Style::WidgetSpacing);
dataLabel = new QLabel("Export data:");
layout->addWidget(dataLabel);
data = new QHBoxLayout;
data->setMargin(0);
data->setSpacing(Style::WidgetSpacing); {
dataPath = new QLineEdit;
dataPath->setReadOnly(true);
data->addWidget(dataPath);
dataSelect = new QPushButton("Select ...");
data->addWidget(dataSelect);
dataDefault = new QPushButton("Default");
data->addWidget(dataDefault);
}
layout->addLayout(data);
spacer = new QWidget;
spacer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
layout->addWidget(spacer);
syncUi();
panel->setLayout(layout);
connect(gameSelect, SIGNAL(released()), this, SLOT(selectGamePath()));
connect(gameDefault, SIGNAL(released()), this, SLOT(defaultGamePath()));
connect(saveSelect, SIGNAL(released()), this, SLOT(selectSavePath()));
connect(saveDefault, SIGNAL(released()), this, SLOT(defaultSavePath()));
connect(patchSelect, SIGNAL(released()), this, SLOT(selectPatchPath()));
connect(patchDefault, SIGNAL(released()), this, SLOT(defaultPatchPath()));
connect(cheatSelect, SIGNAL(released()), this, SLOT(selectCheatPath()));
connect(cheatDefault, SIGNAL(released()), this, SLOT(defaultCheatPath()));
connect(dataSelect, SIGNAL(released()), this, SLOT(selectDataPath()));
connect(dataDefault, SIGNAL(released()), this, SLOT(defaultDataPath()));
}
void PathSettingsWindow::syncUi() {
gamePath->setText (snes.config.path.rom == "" ? "<startup path>" : (const char*)snes.config.path.rom);
savePath->setText (snes.config.path.save == "" ? "<same folder as loaded game>" : (const char*)snes.config.path.save);
patchPath->setText(snes.config.path.patch == "" ? "<same folder as loaded game>" : (const char*)snes.config.path.patch);
cheatPath->setText(snes.config.path.cheat == "" ? "<same folder as loaded game>" : (const char*)snes.config.path.cheat);
dataPath->setText (snes.config.path.data == "" ? "<same folder as loaded game>" : (const char*)snes.config.path.data);
}
void PathSettingsWindow::selectGamePath() {
string path = utility.selectFolder("Default Game Path");
if(path.length() > 0) {
snes.config.path.rom = path;
syncUi();
}
}
void PathSettingsWindow::defaultGamePath() {
snes.config.path.rom = "";
syncUi();
}
void PathSettingsWindow::selectSavePath() {
string path = utility.selectFolder("Default Save RAM Path");
if(path.length() > 0) {
snes.config.path.save = path;
syncUi();
}
}
void PathSettingsWindow::defaultSavePath() {
snes.config.path.save = "";
syncUi();
}
void PathSettingsWindow::selectPatchPath() {
string path = utility.selectFolder("Default UPS Patch Path");
if(path.length() > 0) {
snes.config.path.patch = path;
syncUi();
}
}
void PathSettingsWindow::defaultPatchPath() {
snes.config.path.patch = "";
syncUi();
}
void PathSettingsWindow::selectCheatPath() {
string path = utility.selectFolder("Default Cheat File Path");
if(path.length() > 0) {
snes.config.path.cheat = path;
syncUi();
}
}
void PathSettingsWindow::defaultCheatPath() {
snes.config.path.cheat = "";
syncUi();
}
void PathSettingsWindow::selectDataPath() {
string path = utility.selectFolder("Default Export Data Path");
if(path.length() > 0) {
snes.config.path.data = path;
syncUi();
}
}
void PathSettingsWindow::defaultDataPath() {
snes.config.path.data = "";
syncUi();
}