summaryrefslogtreecommitdiff
path: root/muse2/synti/fluidsynth/fluidsynti.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'muse2/synti/fluidsynth/fluidsynti.cpp')
-rw-r--r--muse2/synti/fluidsynth/fluidsynti.cpp20
1 files changed, 19 insertions, 1 deletions
diff --git a/muse2/synti/fluidsynth/fluidsynti.cpp b/muse2/synti/fluidsynth/fluidsynti.cpp
index ab00606e..0fca4122 100644
--- a/muse2/synti/fluidsynth/fluidsynti.cpp
+++ b/muse2/synti/fluidsynth/fluidsynti.cpp
@@ -33,6 +33,7 @@
#include <iostream>
#include <QFileInfo>
+#include <QFileDialog>
//#include "common_defs.h"
#include "fluidsynti.h"
@@ -602,9 +603,26 @@ bool FluidSynth::pushSoundfont (const char* filename, int extid)
FS_Helper* helper = new FS_Helper;
helper->fptr = this;
- helper->filename = filename;
helper->id = extid;
+ if (QFile::exists(filename))
+ {
+ helper->filename = filename;
+ }
+ else
+ {
+
+ // TODO: Strings should be translated, this does
+ // however require the class to be derived from qobject
+ // tried in vain to make the call in the gui object
+ // could'nt get it to work due to symbol missing in .so ...
+ QString newName = QFileDialog::getOpenFileName(0,
+ QString("Can't find soundfont: %1 - Choose soundfont").arg(filename),
+ filename,
+ QString("Soundfonts (*.sf2);;All files (*)"));
+ helper->filename = newName.toStdString();
+ }
+
if (pthread_create(&fontThread, attributes, ::fontLoadThread, (void*) helper))
perror("creating thread failed:");