From b6836459f3fd06a48ce5362432ba6a848e90e19d Mon Sep 17 00:00:00 2001 From: vng Date: Mon, 9 Jul 2012 15:02:28 -0700 Subject: [PATCH] [desktop] Run progress only when needed. --- qt/draw_widget.cpp | 4 ++-- qt/draw_widget.hpp | 2 +- qt/search_panel.cpp | 16 +++++++++------- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/qt/draw_widget.cpp b/qt/draw_widget.cpp index ebc4358953..853c6f57a7 100644 --- a/qt/draw_widget.cpp +++ b/qt/draw_widget.cpp @@ -480,7 +480,7 @@ namespace qt } } - void DrawWidget::Search(search::SearchParams params) + bool DrawWidget::Search(search::SearchParams params) { if (m_framework->GetCurrentPosition(params.m_lat, params.m_lon)) { @@ -488,7 +488,7 @@ namespace qt params.m_validPos = true; } - m_framework->Search(params); + return m_framework->Search(params); } void DrawWidget::ShowSearchResult(search::Result const & res) diff --git a/qt/draw_widget.hpp b/qt/draw_widget.hpp index a8726d8593..a9a7550144 100644 --- a/qt/draw_widget.hpp +++ b/qt/draw_widget.hpp @@ -80,7 +80,7 @@ namespace qt void SetScaleControl(QScaleSlider * pScale); - void Search(search::SearchParams params); + bool Search(search::SearchParams params); void ShowSearchResult(search::Result const & res); void CloseSearch(); diff --git a/qt/search_panel.cpp b/qt/search_panel.cpp index 645092ce0a..a61e0a35f3 100644 --- a/qt/search_panel.cpp +++ b/qt/search_panel.cpp @@ -155,6 +155,7 @@ void SearchPanel::OnSearchResult(ResultsT * res) } delete res; + // stop search busy indicator m_pAnimationTimer->stop(); m_pClearButton->setIcon(QIcon(":/ui/x.png")); @@ -170,14 +171,15 @@ void SearchPanel::OnSearchTextChanged(QString const & str) m_params.m_query = normalized.toUtf8().constData(); m_params.m_callback = bind(&SearchPanel::SearchResultThreadFunc, this, _1); - m_pDrawWidget->Search(m_params); + if (m_pDrawWidget->Search(m_params)) + { + // show busy indicator + if (!m_pAnimationTimer->isActive()) + m_pAnimationTimer->start(200); - // show busy indicator - if (!m_pAnimationTimer->isActive()) - m_pAnimationTimer->start(200); - OnAnimationTimer(); - m_pClearButton->setFlat(true); - m_pClearButton->setVisible(true); + m_pClearButton->setFlat(true); + m_pClearButton->setVisible(true); + } } //else //{