Change GeometryGranularity and GeometrySizeMode to QMetaEnums

master
adrido 2018-08-18 06:37:00 +02:00
parent 225439be67
commit 838126a383
2 changed files with 40 additions and 42 deletions

View File

@ -9,31 +9,6 @@
#include <QStringList> #include <QStringList>
static QMap<int, QString> geometryGranularitySymbolic;
static QMap<QString, int> geometryGranularityNumeric;
static QMap<int, QString> geometrySizeModeSymbolic;
static QMap<QString, int> geometrySizeModeNumeric;
struct InitStatics { InitStatics(void); };
static const InitStatics initStatics;
InitStatics::InitStatics(void)
{
int n = -1;
geometryGranularitySymbolic[n++] = "unspecified";
geometryGranularitySymbolic[n++] = "pixel";
geometryGranularitySymbolic[n++] = "block";
for (int i = -1; i < n; i++)
geometryGranularityNumeric[geometryGranularitySymbolic[i]] = i;
n = -1;
geometrySizeModeSymbolic[n++] = "auto";
geometrySizeModeSymbolic[n++] = "auto";
geometrySizeModeSymbolic[n++] = "fixed";
geometrySizeModeSymbolic[n++] = "shrink";
for (int i = -1; i < n; i++)
geometrySizeModeNumeric[geometrySizeModeSymbolic[i]] = i;
}
MainWindow::MainWindow(bool portable, const QString &translationsPath, QTranslator *translator, QTranslator *qtTranslator, QWidget *parent) : MainWindow::MainWindow(bool portable, const QString &translationsPath, QTranslator *translator, QTranslator *qtTranslator, QWidget *parent) :
QMainWindow(parent), QMainWindow(parent),
ui(new Ui::MainWindow), ui(new Ui::MainWindow),
@ -171,12 +146,12 @@ void MainWindow::showEvent( QShowEvent* event ) {
void MainWindow::finishUiInitialisation(void) void MainWindow::finishUiInitialisation(void)
{ {
ui->geometrymode_granularity_group->setId(ui->geometrymode_pixel, geometryGranularityNumeric["pixel"]); ui->geometrymode_granularity_group->setId(ui->geometrymode_pixel, static_cast<int>(GeometryGranularity::pixel) );
ui->geometrymode_granularity_group->setId(ui->geometrymode_block, geometryGranularityNumeric["block"]); ui->geometrymode_granularity_group->setId(ui->geometrymode_block, static_cast<int>(GeometryGranularity::block) );
ui->geometrymode_size_group->setId(ui->geometrymode_auto, geometrySizeModeNumeric["auto"]); ui->geometrymode_size_group->setId(ui->geometrymode_auto, static_cast<int>(GeometrySizeMode::automatic));
ui->geometrymode_size_group->setId(ui->geometrymode_fixed, geometrySizeModeNumeric["fixed"]); ui->geometrymode_size_group->setId(ui->geometrymode_fixed, static_cast<int>(GeometrySizeMode::fixed));
ui->geometrymode_size_group->setId(ui->geometrymode_shrink, geometrySizeModeNumeric["shrink"]); ui->geometrymode_size_group->setId(ui->geometrymode_shrink, static_cast<int>(GeometrySizeMode::shrink));
} }
// we create the language menu entries dynamically, dependent on the existing translations. // we create the language menu entries dynamically, dependent on the existing translations.
@ -651,10 +626,6 @@ void MainWindow::writeSettings()
void MainWindow::writeProfile() void MainWindow::writeProfile()
{ {
//QSettings::setDefaultFormat(QSettings::IniFormat);
//QSettings profile;
//looks odd, but it constructs the correct settingsfile
//QSettings profile(QString("%1/%2.ini").arg(pathProfiles).arg(currentProfile), QSettings::IniFormat);
if(portable && !profile->isWritable()){ if(portable && !profile->isWritable()){
QMessageBox::warning(this, tr("Can not save profile"), QMessageBox::warning(this, tr("Can not save profile"),
tr("Minetest Mapper GUI could not save the current Profile '%1' to %2.\n" tr("Minetest Mapper GUI could not save the current Profile '%1' to %2.\n"
@ -679,8 +650,8 @@ void MainWindow::writeProfile()
profile->setValue("geometry_format",ui->geometry->getFormatStr()); profile->setValue("geometry_format",ui->geometry->getFormatStr());
profile->setValue("minY",ui->minY->value()); profile->setValue("minY",ui->minY->value());
profile->setValue("maxY",ui->maxY->value()); profile->setValue("maxY",ui->maxY->value());
profile->setValue("geometry_granularity",geometryGranularitySymbolic[ui->geometrymode_granularity_group->checkedId()]); profile->setValue("geometry_granularity", meGeometryGranularity.key(ui->geometrymode_granularity_group->checkedId()));
profile->setValue("geometry_sizemode",geometrySizeModeSymbolic[ui->geometrymode_size_group->checkedId()]); profile->setValue("geometry_sizemode", meGeometrySizeMode.key(ui->geometrymode_size_group->checkedId()));
profile->endGroup(); profile->endGroup();
profile->beginGroup("heightmap"); //tab3 heightmap profile->beginGroup("heightmap"); //tab3 heightmap
@ -779,13 +750,23 @@ void MainWindow::readProfile()
ui->maxY->setValue(profile->value("maxY",0).toInt()); ui->maxY->setValue(profile->value("maxY",0).toInt());
ui->minY->setValue(profile->value("minY",0).toInt()); ui->minY->setValue(profile->value("minY",0).toInt());
QString granularity = profile->value("geometry_granularity").toString(); QString granularity = profile->value("geometry_granularity").toString();
if (geometryGranularityNumeric.find(granularity) != geometryGranularityNumeric.end()) bool ok = false;
ui->geometrymode_granularity_group->button(geometryGranularityNumeric[granularity])->setChecked(true); int index = meGeometryGranularity.keyToValue(granularity.toLatin1().data(), &ok);
// Else post a warning message ?? if (ok && index != static_cast<int>(GeometryGranularity::unspecified)) {
ui->geometrymode_granularity_group->button(index)->setChecked(true);
}
else if(!ok) {
qWarning() << "Granularity "<< granularity << "is invalid.";
}
QString sizemode = profile->value("geometry_sizemode").toString(); QString sizemode = profile->value("geometry_sizemode").toString();
if (geometrySizeModeNumeric.find(sizemode) != geometrySizeModeNumeric.end()) index = meGeometrySizeMode.keyToValue(sizemode.toLatin1().data(), &ok);
ui->geometrymode_size_group->button(geometrySizeModeNumeric[sizemode])->setChecked(true); if(ok){
// Else post a warning message ?? ui->geometrymode_size_group->button(index)->setChecked(true);
qWarning() << "Holadiahoh GeometrySizeMode "<< sizemode << "is invalid.";
}
else{
qWarning() << "GeometrySizeMode "<< sizemode << "is invalid.";
}
profile->endGroup(); profile->endGroup();
profile->beginGroup("heightmap"); //tab3 Heightmap profile->beginGroup("heightmap"); //tab3 Heightmap

View File

@ -1,6 +1,7 @@
#ifndef MAINWINDOW_H #ifndef MAINWINDOW_H
#define MAINWINDOW_H #define MAINWINDOW_H
#include <QtDebug>
#include <QActionGroup> #include <QActionGroup>
#include <QCloseEvent> #include <QCloseEvent>
#include <QColorDialog> #include <QColorDialog>
@ -39,6 +40,22 @@ public:
explicit MainWindow(bool portable, const QString &translationsPath, QTranslator *translator, QTranslator *qtTranslator, QWidget *parent = 0); explicit MainWindow(bool portable, const QString &translationsPath, QTranslator *translator, QTranslator *qtTranslator, QWidget *parent = 0);
~MainWindow(); ~MainWindow();
enum class GeometryGranularity {
unspecified = -1,
pixel = 0,
block = 1
};
Q_ENUM(GeometryGranularity)
const QMetaEnum meGeometryGranularity = QMetaEnum::fromType<GeometryGranularity>();
enum class GeometrySizeMode {
automatic = 0,
fixed,
shrink
};
Q_ENUM(GeometrySizeMode)
const QMetaEnum meGeometrySizeMode = QMetaEnum::fromType<GeometrySizeMode>();
public slots: public slots:
void startColorsTxtAssistant(); void startColorsTxtAssistant();
protected: protected: