mirror of https://gitee.com/openkylin/peony.git
Fix quit search mode issue, link to bug#93528.
This commit is contained in:
parent
96d64131c5
commit
2e0f8a4756
|
@ -317,8 +317,7 @@ void HeaderBar::searchButtonClicked()
|
|||
{
|
||||
m_search_mode = ! m_search_mode;
|
||||
qDebug() << "searchButtonClicked" <<m_search_mode;
|
||||
Q_EMIT this->updateSearchRequest(m_search_mode);
|
||||
setSearchMode(m_search_mode);
|
||||
m_window->updateSearchStatus(m_search_mode);
|
||||
}
|
||||
|
||||
void HeaderBar::setSearchMode(bool mode)
|
||||
|
@ -326,6 +325,10 @@ void HeaderBar::setSearchMode(bool mode)
|
|||
m_search_button->setCheckable(mode);
|
||||
m_search_button->setChecked(mode);
|
||||
m_search_button->setDown(mode);
|
||||
if (! mode)
|
||||
m_search_button->setFocusPolicy(Qt::NoFocus);
|
||||
else
|
||||
m_search_button->setFocusPolicy(Qt::ClickFocus);
|
||||
m_location_bar->switchEditMode(mode);
|
||||
}
|
||||
|
||||
|
|
|
@ -1011,6 +1011,14 @@ void MainWindow::goToUri(const QString &uri, bool addHistory, bool force)
|
|||
}
|
||||
}
|
||||
|
||||
//if in search mode and key is not null, need quit search mode, bug#93528
|
||||
//清空搜索关键字时,不应该退出搜索状态,其他情况下,跳转非搜索路径,需要退出搜索
|
||||
if (! m_is_clear_serach && m_is_search && ! uri.startsWith("search://"))
|
||||
{
|
||||
m_is_search = false;
|
||||
m_header_bar->searchButtonClicked();
|
||||
}
|
||||
|
||||
if (getCurrentUri() == realUri) {
|
||||
if (!force) {
|
||||
refresh();
|
||||
|
@ -1018,14 +1026,6 @@ void MainWindow::goToUri(const QString &uri, bool addHistory, bool force)
|
|||
}
|
||||
}
|
||||
|
||||
//if in search mode and key is not null, need quit search mode
|
||||
if (m_is_search && m_last_key != "" && !uri.startsWith("search://"))
|
||||
{
|
||||
m_tab->updateSearchBar(false);
|
||||
m_is_search = false;
|
||||
m_header_bar->startEdit(false);
|
||||
}
|
||||
|
||||
locationChangeStart();
|
||||
m_tab->goToUri(realUri, addHistory, force);
|
||||
m_header_bar->setLocation(uri);
|
||||
|
@ -1057,8 +1057,11 @@ void MainWindow::updateSearch(const QString &uri, const QString &key, bool updat
|
|||
{
|
||||
//qDebug() << "updateSearch needUpdate:" <<m_last_key<<m_last_search_path;
|
||||
forceStopLoading();
|
||||
if (m_last_key == "")
|
||||
if (m_last_key == ""){
|
||||
m_is_clear_serach = true;
|
||||
goToUri(m_last_search_path, true);
|
||||
m_is_clear_serach = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
auto targetUri = Peony::SearchVFSUriParser::parseSearchKey(m_last_search_path,
|
||||
|
@ -1522,11 +1525,7 @@ void MainWindow::initUI(const QString &uri)
|
|||
maximizeOrRestore();
|
||||
});
|
||||
connect(views, &TabWidget::closeWindowRequest, this, &QWidget::close);
|
||||
connect(m_header_bar, &HeaderBar::updateSearchRequest, this, [=](bool showSearch)
|
||||
{
|
||||
m_tab->updateSearchBar(showSearch);
|
||||
m_is_search = showSearch;
|
||||
});
|
||||
//connect(m_header_bar, &HeaderBar::updateSearchRequest, this, &MainWindow::updateSearchStatus);
|
||||
connect(m_header_bar, &HeaderBar::updateSearch, this, &MainWindow::updateSearch);
|
||||
|
||||
X11WindowManager *tabBarHandler = X11WindowManager::getInstance();
|
||||
|
@ -1613,6 +1612,13 @@ void MainWindow::initUI(const QString &uri)
|
|||
}
|
||||
}
|
||||
|
||||
void MainWindow::updateSearchStatus(bool showSearch)
|
||||
{
|
||||
m_tab->updateSearchBar(showSearch);
|
||||
m_header_bar->setSearchMode(showSearch);
|
||||
m_is_search = showSearch;
|
||||
}
|
||||
|
||||
void MainWindow::cleanTrash()
|
||||
{
|
||||
auto uris = getCurrentAllFileUris();
|
||||
|
|
|
@ -111,6 +111,7 @@ public Q_SLOTS:
|
|||
void syncControlsLocation(const QString &uri);
|
||||
void updateHeaderBar();
|
||||
void updateWindowIcon();
|
||||
void updateSearchStatus(bool showSearch);
|
||||
void updateSearch(const QString &uri, const QString &key="", bool updateKey=false);
|
||||
void createFolderOperation();
|
||||
void goToUri(const QString &uri, bool addHistory = false, bool force = false);
|
||||
|
@ -179,6 +180,7 @@ private:
|
|||
|
||||
bool m_is_draging = false;
|
||||
bool m_is_search = false;
|
||||
bool m_is_clear_serach = false;
|
||||
bool m_filter_working = false;
|
||||
|
||||
bool m_should_save_side_bar_width = false;
|
||||
|
|
Loading…
Reference in New Issue