From b62368501e5b37aea3d8d5feac884a254c71380d Mon Sep 17 00:00:00 2001 From: Arno Date: Sat, 6 Nov 2010 13:44:10 +0100 Subject: Finish ConsistencyChecker This commit reverts the previous one. You don't need a QTimer to start a QThread member function in a separate thread. Calling start() creates a new thread. Implemented filesystem check and polished the dialog. --- consistencycheck.h | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) (limited to 'consistencycheck.h') diff --git a/consistencycheck.h b/consistencycheck.h index 2f934fc..f5470e3 100644 --- a/consistencycheck.h +++ b/consistencycheck.h @@ -12,12 +12,15 @@ #include #include #include +#include +#include class QPushButton; class QPlainTextEdit; class QLabel; class QString; -class QCheckBox; +class QSqlQuery; +class QFileInfo; class ConsistencyChecker; class ConsistencyCheck : public QDialog { @@ -32,15 +35,16 @@ class ConsistencyCheck : public QDialog { void checkerStarted(); void checkerFinished(); void cancelChecker(); - void showErrorsChanged(int state); + void cleanup(); private: + void moveFiles(const QStringList &files); QPushButton *mCancelExit; QPushButton *mCheckDb; QPushButton *mCheckFs; - QPlainTextEdit *mDisplay; - QLabel *mCheckLabel; - QCheckBox *mErrorsOnly; + QPushButton *mCleanup; + QPlainTextEdit *mOkDisplay; + QPlainTextEdit *mErrorDisplay; ConsistencyChecker *mChecker; }; @@ -55,12 +59,18 @@ class ConsistencyChecker : public QThread { int status() const { return mStatus; } void setStatus(int status) { mStatus = status; } void check(); + const QStringList strayFiles(); + void clearStrayFiles(); + const QList strayIds(); + void clearStrayIds(); public slots: void setCancel(bool cancel); + void deleteIds(const QList &ids); private slots: void dbCheck(); + void fsCheck(); signals: void consistencyMsg(const QString &msg); @@ -70,11 +80,17 @@ class ConsistencyChecker : public QThread { private: QString archivePath(const QString &fileName, const QString &md5sum) const; + void doFsCheck(const QFileInfo &start); bool mCanceled; int mMode; int mStatus; QSqlDatabase mDb; + QSqlQuery *mFileQuery; QMutex mCancelMutex; + QMutex mStrayFilesMutex; + QMutex mStrayIdsMutex; + QStringList mStrayFiles; + QList mStrayIds; }; #endif // CONSISTENCYCHECK_H -- cgit v1.2.3-70-g09d2