From 63f0ab96a40e12e17b21b6b0b1194af0fa6dec5f Mon Sep 17 00:00:00 2001 From: Martchus Date: Mon, 7 Aug 2023 23:03:13 +0200 Subject: [PATCH] Fix/improve code for DB query widget --- gui/dbquerywidget.cpp | 29 +++++++++-------------------- gui/dbquerywidget.h | 2 +- 2 files changed, 10 insertions(+), 21 deletions(-) diff --git a/gui/dbquerywidget.cpp b/gui/dbquerywidget.cpp index 7c2866c..89ce982 100644 --- a/gui/dbquerywidget.cpp +++ b/gui/dbquerywidget.cpp @@ -130,19 +130,18 @@ DbQueryWidget::~DbQueryWidget() values().dbQuery.override = m_ui->overrideCheckBox->isChecked(); } -void DbQueryWidget::insertSearchTermsFromTagEdit(TagEdit *tagEdit, bool songSpecific) +void DbQueryWidget::insertSearchTermsFromTagEdit(TagEdit *tagEdit) { if (!tagEdit) { return; } - bool somethingChanged = false; - - // be always song-specific when querying makeitpersonal - songSpecific = m_lastSearchAction == m_searchMakeItPersonalAction; + auto somethingChanged = false; + auto lyricsCentricProvider + = (m_lastSearchAction == m_searchTekstowoAction) || (m_searchMakeItPersonalAction && m_lastSearchAction == m_searchMakeItPersonalAction); // set album and artist - if (m_lastSearchAction != m_searchMakeItPersonalAction) { + if (!lyricsCentricProvider) { const auto newAlbum = tagValueToQString(tagEdit->value(KnownField::Album)); if (m_ui->albumLineEdit->text() != newAlbum) { m_ui->albumLineEdit->setText(newAlbum); @@ -155,20 +154,10 @@ void DbQueryWidget::insertSearchTermsFromTagEdit(TagEdit *tagEdit, bool songSpec somethingChanged = true; } - if (!songSpecific) { - return; - } - // set title and track number - const auto newTitle = tagValueToQString(tagEdit->value(KnownField::Title)); - if (m_ui->titleLineEdit->text() != newTitle) { - m_ui->titleLineEdit->setText(newTitle); - somethingChanged = true; - } - if (m_lastSearchAction != m_searchTekstowoAction && m_lastSearchAction != m_searchMakeItPersonalAction) { - const auto newTrackNumber = tagEdit->trackNumber(); - if (m_ui->trackSpinBox->value() != newTrackNumber) { - m_ui->trackSpinBox->setValue(newTrackNumber); + if (lyricsCentricProvider) { + if (const auto newTitle = tagValueToQString(tagEdit->value(KnownField::Title)); m_ui->titleLineEdit->text() != newTitle) { + m_ui->titleLineEdit->setText(newTitle); somethingChanged = true; } } @@ -263,7 +252,7 @@ void DbQueryWidget::searchMakeItPersonal() void DbQueryWidget::searchTekstowo() { - m_lastSearchAction = m_searchMakeItPersonalAction; + m_lastSearchAction = m_searchTekstowoAction; // check whether enough search terms are supplied if (m_ui->artistLineEdit->text().isEmpty() || m_ui->titleLineEdit->text().isEmpty()) { diff --git a/gui/dbquerywidget.h b/gui/dbquerywidget.h index 341e56b..57aa8d5 100644 --- a/gui/dbquerywidget.h +++ b/gui/dbquerywidget.h @@ -31,7 +31,7 @@ public: explicit DbQueryWidget(TagEditorWidget *tagEditorWidget, QWidget *parent = nullptr); ~DbQueryWidget() override; - void insertSearchTermsFromTagEdit(TagEdit *tagEdit, bool songSpecific = false); + void insertSearchTermsFromTagEdit(TagEdit *tagEdit); SongDescription currentSongDescription() const; void applyResults(TagEdit *tagEdit, const QModelIndex &resultIndex);