File indexing completed on 2025-03-09 03:52:42

0001 /* ============================================================
0002  *
0003  * This file is a part of digiKam project
0004  * https://www.digikam.org
0005  *
0006  * Date        : 2007-04-16
0007  * Description : Schema update
0008  *
0009  * SPDX-FileCopyrightText: 2007-2008 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
0010  *
0011  * SPDX-License-Identifier: GPL-2.0-or-later
0012  *
0013  * ============================================================ */
0014 
0015 #ifndef DIGIKAM_COLLECTION_SCANNER_OBSERVER_H
0016 #define DIGIKAM_COLLECTION_SCANNER_OBSERVER_H
0017 
0018 // Qt includes
0019 
0020 #include <QString>
0021 
0022 // Local includes
0023 
0024 #include "digikam_export.h"
0025 
0026 namespace Digikam
0027 {
0028 
0029 class CollectionScanner;
0030 
0031 class DIGIKAM_DATABASE_EXPORT CollectionScannerObserver
0032 {
0033 public:
0034 
0035     CollectionScannerObserver()          = default;
0036     virtual ~CollectionScannerObserver() = default;
0037 
0038     virtual bool continueQuery()         = 0;
0039 
0040 private:
0041 
0042     Q_DISABLE_COPY(CollectionScannerObserver)
0043 };
0044 
0045 // ------------------------------------------------------------------------------------------
0046 
0047 class DIGIKAM_DATABASE_EXPORT InitializationObserver : public CollectionScannerObserver
0048 {
0049 public:
0050 
0051     enum UpdateResult
0052     {
0053         UpdateSuccess,
0054         UpdateError,
0055         UpdateErrorMustAbort
0056     };
0057 
0058 public:
0059 
0060     InitializationObserver()                                                         = default;
0061     ~InitializationObserver() override                                               = default;
0062 
0063     virtual void moreSchemaUpdateSteps(int numberOfSteps)                            = 0;
0064     virtual void schemaUpdateProgress(const QString& message, int numberOfSteps = 1) = 0;
0065     virtual void finishedSchemaUpdate(UpdateResult result)                           = 0;
0066     virtual void connectCollectionScanner(CollectionScanner* const scanner)          = 0;
0067     virtual void error(const QString& errorMessage)                                  = 0;
0068 
0069 private:
0070 
0071     Q_DISABLE_COPY(InitializationObserver)
0072 };
0073 
0074 } // namespace Digikam
0075 
0076 #endif // DIGIKAM_COLLECTION_SCANNER_OBSERVER_H