GstPipelineStudio/src/PluginsList.h

86 lines
1.6 KiB
C
Raw Normal View History

2015-02-26 16:02:22 +00:00
#ifndef PLUGINS_LIST_H_
#define PLUGINS_LIST_H_
#include <QDialog>
#include <QLabel>
#include <QListWidgetItem>
#include <QPushButton>
2015-02-26 16:02:22 +00:00
#include "GraphManager.h"
class Plugin
{
public:
Plugin(const QString& name, int rank):
m_name(name),
m_rank(rank)
{
}
const QString getName() {return m_name;}
int getRank() {return m_rank;}
private:
const QString m_name;
int m_rank;
};
class PluginsList
{
public:
PluginsList();
~PluginsList();
static PluginsList& instance();
GList* getList() {return m_pluginsList;}
GList* getSortedByRank();
GList* getPluginListByCaps(GstPadDirection direction, GstCaps* caps);
GList* getPluginListFavorite();
private:
void init();
GList* m_pluginsList; //list of plugins
};
class MainWindow;
class PluginsListDialog: public QDialog
2015-02-26 16:02:22 +00:00
{
Q_OBJECT
2015-02-26 16:02:22 +00:00
public:
PluginsListDialog(QWidget *pwgt = NULL, Qt::WindowFlags f = Qt::Window);
~PluginsListDialog();
2015-02-26 16:02:22 +00:00
void setGraph(GraphManager* graph) {m_pGraph = graph;}
2015-02-26 16:02:22 +00:00
protected:
bool eventFilter(QObject *obj, QEvent *ev);
2015-02-26 16:02:22 +00:00
private:
void InitPluginsList();
2015-02-26 16:02:22 +00:00
public slots:
void showInfo(QListWidgetItem *current, QListWidgetItem *previous);
void insert(QListWidgetItem *);
2015-02-26 16:02:22 +00:00
private slots:
void filterPlugins(const QString &text);
void favoritesClicked();
void ProvideContextMenu(const QPoint &pos);
signals:
void signalAddPluginToFav (const QString &plugin_name);
void signalRemPluginToFav (const QString &plugin_name);
2015-02-26 16:02:22 +00:00
private:
MainWindow * m_main;
QLabel *m_plblInfo;
QListWidget *m_pPlugins;
GraphManager *m_pGraph;
QPushButton*m_favoriteListButton;
2015-02-26 16:02:22 +00:00
};
#endif