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); }
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); } }
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(); }
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(); }
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(); }