QString Nick::calculateLabel1() { NickInfoPtr nickinfo = getChannelNick()->getNickInfo(); KABC::Addressee addressee = nickinfo->getAddressee(); if(!addressee.realName().isEmpty()) //if no addressee, realName will be empty { return nickinfo->getNickname() + " (" + addressee.realName() + ')'; } else if(Preferences::showRealNames() && !nickinfo->getRealName().isEmpty()) { return nickinfo->getNickname() + " (" + nickinfo->getRealName() + ')'; } return nickinfo->getNickname(); }
/** * Send the file to the contact * @param uid the KABC uid you are sending to. * @param sourceURL a KURL to send. * @param altFileName an alternate filename describing the file * @param fileSize file size in bytes */ void Addressbook::sendFile(const QString &uid, const KURL &sourceURL, const QString &altFileName, uint fileSize) { if(uid.isEmpty()) { focusAndShowErrorMessage(i18n("Another KDE application tried to use Konversation to send a file to a contact, but did not specify any contact to send the file to. This is probably a bug in the other application.")); return; } KABC::Addressee addressee = addressBook->findByUid(uid); if(addressee.isEmpty()) { focusAndShowErrorMessage(i18n("Another KDE application tried to use Konversation to send a file to a contact, but Konversation could not find the specified contact in the KDE address book.")); return; } NickInfoPtr nickInfo = getNickInfo(addressee); if(!nickInfo) { QString user = addressee.fullEmail(); if(!user.isEmpty()) user = "******" + user + ')'; focusAndShowErrorMessage(i18n("Another KDE application tried to use Konversation to send a file to a contact, but the requested user%1 is not currently online.").arg(user)); return; } nickInfo->getServer()->addDccSend(nickInfo->getNickname(), sourceURL, altFileName, fileSize); QWidget *widget = nickInfo->getServer()->getViewContainer()->getWindow(); KWin::demandAttention(widget->winId()); //If activeWindow request is denied, at least demand attention! KWin::activateWindow(widget->winId()); //May or may not work, depending on focus stealing prevention. }
/** * Received from server when a NickInfo changes its information. */ void NicksOnline::slotNickInfoChanged(Server* server, const NickInfoPtr nickInfo) { if (!nickInfo) return; QString nickname = nickInfo->getNickname(); if (!server) return; QString serverName = server->getServerName(); QListViewItem* item = getServerAndNickItem(serverName, nickname); refreshItem(item); }
/** * Send a single message to the specified addressee * Any response will be handled by the IM client as a normal * conversation. * @param uid the KABC uid you want to chat with. * @param message the message to send them. */ void Addressbook::messageContact( const QString &uid, const QString& message ) { if(uid.isEmpty()) { focusAndShowErrorMessage(i18n("Another KDE application tried to use Konversation for instant messaging, but did not specify any contact to send the message to. This is probably a bug in the other application.")); return; } KABC::Addressee addressee = addressBook->findByUid(uid); if(addressee.isEmpty()) { focusAndShowErrorMessage(i18n("Another KDE application tried to use Konversation for instant messaging, but Konversation could not find the specified contact in the KDE address book.")); return; } NickInfoPtr nickInfo = getNickInfo(addressee); if(!nickInfo) { QString user = addressee.fullEmail(); if(!user.isEmpty()) user = "******" + user + ')'; focusAndShowErrorMessage(i18n("Another KDE application tried to use Konversation for instant messaging, but the requested user%1 is not online.").arg(user)); return; } nickInfo->getServer()->dcopSay(nickInfo->getNickname(), message); }