コード例 #1
0
void SingleWindow::onTabChange(int index)
{
	if (index == -1)
		return;

	auto chatWidget = (ChatWidget *)m_tabs->widget(index);
	m_title->setActiveChatWidget(chatWidget);
	if (isChatWidgetActive(chatWidget))
		emit chatWidgetActivated(chatWidget);
}
コード例 #2
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);
	}
}
コード例 #3
0
ファイル: tabs.cpp プロジェクト: 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();
}
コード例 #4
0
ファイル: chat-window.cpp プロジェクト: ziemniak/kadu
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();
}
コード例 #5
0
ファイル: tabs.cpp プロジェクト: vogel/kadu
void TabsManager::onTabChange(int index)
{
    if (index < 0)
        return;

    ChatWidget *chatWidget = static_cast<ChatWidget *>(TabDialog->widget(index));
    Title->setActiveChatWidget(chatWidget);

    const Chat &chat = chatWidget->chat();
    if (chat.unreadMessagesCount() > 0)
        emit chatWidgetActivated(chatWidget);

    //TabDialog->setWindowTitle(chatWidget->title()->title());
    //TabDialog->setWindowIcon(chatWidget->title()->icon());

    chatWidget->edit()->setFocus();
}