Fixed 2915 (GUI: Show files checked in progress bar)
This commit is contained in:
parent
dc629b4c39
commit
d2f4b8e3de
|
@ -88,5 +88,8 @@ ShowTypes;
|
|||
#define SETTINGS_INCONCLUSIVE_ERRORS "Inconclusive errors"
|
||||
#define SETTINGS_MRU_PROJECTS "MRU Projects"
|
||||
|
||||
// The maximum value for the progress bar
|
||||
#define PROGRESS_MAX 1024.0
|
||||
|
||||
/// @}
|
||||
#endif
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include <QString>
|
||||
#include <QModelIndex>
|
||||
#include <QSettings>
|
||||
#include "common.h"
|
||||
#include "erroritem.h"
|
||||
#include "resultsview.h"
|
||||
#include "resultstree.h"
|
||||
|
@ -74,13 +75,15 @@ void ResultsView::Clear()
|
|||
mStatistics->Clear();
|
||||
|
||||
//Clear the progressbar
|
||||
mUI.mProgress->setMaximum(100);
|
||||
mUI.mProgress->setMaximum(PROGRESS_MAX);
|
||||
mUI.mProgress->setValue(0);
|
||||
mUI.mProgress->setFormat(tr("%p%"));
|
||||
}
|
||||
|
||||
void ResultsView::Progress(int value)
|
||||
void ResultsView::Progress(int value, const QString& description)
|
||||
{
|
||||
mUI.mProgress->setValue(value);
|
||||
mUI.mProgress->setFormat(tr("%p% (%1)").arg(description));
|
||||
}
|
||||
|
||||
void ResultsView::Error(const ErrorItem &item)
|
||||
|
@ -184,12 +187,16 @@ void ResultsView::SetCheckDirectory(const QString &dir)
|
|||
void ResultsView::CheckingStarted(int count)
|
||||
{
|
||||
mUI.mProgress->setVisible(true);
|
||||
mUI.mProgress->setMaximum(count);
|
||||
mUI.mProgress->setMaximum(PROGRESS_MAX);
|
||||
mUI.mProgress->setValue(0);
|
||||
mUI.mProgress->setFormat(tr("%p% (%1 of %2 files checked)").arg(0).arg(count));
|
||||
}
|
||||
|
||||
void ResultsView::CheckingFinished()
|
||||
{
|
||||
mUI.mProgress->setVisible(false);
|
||||
mUI.mProgress->setFormat("%p%");
|
||||
|
||||
//Should we inform user of non visible/not found errors?
|
||||
if (mShowNoErrorsMessage)
|
||||
{
|
||||
|
|
|
@ -173,8 +173,9 @@ public slots:
|
|||
* @brief Slot for updating the checking progress
|
||||
*
|
||||
* @param value Current progress value
|
||||
* @param description Description to accompany the progress
|
||||
*/
|
||||
void Progress(int value);
|
||||
void Progress(int value, const QString& description);
|
||||
|
||||
/**
|
||||
* @brief Slot for new error to be displayed
|
||||
|
@ -225,7 +226,6 @@ protected:
|
|||
|
||||
CheckStatistics *mStatistics;
|
||||
|
||||
|
||||
private:
|
||||
};
|
||||
/// @}
|
||||
|
|
|
@ -146,8 +146,8 @@ void ThreadHandler::Stop()
|
|||
void ThreadHandler::Initialize(ResultsView *view)
|
||||
{
|
||||
|
||||
connect(&mResults, SIGNAL(Progress(int)),
|
||||
view, SLOT(Progress(int)));
|
||||
connect(&mResults, SIGNAL(Progress(int, const QString&)),
|
||||
view, SLOT(Progress(int, const QString&)));
|
||||
|
||||
connect(&mResults, SIGNAL(Error(const ErrorItem &)),
|
||||
view, SLOT(Error(const ErrorItem &)));
|
||||
|
|
|
@ -16,17 +16,18 @@
|
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
|
||||
#include <QFile>
|
||||
#include <QString>
|
||||
#include <QMutexLocker>
|
||||
#include <QList>
|
||||
#include <QStringList>
|
||||
#include <QDebug>
|
||||
#include "common.h"
|
||||
#include "erroritem.h"
|
||||
#include "errorlogger.h"
|
||||
#include "threadresult.h"
|
||||
|
||||
ThreadResult::ThreadResult() : mMaxProgress(0), mProgress(0)
|
||||
ThreadResult::ThreadResult() : mMaxProgress(0), mProgress(0), mFilesChecked(0), mTotalFiles(0)
|
||||
{
|
||||
//ctor
|
||||
}
|
||||
|
@ -44,9 +45,17 @@ void ThreadResult::reportOut(const std::string &outmsg)
|
|||
void ThreadResult::FileChecked(const QString &file)
|
||||
{
|
||||
QMutexLocker locker(&mutex);
|
||||
Q_UNUSED(file); //For later use maybe?
|
||||
mProgress++;
|
||||
emit Progress(mProgress);
|
||||
|
||||
mProgress += QFile(file).size();
|
||||
mFilesChecked ++;
|
||||
|
||||
if (mMaxProgress > 0)
|
||||
{
|
||||
const int value = static_cast<int>(PROGRESS_MAX * mProgress / mMaxProgress);
|
||||
const QString description = tr("%1 of %2 files checked").arg(mFilesChecked).arg(mTotalFiles);
|
||||
|
||||
emit Progress(value, description);
|
||||
}
|
||||
}
|
||||
|
||||
void ThreadResult::reportErr(const ErrorLogger::ErrorMessage &msg)
|
||||
|
@ -96,13 +105,25 @@ void ThreadResult::SetFiles(const QStringList &files)
|
|||
QMutexLocker locker(&mutex);
|
||||
mFiles = files;
|
||||
mProgress = 0;
|
||||
mMaxProgress = files.size();
|
||||
mFilesChecked = 0;
|
||||
mTotalFiles = files.size();
|
||||
|
||||
// Determine the total size of all of the files to check, so that we can
|
||||
// show an accurate progress estimate
|
||||
quint64 sizeOfFiles = 0;
|
||||
foreach(const QString& file, files)
|
||||
{
|
||||
sizeOfFiles += QFile(file).size();
|
||||
}
|
||||
mMaxProgress = sizeOfFiles;
|
||||
}
|
||||
|
||||
void ThreadResult::ClearFiles()
|
||||
{
|
||||
QMutexLocker locker(&mutex);
|
||||
mFiles.clear();
|
||||
mFilesChecked = 0;
|
||||
mTotalFiles = 0;
|
||||
}
|
||||
|
||||
int ThreadResult::GetFileCount()
|
||||
|
|
|
@ -83,8 +83,9 @@ signals:
|
|||
/**
|
||||
* @brief Progress signal
|
||||
* @param value Current progress
|
||||
* @param description Description of the current stage
|
||||
*/
|
||||
void Progress(int value);
|
||||
void Progress(int value, const QString& description);
|
||||
|
||||
/**
|
||||
* @brief Signal of a new error
|
||||
|
@ -125,14 +126,25 @@ protected:
|
|||
* @brief Max progress
|
||||
*
|
||||
*/
|
||||
int mMaxProgress;
|
||||
quint64 mMaxProgress;
|
||||
|
||||
/**
|
||||
* @brief Current progress
|
||||
*
|
||||
*/
|
||||
int mProgress;
|
||||
private:
|
||||
quint64 mProgress;
|
||||
|
||||
/**
|
||||
* @brief Current number of files checked
|
||||
*
|
||||
*/
|
||||
unsigned long mFilesChecked;
|
||||
|
||||
/**
|
||||
* @brief Total number of files
|
||||
*
|
||||
*/
|
||||
unsigned long mTotalFiles;
|
||||
};
|
||||
/// @}
|
||||
#endif // THREADRESULT_H
|
||||
|
|
Loading…
Reference in New Issue