[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    extragear/multimedia/kmid/alsa
From:       Pedro Lopez-Cabanillas <pedro.lopez.cabanillas () gmail ! com>
Date:       2010-09-11 14:22:57
Message-ID: 20100911142257.CC0DCAC888 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1174220 by pedrol:

better soft synth settings error messages

 M  +15 -6     alsabackend.cpp  
 M  +29 -5     externalsoftsynth.cpp  
 M  +2 -0      externalsoftsynth.h  


--- trunk/extragear/multimedia/kmid/alsa/alsabackend.cpp #1174219:1174220
@@ -200,14 +200,19 @@
     void ALSABackend::updateConfigWidget()
     {
         QString version;
+        QString available;
         bool Ok = d->m_fluidsynth->isProgramOK();
         version = d->m_fluidsynth->programVersion();
         d->ui_prefs_progs.label_fluid_available->setPixmap(
             Ok ? KIcon("flag-green").pixmap(24,24) :
                  KIcon("flag-red").pixmap(24,24) );
-        d->ui_prefs_progs.label_fluid_available->setText(
-            version.isEmpty() ? i18nc("@info","Not found") :
-                i18nc("@info","Found version: %1", version) );
+        available = version.isEmpty() ? i18nc("@info","Not valid") :
+            i18nc("@info","Found version: %1", version);
+        if (!Ok) {
+            available += "<br>";
+            available += d->m_fluidsynth->getSettingsErrorMessage();
+        }
+        d->ui_prefs_progs.label_fluid_available->setText(available);
         d->ui_prefs_progs.kcfg_exec_fluid->setEnabled(Ok);
         d->ui_prefs_progs.kcfg_audio_fluid->setEnabled(Ok);
         d->ui_prefs_progs.kcfg_args_fluid->setEnabled(Ok);
@@ -219,9 +224,13 @@
         d->ui_prefs_progs.label_timidity_available->setPixmap(
             Ok ? KIcon("flag-green").pixmap(24,24) :
                  KIcon("flag-red").pixmap(24,24) );
-        d->ui_prefs_progs.label_timidity_available->setText(
-            version.isEmpty() ? i18nc("@info","Not found") :
-                i18nc("@info","Found version: %1", version) );
+        available = version.isEmpty() ? i18nc("@info","Not valid") :
+            i18nc("@info","Found version: %1", version);
+        if (!Ok) {
+            available += "<br>";
+            available += d->m_timidity->getSettingsErrorMessage();
+        }
+        d->ui_prefs_progs.label_timidity_available->setText(available);
         d->ui_prefs_progs.kcfg_exec_timidity->setEnabled(Ok);
         d->ui_prefs_progs.kcfg_audio_timidity->setEnabled(Ok);
         d->ui_prefs_progs.kcfg_args_timidity->setEnabled(Ok);
--- trunk/extragear/multimedia/kmid/alsa/externalsoftsynth.cpp #1174219:1174220
@@ -41,6 +41,7 @@
     qRegisterMetaType<QProcess::ExitStatus>("QProcess::ExitStatus");
     m_prettyName.clear();
     m_version.clear();
+    m_errorMesssage.clear();
     moveToThread(&m_thread);
     connect(&m_thread, SIGNAL(started()), SLOT(slotThreadStarted()));
 }
@@ -65,6 +66,11 @@
     return m_warnings;
 }
 
+QString ExternalSoftSynth::getSettingsErrorMessage() const
+{
+    return m_errorMesssage;
+}
+
 bool ExternalSoftSynth::settingsChanged()
 {
     foreach( const QString& propName, m_settingsNames ) {
@@ -227,8 +233,11 @@
     QString cmd = KGlobal::dirs()->findExe(u.toLocalFile());
     m_Ok = false;
     m_version.clear();
-    if (cmd.isEmpty())
+    m_errorMesssage.clear();
+    if (cmd.isEmpty()) {
+        m_errorMesssage = i18nc("@info","The command is incorrect");
         return;
+    }
     timidity.setOutputChannelMode( KProcess::MergedChannels );
     timidity << cmd << "--version";
     if( timidity.execute( STARTUP_TIMEOUT ) >= 0 ) {
@@ -236,6 +245,8 @@
         m_version = parseVersion(s);
         QString copyright = parseCopyright(s);
         m_Ok = !m_version.isEmpty() && !copyright.isEmpty();
+        if (!m_Ok)
+            m_errorMesssage = i18nc("@info","This program version is not supported");
     }
 }
 
@@ -322,17 +333,30 @@
     QString cmd = KGlobal::dirs()->findExe(u.toLocalFile());
     m_Ok = false;
     m_version.clear();
-    if (cmd.isEmpty())
+    m_errorMesssage.clear();
+    if (cmd.isEmpty()) {
+        m_errorMesssage =i18nc("@info","The command is incorrect");
         return;
+    }
     fluidsynth.setOutputChannelMode( KProcess::MergedChannels );
     fluidsynth << cmd << "--version";
     if( fluidsynth.execute( STARTUP_TIMEOUT ) >= 0 ) {
         QString s = QString::fromLocal8Bit( fluidsynth.readAll() );
         m_version = parseVersion(s);
-        m_Ok = !m_version.isEmpty() && !m_settings->sf2_fluid().isEmpty();
-        m_Ok &= (versionNumber(m_version) >= 0x010009U);
+        m_Ok = !m_version.isEmpty() && (versionNumber(m_version) >= 0x010009U);
+        if (!m_Ok) {
+            m_errorMesssage = i18nc("@info","This program version is not supported");
+            return;
+        }
+        m_Ok = !m_settings->sf2_fluid().isEmpty();
+        if (!m_Ok) {
+            m_errorMesssage = i18nc("@info","A SoundFont file is required");
+            return;
+        }
         QFileInfo info(m_settings->sf2_fluid().toLocalFile());
-        m_Ok &= info.exists();
+        m_Ok = info.exists();
+        if (!m_Ok)
+            m_errorMesssage = i18nc("@info","The SoundFont file does not exist");
     }
 }
 
--- trunk/extragear/multimedia/kmid/alsa/externalsoftsynth.h #1174219:1174220
@@ -47,6 +47,7 @@
     bool settingsChanged();
     bool isOutputReady();
     QStringList getErrorMessages() const;
+    QString getSettingsErrorMessage() const;
 
     virtual void start(bool waiting = false);
     virtual void terminate();
@@ -79,6 +80,7 @@
     QString  m_prettyName;
     QString  m_version;
     QThread m_thread;
+    QString m_errorMesssage;
 };
 
 class TimiditySoftSynth : public ExternalSoftSynth {
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic