mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 10:07:58 +02:00
refactoring
This commit is contained in:
parent
227326e3b7
commit
d81968df51
2 changed files with 57 additions and 60 deletions
|
@ -10,12 +10,7 @@
|
||||||
#include <QStandardPaths>
|
#include <QStandardPaths>
|
||||||
#include <QGridLayout>
|
#include <QGridLayout>
|
||||||
#include <QSplitter>
|
#include <QSplitter>
|
||||||
#include <QFile>
|
|
||||||
#include <QFileInfo>
|
|
||||||
#include <QDir>
|
|
||||||
|
|
||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
#include <QStyle>
|
|
||||||
#include <QJsonDocument>
|
#include <QJsonDocument>
|
||||||
#include <QJsonArray>
|
#include <QJsonArray>
|
||||||
#include <QJsonObject>
|
#include <QJsonObject>
|
||||||
|
@ -24,10 +19,6 @@ const QString WINDOW_NAME = QObject::tr("Import Voxels");
|
||||||
const QString IMPORT_BUTTON_NAME = QObject::tr("Import");
|
const QString IMPORT_BUTTON_NAME = QObject::tr("Import");
|
||||||
const QString IMPORT_INFO = QObject::tr("<b>Import</b> %1 as voxels");
|
const QString IMPORT_INFO = QObject::tr("<b>Import</b> %1 as voxels");
|
||||||
const QString CANCEL_BUTTON_NAME = QObject::tr("Cancel");
|
const QString CANCEL_BUTTON_NAME = QObject::tr("Cancel");
|
||||||
const QString IMPORT_FILE_TYPES = QObject::tr("Sparse Voxel Octree Files, "
|
|
||||||
"Square PNG, "
|
|
||||||
"Schematic Files "
|
|
||||||
"(*.svo *.png *.schematic)");
|
|
||||||
const QString INFO_LABEL_TEXT = QObject::tr("This will load selected file into Hifi and\n"
|
const QString INFO_LABEL_TEXT = QObject::tr("This will load selected file into Hifi and\n"
|
||||||
"allow you to place it with Command V");
|
"allow you to place it with Command V");
|
||||||
|
|
||||||
|
@ -88,59 +79,16 @@ QIcon HiFiIconProvider::icon(const QFileInfo &info) const {
|
||||||
return QIcon("resources/icons/file.svg");
|
return QIcon("resources/icons/file.svg");
|
||||||
}
|
}
|
||||||
|
|
||||||
ImportDialog::ImportDialog(QWidget *parent) : QFileDialog(parent, WINDOW_NAME, DESKTOP_LOCATION, NULL),
|
ImportDialog::ImportDialog(QWidget *parent) :
|
||||||
_importButton(IMPORT_BUTTON_NAME, this),
|
QFileDialog(parent, WINDOW_NAME, DESKTOP_LOCATION, NULL),
|
||||||
_cancelButton(CANCEL_BUTTON_NAME, this) {
|
_importButton(IMPORT_BUTTON_NAME, this),
|
||||||
|
_cancelButton(CANCEL_BUTTON_NAME, this) {
|
||||||
|
|
||||||
setOption(QFileDialog::DontUseNativeDialog, true);
|
setOption(QFileDialog::DontUseNativeDialog, true);
|
||||||
setFileMode(QFileDialog::ExistingFile);
|
setFileMode(QFileDialog::ExistingFile);
|
||||||
setViewMode(QFileDialog::Detail);
|
setViewMode(QFileDialog::Detail);
|
||||||
|
|
||||||
switchToResourcesParentIfRequired();
|
setImportTypes();
|
||||||
QFile config("resources/config/config.json");
|
|
||||||
config.open(QFile::ReadOnly | QFile::Text);
|
|
||||||
QJsonDocument document = QJsonDocument::fromJson(config.readAll());
|
|
||||||
if (!document.isNull() && !document.isEmpty()) {
|
|
||||||
|
|
||||||
QString importFormatsInfo;
|
|
||||||
QStringList importFormatsFilterList;
|
|
||||||
QHash<QString, QString> iconsMap;
|
|
||||||
|
|
||||||
QJsonObject config = document.object();
|
|
||||||
if (!config.isEmpty()) {
|
|
||||||
QJsonArray fileFormats = config["importFormats"].toArray();
|
|
||||||
int ff = 0;
|
|
||||||
foreach (const QJsonValue& fileFormat, fileFormats) {
|
|
||||||
QJsonObject fileFormatObject = fileFormat.toObject();
|
|
||||||
|
|
||||||
QString ext(fileFormatObject["extension"].toString());
|
|
||||||
QString description(fileFormatObject.value("description").toString());
|
|
||||||
QString icon(fileFormatObject.value("icon").toString());
|
|
||||||
|
|
||||||
if (ff > 0) {
|
|
||||||
importFormatsInfo.append(",");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ff == fileFormats.count() - 1) {
|
|
||||||
importFormatsInfo.append(" or");
|
|
||||||
}
|
|
||||||
|
|
||||||
importFormatsFilterList.append(QString("%1 (*.%2)").arg(description, ext));
|
|
||||||
importFormatsInfo.append(" .").append(ext);
|
|
||||||
iconsMap[ext] = icon;
|
|
||||||
ff++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// set custom file icons
|
|
||||||
setIconProvider(new HiFiIconProvider(iconsMap));
|
|
||||||
|
|
||||||
setNameFilters(importFormatsFilterList);
|
|
||||||
|
|
||||||
setLabelText(QFileDialog::LookIn, QString(IMPORT_INFO).arg(importFormatsInfo));
|
|
||||||
setLabelText(QFileDialog::FileName, INFO_LABEL_TEXT);
|
|
||||||
|
|
||||||
}
|
|
||||||
setLayout();
|
setLayout();
|
||||||
|
|
||||||
QGridLayout* gridLayout = (QGridLayout*) layout();
|
QGridLayout* gridLayout = (QGridLayout*) layout();
|
||||||
|
@ -150,7 +98,6 @@ _cancelButton(CANCEL_BUTTON_NAME, this) {
|
||||||
connect(&_importButton, SIGNAL(pressed()), SLOT(import()));
|
connect(&_importButton, SIGNAL(pressed()), SLOT(import()));
|
||||||
connect(this, SIGNAL(currentChanged(QString)), SLOT(saveCurrentFile(QString)));
|
connect(this, SIGNAL(currentChanged(QString)), SLOT(saveCurrentFile(QString)));
|
||||||
connect(&_cancelButton, SIGNAL(pressed()), SLOT(close()));
|
connect(&_cancelButton, SIGNAL(pressed()), SLOT(close()));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ImportDialog::~ImportDialog() {
|
ImportDialog::~ImportDialog() {
|
||||||
|
@ -183,7 +130,7 @@ void ImportDialog::saveCurrentFile(QString filename) {
|
||||||
_currentFile = filename;
|
_currentFile = filename;
|
||||||
_importButton.setEnabled(true);
|
_importButton.setEnabled(true);
|
||||||
} else {
|
} else {
|
||||||
_currentFile = "";
|
_currentFile.clear();
|
||||||
_importButton.setEnabled(false);
|
_importButton.setEnabled(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -198,7 +145,7 @@ void ImportDialog::setLayout() {
|
||||||
_importButton.setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
|
_importButton.setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
|
||||||
_cancelButton.setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
|
_cancelButton.setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
|
||||||
|
|
||||||
// hide unused embeded widgets in QFileDialog
|
// hide unused embedded widgets in QFileDialog
|
||||||
QWidget* widget = findChild<QWidget*>("lookInCombo");
|
QWidget* widget = findChild<QWidget*>("lookInCombo");
|
||||||
widget->hide();
|
widget->hide();
|
||||||
|
|
||||||
|
@ -253,3 +200,52 @@ void ImportDialog::setLayout() {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ImportDialog::setImportTypes() {
|
||||||
|
|
||||||
|
switchToResourcesParentIfRequired();
|
||||||
|
QFile config("resources/config/config.json");
|
||||||
|
config.open(QFile::ReadOnly | QFile::Text);
|
||||||
|
QJsonDocument document = QJsonDocument::fromJson(config.readAll());
|
||||||
|
if (!document.isNull() && !document.isEmpty()) {
|
||||||
|
|
||||||
|
QString importFormatsInfo;
|
||||||
|
QStringList importFormatsFilterList;
|
||||||
|
QHash<QString, QString> iconsMap;
|
||||||
|
|
||||||
|
QJsonObject configObject = document.object();
|
||||||
|
if (!configObject.isEmpty()) {
|
||||||
|
QJsonArray fileFormats = configObject["importFormats"].toArray();
|
||||||
|
int ff = 0;
|
||||||
|
foreach (const QJsonValue& fileFormat, fileFormats) {
|
||||||
|
QJsonObject fileFormatObject = fileFormat.toObject();
|
||||||
|
|
||||||
|
QString ext(fileFormatObject["extension"].toString());
|
||||||
|
QString description(fileFormatObject.value("description").toString());
|
||||||
|
QString icon(fileFormatObject.value("icon").toString());
|
||||||
|
|
||||||
|
if (ff > 0) {
|
||||||
|
importFormatsInfo.append(",");
|
||||||
|
}
|
||||||
|
|
||||||
|
// set ' or' on last import type text
|
||||||
|
if (ff == fileFormats.count() - 1) {
|
||||||
|
importFormatsInfo.append(" or");
|
||||||
|
}
|
||||||
|
|
||||||
|
importFormatsFilterList.append(QString("%1 (*.%2)").arg(description, ext));
|
||||||
|
importFormatsInfo.append(" .").append(ext);
|
||||||
|
iconsMap[ext] = icon;
|
||||||
|
ff++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// set custom file icons
|
||||||
|
setIconProvider(new HiFiIconProvider(iconsMap));
|
||||||
|
|
||||||
|
setNameFilters(importFormatsFilterList);
|
||||||
|
|
||||||
|
setLabelText(QFileDialog::LookIn, QString(IMPORT_INFO).arg(importFormatsInfo));
|
||||||
|
setLabelText(QFileDialog::FileName, INFO_LABEL_TEXT);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -54,6 +54,7 @@ private:
|
||||||
QPushButton _cancelButton;
|
QPushButton _cancelButton;
|
||||||
|
|
||||||
void setLayout();
|
void setLayout();
|
||||||
|
void setImportTypes();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* defined(__hifi__ImportDialog__) */
|
#endif /* defined(__hifi__ImportDialog__) */
|
||||||
|
|
Loading…
Reference in a new issue