From c035ce2deeb71698b7d266753d11befefee44a77 Mon Sep 17 00:00:00 2001 From: joren Date: Tue, 24 Mar 2026 11:36:54 +0100 Subject: [PATCH] =?UTF-8?q?fix:=20remove=20gapless=20toggle=20=E2=80=94=20?= =?UTF-8?q?architecture=20is=20always=20gapless?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The player keeps the audio output alive between tracks unconditionally. The toggle only controlled URL prefetching, not actual audio gaplessness. Remove the setting and always prefetch the next track URL. Co-Authored-By: Claude Sonnet 4.6 --- src/dialog/settings.cpp | 5 ----- src/dialog/settings.hpp | 1 - src/mainwindow.cpp | 4 ++-- src/util/settings.hpp | 3 --- 4 files changed, 2 insertions(+), 11 deletions(-) diff --git a/src/dialog/settings.cpp b/src/dialog/settings.cpp index 135d541..a3fef51 100644 --- a/src/dialog/settings.cpp +++ b/src/dialog/settings.cpp @@ -41,10 +41,6 @@ SettingsDialog::SettingsDialog(QWidget *parent) : QDialog(parent) m_replayGain->setChecked(AppSettings::instance().replayGainEnabled()); playLayout->addRow(m_replayGain); - m_gapless = new QCheckBox(tr("Gapless playback (pre-fetch next track)"), playGroup); - m_gapless->setChecked(AppSettings::instance().gaplessEnabled()); - playLayout->addRow(m_gapless); - layout->addWidget(playGroup); // --- Last.fm group --- @@ -100,7 +96,6 @@ void SettingsDialog::applyChanges() { AppSettings::instance().setPreferredFormat(m_formatBox->currentData().toInt()); AppSettings::instance().setReplayGainEnabled(m_replayGain->isChecked()); - AppSettings::instance().setGaplessEnabled(m_gapless->isChecked()); AppSettings::instance().setLastFmEnabled(m_lastFmEnabled->isChecked()); AppSettings::instance().setLastFmApiKey(m_lastFmApiKey->text().trimmed()); AppSettings::instance().setLastFmApiSecret(m_lastFmApiSecret->text().trimmed()); diff --git a/src/dialog/settings.hpp b/src/dialog/settings.hpp index 10ff78b..534b4cb 100644 --- a/src/dialog/settings.hpp +++ b/src/dialog/settings.hpp @@ -19,7 +19,6 @@ private: // Playback QComboBox *m_formatBox = nullptr; QCheckBox *m_replayGain = nullptr; - QCheckBox *m_gapless = nullptr; // Last.fm QCheckBox *m_lastFmEnabled = nullptr; diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 6683484..3174f3d 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -269,8 +269,8 @@ void MainWindow::onTrackChanged(const QJsonObject &track) statusBar()->showMessage( artist.isEmpty() ? title : QStringLiteral("▶ %1 — %2").arg(artist, title)); - // Gapless: prefetch next track URL so it starts immediately - if (AppSettings::instance().gaplessEnabled() && m_queue->canGoNext()) { + // Prefetch next track URL to minimise the gap between tracks + if (m_queue->canGoNext()) { const auto upcoming = m_queue->upcomingTracks(1); if (!upcoming.isEmpty()) { const qint64 nextId = static_cast(upcoming.first()["id"].toDouble()); diff --git a/src/util/settings.hpp b/src/util/settings.hpp index e637ac6..49828dc 100644 --- a/src/util/settings.hpp +++ b/src/util/settings.hpp @@ -38,9 +38,6 @@ public: bool replayGainEnabled() const { return m_settings.value("playback/replaygain", false).toBool(); } void setReplayGainEnabled(bool v) { m_settings.setValue("playback/replaygain", v); } - bool gaplessEnabled() const { return m_settings.value("playback/gapless", false).toBool(); } - void setGaplessEnabled(bool v) { m_settings.setValue("playback/gapless", v); } - // --- Last.fm --- bool lastFmEnabled() const { return m_settings.value("lastfm/enabled", false).toBool(); } void setLastFmEnabled(bool v) { m_settings.setValue("lastfm/enabled", v); }