#include "trace_model.hpp"
#include <QDebug>
+#include <QLocale>
#include <QObject>
#define QT_USE_FAST_OPERATOR_PLUS
#include <QStringBuilder>
if (m_staticText && !m_staticText->text().isEmpty())
return *m_staticText;
- QString richText =
- QString::fromLatin1("<span style=\"font-weight:bold\">Frame %1</span>").arg(number);
+ QString richText;
+
+ //mark the frame if it uploads more than a meg a frame
+ if (m_binaryDataSize > (1024*1024)) {
+ richText =
+ QObject::tr(
+ "<span style=\"font-weight:bold;\">"
+ "Frame %1</span>"
+ "<span style=\"font-style:italic;\">"
+ " (%2MB)</span>")
+ .arg(number)
+ .arg(double(m_binaryDataSize / (1024.*1024.)), 0, 'g', 2);
+ } else {
+ richText =
+ QObject::tr(
+ "<span style=\"font-weight:bold\">Frame %1</span>")
+ .arg(number);
+ }
if (!m_staticText)
m_staticText = new QStaticText(richText);
void ApiTraceFrame::addCall(ApiTraceCall *call)
{
m_calls.append(call);
+ if (call->hasBinaryData()) {
+ QByteArray data =
+ call->arguments()[call->binaryDataIndex()].toByteArray();
+ m_binaryDataSize += data.size();
+ }
}
QList<ApiTraceCall*> ApiTraceFrame::calls() const
return m_calls.isEmpty();
}
+int ApiTraceFrame::binaryDataSize() const
+{
+ return m_binaryDataSize;
+}
+
void addCall(ApiTraceCall *call);
QList<ApiTraceCall*> calls() const;
+ int binaryDataSize() const;
private:
ApiTrace *m_parentTrace;
quint64 m_binaryDataSize;
.arg(stateText);
} else {
ApiTraceFrame *frame = static_cast<ApiTraceFrame*>(itm);
- QString text = frame->staticText().text();
+ QString text = QObject::tr("%1) Frame ")
+ .arg(frame->number);
+ int binaryDataSize = frame->binaryDataSize() / 1024;
if (frame->state().isEmpty())
- return QString::fromLatin1("<b>%1</b>").arg(text);
+ return QObject::tr(
+ "<b>%1 </b>(binary data size = %2kB)")
+ .arg(text)
+ .arg(binaryDataSize);
else
- return QString::fromLatin1("<b>%1</b><br/>%2")
+ return QObject::tr(
+ "<b>%1 (binary data size = %2kB)</b>"
+ "<br/>%3")
.arg(text)
+ .arg(binaryDataSize)
.arg(stateText);
}
}