File indexing completed on 2024-05-05 16:46:55
0001 /* 0002 SPDX-FileCopyrightText: 2006-2007 Andreas Pakulat <apaku@gmx.de> 0003 SPDX-FileCopyrightText: 2007 Dukju Ahn <dukjuahn@gmail.com> 0004 0005 SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 0008 #ifndef KDEVPLATFORM_PLUGIN_STANDARDOUTPUTVIEW_H 0009 #define KDEVPLATFORM_PLUGIN_STANDARDOUTPUTVIEW_H 0010 0011 #include <outputview/ioutputview.h> 0012 #include <interfaces/iplugin.h> 0013 #include <QVariantList> 0014 0015 template <typename T> class QList; 0016 class QAbstractItemModel; 0017 class QString; 0018 class QModelIndex; 0019 class QAbstractItemDelegate; 0020 class OutputWidget; 0021 class ToolViewData; 0022 0023 /** 0024 @author Andreas Pakulat 0025 */ 0026 0027 namespace Sublime 0028 { 0029 class View; 0030 } 0031 0032 class StandardOutputView : public KDevelop::IPlugin, public KDevelop::IOutputView 0033 { 0034 Q_OBJECT 0035 Q_INTERFACES( KDevelop::IOutputView ) 0036 0037 public: 0038 explicit StandardOutputView(QObject *parent = nullptr, const QVariantList &args = QVariantList()); 0039 ~StandardOutputView() override; 0040 0041 int standardToolView( KDevelop::IOutputView::StandardToolView view ) override; 0042 int registerToolView(const QByteArray& configSubgroupName, const QString& title, 0043 KDevelop::IOutputView::ViewType type = KDevelop::IOutputView::OneView, 0044 const QIcon& icon = QIcon(), KDevelop::IOutputView::Options option = ShowItemsButton, 0045 const QList<QAction*>& actionList = QList<QAction*>()) override; 0046 0047 int registerOutputInToolView( int toolViewId, const QString& title, 0048 KDevelop::IOutputView::Behaviours behaviour 0049 = KDevelop::IOutputView::AllowUserClose ) override; 0050 0051 void raiseOutput( int id ) override; 0052 0053 void setModel( int outputId, QAbstractItemModel* model ) override; 0054 void setDelegate( int outputId, QAbstractItemDelegate* delegate ) override; 0055 0056 OutputWidget* outputWidgetForId( int outputId ) const; 0057 0058 void removeToolView(int toolViewId) override; 0059 void removeOutput( int outputId ) override; 0060 0061 void scrollOutputTo( int outputId, const QModelIndex& idx ) override; 0062 void setTitle(int outputId, const QString& title) override; 0063 0064 public Q_SLOTS: 0065 void removeSublimeView( Sublime::View* ); 0066 0067 Q_SIGNALS: 0068 void activated( const QModelIndex& ); 0069 void outputRemoved(int toolViewId, int outputId); 0070 void toolViewRemoved(int toolViewId); 0071 0072 private: 0073 QMap<int, ToolViewData*> m_toolViews; 0074 QList<int> m_ids; 0075 QMap<KDevelop::IOutputView::StandardToolView, int> m_standardViews; 0076 }; 0077 0078 #endif // KDEVPLATFORM_PLUGIN_STANDARDOUTPUTVIEW_H 0079