From e403e740fae56523abd235cccf00146660b212ad Mon Sep 17 00:00:00 2001 From: PKEv Date: Mon, 8 Jun 2015 02:27:28 +0300 Subject: [PATCH] Correct strange names is groups #1764 --- src/widget/form/groupchatform.cpp | 31 +++++++++++++++++++++++++++++-- src/widget/form/groupchatform.h | 1 + 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/src/widget/form/groupchatform.cpp b/src/widget/form/groupchatform.cpp index 6625b14fb..d31ce32c6 100644 --- a/src/widget/form/groupchatform.cpp +++ b/src/widget/form/groupchatform.cpp @@ -69,9 +69,15 @@ GroupChatForm::GroupChatForm(Group* chatGroup) namesListLayout = new FlowLayout(0,5,0); QStringList names(group->getPeerList()); - for (const QString& name : names) + for (QString& name : names) { - QLabel *l = new QLabel(name); + QLabel *l = new QLabel(); + QString tooltip = correctNames(name); + if (tooltip.isNull()) + { + l->setToolTip(tooltip); + } + l->setText(name); l->setTextFormat(Qt::PlainText); namesListLayout->addWidget(l); } @@ -97,6 +103,24 @@ GroupChatForm::GroupChatForm(Group* chatGroup) Translator::registerHandler(std::bind(&GroupChatForm::retranslateUi, this), this); } +// Correct names with "\n" in NamesListLayout widget +QString GroupChatForm::correctNames(QString& name) +{ + int pos = name.indexOf(QRegExp("\n|\r\n|\r")); + int len = name.length(); + if ( (pos < len) && (pos !=-1) ) + { + QString tooltip = name; + name.remove( pos, len-pos ); + name.append("..."); + return tooltip; + } + else + { + return QString(); + } +} + GroupChatForm::~GroupChatForm() { Translator::unregister(this); @@ -153,7 +177,10 @@ void GroupChatForm::onUserListChanged() unsigned nNames = names.size(); for (unsigned i=0; isetToolTip(tooltip); peerLabels[i]->setTextFormat(Qt::PlainText); orderizer[names[i]] = peerLabels[i]; if (group->isSelfPeerNumber(i)) diff --git a/src/widget/form/groupchatform.h b/src/widget/form/groupchatform.h index b4d014f65..bb5349106 100644 --- a/src/widget/form/groupchatform.h +++ b/src/widget/form/groupchatform.h @@ -67,6 +67,7 @@ private: QLabel *nusersLabel; TabCompleter* tabber; bool inCall; + QString correctNames(QString& name); }; #endif // GROUPCHATFORM_H