File indexing completed on 2024-04-14 05:43:35

0001 /*
0002     SPDX-FileCopyrightText: 2008 Rolf Eike Beer <kde@opensource.sf-tec.de>
0003 
0004     SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0005 */
0006 #ifndef KEYTREEVIEW_H
0007 #define KEYTREEVIEW_H
0008 
0009 #include <QTreeView>
0010 
0011 #include <QUrl>
0012 #include <vector>
0013 
0014 #include "core/kgpgkey.h"
0015 
0016 class QDragMoveEvent;
0017 class QDropEvent;
0018 
0019 class KGpgNode;
0020 class KeyListProxyModel;
0021 class KConfigGroup;
0022 
0023 class KeyTreeView: public QTreeView
0024 {
0025     Q_OBJECT
0026 private:
0027     KeyListProxyModel *m_proxy;
0028 
0029 public:
0030     explicit KeyTreeView(QWidget *parent = nullptr, KeyListProxyModel *model = nullptr);
0031 
0032     std::vector<KGpgNode *> selectedNodes(bool *psame = nullptr, KgpgCore::KgpgItemType *pt = nullptr) const;
0033     KGpgNode *selectedNode() const;
0034 
0035     void restoreLayout(KConfigGroup &cg);
0036     void saveLayout(KConfigGroup &cg) const;
0037 
0038     bool isEditing() const;
0039 
0040 Q_SIGNALS:
0041     void importDrop(const QList<QUrl> &urls);
0042     void returnPressed();
0043 
0044 public Q_SLOTS:
0045     void selectNode(KGpgNode *nd);
0046     void resizeColumnsToContents();
0047 
0048 protected:
0049         virtual void contentsDragMoveEvent(QDragMoveEvent *e);
0050         virtual void contentsDropEvent(QDropEvent *e);
0051         void startDrag(Qt::DropActions) override;
0052         void keyPressEvent(QKeyEvent *event) override;
0053 };
0054 
0055 #endif