diff --git a/src/player.cpp b/src/player.cpp index 5d8c871..6a934bb 100644 --- a/src/player.cpp +++ b/src/player.cpp @@ -71,7 +71,8 @@ void Player::timeout() { void Player::autoHideTimeout() { if (m_autoHideDuration > 0) { m_autoHideDuration -= m_timerAutoHide.interval(); - emit pulse(tick() - m_pauseStart + m_lastSubtitles.at(0)->msseStart()); + if (!m_lastSubtitles.isEmpty()) + emit pulse(tick() - m_pauseStart + m_lastSubtitles.at(0)->msseStart()); } else { emit autoHide(); m_timerAutoHide.stop(); @@ -115,7 +116,7 @@ const QList Player::current() const { return m_lastSubtitles; } void Player::updateCurrent(quint64 msecsElapsed) { // Sanity check - if (m_script == 0) + if (m_script == nullptr) return; // Find subtitles that match elapsed time QList currentSubtitles = m_script->currentSubtitles(msecsElapsed); diff --git a/src/script.cpp b/src/script.cpp index 14f9b03..8cd45d3 100644 --- a/src/script.cpp +++ b/src/script.cpp @@ -95,7 +95,11 @@ Script::Script(const QString &p_fileName, int p_charsRate, Script::ScriptFormat Script::format() const { return m_format; } -quint64 Script::totalDuration() const { return m_subtitles.last()->msseEnd(); } +quint64 Script::totalDuration() const { + if (m_subtitles.isEmpty()) + return 0; + return m_subtitles.last()->msseEnd(); +} const QString &Script::fileName() const { return m_fileName; } @@ -112,8 +116,11 @@ int Script::subtitleMinDuration() const { return m_subtitleMinDuration; }; SubtitleStyle *Script::style(const QString &p_name) const { // If style is unknown, return first one. - if (!m_styles.contains(p_name)) + if (!m_styles.contains(p_name)) { + if (m_styles.isEmpty()) + return nullptr; return m_styles[m_styles.keys().at(0)]; + } return m_styles[p_name]; } @@ -394,6 +401,8 @@ void Script::loadFromSrt(QStringList content) { new SubtitleStyle(tr("Default"), font, Qt::white, this); m_styles[style->name()] = style; + if (content.isEmpty()) + return; // Make sure its ends with empty line if (!content.last().isEmpty()) content.append(QString()); @@ -443,6 +452,8 @@ void Script::loadFromTxt(QStringList content) { new SubtitleStyle(tr("Default"), font, Qt::white, this); m_styles[style->name()] = style; + if (content.isEmpty()) + return; // Make sure its ends with empty line if (!content.last().isEmpty()) content.append(QString());