fix: remove gapless toggle — architecture is always gapless

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 <noreply@anthropic.com>
This commit is contained in:
joren
2026-03-24 11:36:54 +01:00
parent 8088412d4b
commit c035ce2dee
4 changed files with 2 additions and 11 deletions

View File

@@ -41,10 +41,6 @@ SettingsDialog::SettingsDialog(QWidget *parent) : QDialog(parent)
m_replayGain->setChecked(AppSettings::instance().replayGainEnabled()); m_replayGain->setChecked(AppSettings::instance().replayGainEnabled());
playLayout->addRow(m_replayGain); 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); layout->addWidget(playGroup);
// --- Last.fm group --- // --- Last.fm group ---
@@ -100,7 +96,6 @@ void SettingsDialog::applyChanges()
{ {
AppSettings::instance().setPreferredFormat(m_formatBox->currentData().toInt()); AppSettings::instance().setPreferredFormat(m_formatBox->currentData().toInt());
AppSettings::instance().setReplayGainEnabled(m_replayGain->isChecked()); AppSettings::instance().setReplayGainEnabled(m_replayGain->isChecked());
AppSettings::instance().setGaplessEnabled(m_gapless->isChecked());
AppSettings::instance().setLastFmEnabled(m_lastFmEnabled->isChecked()); AppSettings::instance().setLastFmEnabled(m_lastFmEnabled->isChecked());
AppSettings::instance().setLastFmApiKey(m_lastFmApiKey->text().trimmed()); AppSettings::instance().setLastFmApiKey(m_lastFmApiKey->text().trimmed());
AppSettings::instance().setLastFmApiSecret(m_lastFmApiSecret->text().trimmed()); AppSettings::instance().setLastFmApiSecret(m_lastFmApiSecret->text().trimmed());

View File

@@ -19,7 +19,6 @@ private:
// Playback // Playback
QComboBox *m_formatBox = nullptr; QComboBox *m_formatBox = nullptr;
QCheckBox *m_replayGain = nullptr; QCheckBox *m_replayGain = nullptr;
QCheckBox *m_gapless = nullptr;
// Last.fm // Last.fm
QCheckBox *m_lastFmEnabled = nullptr; QCheckBox *m_lastFmEnabled = nullptr;

View File

@@ -269,8 +269,8 @@ void MainWindow::onTrackChanged(const QJsonObject &track)
statusBar()->showMessage( statusBar()->showMessage(
artist.isEmpty() ? title : QStringLiteral("▶ %1 — %2").arg(artist, title)); artist.isEmpty() ? title : QStringLiteral("▶ %1 — %2").arg(artist, title));
// Gapless: prefetch next track URL so it starts immediately // Prefetch next track URL to minimise the gap between tracks
if (AppSettings::instance().gaplessEnabled() && m_queue->canGoNext()) { if (m_queue->canGoNext()) {
const auto upcoming = m_queue->upcomingTracks(1); const auto upcoming = m_queue->upcomingTracks(1);
if (!upcoming.isEmpty()) { if (!upcoming.isEmpty()) {
const qint64 nextId = static_cast<qint64>(upcoming.first()["id"].toDouble()); const qint64 nextId = static_cast<qint64>(upcoming.first()["id"].toDouble());

View File

@@ -38,9 +38,6 @@ public:
bool replayGainEnabled() const { return m_settings.value("playback/replaygain", false).toBool(); } bool replayGainEnabled() const { return m_settings.value("playback/replaygain", false).toBool(); }
void setReplayGainEnabled(bool v) { m_settings.setValue("playback/replaygain", v); } 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 --- // --- Last.fm ---
bool lastFmEnabled() const { return m_settings.value("lastfm/enabled", false).toBool(); } bool lastFmEnabled() const { return m_settings.value("lastfm/enabled", false).toBool(); }
void setLastFmEnabled(bool v) { m_settings.setValue("lastfm/enabled", v); } void setLastFmEnabled(bool v) { m_settings.setValue("lastfm/enabled", v); }