8 #include <QScopedPointer>
9 #include <QStringBuilder>
10 #include <QTextDocument>
11 #include <QTextOption>
20 using namespace swift::misc::network;
28 this->setWordWrap(
true);
32 m_actionClearTextEdit =
new QAction(CIcon::iconByIndex(CIcons::StandardIconDelete16).toQIcon(),
"Clear",
this);
33 m_actionLast10 =
new QAction(
"Keep last 10 messages",
this);
34 m_actionLast25 =
new QAction(
"Keep last 25 messages",
this);
35 m_actionAll =
new QAction(
"Keep all messages",
this);
36 m_actionWithRecipient =
new QAction(
"With recipient",
this);
37 m_actionWithSender =
new QAction(
"With sender",
this);
38 m_actionWordWrap =
new QAction(
"Word wrap",
this);
58 if (maxMessages < 0 && m_keepMaxMessages >= 0) { maxMessages = m_keepMaxMessages; }
60 else { m_messages.
push_back(textMessage); }
75 this->
toHtml(m_latestFirst ? m_messages.
reversed() : m_messages, m_withSender, m_withRecipient));
88 if (messages.
isEmpty()) {
return {}; }
100 QString html(u
"<tr class=\"" % rowClass.trimmed() % u
"\"><td class=\"timestamp\">" %
111 void CTextMessageTextEdit::showContextMenuForTextEdit(
const QPoint &pt)
113 m_actionWithRecipient->
setChecked(m_withRecipient);
119 menu->addSeparator();
120 menu->addAction(m_actionWordWrap);
125 subMenu = menu->
addMenu(
"Fields");
127 subMenu->
addAction(m_actionWithRecipient);
128 menu->addAction(m_actionClearTextEdit);
132 void CTextMessageTextEdit::keepLastNMessages()
135 if (
sender == m_actionAll) { m_keepMaxMessages = -1; }
136 else if (
sender == m_actionLast10) { m_keepMaxMessages = 10; }
137 else if (
sender == m_actionLast25) { m_keepMaxMessages = 25; }
140 void CTextMessageTextEdit::setVisibleFields()
143 if (
sender == m_actionWithRecipient) { m_withRecipient = m_actionWithRecipient->
isChecked(); }
144 else if (
sender == m_actionWithSender) { m_withSender = m_actionWithSender->
isChecked(); }
147 void CTextMessageTextEdit::setWordWrap(
bool wordWrap)
149 m_wordWrap = wordWrap;
void insertTextMessage(const swift::misc::network::CTextMessage &textMessage, int maxMessages=-1)
Insert a message.
virtual ~CTextMessageTextEdit()
Destructor.
void redrawHtml()
Redraw HTML.
void setStyleSheetForContent(const QString &styleSheet)
Stylesheet for content.
int count() const
Number of displayed messages.
size_type size() const
Returns number of elements in the sequence.
void push_back(const T &value)
Appends an element at the end of the sequence.
void clear()
Removes all elements in the sequence.
Q_REQUIRED_RESULT CSequence reversed() const
Reversed order.
void push_backMaxElements(const T &value, int maxElements)
Insert as last element by keep maxElements.
bool isEmpty() const
Synonym for empty.
QString getFormattedUtcTimestampHms() const
As hh:mm:ss.
const QString & asString() const
Get callsign (normalized)
Value object encapsulating information of a text message.
QString getHtmlEncodedMessage() const
Get HTML escaped message.
QString getRecipientCallsignOrFrequency() const
Get recipient or frequency.
bool wasSent() const
Was sent?
const aviation::CCallsign & getSenderCallsign() const
Get callsign (from)
bool isSupervisorMessage() const
Supervisor message?
Value object encapsulating a list of text messages.
Free functions in swift::misc.
void triggered(bool checked)
QMetaObject::Connection connect(const QObject *sender, PointerToMemberFunction signal, Functor functor)
QObject * sender() const const
void setDefaultStyleSheet(const QString &sheet)
void setHtml(const QString &html)
void append(const QString &text)
QMenu * createStandardContextMenu()
void setDocument(QTextDocument *document)
void moveCursor(QTextCursor::MoveOperation operation, QTextCursor::MoveMode mode)
void setReadOnly(bool ro)
void setWordWrapMode(QTextOption::WrapMode policy)
WrapAtWordBoundaryOrAnywhere