You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
AppFlow/FITK_Kernel/FITKAppFramework/FITKComponents.cpp

49 lines
1.2 KiB
C++

#include "FITKComponents.h"
#include "FITKComponentInterface.h"
namespace AppFrame
{
FITKCmponents::~FITKCmponents()
{
//遍历回收内存
for (auto c : _components)
delete c;
_components.clear();
}
int FITKCmponents::getComponentCount() const
{
return _components.size();
}
FITKComponentInterface* FITKCmponents::getComponentAt(const int index)
{
//索引越界判断
if (index < 0 || index >= _components.size()) return nullptr;
return _components.at(index);
}
FITKComponentInterface* FITKCmponents::getComponentByName(const QString& compName)
{
//遍历判断
for (auto interf : _components )
{
if (!interf)continue;
const QString name = interf->getComponentName();
//名称相同
if (name == compName)
return interf;
}
//没找到同名对象
return nullptr;
}
void FITKCmponents::addComponent(FITKComponentInterface* comp)
{
if (comp == nullptr) return;
//已经存在不在追加
if (_components.contains(comp)) return;
_components.append(comp);
}
}