digiKam
Loading...
Searching...
No Matches
fuzzysearchview.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 : 2008-05-19
7 * Description : Fuzzy search sidebar tab contents.
8 *
9 * SPDX-FileCopyrightText: 2016-2018 by Mario Frank <mario dot frank at uni minus potsdam dot de>
10 * SPDX-FileCopyrightText: 2008-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
11 * SPDX-FileCopyrightText: 2008-2012 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
12 *
13 * SPDX-License-Identifier: GPL-2.0-or-later
14 *
15 * ============================================================ */
16
17#pragma once
18
19// Qt includes
20
21#include <QDragEnterEvent>
22#include <QDragMoveEvent>
23#include <QScrollArea>
24#include <QDropEvent>
25#include <QList>
26
27// Local includes
28
29#include "statesavingobject.h"
30#include "album.h"
31
32class QMimeData;
33class QPixmap;
34
35namespace Digikam
36{
37
38class FuzzySearchFolderView;
39class ItemInfo;
40class LoadingDescription;
41class SearchModel;
42class SearchModificationHelper;
43class SearchTextBar;
44
45class FuzzySearchView : public QScrollArea,
47{
48 Q_OBJECT
49
50public:
51
52 explicit FuzzySearchView(SearchModel* const searchModel,
53 SearchModificationHelper* const searchModificationHelper,
54 QWidget* const parent = nullptr);
55 ~FuzzySearchView() override;
56
57 SAlbum* currentAlbum() const;
58 void setCurrentAlbum(SAlbum* const album);
59
60 void setActive(bool val);
61 void setItemInfo(const ItemInfo& info);
62
63 void newDuplicatesSearch(const QList<PAlbum*>& albums);
64 void newDuplicatesSearch(const QList<TAlbum*>& albums);
65
66 void setConfigGroup(const KConfigGroup& group) override;
67 void doLoadState() override;
68 void doSaveState() override;
69
70protected:
71
72 void dragEnterEvent(QDragEnterEvent* e) override;
73 void dragMoveEvent(QDragMoveEvent* e) override;
74 void dropEvent(QDropEvent* e) override;
75
76Q_SIGNALS:
77
78 void signalNotificationError(const QString& message, int type);
79
80private Q_SLOTS:
81
82 void slotTabChanged(int);
83
84 void slotHSChanged(int h, int s);
85 void slotVChanged(int v);
86 void slotPenColorChanged(const QColor&);
87 void slotClearSketch();
88 void slotSaveSketchSAlbum();
89 void slotCheckNameEditSketchConditions();
90
91 void slotAlbumSelected(Album* album);
92
93 void slotSaveImageSAlbum();
94 void slotCheckNameEditImageConditions();
95 void slotThumbnailLoaded(const LoadingDescription&, const QPixmap&);
96
97 void slotDirtySketch();
98 void slotTimerSketchDone();
99 void slotUndoRedoStateChanged(bool, bool);
100
101 void slotMinLevelImageChanged(int);
102 void slotMaxLevelImageChanged(int);
103 void slotFuzzyAlbumsChanged();
104 void slotTimerImageDone();
105
106 void slotApplicationSettingsChanged();
107
108private:
109
110 void setCurrentImage(qlonglong imageid);
111 void setCurrentImage(const ItemInfo& info);
112
113 void createNewFuzzySearchAlbumFromSketch(const QString& name, bool force = false);
114 void createNewFuzzySearchAlbumFromImage(const QString& name, bool force = false);
115 bool dragEventWrapper(const QMimeData* data) const;
116
117 void setColor(QColor c);
118
119 QWidget* setupFindSimilarPanel() const;
120 QWidget* setupSketchPanel() const;
121 void setupConnections();
122
123private:
124
125 class Private;
126 Private* const d = nullptr;
127};
128
129} // namespace Digikam
Abstract base class for all album types.
Definition album.h:57
Definition fuzzysearchview_p.h:82
Definition fuzzysearchview.h:47
void doLoadState() override
Definition fuzzysearchview.cpp:230
void doSaveState() override
Definition fuzzysearchview.cpp:257
void setItemInfo(const ItemInfo &info)
Definition fuzzysearchview_similar.cpp:291
SAlbum * currentAlbum() const
Definition fuzzysearchview.cpp:194
void newDuplicatesSearch(const QList< PAlbum * > &albums)
Definition fuzzysearchview.cpp:204
void dragMoveEvent(QDragMoveEvent *e) override
Definition fuzzysearchview_similar.cpp:126
void setCurrentAlbum(SAlbum *const album)
Definition fuzzysearchview.cpp:199
void signalNotificationError(const QString &message, int type)
~FuzzySearchView() override
Definition fuzzysearchview.cpp:102
void setConfigGroup(const KConfigGroup &group) override
Definition fuzzysearchview.cpp:224
void dragEnterEvent(QDragEnterEvent *e) override
Definition fuzzysearchview_similar.cpp:118
void setActive(bool val)
Definition fuzzysearchview.cpp:274
void dropEvent(QDropEvent *e) override
Definition fuzzysearchview_similar.cpp:162
Definition iteminfo.h:68
Definition loadingdescription.h:35
Definition album.h:494
Definition albummodel.h:89
Definition searchmodificationhelper.h:49
Definition statesavingobject.h:66
Definition datefolderview.cpp:34