##// END OF EJS Templates
Handles items with same names in the same node...
Handles items with same names in the same node This case is handled by adding suffix (plugin name) when displaying items in the widget

File last commit:

r1073:243c12122366
r1077:c90049fe7bc2
Show More
DataSourceItemAction.cpp
49 lines | 1.4 KiB | text/x-c | CppLexer
/ core / src / DataSource / DataSourceItemAction.cpp
Alexandre Leroux
Defines actions for a data source items...
r144 #include <DataSource/DataSourceItemAction.h>
Configuration update to permit make install on linux
r257 #include <functional>
Alexandre Leroux
Defines actions for a data source items...
r144 Q_LOGGING_CATEGORY(LOG_DataSourceItemAction, "DataSourceItemAction")
struct DataSourceItemAction::DataSourceItemActionPrivate {
explicit DataSourceItemActionPrivate(const QString &name,
DataSourceItemAction::ExecuteFunction fun)
: m_Name{name}, m_Fun{std::move(fun)}, m_DataSourceItem{nullptr}
{
}
QString m_Name;
DataSourceItemAction::ExecuteFunction m_Fun;
/// Item associated to the action (can be null, in which case the action will not be executed)
DataSourceItem *m_DataSourceItem;
};
DataSourceItemAction::DataSourceItemAction(const QString &name, ExecuteFunction fun)
: impl{spimpl::make_unique_impl<DataSourceItemActionPrivate>(name, std::move(fun))}
{
}
Alexandre Leroux
Implements merge method (2)...
r1073 std::unique_ptr<DataSourceItemAction> DataSourceItemAction::clone() const
{
return std::make_unique<DataSourceItemAction>(impl->m_Name, impl->m_Fun);
}
Alexandre Leroux
Defines actions for a data source items...
r144 QString DataSourceItemAction::name() const noexcept
{
return impl->m_Name;
}
void DataSourceItemAction::setDataSourceItem(DataSourceItem *dataSourceItem) noexcept
{
impl->m_DataSourceItem = dataSourceItem;
}
void DataSourceItemAction::execute()
{
if (impl->m_DataSourceItem) {
impl->m_Fun(*impl->m_DataSourceItem);
}
else {
qCDebug(LOG_DataSourceItemAction())
<< tr("Can't execute action : no item has been associated");
}
}