Merge pull request #1717 from stojce/19483

2nd Code Review for Job #19483
This commit is contained in:
ZappoMan 2014-01-27 14:23:39 -08:00
commit f2cfb1634b
3 changed files with 69 additions and 42 deletions

View file

@ -10,7 +10,6 @@
#include <QStandardPaths>
#include <QGridLayout>
#include <QSplitter>
#include <QApplication>
#include <QJsonDocument>
#include <QJsonArray>
#include <QJsonObject>
@ -20,9 +19,9 @@ const QString IMPORT_BUTTON_NAME = QObject::tr("Import");
const QString IMPORT_INFO = QObject::tr("<b>Import</b> %1 as voxels");
const QString CANCEL_BUTTON_NAME = QObject::tr("Cancel");
const QString INFO_LABEL_TEXT = QObject::tr("<div style='line-height:20px;'>"
"This will load the selected file into Hifi and allow you<br/>"
"to place it with %1-V; you must be in select or<br/>"
"add mode (S or V keys will toggle mode) to place.</div>");
"This will load the selected file into Hifi and allow you<br/>"
"to place it with %1-V; you must be in select or<br/>"
"add mode (S or V keys will toggle mode) to place.</div>");
const QString DESKTOP_LOCATION = QStandardPaths::writableLocation(QStandardPaths::DesktopLocation);
const int SHORT_FILE_EXTENSION = 4;
@ -98,7 +97,8 @@ QString HiFiIconProvider::type(const QFileInfo &info) const {
ImportDialog::ImportDialog(QWidget* parent) :
QFileDialog(parent, WINDOW_NAME, DESKTOP_LOCATION, NULL),
_importButton(IMPORT_BUTTON_NAME, this),
_cancelButton(CANCEL_BUTTON_NAME, this) {
_cancelButton(CANCEL_BUTTON_NAME, this),
fileAccepted(false) {
setOption(QFileDialog::DontUseNativeDialog, true);
setFileMode(QFileDialog::ExistingFile);
@ -121,6 +121,8 @@ ImportDialog::ImportDialog(QWidget* parent) :
setLayout();
connect(&_importButton, SIGNAL(pressed()), SLOT(import()));
connect(this, SIGNAL(currentChanged(QString)), SLOT(saveCurrentFile(QString)));
connect(&_cancelButton, SIGNAL(pressed()), SLOT(close()));
connect(this, SIGNAL(currentChanged(QString)), SLOT(saveCurrentFile(QString)));
}
@ -130,12 +132,22 @@ ImportDialog::~ImportDialog() {
}
void ImportDialog::import() {
fileAccepted = true;
emit accepted();
close();
}
void ImportDialog::accept() {
QFileDialog::accept();
// do nothing if import is not enable
if (!_importButton.isEnabled()) {
return;
}
if (!fileAccepted) {
fileAccepted = true;
emit accepted();
} else {
QFileDialog::accept();
}
}
void ImportDialog::reject() {
@ -251,7 +263,6 @@ void ImportDialog::setImportTypes() {
QJsonObject fileFormatObject = fileFormat.toObject();
QString ext(fileFormatObject["extension"].toString());
QString description(fileFormatObject.value("description").toString());
QString icon(fileFormatObject.value("icon").toString());
if (formatsCounter > 0) {

View file

@ -56,6 +56,7 @@ private:
void setLayout();
void setImportTypes();
bool fileAccepted;
};
#endif /* defined(__hifi__ImportDialog__) */

View file

@ -103,6 +103,21 @@ int VoxelImporter::preImport() {
return 0;
}
_filename = filename;
if (_nextTask) {
delete _nextTask;
}
_nextTask = new ImportTask(_filename);
connect(_nextTask, SIGNAL(destroyed()), SLOT(launchTask()));
if (_currentTask != NULL) {
_voxelTree.cancelImport();
} else {
launchTask();
}
return 1;
}