void MainWindow::on_actionAdd_File_triggered() { this->settings->beginGroup(QStringLiteral("paths")); QFileDialog *dialog = new QFileDialog(this); DialogMaster::masterDialog(dialog); dialog->setWindowTitle(tr("Open Icon Archive")); dialog->setAcceptMode(QFileDialog::AcceptOpen); dialog->setFileMode(QFileDialog::ExistingFiles); dialog->setDirectory(this->settings->value(QStringLiteral("openPath")).toString()); QStringList mTypes = byteToStringList(QImageReader::supportedMimeTypes()); mTypes.append(QStringLiteral("application/octet-stream")); dialog->setMimeTypeFilters(mTypes); QString selFilter = this->settings->value(QStringLiteral("openFilter")).toString(); qDebug() << selFilter; if(selFilter.isEmpty()) { #if defined(Q_OS_WIN) dialog->selectMimeTypeFilter(QStringLiteral("image/vnd.microsoft.icon")); #elif defined(Q_OS_OSX) dialog->selectMimeTypeFilter(QStringLiteral("image/x-icns")); #else dialog->selectMimeTypeFilter(QStringLiteral("image/png")); #endif } else dialog->selectNameFilter(selFilter); this->settings->endGroup(); dialog->open(this, SLOT(fileSelected(QStringList))); }
bool FileSystem::saveAsDialog() { QFileDialog dialog; dialog.setMimeTypeFilters(Config::supportedSaveMimeTypes()); dialog.setAcceptMode(QFileDialog::AcceptSave); dialog.selectFile(getCurrentAbsoluteFileName()); dialog.setDirectory(getCurrentAbsoluteFileName()); dialog.selectMimeTypeFilter("image/jpeg"); bool success; if(dialog.exec()) { QImage img; if(SaveConfirmation::imageWasChanged(getCurrentAbsoluteFileName())) { img = SaveConfirmation::getChagedImage(getCurrentAbsoluteFileName()); success = img.save(dialog.selectedFiles().first()); if(success) SaveConfirmation::deleteImage(getCurrentAbsoluteFileName()); } else { img.load(getCurrentAbsoluteFileName()); success = img.save(dialog.selectedFiles().first()); } } return success; }
static void initializeImageFileDialog(QFileDialog &dialog, QFileDialog::AcceptMode acceptMode) { static bool firstDialog = true; if (firstDialog) { firstDialog = false; const QStringList picturesLocations = QStandardPaths::standardLocations(QStandardPaths::PicturesLocation); dialog.setDirectory(picturesLocations.isEmpty() ? QDir::currentPath() : picturesLocations.last()); } QStringList mimeTypeFilters; const QByteArrayList supportedMimeTypes = acceptMode == QFileDialog::AcceptOpen ? QImageReader::supportedMimeTypes() : QImageWriter::supportedMimeTypes(); foreach (const QByteArray &mimeTypeName, supportedMimeTypes) mimeTypeFilters.append(mimeTypeName); mimeTypeFilters.sort(); dialog.setMimeTypeFilters(mimeTypeFilters); dialog.selectMimeTypeFilter("image/jpeg"); if (acceptMode == QFileDialog::AcceptSave) dialog.setDefaultSuffix("jpg"); }