示例#1
0
void
ChatWindow::WindowActivated(bool active)
{
	if (active) 
		stopNotify();
	
	BWindow::WindowActivated(active);
}
示例#2
0
LmcCom::~LmcCom()
{
   if (notify) stopNotify();

   curl_easy_cleanup(curl);
   close();
   free(host);
   free(mac);
   free(escId);
   free(queryTitle);
}
示例#3
0
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;
}
示例#4
0
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;
}
示例#5
0
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();
}