File indexing completed on 2024-04-28 15:40:26
0001 // SPDX-FileCopyrightText: 2023 Jesper K. Pedersen <jesper.pedersen@kdab.com> 0002 // 0003 // SPDX-License-Identifier: GPL-2.0-or-later 0004 0005 #pragma once 0006 0007 #include <KLocalizedString> 0008 #include <QMap> 0009 #include <QObject> 0010 0011 class QKeyEvent; 0012 0013 namespace Viewer 0014 { 0015 0016 class AnnotationHandler : public QObject 0017 { 0018 Q_OBJECT 0019 0020 public: 0021 AnnotationHandler(QObject *parent); 0022 bool handle(QKeyEvent *event); 0023 bool askForTagAndInsert(); 0024 0025 struct Assignment { 0026 QString category; 0027 QString value; 0028 }; 0029 using Key = QString; 0030 using Assignments = QMap<Key, Assignment>; 0031 0032 Assignments assignments() const; 0033 0034 Q_SIGNALS: 0035 void requestToggleCategory(const QString &category, const QString &value); 0036 void requestHelp(); 0037 0038 private: 0039 bool assignKey(const QString &key); 0040 void clearKey(const QString &key); 0041 void saveSettings(); 0042 void loadSettings(); 0043 0044 Assignments m_assignments; 0045 }; 0046 0047 QDebug operator<<(QDebug debug, const AnnotationHandler::Assignment &a); 0048 0049 } // namespace Viewer