Ejemplo n.º 1
0
void SingleWindow::changeEvent(QEvent *event)
{
	QWidget::changeEvent(event);
	if (event->type() == QEvent::ActivationChange)
	{
		ChatWidget *chatWidget = static_cast<ChatWidget *>(m_tabs->currentWidget());
		if (chatWidget && _isActiveWindow(this))
			emit chatWidgetActivated(chatWidget);
	}
}
Ejemplo n.º 2
0
Archivo: tabs.cpp Proyecto: vogel/kadu
void TabsManager::insertTab(ChatWidget *chatWidget)
{
    kdebugf();

    Title->addChatWidget(chatWidget);

    bool restoreChatGeometry = true;

    // jeśli jest otwarty chatwindow przypisany do chat to zostanie on zamknięty
    if (chatWidget->parentWidget())
    {
        chatWidget->parentWidget()->deleteLater();
        restoreChatGeometry = false;
    }

    ContactSet contacts = chatWidget->chat().contacts();

    DetachedChats.removeAll(chatWidget->chat());

    for (Action *action : m_attachTabAction->actions())
    {
        if (action->context()->contacts() == contacts)
            action->setChecked(true);
    }

    // Ustawiam tytul karty w zaleznosci od tego czy mamy do czynienia z rozmowa czy z konferencja
    TabDialog->insertTab(TargetTabs, chatWidget, chatWidget->title()->blinkingIcon(), QString());

    if (restoreChatGeometry)
        chatWidget->kaduRestoreGeometry();

    updateTabTitle(chatWidget);

    TargetTabs = -1;

    connect(chatWidget->edit(), SIGNAL(keyPressed(QKeyEvent*, CustomInput*, bool&)),
            TabDialog, SLOT(chatKeyPressed(QKeyEvent*, CustomInput*, bool&)));

    connect(chatWidget->title(), SIGNAL(titleChanged(ChatWidget*)), this, SLOT(onTitleChanged(ChatWidget*)));

    CloseOtherTabsMenuAction->setEnabled(TabDialog->count() > 1);

    // unreadMessagesCountChanged(chatWidget);
    if (_isActiveWindow(TabDialog) && TabDialog->currentWidget() == chatWidget)
        emit chatWidgetActivated(chatWidget);

    kdebugf2();
}
Ejemplo n.º 3
0
void ChatWindow::windowActivationChange(bool b)
{
	kdebugf();
	if (_isActiveWindow(this))
	{
		currentChatWidget->markAllMessagesRead();
		setWindowTitle(currentChatWidget->chat()->title());

		if (title_timer->isActive())
			title_timer->stop();

		if (!b)
			emit chatWidgetActivated(currentChatWidget);
	}
	kdebugf2();
}
Ejemplo n.º 4
0
void ChatWindow::alertNewMessage()
{
	if (!_isActiveWindow(this))
	{
		if (activateWithNewMessages && qApp->activeWindow() && !isMinimized())
		{
			_activateWindow(this);
		}
		else if (blinkChatTitle)
		{
			if (!title_timer->isActive())
				blinkTitle(); // blinking is able to show new messages also...
		}
		else if (showNewMessagesNum) // ... so we check this condition as 'else'
			showNewMessagesNumInTitle();

		qApp->alert(this); // TODO: make notifier from this
	}
	else
		currentChatWidget->markAllMessagesRead();
}
Ejemplo n.º 5
0
void ChatWindow::blinkTitle()
{
 	if (!_isActiveWindow(this))
  	{
		if (!windowTitle().contains(currentChatWidget->chat()->title()) || !blinkChatTitle)
		{
  			if (!showNewMessagesNum) // if we don't show number od new messages waiting
  				setWindowTitle(currentChatWidget->chat()->title());
  			else
				showNewMessagesNumInTitle();
		}
		else
			setWindowTitle(QString().fill(' ', (currentChatWidget->chat()->title().length() + 5)));

		if (blinkChatTitle) // timer will not be started, if configuration option was changed
		{
			title_timer->setSingleShot(true);
			title_timer->start(500);
		}
	}
}
Ejemplo n.º 6
0
void ChatWindow::changeEvent(QEvent *event)
{
	QWidget::changeEvent(event);
	if (event->type() == QEvent::ActivationChange && _isActiveWindow(this))
		emit activated(this);
}
Ejemplo n.º 7
0
void ChatWindow::showNewMessagesNumInTitle()
{
	if (!_isActiveWindow(this))
		setWindowTitle("[" + QString().setNum(currentChatWidget->newMessagesCount()) + "] " + currentChatWidget->chat()->title());
}