logic: Show hidden indexing dialog on refresh
* Fixed refresh restarted when refreshing while processing files
This commit is contained in:
@@ -134,8 +134,8 @@ void QtDialogView::hideProgressDialog()
|
||||
}
|
||||
|
||||
void QtDialogView::startIndexingDialog(
|
||||
Project* project, const std::vector<RefreshMode>& enabledModes, const RefreshInfo& info,
|
||||
std::function<void(const RefreshInfo& info)> onStartIndexing)
|
||||
Project* project, const std::vector<RefreshMode>& enabledModes, const RefreshMode initialMode,
|
||||
std::function<void(const RefreshInfo& info)> onStartIndexing, std::function<void()> onCancelIndexing)
|
||||
{
|
||||
m_refreshInfos.clear();
|
||||
|
||||
@@ -146,9 +146,6 @@ void QtDialogView::startIndexingDialog(
|
||||
m_windowStack.clearWindows();
|
||||
|
||||
QtIndexingDialog* window = createWindow();
|
||||
window->setupStart(enabledModes);
|
||||
|
||||
m_refreshInfos.emplace(info.mode, info);
|
||||
|
||||
connect(window, &QtIndexingDialog::setMode,
|
||||
[=](RefreshMode refreshMode)
|
||||
@@ -157,6 +154,7 @@ void QtDialogView::startIndexingDialog(
|
||||
if (it != m_refreshInfos.end())
|
||||
{
|
||||
window->updateRefreshInfo(it->second);
|
||||
window->show();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -184,6 +182,7 @@ void QtDialogView::startIndexingDialog(
|
||||
|
||||
timer->stop();
|
||||
hideUnknownProgress();
|
||||
window->show();
|
||||
}
|
||||
);
|
||||
}
|
||||
@@ -209,11 +208,19 @@ void QtDialogView::startIndexingDialog(
|
||||
connect(window, &QtWindow::canceled,
|
||||
[=]()
|
||||
{
|
||||
Task::dispatch(std::make_shared<TaskLambda>(
|
||||
[=]()
|
||||
{
|
||||
onCancelIndexing();
|
||||
}
|
||||
));
|
||||
|
||||
setUIBlocked(false);
|
||||
}
|
||||
);
|
||||
|
||||
window->updateRefreshInfo(info);
|
||||
window->setupStart(enabledModes, initialMode);
|
||||
window->hide();
|
||||
setUIBlocked(true);
|
||||
}
|
||||
);
|
||||
|
||||
@@ -40,8 +40,8 @@ public:
|
||||
void hideProgressDialog() override;
|
||||
|
||||
void startIndexingDialog(
|
||||
Project* project, const std::vector<RefreshMode>& enabledModes, const RefreshInfo& info,
|
||||
std::function<void(const RefreshInfo& info)> onStartIndexing) override;
|
||||
Project* project, const std::vector<RefreshMode>& enabledModes, const RefreshMode initialMode,
|
||||
std::function<void(const RefreshInfo& info)> onStartIndexing, std::function<void()> onCancelIndexing) override;
|
||||
void updateIndexingDialog(
|
||||
size_t startedFileCount, size_t finishedFileCount, size_t totalFileCount, const std::vector<FilePath>& sourcePaths) override;
|
||||
DatabasePolicy finishedIndexingDialog(
|
||||
|
||||
@@ -3,12 +3,13 @@
|
||||
#include <QHBoxLayout>
|
||||
#include <QFrame>
|
||||
|
||||
#include "MessageIndexingShowDialog.h"
|
||||
#include "MessageRefresh.h"
|
||||
#include "ResourcePaths.h"
|
||||
|
||||
#include "QtSearchBarButton.h"
|
||||
#include "utilityQt.h"
|
||||
#include "QtViewWidgetWrapper.h"
|
||||
#include "utilityQt.h"
|
||||
|
||||
QtRefreshView::QtRefreshView(ViewLayout* viewLayout)
|
||||
: RefreshView(viewLayout)
|
||||
@@ -25,7 +26,13 @@ QtRefreshView::QtRefreshView(ViewLayout* viewLayout)
|
||||
new QtSearchBarButton(ResourcePaths::getGuiPath().concatenate(L"refresh_view/images/refresh.png"));
|
||||
refreshButton->setObjectName("refresh_button");
|
||||
refreshButton->setToolTip("refresh");
|
||||
m_widget->connect(refreshButton, &QPushButton::clicked, [](){ MessageRefresh().dispatch(); });
|
||||
m_widget->connect(refreshButton, &QPushButton::clicked,
|
||||
[]()
|
||||
{
|
||||
MessageIndexingShowDialog().dispatch();
|
||||
MessageRefresh().dispatch();
|
||||
}
|
||||
);
|
||||
|
||||
layout->addWidget(refreshButton);
|
||||
m_widget->setLayout(layout);
|
||||
|
||||
Reference in New Issue
Block a user