File indexing completed on 2024-04-14 03:55:04
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 public: 0031 ClipboardHistoryDialog(QWidget *mainwindow, KTextEditor::ViewPrivate *mainWindow); 0032 0033 void resetValues(); 0034 void openDialog(const QList<KTextEditor::EditorPrivate::ClipboardEntry> &clipboardHistory); 0035 0036 private: 0037 void slotReturnPressed(); 0038 0039 private: 0040 bool eventFilter(QObject *obj, QEvent *event) override; 0041 void updateViewGeometry(); 0042 void clearLineEdit(); 0043 void showSelectedText(const QModelIndex &idx); 0044 void showEmptyPlaceholder(); 0045 0046 private: 0047 QTreeView m_treeView; 0048 QLineEdit m_lineEdit; 0049 QPointer<QWidget> m_mainWindow; 0050 0051 /* 0052 * View containing the currently open document 0053 */ 0054 KTextEditor::ViewPrivate *m_viewPrivate; 0055 0056 ClipboardHistoryModel *m_model; 0057 ClipboardHistoryFilterModel *m_proxyModel; 0058 0059 /* 0060 * Document for the selected text to paste 0061 */ 0062 KTextEditor::DocumentPrivate *m_selectedDoc; 0063 0064 /* 0065 * View containing the selected text to paste 0066 */ 0067 KTextEditor::ViewPrivate *m_selectedView; 0068 0069 QLabel *m_noEntries; 0070 }; 0071 0072 #endif