File indexing completed on 2024-04-28 05:48:55

0001 /*
0002     SPDX-FileCopyrightText: 2021 Waqar Ahmed <waqar.17a@gmail.com>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 #pragma once
0007 
0008 #include <quickdialog.h>
0009 
0010 #include "lspclientprotocol.h"
0011 
0012 class QStandardItemModel;
0013 class LSPClientServer;
0014 
0015 namespace KTextEditor
0016 {
0017 class MainWindow;
0018 }
0019 
0020 class GotoSymbolHUDDialog : public HUDDialog
0021 {
0022 public:
0023     GotoSymbolHUDDialog(KTextEditor::MainWindow *mainWindow, std::shared_ptr<LSPClientServer> server);
0024 
0025     void openDialog();
0026 
0027 protected Q_SLOTS:
0028     void slotReturnPressed(const QModelIndex &index) override final;
0029 
0030 private:
0031     void slotTextChanged(const QString &text);
0032     QIcon iconForSymbolKind(LSPSymbolKind kind) const;
0033     void setPaletteToEditorColors();
0034 
0035     QStandardItemModel *model = nullptr;
0036     KTextEditor::MainWindow *mainWindow;
0037     std::shared_ptr<LSPClientServer> server;
0038 
0039     const QIcon m_icon_pkg = QIcon::fromTheme(QStringLiteral("code-block"));
0040     const QIcon m_icon_class = QIcon::fromTheme(QStringLiteral("code-class"));
0041     const QIcon m_icon_typedef = QIcon::fromTheme(QStringLiteral("code-typedef"));
0042     const QIcon m_icon_function = QIcon::fromTheme(QStringLiteral("code-function"));
0043     const QIcon m_icon_var = QIcon::fromTheme(QStringLiteral("code-variable"));
0044 };