mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-02-19 17:09:40 +00:00
Window size improvements. Added promoted widgets but seems to be require signal filters for disabled widgets to receive mouse events.
This commit is contained in:
parent
ca80a2b856
commit
62d2811285
12 changed files with 438 additions and 147 deletions
|
@ -109,6 +109,8 @@ opencs_units (view/settings
|
|||
rangeview
|
||||
resizeablestackedwidget
|
||||
spinbox
|
||||
clickspinbox
|
||||
clickcombobox
|
||||
)
|
||||
|
||||
opencs_units_noqt (view/settings
|
||||
|
@ -166,7 +168,7 @@ qt4_wrap_ui(OPENCS_UI_HDR ${OPENCS_UI})
|
|||
qt4_wrap_cpp(OPENCS_MOC_SRC ${OPENCS_HDR_QT})
|
||||
qt4_add_resources(OPENCS_RES_SRC ${OPENCS_RES})
|
||||
|
||||
include_directories(${CMAKE_CURRENT_BINARY_DIR})
|
||||
include_directories(${CMAKE_CURRENT_BINARY_DIR} view/settings)
|
||||
|
||||
if(APPLE)
|
||||
set (OPENCS_MAC_ICON ${CMAKE_SOURCE_DIR}/files/mac/opencs.icns)
|
||||
|
|
|
@ -297,7 +297,7 @@ std::auto_ptr<sh::Factory> CS::Editor::setupGraphics()
|
|||
|
||||
std::auto_ptr<sh::Factory> factory (new sh::Factory (platform));
|
||||
|
||||
std::string shLang = mUserSettings.settingValue("Shiny/language").toStdString();
|
||||
std::string shLang = mUserSettings.settingValue("Shader/language").toStdString();
|
||||
enum sh::Language lang;
|
||||
if(shLang == "CG") lang = sh::Language_CG;
|
||||
else if(shLang == "HLSL") lang = sh::Language_HLSL;
|
||||
|
|
|
@ -5,9 +5,12 @@
|
|||
|
||||
#include <components/files/configurationmanager.hpp>
|
||||
#include <components/settings/settings.hpp>
|
||||
#include <components/contentselector/model/naturalsort.hpp>
|
||||
|
||||
#include <boost/version.hpp>
|
||||
|
||||
#include <OgreRoot.h>
|
||||
|
||||
#include "setting.hpp"
|
||||
#include "support.hpp"
|
||||
#include <QTextCodec>
|
||||
|
@ -344,17 +347,76 @@ void CSMSettings::UserSettings::loadSettings (const QString &fileName)
|
|||
#endif
|
||||
}
|
||||
mSettingCfgDefinitions->setValue("Video/render system", renderSystem.c_str());
|
||||
// force shiny language based on render system
|
||||
// force shader language based on render system
|
||||
if(renderSystem == "Direct3D9 Rendering Subsystem")
|
||||
mSettingDefinitions->setValue("Shiny/language", "CG");
|
||||
mSettingDefinitions->setValue("Shader/language", "CG");
|
||||
else
|
||||
mSettingDefinitions->setValue("Shiny/language", "GLSL");
|
||||
mSettingDefinitions->setValue("Shader/language", "GLSL");
|
||||
|
||||
// check if override entry exists (default: override)
|
||||
if(!mSettingDefinitions->childGroups().contains("Video", Qt::CaseInsensitive))
|
||||
mSettingDefinitions->setValue("Video/use settings.cfg", "true");
|
||||
}
|
||||
|
||||
QStringList CSMSettings::UserSettings::getOgreOptions(const QString &key, const QString &renderer)
|
||||
{
|
||||
QStringList result;
|
||||
|
||||
Ogre::ConfigOptionMap& renderOpt =
|
||||
//Ogre::Root::getSingleton().getRenderSystem()->getConfigOptions();
|
||||
Ogre::Root::getSingleton().getRenderSystemByName(renderer.toStdString())->getConfigOptions();
|
||||
Ogre::ConfigOptionMap::iterator it = renderOpt.begin();
|
||||
|
||||
uint row = 0;
|
||||
for(; it != renderOpt.end(); ++it, ++row)
|
||||
{
|
||||
Ogre::StringVector::iterator opt_it = it->second.possibleValues.begin();
|
||||
uint idx = 0;
|
||||
|
||||
for(; opt_it != it->second.possibleValues.end(); ++opt_it, ++idx)
|
||||
{
|
||||
if(strcmp (key.toStdString().c_str(), it->first.c_str()) == 0)
|
||||
{
|
||||
result << ((key == "FSAA") ? QString("MSAA ") : QString(""))
|
||||
+ QString::fromStdString((*opt_it).c_str()).simplified();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Sort ascending
|
||||
qSort(result.begin(), result.end(), naturalSortLessThanCI);
|
||||
|
||||
// Replace the zero option with Off
|
||||
int index = result.indexOf("MSAA 0");
|
||||
|
||||
if(index != -1)
|
||||
result.replace(index, QObject::tr("Off"));
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
QStringList CSMSettings::UserSettings::getShaderLanguageByRenderer(const QString &renderer)
|
||||
{
|
||||
QStringList result;
|
||||
|
||||
if(renderer == "Direct3D9 Rendering Subsystem")
|
||||
{
|
||||
result.append("CG");
|
||||
result.append("HLSL");
|
||||
result.append("None");
|
||||
}
|
||||
else if(renderer == "OpenGL Rendering Subsystem")
|
||||
{
|
||||
result.append("GLSL");
|
||||
result.append("GLSLES");
|
||||
result.append("None");
|
||||
}
|
||||
else
|
||||
result.append("None");
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
bool CSMSettings::UserSettings::hasSettingDefinitions
|
||||
(const QString &viewKey) const
|
||||
{
|
||||
|
|
|
@ -76,6 +76,9 @@ namespace CSMSettings {
|
|||
///Save any unsaved changes in the QSettings object
|
||||
void saveDefinitions() const;
|
||||
|
||||
QStringList getShaderLanguageByRenderer(const QString &renderer);
|
||||
QStringList getOgreOptions(const QString &key, const QString &renderer);
|
||||
|
||||
private:
|
||||
|
||||
void buildSettingModelDefaults();
|
||||
|
|
|
@ -32,6 +32,14 @@ void CSVDoc::View::closeEvent (QCloseEvent *event)
|
|||
event->ignore();
|
||||
else
|
||||
{
|
||||
// save window size first
|
||||
CSMSettings::UserSettings::instance().setDefinitions(
|
||||
"Window Size/Width",
|
||||
QStringList(QString::number(frameGeometry().width())));
|
||||
CSMSettings::UserSettings::instance().setDefinitions(
|
||||
"Window Size/Height",
|
||||
QStringList(QString::number(frameGeometry().height())));
|
||||
CSMSettings::UserSettings::instance().saveDefinitions();
|
||||
// closeRequest() returns true if last document
|
||||
mViewManager.removeDocAndView(mDocument);
|
||||
}
|
||||
|
|
9
apps/opencs/view/settings/clickcombobox.cpp
Normal file
9
apps/opencs/view/settings/clickcombobox.cpp
Normal file
|
@ -0,0 +1,9 @@
|
|||
#include "clickcombobox.hpp"
|
||||
|
||||
#include <QMouseEvent>
|
||||
|
||||
void ClickComboBox::mouseReleaseEvent(QMouseEvent *e)
|
||||
{
|
||||
emit mouseReleased();
|
||||
}
|
||||
|
20
apps/opencs/view/settings/clickcombobox.hpp
Normal file
20
apps/opencs/view/settings/clickcombobox.hpp
Normal file
|
@ -0,0 +1,20 @@
|
|||
#ifndef CSVSETTINGS_CLICKCOMBOBOX_H
|
||||
#define CSVSETTINGS_CLICKCOMBOBOX_H
|
||||
|
||||
#include <QComboBox>
|
||||
#include <QMouseEvent>
|
||||
|
||||
class ClickComboBox : public QComboBox
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit ClickComboBox(QWidget *parent = 0) { }
|
||||
void mouseReleaseEvent(QMouseEvent *e);
|
||||
|
||||
signals:
|
||||
void mouseReleased();
|
||||
|
||||
};
|
||||
|
||||
#endif /* CSVSETTINGS_CLICKCOMBOBOX_H */
|
11
apps/opencs/view/settings/clickspinbox.cpp
Normal file
11
apps/opencs/view/settings/clickspinbox.cpp
Normal file
|
@ -0,0 +1,11 @@
|
|||
#include "clickspinbox.hpp"
|
||||
|
||||
#include <QMouseEvent>
|
||||
#include <iostream>
|
||||
|
||||
void ClickSpinBox::mouseReleaseEvent(QMouseEvent *e)
|
||||
{
|
||||
std::cout << "emit" << std::endl;
|
||||
emit mouseReleased();
|
||||
}
|
||||
|
20
apps/opencs/view/settings/clickspinbox.hpp
Normal file
20
apps/opencs/view/settings/clickspinbox.hpp
Normal file
|
@ -0,0 +1,20 @@
|
|||
#ifndef CSVSETTINGS_CLICKSPINBOX_H
|
||||
#define CSVSETTINGS_CLICKSPINBOX_H
|
||||
|
||||
#include <QSpinBox>
|
||||
#include <QMouseEvent>
|
||||
|
||||
class ClickSpinBox : public QSpinBox
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit ClickSpinBox(QWidget *parent = 0) { }
|
||||
void mouseReleaseEvent(QMouseEvent *e);
|
||||
|
||||
signals:
|
||||
void mouseReleased();
|
||||
|
||||
};
|
||||
|
||||
#endif /* CSVSETTINGS_CLICKSPINBOX_H */
|
|
@ -5,7 +5,6 @@
|
|||
|
||||
#include <QDesktopWidget>
|
||||
|
||||
#include <components/contentselector/model/naturalsort.hpp>
|
||||
#include "../../model/settings/usersettings.hpp"
|
||||
|
||||
namespace
|
||||
|
@ -49,14 +48,35 @@ QString getCurrentOgreResolution()
|
|||
if(it->first == "Video Mode" )
|
||||
{
|
||||
QRegExp re("^(\\d+ x \\d+)");
|
||||
int pos = re.indexIn(it->second.currentValue.c_str(), 0);
|
||||
if (pos > -1)
|
||||
if (re.indexIn(it->second.currentValue.c_str(), 0) > -1)
|
||||
return re.cap(1);
|
||||
}
|
||||
}
|
||||
return QString(); // found nothing
|
||||
}
|
||||
|
||||
bool customCompare(const QString &s1, const QString &s2)
|
||||
{
|
||||
int x1, x2, y1, y2;
|
||||
QRegExp re("^(\\d+) x (\\d+)");
|
||||
|
||||
if(re.indexIn(s1) > -1)
|
||||
{
|
||||
x1 = re.cap(1).toInt();
|
||||
y1 = re.cap(2).toInt();
|
||||
}
|
||||
if(re.indexIn(s2) > -1)
|
||||
{
|
||||
x2 = re.cap(1).toInt();
|
||||
y2 = re.cap(2).toInt();
|
||||
}
|
||||
|
||||
if(x1 == x2)
|
||||
return y1 > y2;
|
||||
else
|
||||
return x1 > x2;
|
||||
}
|
||||
|
||||
QStringList getAvailableResolutions()
|
||||
{
|
||||
// store available rendering devices and available resolutions
|
||||
|
@ -93,8 +113,7 @@ QStringList getAvailableResolutions()
|
|||
{
|
||||
// extract x and y values
|
||||
QRegExp re("^(\\d+) x (\\d+)");
|
||||
int pos = re.indexIn((*iter).c_str(), 0);
|
||||
if (pos > -1)
|
||||
if(re.indexIn((*iter).c_str(), 0) > -1)
|
||||
{
|
||||
QString aspect = getAspect(re.cap(1).toInt(), re.cap(2).toInt());
|
||||
QString resolution = re.cap(1) + QString(" x ") + re.cap(2);
|
||||
|
@ -110,42 +129,7 @@ QStringList getAvailableResolutions()
|
|||
}
|
||||
}
|
||||
result.removeDuplicates();
|
||||
return result;
|
||||
}
|
||||
|
||||
QStringList getAvailableOptions(const QString &key)
|
||||
{
|
||||
QStringList result;
|
||||
|
||||
Ogre::ConfigOptionMap& renderOpt =
|
||||
Ogre::Root::getSingleton().getRenderSystem()->getConfigOptions();
|
||||
Ogre::ConfigOptionMap::iterator it = renderOpt.begin();
|
||||
|
||||
uint row = 0;
|
||||
for(; it != renderOpt.end(); ++it, ++row)
|
||||
{
|
||||
Ogre::StringVector::iterator opt_it = it->second.possibleValues.begin();
|
||||
uint idx = 0;
|
||||
|
||||
for(; opt_it != it->second.possibleValues.end(); ++opt_it, ++idx)
|
||||
{
|
||||
if(strcmp (key.toStdString().c_str(), it->first.c_str()) == 0)
|
||||
{
|
||||
result << ((key == "FSAA") ? QString("MSAA ") : QString(""))
|
||||
+ QString::fromStdString((*opt_it).c_str()).simplified();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Sort ascending
|
||||
qSort(result.begin(), result.end(), naturalSortLessThanCI);
|
||||
|
||||
// Replace the zero option with Off
|
||||
int index = result.indexOf("MSAA 0");
|
||||
|
||||
if(index != -1)
|
||||
result.replace(index, QObject::tr("Off"));
|
||||
|
||||
qStableSort(result.begin(), result.end(), customCompare);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -163,17 +147,75 @@ CSVSettings::SettingsDialog::SettingsDialog(QTabWidget *parent)
|
|||
spinBox_x->setMaximum(res.width());
|
||||
spinBox_y->setMaximum(res.height());
|
||||
|
||||
connect(comboBox_rendersystem, SIGNAL(currentIndexChanged(const QString&)), this, SLOT(rendererChanged()));
|
||||
connect(checkBox_override, SIGNAL(toggled(bool)), this, SLOT(slotOverrideToggled(bool)));
|
||||
connect(comboBox_rendersystem, SIGNAL(currentIndexChanged(const QString&)), this, SLOT(slotRendererChanged(const QString&)));
|
||||
connect(radioButton_standard_res, SIGNAL(toggled(bool)), this, SLOT(slotStandardToggled(bool)));
|
||||
|
||||
connect(comboBox_std_window_size, SIGNAL(mouseReleased()), this, SLOT(slotStandardClicked()));
|
||||
connect(spinBox_x, SIGNAL(mouseReleased()), this, SLOT(slotCustomClicked()));
|
||||
connect(spinBox_y, SIGNAL(mouseReleased()), this, SLOT(slotCustomClicked()));
|
||||
}
|
||||
|
||||
void CSVSettings::SettingsDialog::rendererChanged()
|
||||
void CSVSettings::SettingsDialog::slotStandardClicked()
|
||||
{
|
||||
std::cout << "click" << std::endl;
|
||||
if(!radioButton_standard_res->isChecked())
|
||||
radioButton_standard_res->toggle();
|
||||
}
|
||||
|
||||
void CSVSettings::SettingsDialog::slotCustomClicked()
|
||||
{
|
||||
std::cout << "click" << std::endl;
|
||||
if(radioButton_standard_res->isChecked())
|
||||
radioButton_standard_res->toggle();
|
||||
}
|
||||
|
||||
void CSVSettings::SettingsDialog::slotRendererChanged(const QString &renderer)
|
||||
{
|
||||
comboBox_antialiasing->clear();
|
||||
comboBox_antialiasing->addItems(getAvailableOptions(QString("FSAA")));
|
||||
comboBox_antialiasing->addItems(mModel->getOgreOptions(QString("FSAA"), renderer));
|
||||
|
||||
comboBox_shaderlanguage->clear();
|
||||
comboBox_shaderlanguage->addItems(mModel->getShaderLanguageByRenderer(renderer));
|
||||
|
||||
if(mModel->settingValue("Video/use settings.cfg") == "true")
|
||||
{
|
||||
label_RenderingSubsystem->setEnabled(false);
|
||||
comboBox_rendersystem->setEnabled(false);
|
||||
label_Antialiasing->setEnabled(false);
|
||||
comboBox_antialiasing->setEnabled(false);
|
||||
checkBox_vsync->setEnabled(false);
|
||||
label_ShaderLanguage->setEnabled(false);
|
||||
comboBox_shaderlanguage->setEnabled(false);
|
||||
}
|
||||
else
|
||||
checkBox_override->setChecked(false);
|
||||
}
|
||||
|
||||
void CSVSettings::SettingsDialog::slotOverrideToggled(bool checked)
|
||||
{
|
||||
if(checked)
|
||||
{
|
||||
label_RenderingSubsystem->setEnabled(false);
|
||||
comboBox_rendersystem->setEnabled(false);
|
||||
label_Antialiasing->setEnabled(false);
|
||||
comboBox_antialiasing->setEnabled(false);
|
||||
checkBox_vsync->setEnabled(false);
|
||||
label_ShaderLanguage->setEnabled(false);
|
||||
comboBox_shaderlanguage->setEnabled(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
label_RenderingSubsystem->setEnabled(true);
|
||||
comboBox_rendersystem->setEnabled(true);
|
||||
label_Antialiasing->setEnabled(true);
|
||||
comboBox_antialiasing->setEnabled(true);
|
||||
checkBox_vsync->setEnabled(true);
|
||||
label_ShaderLanguage->setEnabled(true);
|
||||
comboBox_shaderlanguage->setEnabled(true);
|
||||
}
|
||||
}
|
||||
|
||||
// FIXME: what to do with updating window size
|
||||
void CSVSettings::SettingsDialog::slotStandardToggled(bool checked)
|
||||
{
|
||||
if (checked)
|
||||
|
@ -192,22 +234,28 @@ void CSVSettings::SettingsDialog::slotStandardToggled(bool checked)
|
|||
|
||||
void CSVSettings::SettingsDialog::setViewValues()
|
||||
{
|
||||
//rendererChanged(Ogre::Root::getSingleton().getRenderSystemByName(renderer.toStdString()));
|
||||
rendererChanged(); // setup antialiasing options
|
||||
int index = -1;
|
||||
|
||||
if(mModel->settingValue("Video/use settings.cfg") == "true")
|
||||
{
|
||||
label_RenderingSubsystem->setEnabled(false);
|
||||
comboBox_rendersystem->setEnabled(false);
|
||||
label_Antialiasing->setEnabled(false);
|
||||
comboBox_antialiasing->setEnabled(false);
|
||||
checkBox_vsync->setEnabled(false);
|
||||
label_ShaderLanguage->setEnabled(false);
|
||||
comboBox_shaderlanguage->setEnabled(false);
|
||||
// initialised in the constructor
|
||||
slotOverrideToggled(checkBox_override->isChecked());
|
||||
|
||||
}
|
||||
else
|
||||
checkBox_override->setChecked(false);
|
||||
// Ogre initialised earlier
|
||||
slotRendererChanged(Ogre::Root::getSingleton().getRenderSystem()->getName().c_str());
|
||||
|
||||
// antialiasing
|
||||
QString antialiasing = mModel->settingValue("Video/antialiasing");
|
||||
index = comboBox_antialiasing->findData(antialiasing, Qt::DisplayRole);
|
||||
if(index != -1)
|
||||
comboBox_antialiasing->setCurrentIndex(index);
|
||||
|
||||
// vsync
|
||||
checkBox_vsync->setChecked(mModel->settingValue("Video/vsync") == "true");
|
||||
|
||||
// shader lang
|
||||
QString shaderlang = mModel->settingValue("Shader/language");
|
||||
index = comboBox_shaderlanguage->findData(shaderlang, Qt::DisplayRole);
|
||||
if(index != -1)
|
||||
comboBox_shaderlanguage->setCurrentIndex(index);
|
||||
|
||||
if(mModel->settingValue("Window Size/Width") != "")
|
||||
spinBox_x->setValue(mModel->settingValue("Window Size/Width").toInt());
|
||||
|
@ -222,9 +270,7 @@ void CSVSettings::SettingsDialog::setViewValues()
|
|||
QString currRes = mModel->settingValue("Window Size/Width") + " x " +
|
||||
mModel->settingValue("Window Size/Height");
|
||||
|
||||
int index = comboBox_std_window_size->findData(currRes,
|
||||
Qt::DisplayRole,
|
||||
Qt::MatchStartsWith);
|
||||
index = comboBox_std_window_size->findData(currRes, Qt::DisplayRole, Qt::MatchStartsWith);
|
||||
if(index != -1)
|
||||
{
|
||||
// show the values in ini file
|
||||
|
@ -234,9 +280,7 @@ void CSVSettings::SettingsDialog::setViewValues()
|
|||
else
|
||||
{
|
||||
// show what's in Ogre instead
|
||||
index = comboBox_std_window_size->findData(getCurrentOgreResolution(),
|
||||
Qt::DisplayRole,
|
||||
Qt::MatchStartsWith);
|
||||
index = comboBox_std_window_size->findData(getCurrentOgreResolution(), Qt::DisplayRole, Qt::MatchStartsWith);
|
||||
if(index != -1)
|
||||
comboBox_std_window_size->setCurrentIndex(index);
|
||||
|
||||
|
@ -260,6 +304,55 @@ void CSVSettings::SettingsDialog::saveSettings()
|
|||
}
|
||||
}
|
||||
#endif
|
||||
std::cout << "closeEvent" << std::endl;
|
||||
|
||||
// override
|
||||
if(checkBox_override->isChecked())
|
||||
mModel->setDefinitions("Video/use settings.cfg", QStringList("true"));
|
||||
else
|
||||
mModel->setDefinitions("Video/use settings.cfg", QStringList("false"));
|
||||
|
||||
// render system
|
||||
mModel->setDefinitions("Video/render system",
|
||||
QStringList(comboBox_rendersystem->currentText()));
|
||||
|
||||
// vsync
|
||||
if(checkBox_vsync->isChecked())
|
||||
mModel->setDefinitions("Video/vsync", QStringList("true"));
|
||||
else
|
||||
mModel->setDefinitions("Video/vsync", QStringList("false"));
|
||||
|
||||
// antialiasing
|
||||
mModel->setDefinitions("Video/antialiasing",
|
||||
QStringList(comboBox_antialiasing->currentText()));
|
||||
#if 0
|
||||
QRegExp reAA("^\\D*(\\d+)\\D*");
|
||||
if(reAA.indexIn(comboBox_antialiasing->currentText()) > -1)
|
||||
mModel->setDefinitions("Video/antialiasing", QStringList(reAA.cap(1)));
|
||||
#endif
|
||||
|
||||
// shader lang
|
||||
mModel->setDefinitions("Shader/language",
|
||||
QStringList(comboBox_shaderlanguage->currentText()));
|
||||
|
||||
// window size
|
||||
if(radioButton_standard_res->isChecked())
|
||||
{
|
||||
QRegExp re("^(\\d+) x (\\d+)");
|
||||
if(re.indexIn(comboBox_std_window_size->currentText()) > -1)
|
||||
{
|
||||
mModel->setDefinitions("Window Size/Width", QStringList(re.cap(1)));
|
||||
mModel->setDefinitions("Window Size/Height", QStringList(re.cap(2)));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
mModel->setDefinitions("Window Size/Width",
|
||||
QStringList(QString::number(spinBox_x->value())));
|
||||
mModel->setDefinitions("Window Size/Height",
|
||||
QStringList(QString::number(spinBox_y->value())));
|
||||
}
|
||||
|
||||
mModel->saveDefinitions();
|
||||
}
|
||||
|
||||
|
|
|
@ -48,7 +48,10 @@ namespace CSVSettings {
|
|||
|
||||
void show();
|
||||
|
||||
void rendererChanged();
|
||||
void slotStandardClicked();
|
||||
void slotCustomClicked();
|
||||
void slotRendererChanged(const QString &renderer);
|
||||
void slotOverrideToggled(bool checked);
|
||||
void slotStandardToggled(bool checked);
|
||||
};
|
||||
}
|
||||
|
|
|
@ -31,19 +31,53 @@
|
|||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_Screen">
|
||||
<item row="1" column="3">
|
||||
<widget class="QSpinBox" name="spinBox_y"/>
|
||||
<widget class="ClickSpinBox" name="spinBox_y">
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<widget class="QSpinBox" name="spinBox_x">
|
||||
<widget class="ClickSpinBox" name="spinBox_x">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>186</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<item row="0" column="2" colspan="2">
|
||||
<widget class="ClickComboBox" name="comboBox_std_window_size">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>180</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QRadioButton" name="radioButton_custom_res">
|
||||
<property name="text">
|
||||
<string>Custom:</string>
|
||||
</property>
|
||||
<attribute name="buttonGroup">
|
||||
<string notr="true">buttonGroup</string>
|
||||
</attribute>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLabel" name="label_Resolution">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QRadioButton" name="radioButton_standard_res">
|
||||
<property name="text">
|
||||
<string>Standard:</string>
|
||||
|
@ -56,33 +90,6 @@
|
|||
</attribute>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QRadioButton" name="radioButton_custom_res">
|
||||
<property name="text">
|
||||
<string>Custom;</string>
|
||||
</property>
|
||||
<attribute name="buttonGroup">
|
||||
<string notr="true">buttonGroup</string>
|
||||
</attribute>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_Resolution">
|
||||
<property name="text">
|
||||
<string>Window Size</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2" colspan="2">
|
||||
<widget class="QComboBox" name="comboBox_std_window_size">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>180</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QGroupBox" name="renderGroup">
|
||||
|
@ -108,10 +115,10 @@
|
|||
</rect>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Display</string>
|
||||
<string>Window Size</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QWidget" name="layoutWidget">
|
||||
<widget class="QWidget" name="layoutWidget_Render">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>20</x>
|
||||
|
@ -180,7 +187,7 @@
|
|||
<widget class="QComboBox" name="comboBox_shaderlanguage">
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>HLSL</string>
|
||||
<string>GLSL</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
|
@ -212,7 +219,7 @@
|
|||
</layout>
|
||||
</widget>
|
||||
<zorder>renderGroup</zorder>
|
||||
<zorder>layoutWidget</zorder>
|
||||
<zorder>layoutWidget_Render</zorder>
|
||||
<zorder>displayGroup</zorder>
|
||||
<zorder>layoutWidget_Screen</zorder>
|
||||
</widget>
|
||||
|
@ -220,34 +227,46 @@
|
|||
<attribute name="title">
|
||||
<string>Display Settings</string>
|
||||
</attribute>
|
||||
<widget class="QWidget" name="layoutWidget2">
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>20</x>
|
||||
<y>30</y>
|
||||
<width>351</width>
|
||||
<height>116</height>
|
||||
<x>10</x>
|
||||
<y>10</y>
|
||||
<width>371</width>
|
||||
<height>71</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_Subview">
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_MaxSubviews">
|
||||
<property name="title">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QGroupBox" name="groupBox_2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>9</x>
|
||||
<y>110</y>
|
||||
<width>371</width>
|
||||
<height>111</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Subviews</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QWidget" name="layoutWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>21</x>
|
||||
<y>20</y>
|
||||
<width>351</width>
|
||||
<height>45</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_ShowIcon">
|
||||
<property name="text">
|
||||
<string>Max Number of Subviews</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_MinSubviewWidth">
|
||||
<property name="text">
|
||||
<string>Min Subview Width</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QCheckBox" name="checkBox_reuse_subview">
|
||||
<property name="text">
|
||||
<string>Reuse Subviews</string>
|
||||
<string>Display Format:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -265,11 +284,51 @@
|
|||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QSpinBox" name="spinBox_max_subviews"/>
|
||||
<item row="1" column="0">
|
||||
<widget class="QCheckBox" name="checkBox">
|
||||
<property name="text">
|
||||
<string>Show Status Bar</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="layoutWidget2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>21</x>
|
||||
<y>130</y>
|
||||
<width>351</width>
|
||||
<height>71</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_MaxSubviews">
|
||||
<property name="text">
|
||||
<string>Max Number of Subviews:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QSpinBox" name="spinBox_max_subviews">
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_MinSubviewWidth">
|
||||
<property name="text">
|
||||
<string>Min Subview Width:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QSpinBox" name="spinBox_min_subview_width">
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<number>325</number>
|
||||
</property>
|
||||
|
@ -281,29 +340,18 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_ShowIcon">
|
||||
<item row="2" column="0">
|
||||
<widget class="QCheckBox" name="checkBox_reuse_subview">
|
||||
<property name="text">
|
||||
<string>Show Icon</string>
|
||||
<string>Reuse Subviews</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>10</y>
|
||||
<width>371</width>
|
||||
<height>151</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>GroupBox</string>
|
||||
</property>
|
||||
</widget>
|
||||
<zorder>groupBox_2</zorder>
|
||||
<zorder>groupBox</zorder>
|
||||
<zorder>layoutWidget</zorder>
|
||||
<zorder>layoutWidget2</zorder>
|
||||
</widget>
|
||||
<widget class="QWidget" name="MiscSettings">
|
||||
|
@ -312,6 +360,18 @@
|
|||
</attribute>
|
||||
</widget>
|
||||
</widget>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
<class>ClickSpinBox</class>
|
||||
<extends>QSpinBox</extends>
|
||||
<header>clickspinbox.hpp</header>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>ClickComboBox</class>
|
||||
<extends>QComboBox</extends>
|
||||
<header>clickcombobox.hpp</header>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<resources/>
|
||||
<connections/>
|
||||
<buttongroups>
|
||||
|
|
Loading…
Reference in a new issue