Add instrument plugins to Song Editor via right click (#6698)

This commit is contained in:
Lost Robot
2023-05-05 21:16:07 -07:00
committed by GitHub
parent 3440d49aa8
commit 87a57db593
2 changed files with 26 additions and 1 deletions

View File

@@ -27,6 +27,7 @@
#include <QHeaderView>
#include <QLabel>
#include <QLineEdit>
#include <QMenu>
#include <QMouseEvent>
#include <QPainter>
#include <QStyleOption>
@@ -34,7 +35,10 @@
#include "embed.h"
#include "Engine.h"
#include "InstrumentTrack.h"
#include "Song.h"
#include "StringPairDrag.h"
#include "TrackContainerView.h"
#include "PluginFactory.h"
namespace lmms::gui
@@ -287,4 +291,24 @@ void PluginDescWidget::mousePressEvent( QMouseEvent * _me )
}
void PluginDescWidget::contextMenuEvent(QContextMenuEvent* e)
{
QMenu contextMenu(this);
contextMenu.addAction(
tr("Send to new instrument track"),
[=]{ openInNewInstrumentTrack(m_pluginKey.desc->name); }
);
contextMenu.exec(e->globalPos());
}
void PluginDescWidget::openInNewInstrumentTrack(QString value)
{
TrackContainer* tc = Engine::getSong();
auto it = dynamic_cast<InstrumentTrack*>(Track::create(Track::InstrumentTrack, tc));
auto ilt = new InstrumentLoaderThread(this, it, value);
ilt->start();
}
} // namespace lmms::gui