Browse Source

refactor: refactored message-adding methods

Return value of "addMessage" was not used at all, so now this method
(and "addSelfMessage" too) does not have return value - just inserts
message into ChatLog. Also messages are creating with "createMessage"
and "createSelfMessage"
reviewable/pr4343/r4
noavarice 8 years ago
parent
commit
b074c831d3
  1. 4
      src/widget/form/chatform.cpp
  2. 69
      src/widget/form/genericchatform.cpp
  3. 15
      src/widget/form/genericchatform.h
  4. 6
      src/widget/form/groupchatform.cpp
  5. 2
      src/widget/widget.cpp

4
src/widget/form/chatform.cpp

@ -559,7 +559,7 @@ void ChatForm::onFriendMessageReceived(quint32 friendId, const QString& message, @@ -559,7 +559,7 @@ void ChatForm::onFriendMessageReceived(quint32 friendId, const QString& message,
}
QDateTime timestamp = QDateTime::currentDateTime();
addMessage(f->getPublicKey(), message, isAction, timestamp, true);
addMessage(f->getPublicKey(), message, timestamp, isAction, true);
}
void ChatForm::onStatusMessage(const QString& message)
@ -966,7 +966,7 @@ void ChatForm::SendMessageStr(QString msg) @@ -966,7 +966,7 @@ void ChatForm::SendMessageStr(QString msg)
}
bool status = !Settings::getInstance().getFauxOfflineMessaging();
ChatMessage::Ptr ma = addSelfMessage(part, isAction, timestamp, false);
ChatMessage::Ptr ma = createSelfMessage(part, timestamp, isAction, false);
Core* core = Core::getInstance();
uint32_t friendId = f->getFriendId();
int rec = isAction ? core->sendAction(friendId, part) : core->sendMessage(friendId, part);

69
src/widget/form/genericchatform.cpp

@ -71,7 +71,7 @@ static const short MAIN_FOOT_LAYOUT_SPACING = 5; @@ -71,7 +71,7 @@ static const short MAIN_FOOT_LAYOUT_SPACING = 5;
static const short MIC_BUTTONS_LAYOUT_SPACING = 4;
static const short HEAD_LAYOUT_SPACING = 5;
static const short BUTTONS_LAYOUT_HOR_SPACING = 4;
static const QString styleType[]{"normal", "italic", "oblique"};
static const QString FONT_STYLE[]{"normal", "italic", "oblique"};
QString fontToCss(const QFont& font, const QString& name)
{
@ -80,7 +80,7 @@ QString fontToCss(const QFont& font, const QString& name) @@ -80,7 +80,7 @@ QString fontToCss(const QFont& font, const QString& name)
"font-size: %3px; "
"font-style: \"%4\"; "
"font-weight: normal;}"};
return result.arg(name).arg(font.family()).arg(font.pixelSize()).arg(styleType[font.style()]);
return result.arg(name).arg(font.family()).arg(font.pixelSize()).arg(FONT_STYLE[font.style()]);
}
QString resolveToxId(const ToxPk& id)
@ -372,14 +372,12 @@ void GenericChatForm::onChatContextMenuRequested(QPoint pos) @@ -372,14 +372,12 @@ void GenericChatForm::onChatContextMenuRequested(QPoint pos)
menu.exec(pos);
}
ChatMessage::Ptr GenericChatForm::addMessage(const ToxPk& author, const QString& message,
bool isAction, const QDateTime& datetime, bool isSent)
ChatMessage::Ptr GenericChatForm::createMessage(const ToxPk& author, const QString& message,
const QDateTime& dt, bool isAction, bool isSent)
{
const Core* core = Core::getInstance();
bool authorIsActiveProfile = author == core->getSelfId().getPublicKey();
QString authorStr = authorIsActiveProfile ? core->getUsername() : resolveToxId(author);
bool isSelf = author == core->getSelfId().getPublicKey();
QString authorStr = isSelf ? core->getUsername() : resolveToxId(author);
if (getLatestDate() != QDate::currentDate()) {
const Settings& s = Settings::getInstance();
QString dateText = QDate::currentDate().toString(s.getDateFormat());
@ -388,47 +386,56 @@ ChatMessage::Ptr GenericChatForm::addMessage(const ToxPk& author, const QString& @@ -388,47 +386,56 @@ ChatMessage::Ptr GenericChatForm::addMessage(const ToxPk& author, const QString&
ChatMessage::Ptr msg;
if (isAction) {
msg = ChatMessage::createChatMessage(authorStr, message, ChatMessage::ACTION,
authorIsActiveProfile);
previousId = ToxPk();
msg = ChatMessage::createChatMessage(authorStr, message, ChatMessage::ACTION, isSelf);
previousId = ToxPk{};
} else {
msg = ChatMessage::createChatMessage(authorStr, message, ChatMessage::NORMAL,
authorIsActiveProfile);
if ((author == previousId)
&& (prevMsgDateTime.secsTo(QDateTime::currentDateTime()) < chatWidget->repNameAfter))
msg = ChatMessage::createChatMessage(authorStr, message, ChatMessage::NORMAL, isSelf);
qint64 messagesTimeDiff = prevMsgDateTime.secsTo(QDateTime::currentDateTime());
if (author == previousId && messagesTimeDiff < chatWidget->repNameAfter) {
msg->hideSender();
}
previousId = author;
prevMsgDateTime = QDateTime::currentDateTime();
}
insertChatMessage(msg);
if (isSent)
msg->markAsSent(datetime);
if (isSent) {
msg->markAsSent(dt);
}
return msg;
}
ChatMessage::Ptr GenericChatForm::addSelfMessage(const QString& message, bool isAction,
const QDateTime& datetime, bool isSent)
ChatMessage::Ptr GenericChatForm::createSelfMessage(const QString& message, const QDateTime& dt,
bool isAction, bool isSent)
{
return addMessage(Core::getInstance()->getSelfId().getPublicKey(), message, isAction, datetime,
isSent);
ToxPk selfPk = Core::getInstance()->getSelfId().getPublicKey();
return createMessage(selfPk, message, dt, isAction, isSent);
}
void GenericChatForm::addAlertMessage(const ToxPk& author, QString message, QDateTime datetime)
void GenericChatForm::addMessage(const ToxPk& author, const QString& message, const QDateTime& dt,
bool isAction, bool isSent)
{
insertChatMessage(createMessage(author, message, dt, isAction, isSent));
}
void GenericChatForm::addSelfMessage(const QString& message, const QDateTime& datetime,
bool isAction, bool isSent)
{
insertChatMessage(createSelfMessage(message, datetime, isAction, isSent));
}
void GenericChatForm::addAlertMessage(const ToxPk& author, const QString& msg, const QDateTime& dt)
{
QString authorStr = resolveToxId(author);
bool isSelf = author == Core::getInstance()->getSelfId().getPublicKey();
ChatMessage::Ptr msg =
ChatMessage::createChatMessage(authorStr, message, ChatMessage::ALERT, isSelf, datetime);
insertChatMessage(msg);
if ((author == previousId)
&& (prevMsgDateTime.secsTo(QDateTime::currentDateTime()) < chatWidget->repNameAfter))
msg->hideSender();
auto chatMsg = ChatMessage::createChatMessage(authorStr, msg, ChatMessage::ALERT, isSelf, dt);
qint64 messagesTimeDiff = prevMsgDateTime.secsTo(QDateTime::currentDateTime());
if (author == previousId && messagesTimeDiff < chatWidget->repNameAfter) {
chatMsg->hideSender();
}
insertChatMessage(chatMsg);
previousId = author;
prevMsgDateTime = QDateTime::currentDateTime();
}

15
src/widget/form/genericchatform.h

@ -68,14 +68,13 @@ public: @@ -68,14 +68,13 @@ public:
}
virtual void show(ContentLayout* contentLayout);
ChatMessage::Ptr addMessage(const ToxPk& author, const QString& message, bool isAction,
const QDateTime& datetime, bool isSent);
ChatMessage::Ptr addSelfMessage(const QString& message, bool isAction,
const QDateTime& datetime, bool isSent);
void addMessage(const ToxPk& author, const QString& message, const QDateTime& datetime,
bool isAction, bool isSent);
void addSelfMessage(const QString& message, const QDateTime& datetime,
bool isAction, bool isSent);
void addSystemInfoMessage(const QString& message, ChatMessage::SystemMessageType type,
const QDateTime& datetime);
void addAlertMessage(const ToxPk& author, QString message, QDateTime datetime);
void addAlertMessage(const ToxPk& author, const QString& message, const QDateTime& datetime);
QDate getLatestDate() const;
signals:
@ -108,6 +107,10 @@ private: @@ -108,6 +107,10 @@ private:
void retranslateUi();
protected:
ChatMessage::Ptr createMessage(const ToxPk& author, const QString& message,
const QDateTime& datetime, bool isAction, bool isSent);
ChatMessage::Ptr createSelfMessage(const QString& message, const QDateTime& datetime,
bool isAction, bool isSent);
void showNetcam();
void hideNetcam();
virtual GenericNetCamView* createNetcam() = 0;

6
src/widget/form/groupchatform.cpp

@ -155,10 +155,10 @@ void GroupChatForm::onSendTriggered() @@ -155,10 +155,10 @@ void GroupChatForm::onSendTriggered()
}
} else {
if (msg.startsWith(ChatForm::ACTION_PREFIX, Qt::CaseInsensitive))
addSelfMessage(msg.mid(ChatForm::ACTION_PREFIX.length()), true,
QDateTime::currentDateTime(), true);
addSelfMessage(msg.mid(ChatForm::ACTION_PREFIX.length()), QDateTime::currentDateTime(),
true, true);
else
addSelfMessage(msg, false, QDateTime::currentDateTime(), true);
addSelfMessage(msg, QDateTime::currentDateTime(), false, true);
}
}

2
src/widget/widget.cpp

@ -1601,7 +1601,7 @@ void Widget::onGroupMessageReceived(int groupnumber, int peernumber, const QStri @@ -1601,7 +1601,7 @@ void Widget::onGroupMessageReceived(int groupnumber, int peernumber, const QStri
if (targeted && !isAction) {
g->getChatForm()->addAlertMessage(author, message, QDateTime::currentDateTime());
} else {
g->getChatForm()->addMessage(author, message, isAction, QDateTime::currentDateTime(), true);
g->getChatForm()->addMessage(author, message, QDateTime::currentDateTime(), isAction, true);
}
newGroupMessageAlert(g->getGroupId(), targeted || Settings::getInstance().getGroupAlwaysNotify());

Loading…
Cancel
Save