1
0
mirror of https://github.com/qTox/qTox.git synced 2024-03-22 14:00:36 +08:00

Wrap name and date fix

This commit is contained in:
apprb 2014-09-28 23:39:26 +07:00
parent 4ccfd83505
commit a18070d7c5
5 changed files with 32 additions and 8 deletions

View File

@ -39,13 +39,11 @@ ChatAreaWidget::ChatAreaWidget(QWidget *parent) :
chatTextTable = textCursor().insertTable(1,3);
QTextTableFormat tableFormat;
tableFormat.setColumnWidthConstraints({QTextLength(QTextLength::VariableLength,0),
QTextLength(QTextLength::PercentageLength,100),
QTextLength(QTextLength::VariableLength,0)});
tableFormat.setBorderStyle(QTextFrameFormat::BorderStyle_None);
tableFormat.setCellSpacing(2);
tableFormat.setWidth(QTextLength(QTextLength::PercentageLength,100));
chatTextTable->setFormat(tableFormat);
chatTextTable->format().setCellSpacing(2);
chatTextTable->format().setWidth(QTextLength(QTextLength::PercentageLength,100));
setNameColWidth(100);
// nameFormat.setAlignment(Qt::AlignRight);
// nameFormat.setNonBreakableLines(true);
@ -135,3 +133,14 @@ void ChatAreaWidget::checkSlider()
QScrollBar* scroll = verticalScrollBar();
lockSliderToBottom = scroll && scroll->value() == scroll->maximum();
}
void ChatAreaWidget::setNameColWidth(int w)
{
nameWidth = w;
QTextTableFormat tableFormat = chatTextTable->format();
tableFormat.setColumnWidthConstraints({QTextLength(QTextLength::FixedLength, 100),
QTextLength(QTextLength::PercentageLength, 100),
QTextLength(QTextLength::FixedLength, 40)});
chatTextTable->setFormat(tableFormat);
}

View File

@ -31,6 +31,9 @@ public:
virtual ~ChatAreaWidget();
void insertMessage(ChatAction *msgAction);
int nameColWidth() {return nameWidth;}
void setNameColWidth(int w);
signals:
void onFileTranfertInterract(QString widgetName, QString buttonName);
@ -47,6 +50,7 @@ private:
QList<ChatAction*> messages;
bool lockSliderToBottom;
int sliderPosition;
int nameWidth;
QTextTable *chatTextTable;
QTextBlockFormat nameFormat, dateFormat;
};

View File

@ -125,7 +125,7 @@ void ChatForm::startFileSend(ToxFile file)
name = "";
previousName = Widget::getInstance()->getUsername();
chatWidget->insertMessage(new FileTransferAction(fileTrans, name, QTime::currentTime().toString("hh:mm"), true));
chatWidget->insertMessage(new FileTransferAction(fileTrans, getElidedName(name), QTime::currentTime().toString("hh:mm"), true));
}
void ChatForm::onFileRecvRequest(ToxFile file)
@ -156,7 +156,7 @@ void ChatForm::onFileRecvRequest(ToxFile file)
name = "";
previousName = f->getName();
chatWidget->insertMessage(new FileTransferAction(fileTrans, name, QTime::currentTime().toString("hh:mm"), false));
chatWidget->insertMessage(new FileTransferAction(fileTrans, getElidedName(name), QTime::currentTime().toString("hh:mm"), false));
}
void ChatForm::onAvInvite(int FriendId, int CallId, bool video)

View File

@ -169,7 +169,7 @@ void GenericChatForm::addMessage(QString author, QString message, QDateTime date
if (previousName == author)
chatWidget->insertMessage(new MessageAction("", message, date, isMe));
else chatWidget->insertMessage(new MessageAction(author , message, date, isMe));
else chatWidget->insertMessage(new MessageAction(getElidedName(author) , message, date, isMe));
previousName = author;
}
@ -212,3 +212,12 @@ void GenericChatForm::addSystemInfoMessage(const QString &message, const QString
chatWidget->insertMessage(new SystemMessageAction(message, type, date));
}
QString GenericChatForm::getElidedName(const QString& name)
{
QFont font;
font.setBold(true);
QFontMetrics fm(font);
return fm.elidedText(name, Qt::ElideRight, chatWidget->nameColWidth());
}

View File

@ -60,6 +60,8 @@ protected slots:
void onEmoteInsertRequested(QString str);
protected:
QString getElidedName(const QString& name);
CroppingLabel *nameLabel;
MaskablePixmapWidget *avatar;
QWidget *headWidget;