Added UICallback::updateProcess

Moved scanDirectory to Repository

FossilOrigin-Name: 4d94a638499c31672bf47de43407b1fa2531e716
This commit is contained in:
kostas
2015-04-30 09:50:22 +00:00
parent a43eac0ae3
commit 97f210fd46
5 changed files with 31 additions and 17 deletions

View File

@ -35,6 +35,7 @@ public:
public:
virtual void logText(const QString &text, bool isHTML)=0;
virtual void beginProcess(const QString &text)=0;
virtual void updateProcess(const QString &text)=0;
virtual void endProcess()=0;
virtual QMessageBox::StandardButton Query(const QString &title, const QString &query, QMessageBox::StandardButtons buttons)=0;
};

View File

@ -487,12 +487,11 @@ void MainWindow::onOpenRecent()
}
//------------------------------------------------------------------------------
bool MainWindow::scanDirectory(QFileInfoList &entries, const QString& dirPath, const QString &baseDir, const QString ignoreSpec, const bool &abort)
bool Repository::scanDirectory(QFileInfoList &entries, const QString& dirPath, const QString &baseDir, const QString ignoreSpec, const bool &abort, Bridge::UICallback &uiCallback)
{
QDir dir(dirPath);
setStatus(dirPath);
QCoreApplication::processEvents();
uiCallback.updateProcess(dirPath);
QFileInfoList list = dir.entryInfoList(QDir::Dirs | QDir::Files | QDir::Hidden | QDir::NoDotAndDotDot);
for (int i=0; i<list.count(); ++i)
@ -511,7 +510,7 @@ bool MainWindow::scanDirectory(QFileInfoList &entries, const QString& dirPath, c
if (info.isDir())
{
if(!scanDirectory(entries, filepath, baseDir, ignoreSpec, abort))
if(!scanDirectory(entries, filepath, baseDir, ignoreSpec, abort, uiCallback))
return false;
}
else
@ -603,7 +602,6 @@ void MainWindow::scanWorkspace()
setStatus(tr("Scanning Workspace..."));
setBusy(true);
QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
// Dispose RepoFiles
for(Repository::filemap_t::iterator it = getRepo().workspaceFiles.begin(); it!=getRepo().workspaceFiles.end(); ++it)
@ -626,7 +624,7 @@ void MainWindow::scanWorkspace()
ignore = settings.GetFossilValue(FOSSIL_SETTING_IGNORE_GLOB).toString().replace(',',';');
}
if(!scanDirectory(all_files, wkdir, wkdir, ignore, operationAborted))
if(!getRepo().scanDirectory(all_files, wkdir, wkdir, ignore, operationAborted, uiCallback))
goto _done;
for(QFileInfoList::iterator it=all_files.begin(); it!=all_files.end(); ++it)
@ -728,7 +726,6 @@ _done:
setBusy(false);
setStatus("");
QApplication::restoreOverrideCursor();
}
//------------------------------------------------------------------------------
@ -2144,6 +2141,11 @@ void MainWindow::dropEvent(QDropEvent *event)
//------------------------------------------------------------------------------
void MainWindow::setBusy(bool busy)
{
if(busy)
QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
else
QApplication::restoreOverrideCursor();
abortShortcut->setEnabled(busy);
bool enabled = !busy;
ui->menuBar->setEnabled(enabled);
@ -2183,6 +2185,14 @@ void MainWindow::MainWinUICallback::beginProcess(const QString& text)
mainWindow->progressBar->setHidden(false);
}
//------------------------------------------------------------------------------
void MainWindow::MainWinUICallback::updateProcess(const QString& text)
{
Q_ASSERT(mainWindow);
mainWindow->ui->statusBar->showMessage(text);
QCoreApplication::processEvents();
}
//------------------------------------------------------------------------------
void MainWindow::MainWinUICallback::endProcess()
{

View File

@ -123,6 +123,8 @@ public:
stringset_t pathSet;
stashmap_t stashMap;
stringset_t selectedDirs; // The directory selected in the tree
static bool scanDirectory(QFileInfoList &entries, const QString& dirPath, const QString &baseDir, const QString ignoreSpec, const bool& abort, Bridge::UICallback &uiCallback);
};
//////////////////////////////////////////////////////////////////////////
@ -163,7 +165,7 @@ private:
void loadFossilSettings();
QString getFossilPath();
QString getFossilHttpAddress();
bool scanDirectory(QFileInfoList &entries, const QString& dirPath, const QString &baseDir, const QString ignoreSpec, const bool& abort);
//static bool scanDirectory(QFileInfoList &entries, const QString& dirPath, const QString &baseDir, const QString ignoreSpec, const bool& abort);
void updateDirView();
void updateFileView();
void updateStashView();
@ -244,6 +246,7 @@ private:
virtual void logText(const QString& text, bool isHTML);
virtual void beginProcess(const QString& text);
virtual void updateProcess(const QString& text);
virtual void endProcess();
virtual QMessageBox::StandardButton Query(const QString &title, const QString &query, QMessageBox::StandardButtons buttons);