forked from qt-creator/qt-creator
SearchResultWidget: Disable replace button if replace text is unchanged
To avoid unneeded file rename operations when the "Rename x files" checkbox is checked. Change-Id: I3fc8b1607979bdfcdd7a3f2d3cf172350f7ca758 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
This commit is contained in:
committed by
André Hartmann
parent
941af98716
commit
e75f595873
@@ -210,6 +210,8 @@ SearchResultWidget::SearchResultWidget(QWidget *parent) :
|
||||
this, &SearchResultWidget::handleReplaceButton);
|
||||
connect(m_replaceButton, &QAbstractButton::clicked,
|
||||
this, &SearchResultWidget::handleReplaceButton);
|
||||
connect(m_replaceTextEdit, &QLineEdit::textChanged,
|
||||
this, &SearchResultWidget::handleReplaceEditTextChanged);
|
||||
}
|
||||
|
||||
SearchResultWidget::~SearchResultWidget()
|
||||
@@ -304,6 +306,7 @@ void SearchResultWidget::setSupportsReplace(bool replaceSupported, const QString
|
||||
|
||||
void SearchResultWidget::setTextToReplace(const QString &textToReplace)
|
||||
{
|
||||
m_replaceText = textToReplace;
|
||||
m_replaceTextEdit->setText(textToReplace);
|
||||
}
|
||||
|
||||
@@ -406,7 +409,6 @@ void SearchResultWidget::goToPrevious()
|
||||
void SearchResultWidget::restart()
|
||||
{
|
||||
m_replaceTextEdit->setEnabled(false);
|
||||
m_replaceButton->setEnabled(false);
|
||||
m_searchResultTreeView->clear();
|
||||
m_count = 0;
|
||||
Id sizeWarningId(SIZE_WARNING_ID);
|
||||
@@ -416,6 +418,7 @@ void SearchResultWidget::restart()
|
||||
m_searchAgainButton->setVisible(false);
|
||||
m_messageWidget->setVisible(false);
|
||||
updateMatchesFoundLabel();
|
||||
handleReplaceEditTextChanged();
|
||||
emit restarted();
|
||||
}
|
||||
|
||||
@@ -436,7 +439,6 @@ void SearchResultWidget::finishSearch(bool canceled)
|
||||
m_infoBar.removeInfo(sizeWarningId);
|
||||
m_infoBar.enableInfo(sizeWarningId);
|
||||
m_replaceTextEdit->setEnabled(m_count > 0);
|
||||
m_replaceButton->setEnabled(m_count > 0);
|
||||
m_preserveCaseCheck->setEnabled(m_count > 0);
|
||||
m_cancelButton->setVisible(false);
|
||||
m_messageWidget->setVisible(canceled);
|
||||
@@ -461,6 +463,15 @@ void SearchResultWidget::cancelAfterSizeWarning()
|
||||
emit paused(false);
|
||||
}
|
||||
|
||||
void SearchResultWidget::handleReplaceEditTextChanged()
|
||||
{
|
||||
const bool enabled = m_replaceTextEdit->text() != m_replaceText;
|
||||
m_replaceButton->setEnabled(enabled);
|
||||
m_replaceButton->setToolTip(enabled
|
||||
? QString()
|
||||
: tr("Cannot replace because replacement text is unchanged."));
|
||||
}
|
||||
|
||||
void SearchResultWidget::handleJumpToSearchResult(const SearchResultItem &item)
|
||||
{
|
||||
emit activated(item);
|
||||
|
@@ -115,6 +115,7 @@ private:
|
||||
void setShowReplaceUI(bool visible);
|
||||
void continueAfterSizeWarning();
|
||||
void cancelAfterSizeWarning();
|
||||
void handleReplaceEditTextChanged();
|
||||
|
||||
QList<SearchResultItem> checkedItems() const;
|
||||
void updateMatchesFoundLabel();
|
||||
@@ -141,6 +142,7 @@ private:
|
||||
bool m_isShowingReplaceUI = false;
|
||||
bool m_searchAgainSupported = false;
|
||||
bool m_replaceSupported = false;
|
||||
QString m_replaceText;
|
||||
};
|
||||
|
||||
} // Internal
|
||||
|
Reference in New Issue
Block a user