Chrysalis - CLO3D Extensions
Toggle main menu visibility
Loading...
Searching...
No Matches
CommandRunner.h
Go to the documentation of this file.
1
#ifndef CHRYSALIS_COMMANDSCONTAINER_H
2
#define CHRYSALIS_COMMANDSCONTAINER_H
3
4
#include <QMenu>
5
6
#include <
CommandDialog.h
>
7
8
#include "
BaseCommandArgumentsWidget.h
"
9
10
namespace
CLO3D
{
11
class
CommandRunner
{
12
public
:
13
explicit
CommandRunner
(QSettings* settings, QMenu* menu);
14
15
template
<
typename
Command,
typename
Arguments,
typename
W
id
get>
16
requires
std::is_base_of_v<BaseCommand, Command> &&
17
std::is_base_of_v<BaseCommandArguments, Arguments> &&
18
std::is_base_of_v<UI::BaseCommandArgumentsWidget, Widget>
19
void
add
() {
20
const
auto
& action = menu_->addAction(Arguments::NAME);
21
QObject::connect(action, &QAction::triggered, [
this
] {
22
const
auto
arguments =
new
Arguments(settings_);
23
const
auto
dialog =
new
UI::CommandDialog
(Arguments::NAME,
new
Widget(arguments),
new
Command(arguments));
24
dialog->exec();
25
});
26
}
27
private
:
28
QMenu* menu_;
29
QSettings* settings_;
30
};
31
}
32
33
#endif
//CHRYSALIS_COMMANDSCONTAINER_H
BaseCommandArgumentsWidget.h
CommandDialog.h
CLO3D::CommandRunner::add
void add()
Definition
CommandRunner.h:19
CLO3D::CommandRunner::CommandRunner
CommandRunner(QSettings *settings, QMenu *menu)
Definition
CommandRunner.cpp:5
CLO3D::UI::CommandDialog
Definition
CommandDialog.h:17
CLO3D
Definition
BaseCommand.h:8
integrations
clo3d
include
CommandRunner.h
Generated by
1.17.0