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