From 623def0964ddc7f76b5a8d55d045d96042534a0f Mon Sep 17 00:00:00 2001 From: stojce Date: Sat, 11 Jan 2014 21:03:49 +0100 Subject: [PATCH] File filter Display extensions --- interface/resources/styles/import_dialog.qss | 9 ++----- interface/src/ImportDialog.cpp | 28 +++++++++++++------- interface/src/ImportDialog.h | 1 + interface/src/VoxelImporter.cpp | 1 - 4 files changed, 22 insertions(+), 17 deletions(-) diff --git a/interface/resources/styles/import_dialog.qss b/interface/resources/styles/import_dialog.qss index 139d79da09..10b22fb8de 100644 --- a/interface/resources/styles/import_dialog.qss +++ b/interface/resources/styles/import_dialog.qss @@ -71,15 +71,10 @@ QTreeView QHeaderView:section { } QTreeView::item { - height: 30px; + padding: 7px 0; } -QListView::item:selected, -QListView::item:selected:active, -QTreeView::item:selected, -QTreeView::item:selected:active { +QTreeView::item:selected { background: #BDE4E3; color: #333333; - padding: 0; - margin: 0; } diff --git a/interface/src/ImportDialog.cpp b/interface/src/ImportDialog.cpp index dc05204804..300e26d37b 100644 --- a/interface/src/ImportDialog.cpp +++ b/interface/src/ImportDialog.cpp @@ -72,17 +72,28 @@ QIcon HiFiIconProvider::icon(const QFileInfo &info) const { } QFileInfo iconFile("resources/icons/" + iconsMap[ext]); - if (iconFile.exists()) { + if (iconFile.exists() && iconFile.isFile()) { return QIcon(iconFile.filePath()); } return QIcon("resources/icons/file.svg"); } +QString HiFiIconProvider::type(const QFileInfo &info) const { + if (info.isFile()) { + if (info.suffix().size() > 4) { + return info.suffix().at(0).toUpper() + info.suffix().mid(1); + } + return info.suffix().toUpper(); + } + + return QFileIconProvider::type(info); +} + ImportDialog::ImportDialog(QWidget *parent) : - QFileDialog(parent, WINDOW_NAME, DESKTOP_LOCATION, NULL), - _importButton(IMPORT_BUTTON_NAME, this), - _cancelButton(CANCEL_BUTTON_NAME, this) { +QFileDialog(parent, WINDOW_NAME, DESKTOP_LOCATION, NULL), +_importButton(IMPORT_BUTTON_NAME, this), +_cancelButton(CANCEL_BUTTON_NAME, this) { setOption(QFileDialog::DontUseNativeDialog, true); setFileMode(QFileDialog::ExistingFile); @@ -96,8 +107,8 @@ ImportDialog::ImportDialog(QWidget *parent) : gridLayout->addWidget(&_importButton, 2, 2); 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))); } ImportDialog::~ImportDialog() { @@ -210,7 +221,7 @@ void ImportDialog::setImportTypes() { if (!document.isNull() && !document.isEmpty()) { QString importFormatsInfo; - QStringList importFormatsFilterList; + QString importFormatsFilterList; QHash iconsMap; QJsonObject configObject = document.object(); @@ -233,7 +244,7 @@ void ImportDialog::setImportTypes() { importFormatsInfo.append(" or"); } - importFormatsFilterList.append(QString("%1 (*.%2)").arg(description, ext)); + importFormatsFilterList.append(QString("*.%1 ").arg(ext)); importFormatsInfo.append(" .").append(ext); iconsMap[ext] = icon; ff++; @@ -242,8 +253,7 @@ void ImportDialog::setImportTypes() { // set custom file icons setIconProvider(new HiFiIconProvider(iconsMap)); - - setNameFilters(importFormatsFilterList); + setNameFilter(importFormatsFilterList); setLabelText(QFileDialog::LookIn, QString(IMPORT_INFO).arg(importFormatsInfo)); setLabelText(QFileDialog::FileName, INFO_LABEL_TEXT); diff --git a/interface/src/ImportDialog.h b/interface/src/ImportDialog.h index 8dc9bda7d1..f66321c209 100644 --- a/interface/src/ImportDialog.h +++ b/interface/src/ImportDialog.h @@ -22,6 +22,7 @@ public: HiFiIconProvider(const QHash map) { iconsMap = map; }; virtual QIcon icon(IconType type) const; virtual QIcon icon(const QFileInfo &info) const; + virtual QString type(const QFileInfo &info) const; QHash iconsMap; }; diff --git a/interface/src/VoxelImporter.cpp b/interface/src/VoxelImporter.cpp index 5c7a0db7d2..3db8a9f4e6 100644 --- a/interface/src/VoxelImporter.cpp +++ b/interface/src/VoxelImporter.cpp @@ -28,7 +28,6 @@ VoxelImporter::VoxelImporter(QWidget* parent) _currentTask(NULL), _nextTask(NULL) { - connect(&_importDialog, SIGNAL(previewToggled(bool)), SLOT(preImport())); connect(&_importDialog, SIGNAL(currentChanged(QString)), SLOT(preImport())); connect(&_importDialog, SIGNAL(accepted()), SLOT(import())); }