mirror of
https://gitlab.freedesktop.org/dabrain34/GstPipelineStudio.git
synced 2025-05-03 06:54:50 +00:00
Context menu on empty space in GraphDisplay
Display a context menu allowing to: Add plugin Clear graph
This commit is contained in:
parent
6440059012
commit
9390e492ef
4 changed files with 35 additions and 6 deletions
|
@ -516,8 +516,7 @@ GraphDisplay::showContextMenu (QMouseEvent *event)
|
|||
if (isActive)
|
||||
pact->setDisabled (true);
|
||||
|
||||
pact = new CustomMenuAction ("Request pad...", &menu);
|
||||
menu.addAction (pact);
|
||||
menu.addAction (new CustomMenuAction ("Request pad...", &menu));
|
||||
}
|
||||
else {
|
||||
for (std::size_t i = 0; i < m_info.size (); i++) {
|
||||
|
@ -565,6 +564,10 @@ GraphDisplay::showContextMenu (QMouseEvent *event)
|
|||
if (!menu.isEmpty ())
|
||||
break;
|
||||
}
|
||||
if (menu.isEmpty ()) {
|
||||
menu.addAction (new CustomMenuAction ("Add plugin", &menu));
|
||||
menu.addAction (new CustomMenuAction ("Clear graph", &menu));
|
||||
}
|
||||
}
|
||||
|
||||
if (!menu.isEmpty ()) {
|
||||
|
@ -589,6 +592,10 @@ GraphDisplay::showContextMenu (QMouseEvent *event)
|
|||
removeSelected ();
|
||||
else if (pact->getName () == "ElementName")
|
||||
connectPlugin (elementId, pact->text ());
|
||||
else if (pact->getName () == "Add plugin")
|
||||
addPlugin ();
|
||||
else if (pact->getName () == "Clear graph")
|
||||
clearGraph ();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -619,6 +626,18 @@ GraphDisplay::removeSelected ()
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
GraphDisplay::addPlugin ()
|
||||
{
|
||||
emit signalAddPlugin();
|
||||
}
|
||||
|
||||
void
|
||||
GraphDisplay::clearGraph ()
|
||||
{
|
||||
emit signalClearGraph();
|
||||
}
|
||||
|
||||
void
|
||||
GraphDisplay::removePlugin (std::size_t id)
|
||||
{
|
||||
|
|
|
@ -29,6 +29,10 @@ public:
|
|||
private slots:
|
||||
void addRequestPad(int row, int collumn);
|
||||
|
||||
signals:
|
||||
void signalAddPlugin();
|
||||
void signalClearGraph();
|
||||
|
||||
private:
|
||||
|
||||
enum MoveAction
|
||||
|
@ -74,6 +78,8 @@ private:
|
|||
void disconnect(std::size_t elementId, std::size_t padId);
|
||||
void requestPad(std::size_t elementId);
|
||||
void connectPlugin(std::size_t elementId, const QString& destElementName);
|
||||
void addPlugin();
|
||||
void clearGraph();
|
||||
|
||||
ElementInfo* getElement(std::size_t elementId);
|
||||
PadInfo* getPad(std::size_t elementId, std::size_t padId);
|
||||
|
|
|
@ -155,6 +155,10 @@ m_pGraph (new GraphManager)
|
|||
m_menu->addAction ("About pipeviz...", this, SLOT (About ()));
|
||||
|
||||
m_pGraphDisplay = new GraphDisplay(this);
|
||||
connect(m_pGraphDisplay, SIGNAL(signalAddPlugin()),
|
||||
this, SLOT(AddPlugin()));
|
||||
connect(m_pGraphDisplay, SIGNAL(signalClearGraph()),
|
||||
this, SLOT(ClearGraph()));
|
||||
|
||||
QScrollArea *pscroll = new QScrollArea;
|
||||
pscroll->setWidget (m_pGraphDisplay);
|
||||
|
@ -238,7 +242,7 @@ MainWindow::OpenMediaFile ()
|
|||
if (!path.isEmpty ()) {
|
||||
gchar *uri = gst_filename_to_uri (path.toStdString ().c_str (), NULL);
|
||||
if (uri) {
|
||||
LOG_INFO("Open Source file: " + path);;
|
||||
LOG_INFO("Open Source file: " + path);
|
||||
|
||||
m_pGraph->OpenUri (uri, NULL);
|
||||
g_free (uri);
|
||||
|
|
|
@ -34,10 +34,11 @@ protected:
|
|||
void createDockWindows();
|
||||
|
||||
public slots:
|
||||
void InsertLogLine(const QString& line, int category);
|
||||
void InsertLogLine(const QString& line, int category);
|
||||
void AddPlugin();
|
||||
void ClearGraph();
|
||||
|
||||
private slots:
|
||||
void AddPlugin();
|
||||
void OpenMediaFile();
|
||||
void OpenMediaUri();
|
||||
void Play();
|
||||
|
@ -50,7 +51,6 @@ private slots:
|
|||
void SaveAs();
|
||||
void Open();
|
||||
|
||||
void ClearGraph();
|
||||
void About();
|
||||
|
||||
private:
|
||||
|
|
Loading…
Reference in a new issue