digiKam
Loading...
Searching...
No Matches
dbcleaner.h
Go to the documentation of this file.
1/* ============================================================
2 *
3 * This file is a part of digiKam project
4 * https://www.digikam.org
5 *
6 * Date : 2017-01-29
7 * Description : Database cleaner.
8 *
9 * SPDX-FileCopyrightText: 2017-2018 by Mario Frank <mario dot frank at uni minus potsdam dot de>
10 *
11 * SPDX-License-Identifier: GPL-2.0-or-later
12 *
13 * ============================================================ */
14
15#pragma once
16
17// Qt includes
18
19#include <QDialog>
20#include <QString>
21#include <QWidget>
22#include <QList>
23
24// Local includes
25
26#include "identity.h"
27#include "dlayoutbox.h"
28#include "dworkingpixmap.h"
29#include "maintenancetool.h"
30
31namespace Digikam
32{
33
35{
36 Q_OBJECT
37
38public:
39
40 explicit DbCleaner(bool cleanThumbsDb = false,
41 bool cleanFacesDb = false,
42 bool cleanSimilarityDb = false,
43 bool shrinkDatabases = false,
44 ProgressItem* const parent = nullptr);
45 ~DbCleaner() override;
46
47 void setUseMultiCoreCPU(bool b) override;
48
49private Q_SLOTS:
50
51 void slotStart() override;
52 void slotCancel() override;
53 void slotAdvance();
54 void slotShrinkNextDBInfo(bool done, bool passed);
55
56 void slotFetchedData(const QList<qlonglong>& staleImageIds,
57 const QList<int>& staleThumbIds,
58 const QList<Identity>& staleIdentities,
59 const QList<qlonglong>& staleImageSimilarities);
60
61 void slotAddItemsToProcess(int count);
62
63 void slotCleanItems();
64 void slotCleanedItems();
65 void slotCleanedThumbnails();
66 void slotCleanedFaces();
67 void slotCleanedSimilarity();
68 void slotShrinkDatabases();
69
70 void slotDone() override;
71
72private:
73
74 class Private;
75 Private* const d = nullptr;
76};
77
78// -----------------------------------------------------
79
80class DbShrinkDialog : public QDialog
81{
82 Q_OBJECT
83
84public:
85
86 explicit DbShrinkDialog(QWidget* const parent);
87 ~DbShrinkDialog() override;
88
89 void setActive(const int pos);
90 void setIcon(const int pos, const QIcon& icon);
91
92public Q_SLOTS:
93
94 int exec() override;
95
96private Q_SLOTS:
97
98 void slotProgressTimerDone();
99
100private:
101
102 class Private;
103 Private* const d = nullptr;
104};
105
106} // namespace Digikam
Definition dbcleaner.h:35
~DbCleaner() override
Definition dbcleaner.cpp:110
void setUseMultiCoreCPU(bool b) override
Definition dbcleaner.cpp:441
Definition dbcleaner.h:81
int exec() override
Definition dbcleaner.cpp:561
void setIcon(const int pos, const QIcon &icon)
Definition dbcleaner.cpp:551
void setActive(const int pos)
Definition dbcleaner.cpp:529
~DbShrinkDialog() override
Definition dbcleaner.cpp:523
Definition maintenancetool.h:31
Definition progressmanager.h:35
ProgressItem * parent() const
Definition progressmanager.cpp:283
Definition datefolderview.cpp:34