diff --git a/src/samplerbank.cpp b/src/samplerbank.cpp index b044f2228f7b..00412110c3f3 100644 --- a/src/samplerbank.cpp +++ b/src/samplerbank.cpp @@ -29,14 +29,24 @@ void SamplerBank::slotSaveSamplerBank(double v) { if (v == 0.0 || m_pPlayerManager == NULL) { return; } - + QString filefilter = tr("Mixxx Sampler Banks (*.xml)"); QString samplerBankPath = QFileDialog::getSaveFileName( NULL, tr("Save Sampler Bank"), QString(), - tr("Mixxx Sampler Banks (*.xml)")); - if (samplerBankPath.isEmpty()) { + tr("Mixxx Sampler Banks (*.xml)"), + &filefilter); + if (samplerBankPath.isNull() || samplerBankPath.isEmpty()) { return; } + // Manually add extension due to bug in QFileDialog + // via https://bugreports.qt-project.org/browse/QTBUG-27186 + // Can be removed after switch to Qt5 + QFileInfo fileName(samplerBankPath); + if (fileName.suffix().isEmpty()) { + QString ext = filefilter.section(".",1,1); + ext.chop(1); + samplerBankPath.append(".").append(ext); + } // The user has picked a new directory via a file dialog. This means the // system sandboxer (if we are sandboxed) has granted us permission to this