digiKam
Loading...
Searching...
No Matches
gpsitemlistcontextmenu.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 : 2009-05-07
7 * Description : Context menu for GPS list view.
8 *
9 * SPDX-FileCopyrightText: 2010-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
10 * SPDX-FileCopyrightText: 2009-2014 by Michael G. Hansen <mike at mghansen dot de>
11 *
12 * SPDX-License-Identifier: GPL-2.0-or-later
13 *
14 * ============================================================ */
15
16#pragma once
17
18// Qt includes:
19
20#include <QObject>
21
22// Local includes
23
24#include "digikam_config.h"
25#include "lookupaltitude.h"
26#include "gpsdatacontainer.h"
27#include "gpsitemlist.h"
28#include "digikam_export.h"
29
30class QUrl;
31
32namespace Digikam
33{
34
35class GPSUndoCommand;
36class GPSBookmarkOwner;
37
38class DIGIKAM_EXPORT GPSItemListContextMenu : public QObject
39{
40 Q_OBJECT
41
42public:
43
44 explicit GPSItemListContextMenu(GPSItemList* const imagesList,
45 GPSBookmarkOwner* const bookmarkOwner = nullptr);
46 ~GPSItemListContextMenu() override;
47
48 void setEnabled(const bool state);
49
50protected:
51
52 void setGPSDataForSelectedItems(const GPSDataContainer& gpsData, const QString& undoDescription);
53 bool getCurrentItemPositionAndUrl(GPSDataContainer* const gpsInfo, QUrl* const itemUrl);
54 void removeInformationFromSelectedImages(const GPSDataContainer::HasFlags flagsToClear, const QString& undoDescription);
55
56 bool eventFilter(QObject* watched, QEvent* event) override;
57
58 static bool getCurrentPosition(GPSDataContainer* position, void* mydata);
59
60private Q_SLOTS:
61
62 void copyActionTriggered();
63 void pasteSwapActionTriggered();
64 void pasteActionTriggered(bool swap = false);
65 void slotBookmarkSelected(const GPSDataContainer& position);
66 void slotRemoveCoordinates();
67 void slotRemoveAltitude();
68 void slotRemoveUncertainty();
69 void slotRemoveSpeed();
70 void slotLookupMissingAltitudes();
71 void slotAltitudeLookupReady(const QList<int>& readyRequests);
72 void slotAltitudeLookupDone();
73 void slotAltitudeLookupCancel();
74
75Q_SIGNALS:
76
77 void signalSetUIEnabled(const bool enabledState);
78 void signalSetUIEnabled(const bool enabledState, QObject* const cancelObject, const QString& cancelSlot);
79 void signalProgressSetup(const int maxProgress, const QString& progressText);
80 void signalProgressChanged(const int currentProgress);
82
83private:
84
85 class Private;
86 Private* const d = nullptr;
87};
88
89} // namespace Digikam
Definition gpsbookmarkowner.h:36
Definition gpsdatacontainer.h:26
Definition gpsitemlistcontextmenu.h:39
void signalProgressChanged(const int currentProgress)
void signalUndoCommand(GPSUndoCommand *undoCommand)
void signalProgressSetup(const int maxProgress, const QString &progressText)
void signalSetUIEnabled(const bool enabledState)
void signalSetUIEnabled(const bool enabledState, QObject *const cancelObject, const QString &cancelSlot)
Definition gpsitemlist.h:37
Definition gpsundocommand.h:31
Definition datefolderview.cpp:34