Beispiel #1
0
void VSCDeviceList::NotifyCameraOnlineOffline(int nId, BOOL bOnline)
{
	QTreeWidgetItem *qtreewidgetitem = ui.treeWidget->topLevelItem(VSC_DEVICE_INDEX_IPC);
	bool setting = false;
	
	int cnt = qtreewidgetitem->childCount();
	//VDC_DEBUG( "%s cnt %d\n",__FUNCTION__, cnt);
	for (int i = 0; i < cnt; i ++)
	{
		QTreeWidgetItem * pChild = qtreewidgetitem->child(i);
		VSCDeviceIPC *pIPC = dynamic_cast<VSCDeviceIPC*>(pChild);
		if (pIPC && pIPC->GetDeviceId() == nId)
		{
		 	pIPC->UpdateOnline(bOnline);
			setting = true;
		}
	}

	if (setting == false)
	{
		/* loop for del to the group */
		int cnt = qtreewidgetitem->childCount();
		for (int i = 0; i < cnt; i ++)
		{
			QTreeWidgetItem * pChild = qtreewidgetitem->child(i);
			VSCDeviceIPCGroup *pGroup = dynamic_cast<VSCDeviceIPCGroup*>(pChild);
			if (pGroup)
			{
				int cnt2 = pChild->childCount();
				//VDC_DEBUG( "%s cnt %d\n",__FUNCTION__, cnt);
				for (int j = 0; j < cnt2; j ++)
				{
					QTreeWidgetItem * pChild2 = pChild->child(j);
					VSCDeviceIPC *pIPC = dynamic_cast<VSCDeviceIPC*>(pChild2);
					if (pIPC && pIPC->GetDeviceId() == nId)
					{
						pIPC->UpdateOnline(bOnline);
						setting = true;
					}
				}
			}
		}
	}

	return;
}