openmw/apps/opencs/view/prefs/page.cpp

47 lines
1.2 KiB
C++
Raw Normal View History

2015-12-08 17:21:58 +01:00
#include "page.hpp"
#include <QGridLayout>
#include <QPushButton>
2015-12-08 17:21:58 +01:00
#include "../../model/prefs/setting.hpp"
#include "../../model/prefs/category.hpp"
#include "../../model/prefs/state.hpp"
2015-12-08 17:21:58 +01:00
CSVPrefs::Page::Page (CSMPrefs::Category& category, QWidget *parent)
: PageBase (category, parent)
{
QWidget *widget = new QWidget (parent);
mGrid = new QGridLayout (widget);
QWidget* resetAll = new QPushButton("Reset all to default", this);
connect (resetAll, SIGNAL (clicked()), this, SLOT (resetCategory()));
mGrid->addWidget(resetAll, 0, 0, 1, 2);
2015-12-08 17:21:58 +01:00
for (CSMPrefs::Category::Iterator iter = category.begin(); iter!=category.end(); ++iter)
addSetting (*iter);
setWidget (widget);
}
void CSVPrefs::Page::addSetting (CSMPrefs::Setting *setting)
{
std::pair<QWidget *, QWidget *> widgets = setting->makeWidgets (this);
int next = mGrid->rowCount();
if (widgets.first)
{
mGrid->addWidget (widgets.first, next, 0);
mGrid->addWidget (widgets.second, next, 1);
}
else if (widgets.second)
{
2015-12-10 13:28:48 +01:00
mGrid->addWidget (widgets.second, next, 0, 1, 2);
2015-12-08 17:21:58 +01:00
}
else
{
mGrid->addWidget (new QWidget (this), next, 0);
}
}