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