File filter

Display extensions
This commit is contained in:
stojce 2014-01-11 21:03:49 +01:00
parent d81968df51
commit 623def0964
4 changed files with 22 additions and 17 deletions

View file

@ -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;
}

View file

@ -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<QString, QString> 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);

View file

@ -22,6 +22,7 @@ public:
HiFiIconProvider(const QHash<QString, QString> map) { iconsMap = map; };
virtual QIcon icon(IconType type) const;
virtual QIcon icon(const QFileInfo &info) const;
virtual QString type(const QFileInfo &info) const;
QHash<QString, QString> iconsMap;
};

View file

@ -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()));
}