Utility functions to sort text messages by timestamp (ascending/descending)

* compare function for text message
* resort function
* text message edit can display HTML text messages with ascending/descending timestamp
* made CTextMessageListModel -> CListModelTimestampObject
This commit is contained in:
Klaus Basan
2019-09-02 22:58:58 +02:00
committed by Mat Sutcliffe
parent 25eb13a83f
commit e12dc3a73a
16 changed files with 113 additions and 31 deletions

View File

@@ -45,12 +45,12 @@ namespace BlackGui
m_actionWordWrap->setCheckable(true);
connect(m_actionClearTextEdit, &QAction::triggered, this, &CTextMessageTextEdit::clear);
connect(m_actionAll, &QAction::triggered, this, &CTextMessageTextEdit::keepLastNMessages);
connect(m_actionLast10, &QAction::triggered, this, &CTextMessageTextEdit::keepLastNMessages);
connect(m_actionLast25, &QAction::triggered, this, &CTextMessageTextEdit::keepLastNMessages);
connect(m_actionWithSender, &QAction::triggered, this, &CTextMessageTextEdit::setVisibleFields);
connect(m_actionAll, &QAction::triggered, this, &CTextMessageTextEdit::keepLastNMessages);
connect(m_actionLast10, &QAction::triggered, this, &CTextMessageTextEdit::keepLastNMessages);
connect(m_actionLast25, &QAction::triggered, this, &CTextMessageTextEdit::keepLastNMessages);
connect(m_actionWithSender, &QAction::triggered, this, &CTextMessageTextEdit::setVisibleFields);
connect(m_actionWithRecipient, &QAction::triggered, this, &CTextMessageTextEdit::setVisibleFields);
connect(m_actionWordWrap, &QAction::triggered, this, &CTextMessageTextEdit::setWordWrap);
connect(m_actionWordWrap, &QAction::triggered, this, &CTextMessageTextEdit::setWordWrap);
connect(this, &QTextEdit::customContextMenuRequested, this, &CTextMessageTextEdit::showContextMenuForTextEdit);
}
@@ -63,14 +63,13 @@ namespace BlackGui
if (maxMessages < 0 && m_keepMaxMessages >= 0) { maxMessages = m_keepMaxMessages; }
if (maxMessages >= 0)
{
m_messages.push_frontMaxElements(textMessage, maxMessages);
m_messages.push_backMaxElements(textMessage, maxMessages);
}
else
{
m_messages.push_front(textMessage);
m_messages.push_back(textMessage);
}
const QString html(toHtml(m_messages, m_withSender, m_withRecipient));
m_textDocument.setHtml(html);
this->redrawHtml();
}
int CTextMessageTextEdit::count() const
@@ -86,8 +85,14 @@ namespace BlackGui
void CTextMessageTextEdit::redrawHtml()
{
const QString html(toHtml(m_messages, m_withSender, m_withRecipient));
const QString html(
this->toHtml(
m_latestFirst ? m_messages.reversed() : m_messages,
m_withSender,
m_withRecipient)
);
m_textDocument.setHtml(html);
this->moveCursor(m_latestFirst ? QTextCursor::Start : QTextCursor::End);
}
void CTextMessageTextEdit::setStyleSheetForContent(const QString &styleSheet)