File indexing completed on 2024-05-05 16:45:35
0001 /* 0002 SPDX-FileCopyrightText: 2010 Milian Wolff <mail@milianw.de> 0003 0004 SPDX-License-Identifier: LGPL-2.1-or-later 0005 */ 0006 0007 #ifndef KDEVPLATFORM_PLUGIN_EXTERNALSCRIPTVIEW_H 0008 #define KDEVPLATFORM_PLUGIN_EXTERNALSCRIPTVIEW_H 0009 0010 #include <QWidget> 0011 0012 #include "ui_externalscriptview.h" 0013 0014 class ExternalScriptItem; 0015 class QAction; 0016 0017 class QSortFilterProxyModel; 0018 0019 class ExternalScriptPlugin; 0020 0021 class ExternalScriptView 0022 : public QWidget 0023 , Ui::ExternalScriptViewBase 0024 { 0025 Q_OBJECT 0026 0027 public: 0028 explicit ExternalScriptView(ExternalScriptPlugin* plugin, QWidget* parent = nullptr); 0029 ~ExternalScriptView() override; 0030 0031 /// @return Currently selected script item. 0032 ExternalScriptItem* currentItem() const; 0033 /// @return Item for @p index. 0034 ExternalScriptItem* itemForIndex(const QModelIndex& index) const; 0035 0036 private Q_SLOTS: 0037 void contextMenu (const QPoint& pos); 0038 0039 void addScript(); 0040 void removeScript(); 0041 void editScript(); 0042 0043 /// disables or enables available actions based on the currently selected item 0044 void validateActions(); 0045 0046 protected: 0047 /// insert snippet on double click 0048 bool eventFilter(QObject* obj, QEvent* event) override; 0049 0050 private: 0051 ExternalScriptPlugin* m_plugin; 0052 QSortFilterProxyModel* m_model; 0053 QAction* m_addScriptAction; 0054 QAction* m_editScriptAction; 0055 QAction* m_removeScriptAction; 0056 }; 0057 0058 #endif // KDEVPLATFORM_PLUGIN_EXTERNALSCRIPTVIEW_H