diff --git a/main.cpp b/main.cpp
index 3c966ea00..8e2708d8f 100644
--- a/main.cpp
+++ b/main.cpp
@@ -106,13 +106,9 @@ int main(int argc, char *argv[])
// instantiating QApplication so
// that GUI has correct l18n
- // Override programs executable basename as application name.
- a.setApplicationName ("WSJT-X");
- a.setApplicationVersion (version ());
- bool multiple {false};
-
QPixmap splash_pic {":/splash.png"};
QSplashScreen splash {splash_pic, Qt::WindowStaysOnTopHint};
+ splash.setWindowTitle (QString {});
splash.showMessage ("
" + QString {"Alpha Release: WSJT-X v" +
QCoreApplication::applicationVersion() + " " +
revision ()}.simplified () + "
"
@@ -131,6 +127,10 @@ int main(int argc, char *argv[])
splash.show ();
a.processEvents ();
+ // Override programs executable basename as application name.
+ a.setApplicationName ("WSJT-X");
+ a.setApplicationVersion (version ());
+
#if QT_VERSION >= 0x050200
QCommandLineParser parser;
parser.setApplicationDescription ("\nJT65A & JT9 Weak Signal Communications Program.");
@@ -149,6 +149,7 @@ int main(int argc, char *argv[])
if (!parser.parse (a.arguments ()))
{
+ splash.hide ();
MessageBox::critical_message (nullptr, a.translate ("main", "Command line error"), parser.errorText ());
return -1;
}
@@ -156,11 +157,13 @@ int main(int argc, char *argv[])
{
if (parser.isSet (help_option))
{
+ splash.hide ();
MessageBox::information_message (nullptr, a.translate ("main", "Command line help"), parser.helpText ());
return 0;
}
else if (parser.isSet (version_option))
{
+ splash.hide ();
MessageBox::information_message (nullptr, a.translate ("main", "Application version"), a.applicationVersion ());
return 0;
}
@@ -169,6 +172,7 @@ int main(int argc, char *argv[])
QStandardPaths::setTestModeEnabled (parser.isSet (test_option));
// support for multiple instances running from a single installation
+ bool multiple {false};
if (parser.isSet (rig_option) || parser.isSet (test_option))
{
auto temp_name = parser.value (rig_option);
@@ -203,6 +207,7 @@ int main(int argc, char *argv[])
{
if (QLockFile::LockFailedError == instance_lock.error ())
{
+ splash.hide ();
auto button = MessageBox::query_message (nullptr
, a.translate ("main", "Another instance may be running")
, a.translate ("main", "try to remove stale lock file?")
@@ -221,6 +226,7 @@ int main(int argc, char *argv[])
default:
throw std::runtime_error {"Multiple instances must have unique rig names"};
}
+ splash.show ();
}
}
#endif
@@ -239,6 +245,7 @@ int main(int argc, char *argv[])
if (!temp_dir.mkpath (unique_directory)
|| !temp_dir.cd (unique_directory))
{
+ splash.hide ();
MessageBox::critical_message (nullptr,
a.translate ("main", "Failed to create a temporary directory"),
a.translate ("main", "Path: \"%1\"").arg (temp_dir.absolutePath ()));
@@ -246,6 +253,7 @@ int main(int argc, char *argv[])
}
if (!temp_dir.isReadable () || !(temp_ok = QTemporaryFile {temp_dir.absoluteFilePath ("test")}.open ()))
{
+ splash.hide ();
auto button = MessageBox::critical_message (nullptr,
a.translate ("main", "Failed to create a usable temporary directory"),
a.translate ("main", "Another application may be locking the directory"),
@@ -255,6 +263,7 @@ int main(int argc, char *argv[])
{
throw std::runtime_error {"Failed to create a usable temporary directory"};
}
+ splash.show ();
temp_dir.cdUp (); // revert to parent as this one is no good
}
}
@@ -294,6 +303,7 @@ int main(int argc, char *argv[])
if(!mem_jt9.attach()) {
if (!mem_jt9.create(sizeof(struct dec_data))) {
+ splash.hide ();
MessageBox::critical_message (nullptr, a.translate ("main", "Shared memory error"),
a.translate ("main", "Unable to create shared memory segment"));
throw std::runtime_error {"Shared memory error"};
diff --git a/mainwindow.cpp b/mainwindow.cpp
index 53751aaa1..577f5ab71 100644
--- a/mainwindow.cpp
+++ b/mainwindow.cpp
@@ -871,7 +871,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple,
void MainWindow::splash_done ()
{
- m_splash->close ();
+ m_splash && m_splash->close ();
}
void MainWindow::on_the_minute ()
@@ -1321,10 +1321,16 @@ void MainWindow::fastSink(qint64 frames)
}
void MainWindow::showSoundInError(const QString& errorMsg)
-{MessageBox::critical_message (this, tr ("Error in Sound Input"), errorMsg);}
+{
+ if (m_splash && m_splash->isVisible ()) m_splash->hide ();
+ MessageBox::critical_message (this, tr ("Error in Sound Input"), errorMsg);
+}
void MainWindow::showSoundOutError(const QString& errorMsg)
-{MessageBox::critical_message (this, tr ("Error in Sound Output"), errorMsg);}
+{
+ if (m_splash && m_splash->isVisible ()) m_splash->hide ();
+ MessageBox::critical_message (this, tr ("Error in Sound Output"), errorMsg);
+}
void MainWindow::showStatusMessage(const QString& statusMsg)
{statusBar()->showMessage(statusMsg);}
@@ -1613,6 +1619,7 @@ void MainWindow::statusChanged()
<< ui->rptSpinBox->value() << ";" << m_modeTx << endl;
f.close();
} else {
+ if (m_splash && m_splash->isVisible ()) m_splash->hide ();
MessageBox::warning_message (this, tr ("Status File Error")
, tr ("Cannot open \"%1\" for writing: %2")
.arg (f.fileName ()).arg (f.errorString ()));
@@ -1756,6 +1763,7 @@ void MainWindow::subProcessFailed (QProcess * process, int exit_code, QProcess::
if (argument.contains (' ')) argument = '"' + argument + '"';
arguments << argument;
}
+ if (m_splash && m_splash->isVisible ()) m_splash->hide ();
MessageBox::critical_message (this, tr ("Subprocess Error")
, tr ("Subprocess failed with exit code %1")
.arg (exit_code)
@@ -1777,6 +1785,7 @@ void MainWindow::subProcessError (QProcess * process, QProcess::ProcessError)
if (argument.contains (' ')) argument = '"' + argument + '"';
arguments << argument;
}
+ if (m_splash && m_splash->isVisible ()) m_splash->hide ();
MessageBox::critical_message (this, tr ("Subprocess error")
, tr ("Running: %1\n%2")
.arg (process->program () + ' ' + arguments.join (' '))
@@ -2563,8 +2572,6 @@ void MainWindow::guiUpdate()
double txDuration;
QString rt;
- if (m_splash && m_splash->isVisible ()) m_splash->raise ();
-
if(m_TRperiod==0) m_TRperiod=60;
txDuration=0.0;
if(m_modeTx=="JT4") txDuration=1.0 + 207.0*2520/11025.0; // JT4
@@ -4870,6 +4877,7 @@ void MainWindow::rigFailure (QString const& reason)
}
else
{
+ if (m_splash && m_splash->isVisible ()) m_splash->hide ();
m_rigErrorMessageBox.setDetailedText (reason);
// don't call slot functions directly to avoid recursion
@@ -5382,6 +5390,7 @@ void MainWindow::postWSPRDecode (bool is_new, QStringList parts)
void MainWindow::networkError (QString const& e)
{
+ if (m_splash && m_splash->isVisible ()) m_splash->hide ();
if (MessageBox::Retry == MessageBox::warning_message (this, tr ("Network Error")
, tr ("Error: %1\nUDP server %2:%3")
.arg (e)