+const int DecodeTrace::ArrowSize = 4;
+const double DecodeTrace::EndCapWidth = 5;
+const int DecodeTrace::DrawPadding = 100;
+
+const QColor DecodeTrace::Colours[16] = {
+ QColor(0xEF, 0x29, 0x29),
+ QColor(0xF6, 0x6A, 0x32),
+ QColor(0xFC, 0xAE, 0x3E),
+ QColor(0xFB, 0xCA, 0x47),
+ QColor(0xFC, 0xE9, 0x4F),
+ QColor(0xCD, 0xF0, 0x40),
+ QColor(0x8A, 0xE2, 0x34),
+ QColor(0x4E, 0xDC, 0x44),
+ QColor(0x55, 0xD7, 0x95),
+ QColor(0x64, 0xD1, 0xD2),
+ QColor(0x72, 0x9F, 0xCF),
+ QColor(0xD4, 0x76, 0xC4),
+ QColor(0x9D, 0x79, 0xB9),
+ QColor(0xAD, 0x7F, 0xA8),
+ QColor(0xC2, 0x62, 0x9B),
+ QColor(0xD7, 0x47, 0x6F)
+};
+
+const QColor DecodeTrace::OutlineColours[16] = {
+ QColor(0x77, 0x14, 0x14),
+ QColor(0x7B, 0x35, 0x19),
+ QColor(0x7E, 0x57, 0x1F),
+ QColor(0x7D, 0x65, 0x23),
+ QColor(0x7E, 0x74, 0x27),
+ QColor(0x66, 0x78, 0x20),
+ QColor(0x45, 0x71, 0x1A),
+ QColor(0x27, 0x6E, 0x22),
+ QColor(0x2A, 0x6B, 0x4A),
+ QColor(0x32, 0x68, 0x69),
+ QColor(0x39, 0x4F, 0x67),
+ QColor(0x6A, 0x3B, 0x62),
+ QColor(0x4E, 0x3C, 0x5C),
+ QColor(0x56, 0x3F, 0x54),
+ QColor(0x61, 0x31, 0x4D),
+ QColor(0x6B, 0x23, 0x37)
+};
+
+DecodeTrace::DecodeTrace(pv::Session &session,
+ std::shared_ptr<pv::data::DecoderStack> decoder_stack, int index) :
+ Trace(QString::fromUtf8(
+ decoder_stack->stack().front()->decoder()->name)),
+ session_(session),
+ decoder_stack_(decoder_stack),
+ row_height_(0),
+ delete_mapper_(this),
+ show_hide_mapper_(this)