void ChatWindow::WindowActivated(bool active) { if (active) stopNotify(); BWindow::WindowActivated(active); }
LmcCom::~LmcCom() { if (notify) stopNotify(); curl_easy_cleanup(curl); close(); free(host); free(mac); free(escId); free(queryTitle); }
Chat *PersonItem::createChat() { if (chat) { chat->showNormal(); chat->activateWindow(); return chat; } chat = new PersonChat; chat->setRecever(recever); chat->setShakeEnable(shakeabled); chat->setRejectShake(rejectShake); if (jsondata) chat->setJsonData(jsondata->copy()); chat->setChatTitle(cns("与") + name->text() + cns("聊天中"), emoji->ImagePath()); connect(chat, &PersonChat::chatClose, this, [=] () { disconnect(chat, &PersonChat::chatClose, this, 0); disconnect(chat, &PersonChat::chatShow, this, 0); disconnect(chat, &PersonChat::starkShake, this, 0); disconnect(chat, &PersonChat::shakeRejectStatusChanged, this, 0); chat = nullptr; tab->returnChats()->remove(jsondata->getUid()); }); connect(chat, &PersonChat::chatShow, this, [=] () { stopNotify(); }); connect(chat, &PersonChat::shakeRejectStatusChanged, this, [=] (bool b) { rejectShake = b; }); connect(chat, &PersonChat::starkShake, this, [=] () { // 计时开始 //30s后重置 shakeabled = false; QTimer::singleShot(10000, this, [=] () { shakeabled = true; if (chat) chat->setShakeEnable(true); }); }); chat->show(); chat->activateWindow(); emit cloneCreateChat(chat); return chat; }
bool PersonItem::setChat(Chat *ct) { if (!ct) return false; if (chat) { return false; } PersonChat *pchat = dynamic_cast<PersonChat *>(ct); if (!pchat) { return false; } chat = pchat; chat->setShakeEnable(shakeabled); connect(chat, &PersonChat::chatClose, this, [=] () { disconnect(chat, &PersonChat::chatClose, this, 0); disconnect(chat, &PersonChat::chatShow, this, 0); disconnect(chat, &PersonChat::starkShake, this, 0); disconnect(chat, &PersonChat::shakeRejectStatusChanged, this, 0); chat = nullptr; tab->returnChats()->remove(jsondata->getUid()); }); connect(chat, &PersonChat::chatShow, this, [=] () { stopNotify(); }); connect(chat, &PersonChat::shakeRejectStatusChanged, this, [=] (bool b) { rejectShake = b; }); connect(chat, &PersonChat::starkShake, this, [=] () { // 计时开始 //30s后重置 shakeabled = false; QTimer::singleShot(10000, this, [=] () { shakeabled = true; if (chat) chat->setShakeEnable(true); }); }); return true; }
ChatWindow::~ChatWindow() { stopNotify(); SaveSettings(); stop_watching( BMessenger(this) ); if (fInput) { if (fInput->RemoveFilter(fFilter)) delete fFilter; fInput->RemoveSelf(); delete fInput; }; if (fResize) { fResize->RemoveSelf(); delete fResize; }; if (fDock) { for ( int i=0; i<fDock->CountChildren(); i++ ) { gBubbles.SetHelp( fDock->ChildAt(i), NULL ); } fDock->RemoveSelf(); delete fDock; }; if (fStatusBar) fStatusBar->RemoveSelf(); delete fStatusBar; if ( fProtocolHack ) delete fProtocolHack; fMan->Lock(); fMan->Quit(); }