diff --git a/src/blackgui/models/textmessagelistmodel.cpp b/src/blackgui/models/textmessagelistmodel.cpp
index 0aa07d906..1ffff36c2 100644
--- a/src/blackgui/models/textmessagelistmodel.cpp
+++ b/src/blackgui/models/textmessagelistmodel.cpp
@@ -81,5 +81,15 @@ namespace BlackGui
}
}
+ QVariant CTextMessageListModel::data(const QModelIndex &index, int role) const
+ {
+ if (role == Qt::ToolTipRole)
+ {
+ // the underlying model object as summary
+ const CTextMessage model(this->at(index));
+ return model.asHtmlSummary("
");
+ }
+ return CListModelBase::data(index, role);
+ }
} // namespace
} // namespace
diff --git a/src/blackgui/models/textmessagelistmodel.h b/src/blackgui/models/textmessagelistmodel.h
index 704d6eaec..c0e84ab54 100644
--- a/src/blackgui/models/textmessagelistmodel.h
+++ b/src/blackgui/models/textmessagelistmodel.h
@@ -48,6 +48,9 @@ namespace BlackGui
//! Mode
TextMessageMode getTextMessageMode() const { return m_textMessageMode; }
+ //! \copydoc QAbstractItemModel::data
+ virtual QVariant data(const QModelIndex &index, int role) const override;
+
private:
TextMessageMode m_textMessageMode = NotSet;
};
diff --git a/src/blackgui/views/viewbase.cpp b/src/blackgui/views/viewbase.cpp
index 59e0801d6..3700167b1 100644
--- a/src/blackgui/views/viewbase.cpp
+++ b/src/blackgui/views/viewbase.cpp
@@ -119,6 +119,7 @@ namespace BlackGui
this->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
this->setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel);
this->setWordWrap(true);
+ this->setTextElideMode(Qt::ElideMiddle);
// shortcuts
QShortcut *filter = new QShortcut(CShortcut::keyDisplayFilter(), this, SLOT(ps_displayFilterDialog()), nullptr, Qt::WidgetShortcut);
diff --git a/src/blackmisc/network/textmessage.cpp b/src/blackmisc/network/textmessage.cpp
index d1a1a7dd6..3b18c7e16 100644
--- a/src/blackmisc/network/textmessage.cpp
+++ b/src/blackmisc/network/textmessage.cpp
@@ -17,6 +17,7 @@
#include
#include
+#include
using namespace BlackMisc::Aviation;
using namespace BlackMisc::PhysicalQuantities;
@@ -37,17 +38,13 @@ namespace BlackMisc
QString CTextMessage::convertToQString(bool i18n) const
{
- QString s(m_message);
if (this->isPrivateMessage())
{
- s.append(" ").append(m_senderCallsign.toQString(i18n));
- s.append(" ").append(m_recipientCallsign.toQString(i18n));
+ return m_message %
+ QStringLiteral(" ") % m_senderCallsign.toQString(i18n) %
+ QStringLiteral(" ") % m_recipientCallsign.toQString(i18n);
}
- else
- {
- s.append(" ").append(m_frequency.toQString(i18n));
- }
- return s;
+ return m_message % QStringLiteral(" ") % m_frequency.toQString(i18n);
}
bool CTextMessage::isPrivateMessage() const
@@ -171,6 +168,11 @@ namespace BlackMisc
return { this, CStatusMessage::SeverityInfo, m };
}
+ QString CTextMessage::asHtmlSummary(const QString &separator) const
+ {
+ return this->asString(true, true, separator);
+ }
+
void CTextMessage::toggleSenderRecipient()
{
qSwap(m_senderCallsign, m_recipientCallsign);
diff --git a/src/blackmisc/network/textmessage.h b/src/blackmisc/network/textmessage.h
index 5bb32b878..a1ceddc57 100644
--- a/src/blackmisc/network/textmessage.h
+++ b/src/blackmisc/network/textmessage.h
@@ -119,6 +119,9 @@ namespace BlackMisc
//! \param separator values separated by given value
CStatusMessage asStatusMessage(bool withSender, bool withRecipient, const QString &separator = ", ") const;
+ //! Summary HTML code
+ QString asHtmlSummary(const QString &separator = "
") const;
+
//! Toggle sender receiver, can be used to ping my own message
void toggleSenderRecipient();