Devoraz
7th August 2009, 06:49
the qmessagebox is in the below void that will loop every 5 sec. and so the messagebox will popup every 5 sec as well, is there a way to let the message box just pop up once? but at the same time, the void is still looping every 5 sec??
void Node::updateData(int index)
{
//setNodeData(index);
DB_OPEN
NodeDb::DATA *pData;
pNodeDb->getData(index, &pData);
nodeData.temp= pData->temp;
nodeData.voltage = pData->voltage;
nodeData.type = pData->type;
nodeData.strength = pData->strength;
nodeData.re = pData->re;
nodeData.t_time_on = pData->t_time_on;
nodeData.fadeNumber=pData->fadeNumber;
nodeData.fadeTime =pData->fadeTime ;
nodeData.newNode=pData->newNode;
nodeData.deletedNode=pData->deletedNode;
setColor(nodeData.type);
if (pData->status == NodeDb::DS_MOVE)
{
newPos.setX(pData->xpos);
newPos.setY(pData->ypos);
advance();
}
if (nodeData.addr==0){
nodeData.fadeNumber = 255;//pData->fadeNumber;
//ap_counter=apcount;
updated = true;
update();
if (!updateTimerId)
{
updateTimerId = startTimer(200);
}
}
timeStamp.restart();
if (nodeData.addr!=0)
{
updated = true;
update();
if(nodeData.temp > ((alertTemp*9)/5+32.0)||(edStrength > alertDistance))
{
QSound::play("sound/alert.wav");
QMessageBox::critical(NULL, tr("Alert"), tr("High temperature is being detected!!!"));
}
}
}
void Node::updateData(int index)
{
//setNodeData(index);
DB_OPEN
NodeDb::DATA *pData;
pNodeDb->getData(index, &pData);
nodeData.temp= pData->temp;
nodeData.voltage = pData->voltage;
nodeData.type = pData->type;
nodeData.strength = pData->strength;
nodeData.re = pData->re;
nodeData.t_time_on = pData->t_time_on;
nodeData.fadeNumber=pData->fadeNumber;
nodeData.fadeTime =pData->fadeTime ;
nodeData.newNode=pData->newNode;
nodeData.deletedNode=pData->deletedNode;
setColor(nodeData.type);
if (pData->status == NodeDb::DS_MOVE)
{
newPos.setX(pData->xpos);
newPos.setY(pData->ypos);
advance();
}
if (nodeData.addr==0){
nodeData.fadeNumber = 255;//pData->fadeNumber;
//ap_counter=apcount;
updated = true;
update();
if (!updateTimerId)
{
updateTimerId = startTimer(200);
}
}
timeStamp.restart();
if (nodeData.addr!=0)
{
updated = true;
update();
if(nodeData.temp > ((alertTemp*9)/5+32.0)||(edStrength > alertDistance))
{
QSound::play("sound/alert.wav");
QMessageBox::critical(NULL, tr("Alert"), tr("High temperature is being detected!!!"));
}
}
}