11 #include <ui_ActionLauncher.h>
14 #include <QVBoxLayout>
28 : QAbstractListModel(parent), plugin(plugin)
32 int rowCount(
const QModelIndex &parent)
const override
34 Q_ASSERT(plugin !=
nullptr);
35 return static_cast<int>(plugin->
actions.size());
38 QVariant
data(
const QModelIndex &index,
int role)
const override
40 Q_ASSERT(plugin !=
nullptr);
41 if (role != Qt::DisplayRole || !index.isValid() || index.row() >= plugin->
actions.size())
45 return plugin->
actions[index.row()].name;
68 m_ui(new Ui_ActionLauncher),
69 m_pluginManager(pluginManager),
70 m_interpreter(interpreter)
72 setWindowTitle(
"ActionLauncher");
86 QWidget::showEvent(
event);
91 m_ui->toolBox->setDisabled(
true);
95 m_ui->toolBox->setDisabled(
false);
100 QToolBox *toolBox = m_ui->toolBox;
101 for (
int i{toolBox->count() - 1}; i >= 0; --i)
103 QWidget *widget = toolBox->widget(i);
104 toolBox->removeItem(i);
111 QToolBox *toolBox = m_ui->toolBox;
114 if (plugin.actions.empty())
119 auto *view =
new QListView(
this);
122 view->setModel(model);
124 toolBox->addItem(view, plugin.name);
128 #include "PythonActionLauncher.moc"
#define ACTION_LAUNCHER_ICON_PATH
int rowCount(const QModelIndex &parent) const override
void handleDoubleClick(const QModelIndex &index)
QVariant data(const QModelIndex &index, int role) const override
PluginListModel(const Runtime::RegisteredPlugin *plugin, PythonActionLauncher *parent)
void showEvent(QShowEvent *event) override
PythonActionLauncher(const PythonPluginManager *pluginManager, PythonInterpreter *interpreter, QWidget *parent=nullptr)
void executeFunction(const pybind11::object &function)
const std::vector< Runtime::RegisteredPlugin > & plugins() const
Returns the currently loaded plugins.
std::vector< Action > actions