summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Maudsley <richard.maudsley@isode.com>2014-02-24 09:22:24 (GMT)
committerRichard Maudsley <richard.maudsley@isode.com>2014-02-24 09:22:24 (GMT)
commitda5e31ec60d089c3ffbafc3246608c95ba44df06 (patch)
tree0b1db584d7be8d8b32d754d6f05e3fcf4ebce27c
parentc54f38cabcf6db20b933a447135e73866156b871 (diff)
downloadswift-contrib-da5e31ec60d089c3ffbafc3246608c95ba44df06.zip
swift-contrib-da5e31ec60d089c3ffbafc3246608c95ba44df06.tar.bz2
Label fax numbers as fax and omit resources from JIDs in roster tooltips
Change-Id: I3101077446df6d673be594b0479dac169fb02f2b
-rw-r--r--Swift/Controllers/Roster/ContactRosterItem.cpp2
-rw-r--r--Swift/QtUI/Roster/RosterTooltip.cpp3
2 files changed, 3 insertions, 2 deletions
diff --git a/Swift/Controllers/Roster/ContactRosterItem.cpp b/Swift/Controllers/Roster/ContactRosterItem.cpp
index fde4c97..e0651bc 100644
--- a/Swift/Controllers/Roster/ContactRosterItem.cpp
+++ b/Swift/Controllers/Roster/ContactRosterItem.cpp
@@ -1,56 +1,56 @@
/*
* Copyright (c) 2010 Kevin Smith
* Licensed under the GNU General Public License v3.
* See Documentation/Licenses/GPLv3.txt for more information.
*/
#include <Swift/Controllers/Roster/ContactRosterItem.h>
#include <boost/date_time/posix_time/posix_time.hpp>
#include <Swiften/Base/foreach.h>
#include <Swiften/Base/DateTime.h>
#include <Swiften/Elements/Idle.h>
#include <Swift/Controllers/Intl.h>
#include <Swift/Controllers/Roster/GroupRosterItem.h>
namespace Swift {
ContactRosterItem::ContactRosterItem(const JID& jid, const JID& displayJID, const std::string& name, GroupRosterItem* parent)
-: RosterItem(name, parent), jid_(jid), displayJID_(displayJID), mucRole_(MUCOccupant::NoRole), mucAffiliation_(MUCOccupant::NoAffiliation), blockState_(BlockingNotSupported)
+: RosterItem(name, parent), jid_(jid), displayJID_(displayJID.toBare()), mucRole_(MUCOccupant::NoRole), mucAffiliation_(MUCOccupant::NoAffiliation), blockState_(BlockingNotSupported)
{
}
ContactRosterItem::~ContactRosterItem() {
}
StatusShow::Type ContactRosterItem::getStatusShow() const {
return shownPresence_ ? shownPresence_->getShow() : StatusShow::None;
}
StatusShow::Type ContactRosterItem::getSimplifiedStatusShow() const {
switch (shownPresence_ ? shownPresence_->getShow() : StatusShow::None) {
case StatusShow::Online: return StatusShow::Online;
case StatusShow::Away: return StatusShow::Away;
case StatusShow::XA: return StatusShow::Away;
case StatusShow::FFC: return StatusShow::Online;
case StatusShow::DND: return StatusShow::DND;
case StatusShow::None: return StatusShow::None;
}
assert(false);
return StatusShow::None;
}
std::string ContactRosterItem::getStatusText() const {
return shownPresence_ ? shownPresence_->getStatus() : "";
}
std::string ContactRosterItem::getIdleText() const {
Idle::ref idle = shownPresence_ ? shownPresence_->getPayload<Idle>() : Idle::ref();
if (!idle || idle->getSince().is_not_a_date_time()) {
return "";
} else {
return dateTimeToLocalString(idle->getSince());
}
}
diff --git a/Swift/QtUI/Roster/RosterTooltip.cpp b/Swift/QtUI/Roster/RosterTooltip.cpp
index 045a955..86f175d 100644
--- a/Swift/QtUI/Roster/RosterTooltip.cpp
+++ b/Swift/QtUI/Roster/RosterTooltip.cpp
@@ -82,71 +82,72 @@ QString RosterTooltip::buildDetailedTooltip(ContactRosterItem* contact, QtScaled
QString scaledAvatarPath = cachedImageScaler->getScaledAvatarPath(P2QSTRING(contact->getAvatarPath().empty() ? ":/icons/avatar.png" : pathToString(contact->getAvatarPath())));
QString bareJID = contact->getDisplayJID().toString().empty() ? "" : "( " + P2QSTRING(contact->getDisplayJID().toString()) + " )";
QString presenceIconTag = QString("<img src='%1' />").arg(statusShowTypeToIconPath(contact->getStatusShow()));
QString statusMessage = contact->getStatusText().empty() ? QObject::tr("(No message)") : P2QSTRING(contact->getStatusText());
QString idleString = P2QSTRING(contact->getIdleText());
if (!idleString.isEmpty()) {
idleString = QObject::tr("Idle since %1").arg(idleString);
idleString = htmlEscape(idleString) + "<br/>";
}
QString lastSeen = P2QSTRING(contact->getOfflineSinceText());
if (!lastSeen.isEmpty()) {
lastSeen = QObject::tr("Last seen %1").arg(lastSeen);
lastSeen = htmlEscape(lastSeen) + "<br/>";
}
QString mucOccupant= P2QSTRING(contact->getMUCAffiliationText());
if (!mucOccupant.isEmpty()) {
mucOccupant = htmlEscape(mucOccupant) + "<br/>";
}
return tooltipTemplate.arg(scaledAvatarPath, htmlEscape(fullName), htmlEscape(bareJID), presenceIconTag, htmlEscape(statusMessage), mucOccupant, idleString, lastSeen, vCardSummary);
}
QString RosterTooltip::buildVCardSummary(VCard::ref vcard) {
QString summary;
summary = "<table>";
// star | name | content
QString currentBlock;
foreach (const VCard::Telephone& tel, vcard->getTelephones()) {
- QString field = buildVCardField(tel.isPreferred, QObject::tr("Telephone"), htmlEscape(P2QSTRING(tel.number)));
+ QString type = tel.isFax ? QObject::tr("Fax") : QObject::tr("Telephone");
+ QString field = buildVCardField(tel.isPreferred, type, htmlEscape(P2QSTRING(tel.number)));
if (tel.isPreferred) {
currentBlock = field;
break;
}
currentBlock += field;
}
summary += currentBlock;
currentBlock = "";
foreach (const VCard::EMailAddress& mail, vcard->getEMailAddresses()) {
QString field = buildVCardField(mail.isPreferred, QObject::tr("E-Mail"), htmlEscape(P2QSTRING(mail.address)));
if (mail.isPreferred) {
currentBlock = field;
break;
}
currentBlock += field;
}
summary += currentBlock;
currentBlock = "";
foreach (const VCard::Organization& org, vcard->getOrganizations()) {
QString field = buildVCardField(false, QObject::tr("Organization"), htmlEscape(P2QSTRING(org.name)));
currentBlock += field;
}
summary += currentBlock;
currentBlock = "";
foreach(const std::string& title, vcard->getTitles()) {
QString field = buildVCardField(false, QObject::tr("Title"), htmlEscape(P2QSTRING(title)));
currentBlock += field;
}
summary += currentBlock;
summary += "</table>";
return summary;