Fixed #1459 (GUI: Allow re-checking selected files/folders)
This commit is contained in:
parent
3f386af21c
commit
bedd85fa50
|
@ -62,9 +62,8 @@ MainWindow::MainWindow(TranslationHandler* th, QSettings* settings) :
|
||||||
mExiting(false)
|
mExiting(false)
|
||||||
{
|
{
|
||||||
mUI.setupUi(this);
|
mUI.setupUi(this);
|
||||||
mUI.mResults->Initialize(mSettings, mApplications);
|
|
||||||
|
|
||||||
mThread = new ThreadHandler(this);
|
mThread = new ThreadHandler(this);
|
||||||
|
mUI.mResults->Initialize(mSettings, mApplications, mThread);
|
||||||
|
|
||||||
// Filter timer to delay filtering results slightly while typing
|
// Filter timer to delay filtering results slightly while typing
|
||||||
mFilterTimer = new QTimer(this);
|
mFilterTimer = new QTimer(this);
|
||||||
|
@ -122,6 +121,7 @@ MainWindow::MainWindow(TranslationHandler* th, QSettings* settings) :
|
||||||
connect(mThread, SIGNAL(Done()), this, SLOT(CheckDone()));
|
connect(mThread, SIGNAL(Done()), this, SLOT(CheckDone()));
|
||||||
connect(mUI.mResults, SIGNAL(GotResults()), this, SLOT(ResultsAdded()));
|
connect(mUI.mResults, SIGNAL(GotResults()), this, SLOT(ResultsAdded()));
|
||||||
connect(mUI.mResults, SIGNAL(ResultsHidden(bool)), mUI.mActionShowHidden, SLOT(setEnabled(bool)));
|
connect(mUI.mResults, SIGNAL(ResultsHidden(bool)), mUI.mActionShowHidden, SLOT(setEnabled(bool)));
|
||||||
|
connect(mUI.mResults, SIGNAL(CheckSelected(QStringList)), this, SLOT(PerformSelectedFilesCheck(QStringList)));
|
||||||
connect(mUI.mMenuView, SIGNAL(aboutToShow()), this, SLOT(AboutToShowViewMenu()));
|
connect(mUI.mMenuView, SIGNAL(aboutToShow()), this, SLOT(AboutToShowViewMenu()));
|
||||||
|
|
||||||
// File menu
|
// File menu
|
||||||
|
@ -388,7 +388,8 @@ void MainWindow::DoCheckFiles(const QStringList &files)
|
||||||
if (mProject)
|
if (mProject)
|
||||||
qDebug() << "Checking project file" << mProject->GetProjectFile()->GetFilename();
|
qDebug() << "Checking project file" << mProject->GetProjectFile()->GetFilename();
|
||||||
|
|
||||||
mThread->Check(checkSettings, false);
|
mThread->SetCheckFiles(true);
|
||||||
|
mThread->Check(checkSettings, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::CheckCode(const QString& code, const QString& filename)
|
void MainWindow::CheckCode(const QString& code, const QString& filename)
|
||||||
|
@ -797,6 +798,29 @@ void MainWindow::ReCheckAll()
|
||||||
ReCheck(true);
|
ReCheck(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MainWindow::ReCheckSelected(QStringList files, bool all)
|
||||||
|
{
|
||||||
|
if (files.empty())
|
||||||
|
return;
|
||||||
|
if(mThread->IsChecking())
|
||||||
|
return;
|
||||||
|
|
||||||
|
// Clear details, statistics and progress
|
||||||
|
mUI.mResults->Clear(false);
|
||||||
|
for (int i = 0; i < files.size(); ++i)
|
||||||
|
mUI.mResults->Clear(files[i]);
|
||||||
|
CheckLockDownUI(); // lock UI while checking
|
||||||
|
mUI.mResults->CheckingStarted(files.size());
|
||||||
|
mThread->SetCheckFiles(files);
|
||||||
|
|
||||||
|
// Saving last check start time, otherwise unchecked modified files will not be
|
||||||
|
// considered in "Modified Files Check" performed after "Selected Files Check"
|
||||||
|
// TODO: Should we store per file CheckStartTime?
|
||||||
|
QDateTime saveCheckStartTime = mThread->GetCheckStartTime();
|
||||||
|
mThread->Check(GetCppcheckSettings(), all);
|
||||||
|
mThread->SetCheckStartTime(saveCheckStartTime);
|
||||||
|
}
|
||||||
|
|
||||||
void MainWindow::ReCheck(bool all)
|
void MainWindow::ReCheck(bool all)
|
||||||
{
|
{
|
||||||
const QStringList files = mThread->GetReCheckFiles(all);
|
const QStringList files = mThread->GetReCheckFiles(all);
|
||||||
|
@ -816,7 +840,8 @@ void MainWindow::ReCheck(bool all)
|
||||||
if (mProject)
|
if (mProject)
|
||||||
qDebug() << "Rechecking project file" << mProject->GetProjectFile()->GetFilename();
|
qDebug() << "Rechecking project file" << mProject->GetProjectFile()->GetFilename();
|
||||||
|
|
||||||
mThread->Check(GetCppcheckSettings(), !all);
|
mThread->SetCheckFiles(all);
|
||||||
|
mThread->Check(GetCppcheckSettings(), all);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::ClearResults()
|
void MainWindow::ClearResults()
|
||||||
|
@ -993,6 +1018,11 @@ void MainWindow::ShowAuthors()
|
||||||
dlg->exec();
|
dlg->exec();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MainWindow::PerformSelectedFilesCheck(QStringList selectedFilesList)
|
||||||
|
{
|
||||||
|
ReCheckSelected(selectedFilesList, true);
|
||||||
|
}
|
||||||
|
|
||||||
void MainWindow::Save()
|
void MainWindow::Save()
|
||||||
{
|
{
|
||||||
QString selectedFilter;
|
QString selectedFilter;
|
||||||
|
|
|
@ -84,6 +84,12 @@ public slots:
|
||||||
*/
|
*/
|
||||||
void ReCheckAll();
|
void ReCheckAll();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Slot to recheck selected files
|
||||||
|
* @param selectedFilesList list of selected files
|
||||||
|
*/
|
||||||
|
void PerformSelectedFilesCheck(QStringList selectedFilesList);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Slot to recheck modified files
|
* @brief Slot to recheck modified files
|
||||||
*
|
*
|
||||||
|
@ -319,6 +325,13 @@ private:
|
||||||
*/
|
*/
|
||||||
void ReCheck(bool all);
|
void ReCheck(bool all);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Recheck selected files
|
||||||
|
* @param files list of selected files
|
||||||
|
* @param all true if all files of list, false if modified files of list
|
||||||
|
*/
|
||||||
|
void ReCheckSelected(QStringList files, bool all);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Check the project.
|
* @brief Check the project.
|
||||||
* @param project Pointer to the project to check.
|
* @param project Pointer to the project to check.
|
||||||
|
|
|
@ -45,6 +45,7 @@
|
||||||
#include "report.h"
|
#include "report.h"
|
||||||
#include "application.h"
|
#include "application.h"
|
||||||
#include "showtypes.h"
|
#include "showtypes.h"
|
||||||
|
#include "threadhandler.h"
|
||||||
|
|
||||||
ResultsTree::ResultsTree(QWidget * parent) :
|
ResultsTree::ResultsTree(QWidget * parent) :
|
||||||
QTreeView(parent),
|
QTreeView(parent),
|
||||||
|
@ -74,10 +75,11 @@ void ResultsTree::keyPressEvent(QKeyEvent *event)
|
||||||
QTreeView::keyPressEvent(event);
|
QTreeView::keyPressEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ResultsTree::Initialize(QSettings *settings, ApplicationList *list)
|
void ResultsTree::Initialize(QSettings *settings, ApplicationList *list, ThreadHandler *checkThreadHandler)
|
||||||
{
|
{
|
||||||
mSettings = settings;
|
mSettings = settings;
|
||||||
mApplications = list;
|
mApplications = list;
|
||||||
|
mThread = checkThreadHandler;
|
||||||
LoadSettings();
|
LoadSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -552,6 +554,7 @@ void ResultsTree::contextMenuEvent(QContextMenuEvent * e)
|
||||||
}
|
}
|
||||||
|
|
||||||
//Create an action for the application
|
//Create an action for the application
|
||||||
|
QAction *recheckSelectedFiles = new QAction(tr("Recheck"), &menu);
|
||||||
QAction *copyfilename = new QAction(tr("Copy filename"), &menu);
|
QAction *copyfilename = new QAction(tr("Copy filename"), &menu);
|
||||||
QAction *copypath = new QAction(tr("Copy full path"), &menu);
|
QAction *copypath = new QAction(tr("Copy full path"), &menu);
|
||||||
QAction *copymessage = new QAction(tr("Copy message"), &menu);
|
QAction *copymessage = new QAction(tr("Copy message"), &menu);
|
||||||
|
@ -568,7 +571,12 @@ void ResultsTree::contextMenuEvent(QContextMenuEvent * e)
|
||||||
hideallid->setDisabled(true);
|
hideallid->setDisabled(true);
|
||||||
opencontainingfolder->setDisabled(true);
|
opencontainingfolder->setDisabled(true);
|
||||||
}
|
}
|
||||||
|
if(mThread->IsChecking())
|
||||||
|
recheckSelectedFiles->setDisabled(true);
|
||||||
|
else
|
||||||
|
recheckSelectedFiles->setDisabled(false);
|
||||||
|
|
||||||
|
menu.addAction(recheckSelectedFiles);
|
||||||
menu.addAction(copyfilename);
|
menu.addAction(copyfilename);
|
||||||
menu.addAction(copypath);
|
menu.addAction(copypath);
|
||||||
menu.addAction(copymessage);
|
menu.addAction(copymessage);
|
||||||
|
@ -577,6 +585,7 @@ void ResultsTree::contextMenuEvent(QContextMenuEvent * e)
|
||||||
menu.addAction(hideallid);
|
menu.addAction(hideallid);
|
||||||
menu.addAction(opencontainingfolder);
|
menu.addAction(opencontainingfolder);
|
||||||
|
|
||||||
|
connect(recheckSelectedFiles, SIGNAL(triggered()), this, SLOT(RecheckSelectedFiles()));
|
||||||
connect(copyfilename, SIGNAL(triggered()), this, SLOT(CopyFilename()));
|
connect(copyfilename, SIGNAL(triggered()), this, SLOT(CopyFilename()));
|
||||||
connect(copypath, SIGNAL(triggered()), this, SLOT(CopyFullPath()));
|
connect(copypath, SIGNAL(triggered()), this, SLOT(CopyFullPath()));
|
||||||
connect(copymessage, SIGNAL(triggered()), this, SLOT(CopyMessage()));
|
connect(copymessage, SIGNAL(triggered()), this, SLOT(CopyMessage()));
|
||||||
|
@ -588,20 +597,22 @@ void ResultsTree::contextMenuEvent(QContextMenuEvent * e)
|
||||||
|
|
||||||
//Start the menu
|
//Start the menu
|
||||||
menu.exec(e->globalPos());
|
menu.exec(e->globalPos());
|
||||||
|
index = indexAt(e->pos());
|
||||||
|
if (index.isValid()) {
|
||||||
|
mContextItem = mModel.itemFromIndex(index);
|
||||||
|
if (mContextItem && mApplications->GetApplicationCount() > 0 && mContextItem->parent()) {
|
||||||
|
//Disconnect all signals
|
||||||
|
for (int i = 0; i < actions.size(); i++) {
|
||||||
|
|
||||||
if (mContextItem && mApplications->GetApplicationCount() > 0 && mContextItem->parent()) {
|
disconnect(actions[i], SIGNAL(triggered()), signalMapper, SLOT(map()));
|
||||||
//Disconnect all signals
|
}
|
||||||
for (int i = 0; i < actions.size(); i++) {
|
|
||||||
|
|
||||||
disconnect(actions[i], SIGNAL(triggered()), signalMapper, SLOT(map()));
|
disconnect(signalMapper, SIGNAL(mapped(int)),
|
||||||
|
this, SLOT(Context(int)));
|
||||||
|
//And remove the signal mapper
|
||||||
|
delete signalMapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
disconnect(signalMapper, SIGNAL(mapped(int)),
|
|
||||||
this, SLOT(Context(int)));
|
|
||||||
//And remove the signal mapper
|
|
||||||
delete signalMapper;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -781,8 +792,7 @@ void ResultsTree::HideResult()
|
||||||
return;
|
return;
|
||||||
|
|
||||||
QModelIndexList selectedRows = mSelectionModel->selectedRows();
|
QModelIndexList selectedRows = mSelectionModel->selectedRows();
|
||||||
QModelIndex index;
|
foreach (QModelIndex index, selectedRows) {
|
||||||
foreach (index, selectedRows) {
|
|
||||||
QStandardItem *item = mModel.itemFromIndex(index);
|
QStandardItem *item = mModel.itemFromIndex(index);
|
||||||
//Set the "hide" flag for this item
|
//Set the "hide" flag for this item
|
||||||
QVariantMap data = item->data().toMap();
|
QVariantMap data = item->data().toMap();
|
||||||
|
@ -794,6 +804,21 @@ void ResultsTree::HideResult()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ResultsTree::RecheckSelectedFiles()
|
||||||
|
{
|
||||||
|
if (!mSelectionModel)
|
||||||
|
return;
|
||||||
|
|
||||||
|
QModelIndexList selectedRows = mSelectionModel->selectedRows();
|
||||||
|
QStringList selectedItems;
|
||||||
|
foreach (QModelIndex index, selectedRows) {
|
||||||
|
QStandardItem *item = mModel.itemFromIndex(index);
|
||||||
|
QVariantMap data = item->data().toMap();
|
||||||
|
selectedItems<<data["file"].toString();
|
||||||
|
}
|
||||||
|
emit CheckSelected(selectedItems);
|
||||||
|
}
|
||||||
|
|
||||||
void ResultsTree::HideAllIdResult()
|
void ResultsTree::HideAllIdResult()
|
||||||
{
|
{
|
||||||
if (mContextItem && mContextItem->parent()) {
|
if (mContextItem && mContextItem->parent()) {
|
||||||
|
|
|
@ -35,6 +35,7 @@ class ErrorLine;
|
||||||
class QModelIndex;
|
class QModelIndex;
|
||||||
class QWidget;
|
class QWidget;
|
||||||
class QItemSelectionModel;
|
class QItemSelectionModel;
|
||||||
|
class ThreadHandler;
|
||||||
|
|
||||||
/// @addtogroup GUI
|
/// @addtogroup GUI
|
||||||
/// @{
|
/// @{
|
||||||
|
@ -49,7 +50,7 @@ class ResultsTree : public QTreeView {
|
||||||
public:
|
public:
|
||||||
explicit ResultsTree(QWidget * parent = 0);
|
explicit ResultsTree(QWidget * parent = 0);
|
||||||
virtual ~ResultsTree();
|
virtual ~ResultsTree();
|
||||||
void Initialize(QSettings *settings, ApplicationList *list);
|
void Initialize(QSettings *settings, ApplicationList *list, ThreadHandler *checkThreadHandler);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Add a new item to the tree
|
* @brief Add a new item to the tree
|
||||||
|
@ -172,6 +173,13 @@ signals:
|
||||||
*/
|
*/
|
||||||
void ResultsHidden(bool hidden);
|
void ResultsHidden(bool hidden);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Signal to perform selected files recheck
|
||||||
|
*
|
||||||
|
* @param selectedItems list of selected files
|
||||||
|
*/
|
||||||
|
void CheckSelected(QStringList selectedItems);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Signal for selection change in result tree.
|
* @brief Signal for selection change in result tree.
|
||||||
*
|
*
|
||||||
|
@ -224,6 +232,12 @@ protected slots:
|
||||||
*/
|
*/
|
||||||
void HideResult();
|
void HideResult();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Slot for rechecking selected files
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void RecheckSelectedFiles();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Slot for context menu item to hide all messages with the current message Id
|
* @brief Slot for context menu item to hide all messages with the current message Id
|
||||||
*
|
*
|
||||||
|
@ -472,6 +486,7 @@ protected:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QItemSelectionModel *mSelectionModel;
|
QItemSelectionModel *mSelectionModel;
|
||||||
|
ThreadHandler *mThread;
|
||||||
};
|
};
|
||||||
/// @}
|
/// @}
|
||||||
#endif // RESULTSTREE_H
|
#endif // RESULTSTREE_H
|
||||||
|
|
|
@ -49,10 +49,11 @@ ResultsView::ResultsView(QWidget * parent) :
|
||||||
mUI.setupUi(this);
|
mUI.setupUi(this);
|
||||||
|
|
||||||
connect(mUI.mTree, SIGNAL(ResultsHidden(bool)), this, SIGNAL(ResultsHidden(bool)));
|
connect(mUI.mTree, SIGNAL(ResultsHidden(bool)), this, SIGNAL(ResultsHidden(bool)));
|
||||||
|
connect(mUI.mTree, SIGNAL(CheckSelected(QStringList)), this, SIGNAL(CheckSelected(QStringList)));
|
||||||
connect(mUI.mTree, SIGNAL(SelectionChanged(const QModelIndex &)), this, SLOT(UpdateDetails(const QModelIndex &)));
|
connect(mUI.mTree, SIGNAL(SelectionChanged(const QModelIndex &)), this, SLOT(UpdateDetails(const QModelIndex &)));
|
||||||
}
|
}
|
||||||
|
|
||||||
void ResultsView::Initialize(QSettings *settings, ApplicationList *list)
|
void ResultsView::Initialize(QSettings *settings, ApplicationList *list, ThreadHandler *checkThreadHandler)
|
||||||
{
|
{
|
||||||
mUI.mProgress->setMinimum(0);
|
mUI.mProgress->setMinimum(0);
|
||||||
mUI.mProgress->setVisible(false);
|
mUI.mProgress->setVisible(false);
|
||||||
|
@ -61,7 +62,7 @@ void ResultsView::Initialize(QSettings *settings, ApplicationList *list)
|
||||||
mUI.mVerticalSplitter->restoreState(state);
|
mUI.mVerticalSplitter->restoreState(state);
|
||||||
mShowNoErrorsMessage = settings->value(SETTINGS_SHOW_NO_ERRORS, true).toBool();
|
mShowNoErrorsMessage = settings->value(SETTINGS_SHOW_NO_ERRORS, true).toBool();
|
||||||
|
|
||||||
mUI.mTree->Initialize(settings, list);
|
mUI.mTree->Initialize(settings, list, checkThreadHandler);
|
||||||
}
|
}
|
||||||
|
|
||||||
ResultsView::~ResultsView()
|
ResultsView::~ResultsView()
|
||||||
|
|
|
@ -45,7 +45,7 @@ class ResultsView : public QWidget {
|
||||||
public:
|
public:
|
||||||
|
|
||||||
explicit ResultsView(QWidget * parent = 0);
|
explicit ResultsView(QWidget * parent = 0);
|
||||||
void Initialize(QSettings *settings, ApplicationList *list);
|
void Initialize(QSettings *settings, ApplicationList *list, ThreadHandler *checkThreadHandler);
|
||||||
virtual ~ResultsView();
|
virtual ~ResultsView();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -181,6 +181,13 @@ signals:
|
||||||
*/
|
*/
|
||||||
void ResultsHidden(bool hidden);
|
void ResultsHidden(bool hidden);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Signal to perform recheck of selected files
|
||||||
|
*
|
||||||
|
* @param selectedFilesList list of selected files
|
||||||
|
*/
|
||||||
|
void CheckSelected(QStringList selectedFilesList);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -51,13 +51,22 @@ void ThreadHandler::SetFiles(const QStringList &files)
|
||||||
mLastFiles = files;
|
mLastFiles = files;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ThreadHandler::Check(const Settings &settings, bool recheck)
|
void ThreadHandler::SetCheckFiles(bool all)
|
||||||
{
|
{
|
||||||
if (recheck && mRunningThreadCount == 0) {
|
if (mRunningThreadCount == 0) {
|
||||||
// only recheck changed files
|
mResults.SetFiles(GetReCheckFiles(all));
|
||||||
mResults.SetFiles(GetReCheckFiles(false));
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ThreadHandler::SetCheckFiles(QStringList files)
|
||||||
|
{
|
||||||
|
if (mRunningThreadCount == 0) {
|
||||||
|
mResults.SetFiles(files);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ThreadHandler::Check(const Settings &settings, bool all)
|
||||||
|
{
|
||||||
if (mResults.GetFileCount() == 0 || mRunningThreadCount > 0 || settings._jobs == 0) {
|
if (mResults.GetFileCount() == 0 || mRunningThreadCount > 0 || settings._jobs == 0) {
|
||||||
qDebug() << "Can't start checking if there's no files to check or if check is in progress.";
|
qDebug() << "Can't start checking if there's no files to check or if check is in progress.";
|
||||||
emit Done();
|
emit Done();
|
||||||
|
@ -190,7 +199,7 @@ int ThreadHandler::GetPreviousScanDuration() const
|
||||||
|
|
||||||
QStringList ThreadHandler::GetReCheckFiles(bool all) const
|
QStringList ThreadHandler::GetReCheckFiles(bool all) const
|
||||||
{
|
{
|
||||||
if (mLastCheckTime.isNull())
|
if (mLastCheckTime.isNull() || all)
|
||||||
return mLastFiles;
|
return mLastFiles;
|
||||||
|
|
||||||
std::set<QString> modified;
|
std::set<QString> modified;
|
||||||
|
@ -243,3 +252,13 @@ bool ThreadHandler::NeedsReCheck(const QString &filename, std::set<QString> &mod
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QDateTime ThreadHandler::GetCheckStartTime() const
|
||||||
|
{
|
||||||
|
return mCheckStartTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ThreadHandler::SetCheckStartTime(QDateTime checkStartTime)
|
||||||
|
{
|
||||||
|
mCheckStartTime = checkStartTime;
|
||||||
|
}
|
||||||
|
|
|
@ -87,9 +87,23 @@ public:
|
||||||
* @brief Start the threads to check the files
|
* @brief Start the threads to check the files
|
||||||
*
|
*
|
||||||
* @param settings Settings for checking
|
* @param settings Settings for checking
|
||||||
* @param recheck Should we reuse the files we checked earlier
|
* @param all true if all files, false if modified files
|
||||||
*/
|
*/
|
||||||
void Check(const Settings &settings, bool recheck);
|
void Check(const Settings &settings, bool all);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Set files to check
|
||||||
|
*
|
||||||
|
* @param all true if all files, false if modified files
|
||||||
|
*/
|
||||||
|
void SetCheckFiles(bool all);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Set selected files to check
|
||||||
|
*
|
||||||
|
* @param files list of files to be checked
|
||||||
|
*/
|
||||||
|
void SetCheckFiles(QStringList files);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Is checking running?
|
* @brief Is checking running?
|
||||||
|
@ -125,6 +139,20 @@ public:
|
||||||
*/
|
*/
|
||||||
QStringList GetReCheckFiles(bool all) const;
|
QStringList GetReCheckFiles(bool all) const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get start time of last check
|
||||||
|
*
|
||||||
|
* @return start time of last check
|
||||||
|
*/
|
||||||
|
QDateTime GetCheckStartTime() const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Set start time of check
|
||||||
|
*
|
||||||
|
* @param checkStartTime saved start time of the last check
|
||||||
|
*/
|
||||||
|
void SetCheckStartTime(QDateTime checkStartTime);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
/**
|
/**
|
||||||
* @brief Signal that all threads are done
|
* @brief Signal that all threads are done
|
||||||
|
|
Loading…
Reference in New Issue