File indexing completed on 2024-05-12 05:52:07

0001 /*
0002     SPDX-FileCopyrightText: 2020 Waqar Ahmed <waqar.17a@gmail.com>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 #pragma once
0007 
0008 #include <QLineEdit>
0009 #include <memory>
0010 
0011 #include "katequickopenmodel.h"
0012 
0013 enum FilterMode {
0014     Fuzzy = 0,
0015     Wildcard,
0016 };
0017 
0018 class QuickOpenLineEdit : public QLineEdit
0019 {
0020     Q_OBJECT
0021 public:
0022     explicit QuickOpenLineEdit(QWidget *parent);
0023     ~QuickOpenLineEdit() override;
0024 
0025     KateQuickOpenModelList listMode() const
0026     {
0027         return m_listMode;
0028     }
0029 
0030     FilterMode filterMode() const
0031     {
0032         return m_filterMode;
0033     }
0034 
0035 protected:
0036     void contextMenuEvent(QContextMenuEvent *event) override;
0037 
0038 private:
0039     void setupMenu();
0040 
0041 private:
0042     std::unique_ptr<QMenu> menu;
0043     KateQuickOpenModelList m_listMode;
0044     FilterMode m_filterMode;
0045 
0046 Q_SIGNALS:
0047     void listModeChanged(KateQuickOpenModelList mode);
0048     void filterModeChanged();
0049 };