File indexing completed on 2024-04-28 11:44:59
0001 /* 0002 SPDX-FileCopyrightText: 2022 Eric Armbruster <eric1@armbruster-online.de> 0003 SPDX-FileCopyrightText: 2022 Waqar Ahmed <waqar.17a@gmail.com> 0004 0005 SPDX-License-Identifier: LGPL-2.0-or-later 0006 */ 0007 0008 #ifndef CLIPBOARD_HISTORY_DIALOG_H 0009 #define CLIPBOARD_HISTORY_DIALOG_H 0010 0011 #include "kateglobal.h" 0012 0013 #include <QLabel> 0014 #include <QLineEdit> 0015 #include <QMenu> 0016 #include <QPointer> 0017 #include <QTreeView> 0018 0019 class ClipboardHistoryModel; 0020 class ClipboardHistoryFilterModel; 0021 0022 namespace KTextEditor 0023 { 0024 class DocumentPrivate; 0025 class ViewPrivate; 0026 } 0027 0028 class ClipboardHistoryDialog : public QMenu 0029 { 0030 Q_OBJECT 0031 0032 public: 0033 ClipboardHistoryDialog(QWidget *mainwindow, KTextEditor::ViewPrivate *mainWindow); 0034 0035 void resetValues(); 0036 void openDialog(const QVector<KTextEditor::EditorPrivate::ClipboardEntry> &clipboardHistory); 0037 0038 private Q_SLOTS: 0039 void slotReturnPressed(); 0040 0041 private: 0042 bool eventFilter(QObject *obj, QEvent *event) override; 0043 void updateViewGeometry(); 0044 void clearLineEdit(); 0045 void showSelectedText(const QModelIndex &idx); 0046 void showEmptyPlaceholder(); 0047 0048 private: 0049 QTreeView m_treeView; 0050 QLineEdit m_lineEdit; 0051 QPointer<QWidget> m_mainWindow; 0052 0053 /* 0054 * View containing the currently open document 0055 */ 0056 KTextEditor::ViewPrivate *m_viewPrivate; 0057 0058 ClipboardHistoryModel *m_model; 0059 ClipboardHistoryFilterModel *m_proxyModel; 0060 0061 /* 0062 * Document for the selected text to paste 0063 */ 0064 KTextEditor::DocumentPrivate *m_selectedDoc; 0065 0066 /* 0067 * View containing the selected text to paste 0068 */ 0069 KTextEditor::ViewPrivate *m_selectedView; 0070 0071 QLabel *m_noEntries; 0072 }; 0073 0074 #endif