/
UserCameraManager.cpp
72 lines (62 loc) · 1.37 KB
/
UserCameraManager.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include "UserCameraManager.h"
#include <QtGui/QMenu>
#include "DynamicAction.h"
UserCameraManager::UserCameraManager(void)
{
}
UserCameraManager::~UserCameraManager(void)
{
std::vector<Camera *>::iterator iter=userCameraList.begin();
for(;iter!=userCameraList.end();)
{
std::vector<Camera *>::iterator toBeDeleted=iter++;
delete *toBeDeleted;
}
}
int UserCameraManager::addCamera(Camera *camera)
{
int cameraID=userCameraList.size();
userCameraList.push_back(camera);
emit onCameraAdded(cameraID);
return cameraID;
}
//删除摄影机的时候,如果这个摄影机被使用,那就不好了。要注意。
void UserCameraManager::removeCamera(Camera *camera)
{
std::vector<Camera *>::iterator iter=userCameraList.begin();
for(;iter!=userCameraList.end();++iter)
{
if((*iter)==camera)
{
userCameraList.erase(iter);
delete camera;
break;
}
}
}
Camera * UserCameraManager::getCameraByID(int id)
{
if(id>=0 && id<userCameraList.size())
{
return userCameraList[id];
}
else
{
return 0;
}
}
void UserCameraManager::setUserCameraMenu(QMenu &menu)
{
menu.clear();
for(int i=0;i<userCameraList.size();++i)
{
DynamicAction *aCameraAction=new DynamicAction(&menu);
aCameraAction->setText(userCameraList[i]->cameraName());
aCameraAction->setData(QVariant(i));
menu.addAction(aCameraAction);
}
}
std::vector<Camera *> & UserCameraManager::getCameraList()
{
return userCameraList;
}