start ungaying the message log floater (goddamn pointer magic removed)

This commit is contained in:
Hazim Gazov
2010-05-08 22:11:03 -03:00
parent 20bbb88a8b
commit af26f6b49f

View File

@@ -785,18 +785,19 @@ BOOL LLFloaterMessageLog::onClickCloseCircuit(void* user_data)
LLNetListItem* itemp = (LLNetListItem*)user_data; LLNetListItem* itemp = (LLNetListItem*)user_data;
LLCircuitData* cdp = itemp->mCircuitData; LLCircuitData* cdp = itemp->mCircuitData;
if(!cdp) return FALSE; if(!cdp) return FALSE;
LLHost* circuithost = cdp->getHost();
LLSD args; LLSD args;
args["MESSAGE"] = "This will delete local circuit data.\nDo you want to tell the remote host to close the circuit too?"; args["MESSAGE"] = "This will delete local circuit data.\nDo you want to tell the remote host to close the circuit too?";
LLSD payload; LLSD payload;
payload["netlistitem"] = (int)((void*)itemp); //oh god, this is so very wrong, wonder if there's another way to get LLSD to like pointers payload["circuittoclose"] = circuithost->getString();
LLNotifications::instance().add("GenericAlertYesCancel", args, payload, onConfirmCloseCircuit); LLNotifications::instance().add("GenericAlertYesCancel", args, payload, onConfirmCloseCircuit);
return TRUE; return TRUE;
} }
// static // static
void LLFloaterMessageLog::onConfirmCloseCircuit(S32 option, LLSD payload) void LLFloaterMessageLog::onConfirmCloseCircuit(S32 option, LLSD payload)
{ {
LLNetListItem* itemp = (LLNetListItem*)((void*)((int)payload["netlistitem"].asInteger())); //yep... LLHost myhost = new LLHost(payload["circuittoclose"]);
LLCircuitData* cdp = itemp->mCircuitData; LLCircuitData* cdp = gMessageSystem->mCircuitInfo.findCircuit(myhost);
if(!cdp) return; if(!cdp) return;
LLViewerRegion* regionp = LLWorld::getInstance()->getRegion(cdp->getHost()); LLViewerRegion* regionp = LLWorld::getInstance()->getRegion(cdp->getHost());
switch(option) switch(option)