// properties.at(0): Login // properties.at(1): Id // properties.at(2): Ip // properties.at(3): Promo // properties.at(4): State // properties.at(5): Location // properties.at(6): Comment void QNetsoul::showConversation(const QStringList& properties, const QString& message) { bool ok; const int id = properties.at(1).toInt(&ok); if (ok == false) qFatal("[QNetsoul::showConversation] Invalid id (%d)", id); Chat* window = getChat(id); const bool userEvent = message.isEmpty(); if (NULL == window) { // DEBUG focus //qDebug() << "CASE 1"; window = createWindowChat(id, properties.at(0), properties.at(5)); window->show(); } if (false == window->isVisible()) { // DEBUG focus //qDebug() << "CASE 2"; //window->outputTextBrowser->clear(); //window->inputTextEdit->clear(); if (userEvent) { window->show(); window->activateWindow(); QApplication::setActiveWindow(window); window->inputTextEdit->setFocus(); } else window->showMinimized(); } else { // DEBUG focus //qDebug() << "CASE 3"; if (userEvent) { window->showNormal(); window->activateWindow(); QApplication::setActiveWindow(window); window->inputTextEdit->setFocus(); } } if (message.isEmpty() == false) { if (window) { window->insertMessage(properties.at(0), message, QColor(204, 0, 0)); window->autoReply(statusComboBox->currentIndex()); QApplication::alert(window); } if (this->_trayIcon && this->_options->chatWidget->notifyMsg()) this->_trayIcon->showMessage(properties.at(0), tr(" is talking to you.")); } }