mirror of
https://github.com/OpenMW/openmw.git
synced 2025-01-21 11:53:53 +00:00
Removed some leftover files belonging to the old launcher
This commit is contained in:
parent
b9acc4a0ac
commit
9b439d74da
2 changed files with 0 additions and 305 deletions
|
@ -1,259 +0,0 @@
|
||||||
#include <QtGui>
|
|
||||||
|
|
||||||
#include "settingsdialog.h"
|
|
||||||
|
|
||||||
SettingsDialog::SettingsDialog()
|
|
||||||
{
|
|
||||||
QTabWidget *tabWidget = new QTabWidget(this);
|
|
||||||
QWidget *graphicsTab = new QWidget();
|
|
||||||
|
|
||||||
// Render group
|
|
||||||
QGroupBox *groupRender = new QGroupBox(tr("Renderer"), graphicsTab);
|
|
||||||
groupRender->setMinimumWidth(450);
|
|
||||||
|
|
||||||
QVBoxLayout *groupRenderLayout = new QVBoxLayout(groupRender);
|
|
||||||
QVBoxLayout *dialogLayout = new QVBoxLayout(this);
|
|
||||||
QVBoxLayout *pageLayout = new QVBoxLayout(graphicsTab);
|
|
||||||
|
|
||||||
QGridLayout *renderLayout = new QGridLayout();
|
|
||||||
|
|
||||||
QLabel *labelRender = new QLabel(tr("Rendering Subsystem:"), groupRender);
|
|
||||||
comboRender = new QComboBox(groupRender);
|
|
||||||
|
|
||||||
QLabel *labelRTT = new QLabel(tr("Preferred RTT Mode:"), groupRender);
|
|
||||||
comboRTT = new QComboBox(groupRender);
|
|
||||||
|
|
||||||
QLabel *labelAA = new QLabel(tr("Antialiasing:"), groupRender);
|
|
||||||
comboAA = new QComboBox(groupRender);
|
|
||||||
|
|
||||||
renderLayout->addWidget(labelRender, 0, 0, 1, 1);
|
|
||||||
renderLayout->addWidget(comboRender, 0, 1, 1, 1);
|
|
||||||
|
|
||||||
QSpacerItem *vSpacer1 = new QSpacerItem(20, 10, QSizePolicy::Minimum, QSizePolicy::Minimum);
|
|
||||||
renderLayout->addItem(vSpacer1, 1, 1, 1, 1);
|
|
||||||
|
|
||||||
renderLayout->addWidget(labelRTT, 2, 0, 1, 1);
|
|
||||||
renderLayout->addWidget(comboRTT, 2, 1, 1, 1);
|
|
||||||
renderLayout->addWidget(labelAA, 3, 0, 1, 1);
|
|
||||||
renderLayout->addWidget(comboAA, 3, 1, 1, 1);
|
|
||||||
|
|
||||||
QSpacerItem *vSpacer2 = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
|
|
||||||
|
|
||||||
groupRenderLayout->addLayout(renderLayout);
|
|
||||||
groupRenderLayout->addItem(vSpacer2);
|
|
||||||
|
|
||||||
pageLayout->addWidget(groupRender);
|
|
||||||
|
|
||||||
// Display group
|
|
||||||
QGroupBox *groupDisplay = new QGroupBox(tr("Display"), graphicsTab);
|
|
||||||
QVBoxLayout *groupDisplayLayout = new QVBoxLayout(groupDisplay);
|
|
||||||
|
|
||||||
QGridLayout *displayLayout = new QGridLayout();
|
|
||||||
|
|
||||||
QLabel *labelResolution = new QLabel(tr("Resolution:"), groupDisplay);
|
|
||||||
comboResolution = new QComboBox(groupDisplay);
|
|
||||||
|
|
||||||
QLabel *labelFrequency = new QLabel(tr("Display Frequency:"), groupDisplay);
|
|
||||||
comboFrequency = new QComboBox(groupDisplay);
|
|
||||||
|
|
||||||
checkVSync = new QCheckBox(tr("Vertical Sync"), groupDisplay);
|
|
||||||
checkGamma = new QCheckBox(tr("sRGB Gamma Conversion"), groupDisplay);
|
|
||||||
checkFullScreen = new QCheckBox(tr("Full Screen"), groupDisplay);
|
|
||||||
|
|
||||||
displayLayout->addWidget(labelResolution, 0, 0, 1, 1);
|
|
||||||
displayLayout->addWidget(comboResolution, 0, 1, 1, 1);
|
|
||||||
displayLayout->addWidget(labelFrequency, 1, 0, 1, 1);
|
|
||||||
displayLayout->addWidget(comboFrequency, 1, 1, 1, 1);
|
|
||||||
|
|
||||||
QSpacerItem *vSpacer3 = new QSpacerItem(20, 10, QSizePolicy::Minimum, QSizePolicy::Minimum);
|
|
||||||
displayLayout->addItem(vSpacer3, 2, 1, 1, 1);
|
|
||||||
|
|
||||||
displayLayout->addWidget(checkVSync, 3, 0, 1, 1);
|
|
||||||
displayLayout->addWidget(checkGamma, 3, 1, 1, 1);
|
|
||||||
displayLayout->addWidget(checkFullScreen, 6, 0, 1, 1);
|
|
||||||
|
|
||||||
QSpacerItem *vSpacer4 = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
|
|
||||||
|
|
||||||
groupDisplayLayout->addLayout(displayLayout);
|
|
||||||
groupDisplayLayout->addItem(vSpacer4);
|
|
||||||
|
|
||||||
pageLayout->addWidget(groupDisplay);
|
|
||||||
|
|
||||||
|
|
||||||
tabWidget->addTab(graphicsTab, QString(tr("Graphics")));
|
|
||||||
tabWidget->setCurrentIndex(0);
|
|
||||||
|
|
||||||
dialogLayout->addWidget(tabWidget);
|
|
||||||
|
|
||||||
QDialogButtonBox *buttonBox = new QDialogButtonBox(this);
|
|
||||||
buttonBox->setStandardButtons(QDialogButtonBox::Cancel|QDialogButtonBox::Ok);
|
|
||||||
|
|
||||||
dialogLayout->addWidget(buttonBox);
|
|
||||||
|
|
||||||
setWindowTitle(tr("Settings"));
|
|
||||||
setWindowIcon(QIcon::fromTheme("preferences-other"));
|
|
||||||
|
|
||||||
// Ogre Settings
|
|
||||||
// TODO: Find out a way to do this nice and platform-independent
|
|
||||||
QString filepath = QDir::homePath();
|
|
||||||
filepath.append("/.config/openmw/ogre.cfg");
|
|
||||||
|
|
||||||
ogreConfig = new QSettings(filepath, QSettings::IniFormat);
|
|
||||||
|
|
||||||
// Signals and slots
|
|
||||||
connect(comboRender, SIGNAL(currentIndexChanged(const QString&)), this, SLOT(rendererChanged(const QString&)));
|
|
||||||
connect(buttonBox, SIGNAL(accepted()), this, SLOT(writeConfig()));
|
|
||||||
connect(buttonBox, SIGNAL(rejected()), this, SLOT(close()));
|
|
||||||
|
|
||||||
// Ogre stuff
|
|
||||||
root = new Ogre::Root("plugins.cfg");
|
|
||||||
|
|
||||||
// Get the available renderers and put them in the combobox
|
|
||||||
const Ogre::RenderSystemList &renderers = root->getAvailableRenderers();
|
|
||||||
|
|
||||||
for (Ogre::RenderSystemList::const_iterator r = renderers.begin(); r != renderers.end(); ++r) {
|
|
||||||
comboRender->addItem((*r)->getName().c_str());
|
|
||||||
}
|
|
||||||
|
|
||||||
int index = comboRender->findText(getConfigValue("Render System"));
|
|
||||||
|
|
||||||
if ( index != -1) {
|
|
||||||
comboRender->setCurrentIndex(index);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
QStringList SettingsDialog::getAvailableOptions(const QString& key)
|
|
||||||
{
|
|
||||||
QStringList result;
|
|
||||||
|
|
||||||
uint row = 0;
|
|
||||||
Ogre::ConfigOptionMap options = mSelectedRenderSystem->getConfigOptions();
|
|
||||||
|
|
||||||
for (Ogre::ConfigOptionMap::iterator i = options.begin (); i != options.end (); i++, row++)
|
|
||||||
{
|
|
||||||
Ogre::StringVector::iterator opt_it;
|
|
||||||
uint idx = 0;
|
|
||||||
for (opt_it = i->second.possibleValues.begin ();
|
|
||||||
opt_it != i->second.possibleValues.end (); opt_it++, idx++)
|
|
||||||
{
|
|
||||||
|
|
||||||
if (strcmp (key.toStdString().c_str(), i->first.c_str()) == 0)
|
|
||||||
result << (*opt_it).c_str();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
void SettingsDialog::rendererChanged(const QString& renderer)
|
|
||||||
{
|
|
||||||
// Set the render system to the selected one
|
|
||||||
mSelectedRenderSystem = root->getRenderSystemByName(renderer.toStdString().c_str());
|
|
||||||
|
|
||||||
comboRTT->addItems(getAvailableOptions("RTT Preferred Mode"));
|
|
||||||
comboAA->addItems(getAvailableOptions("FSAA"));
|
|
||||||
comboResolution->addItems(getAvailableOptions("Video Mode"));
|
|
||||||
comboFrequency->addItems(getAvailableOptions("Display Frequency"));
|
|
||||||
|
|
||||||
// Get the value for the option the config file, find if it's in the combobox.
|
|
||||||
// If it's found, set the current index to that value, otherwise: ignore.
|
|
||||||
|
|
||||||
int index = comboRTT->findText(getConfigValue("RTT Preferred Mode"));
|
|
||||||
if ( index != -1)
|
|
||||||
comboRTT->setCurrentIndex(index);
|
|
||||||
|
|
||||||
index = comboAA->findText(getConfigValue("FSAA"));
|
|
||||||
if ( index != -1)
|
|
||||||
comboAA->setCurrentIndex(index);
|
|
||||||
|
|
||||||
index = comboResolution->findText(getConfigValue("Video Mode"));
|
|
||||||
if ( index != -1)
|
|
||||||
comboResolution->setCurrentIndex(index);
|
|
||||||
|
|
||||||
index = comboFrequency->findText(getConfigValue("Display Frequency"));
|
|
||||||
if ( index != -1)
|
|
||||||
comboFrequency->setCurrentIndex(index);
|
|
||||||
|
|
||||||
// Now we do the same for the checkboxes
|
|
||||||
if (QString::compare(getConfigValue("VSync"), QString("Yes")) == 0) {
|
|
||||||
checkVSync->setCheckState(Qt::Checked);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (QString::compare(getConfigValue("sRGB Gamma Conversion"), QString("Yes")) == 0) {
|
|
||||||
checkGamma->setCheckState(Qt::Checked);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (QString::compare(getConfigValue("Full Screen"), QString("Yes")) == 0) {
|
|
||||||
checkFullScreen->setCheckState(Qt::Checked);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
QString SettingsDialog::getConfigValue(const QString& key)
|
|
||||||
{
|
|
||||||
QString result;
|
|
||||||
|
|
||||||
ogreConfig->beginGroup(mSelectedRenderSystem->getName().c_str());
|
|
||||||
result = ogreConfig->value(key).toString();
|
|
||||||
ogreConfig->endGroup();
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
void SettingsDialog::writeConfig()
|
|
||||||
{
|
|
||||||
// Get the values from the GUI elements and write them to the config file
|
|
||||||
|
|
||||||
// Custom write method: We cannot use QSettings because it does not accept spaces
|
|
||||||
|
|
||||||
QString keyName;
|
|
||||||
QString fileName;
|
|
||||||
|
|
||||||
QFile file(ogreConfig->fileName());
|
|
||||||
|
|
||||||
if (!file.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Truncate))
|
|
||||||
// File could not be opened, TODO error
|
|
||||||
close();
|
|
||||||
|
|
||||||
QTextStream out(&file);
|
|
||||||
|
|
||||||
out << "Render System=" << mSelectedRenderSystem->getName().c_str() << endl << endl;
|
|
||||||
|
|
||||||
// add brackets to the renderer's name
|
|
||||||
QString renderer = mSelectedRenderSystem->getName().c_str();
|
|
||||||
renderer.prepend("[");
|
|
||||||
renderer.append("]");
|
|
||||||
out << renderer << endl;
|
|
||||||
|
|
||||||
out << "Display Frequency=" << comboFrequency->currentText() << endl;
|
|
||||||
out << "FSAA=" << comboAA->currentText() << endl;
|
|
||||||
|
|
||||||
if (checkFullScreen->checkState() == Qt::Checked) {
|
|
||||||
out << "Full Screen=Yes" << endl;
|
|
||||||
} else {
|
|
||||||
out << "Full Screen=No" << endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
out << "RTT Preferred Mode=" << comboRTT->currentText() << endl;
|
|
||||||
|
|
||||||
if (checkVSync->checkState() == Qt::Checked) {
|
|
||||||
out << "VSync=Yes" << endl;
|
|
||||||
} else {
|
|
||||||
out << "VSync=No" << endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
out << "Video Mode=" << comboResolution->currentText() << endl;
|
|
||||||
|
|
||||||
if (checkGamma->checkState() == Qt::Checked) {
|
|
||||||
out << "sRGB Gamma Conversion=Yes" << endl;
|
|
||||||
} else {
|
|
||||||
out << "sRGB Gamma Conversion=No" << endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
file.close();
|
|
||||||
|
|
||||||
close(); // Exit dialog
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,46 +0,0 @@
|
||||||
#ifndef SETTINGSDIALOG_H
|
|
||||||
#define SETTINGSDIALOG_H
|
|
||||||
|
|
||||||
#include <QDialog>
|
|
||||||
#include <QComboBox>
|
|
||||||
#include <QCheckBox>
|
|
||||||
#include <QSettings>
|
|
||||||
|
|
||||||
#include <OgreRoot.h>
|
|
||||||
#include <OgreRenderSystem.h>
|
|
||||||
#include <OgreConfigFile.h>
|
|
||||||
#include <OgreConfigDialog.h>
|
|
||||||
#include <OgreException.h>
|
|
||||||
#include <OgreLogManager.h>
|
|
||||||
|
|
||||||
class SettingsDialog : public QDialog
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
|
||||||
SettingsDialog();
|
|
||||||
QStringList getAvailableOptions(const QString& key);
|
|
||||||
|
|
||||||
Ogre::Root *root;
|
|
||||||
Ogre::RenderSystem *mSelectedRenderSystem;
|
|
||||||
|
|
||||||
QComboBox *comboRender;
|
|
||||||
QComboBox *comboRTT;
|
|
||||||
QComboBox *comboAA;
|
|
||||||
QComboBox *comboResolution;
|
|
||||||
QComboBox *comboFrequency;
|
|
||||||
|
|
||||||
QCheckBox *checkVSync;
|
|
||||||
QCheckBox *checkGamma;
|
|
||||||
QCheckBox *checkFullScreen;
|
|
||||||
|
|
||||||
QSettings *ogreConfig;
|
|
||||||
|
|
||||||
QString getConfigValue(const QString& key);
|
|
||||||
|
|
||||||
public slots:
|
|
||||||
void rendererChanged(const QString& renderer);
|
|
||||||
void writeConfig();
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
Loading…
Reference in a new issue