@@ -487,9 +487,9 @@ class PickerMarker : public RecordMarker {
487487 PickerMarker (RecordWidget *parent,
488488 const Seiscomp::Core::Time& pos,
489489 Type type, bool newPick)
490- : RecordMarker(parent, pos),
491- _type (type),
492- _slot(-1 ), _rot(RT_123) {
490+ : RecordMarker(parent, pos)
491+ , _type(type)
492+ , _slot(-1 ), _rot(RT_123) {
493493 setMovable (newPick);
494494 init ();
495495 }
@@ -498,21 +498,22 @@ class PickerMarker : public RecordMarker {
498498 const Seiscomp::Core::Time& pos,
499499 const QString& text,
500500 Type type, bool newPick)
501- : RecordMarker(parent, pos, text),
502- _type(type),
503- _slot(-1 ), _rot(RT_123) {
501+ : RecordMarker(parent, pos, text)
502+ , _type(type)
503+ , _slot(-1 ), _rot(RT_123) {
504504 setMovable (newPick);
505505 init ();
506506 }
507507
508508 PickerMarker (RecordWidget *parent,
509509 const PickerMarker& m)
510- : RecordMarker(parent, m),
511- _referencedPick(m._referencedPick),
512- _polarity(m._polarity),
513- _type(m._type),
514- _slot(m._slot),
515- _rot(m._rot)
510+ : RecordMarker(parent, m)
511+ , _referencedPick(m._referencedPick)
512+ , _polarity(m._polarity)
513+ , _type(m._type)
514+ , _slot(m._slot)
515+ , _rot(m._rot)
516+ , _channelCode(m._channelCode)
516517 {
517518 init ();
518519 _time = m._time ;
@@ -561,6 +562,7 @@ class PickerMarker : public RecordMarker {
561562 }
562563
563564 void setSlot (int s) {
565+ _channelCode = std::string ();
564566 _slot = s;
565567 }
566568
@@ -569,6 +571,7 @@ class PickerMarker : public RecordMarker {
569571 }
570572
571573 void setRotation (int r) {
574+ _channelCode = std::string ();
572575 _rot = r;
573576 }
574577
@@ -601,8 +604,9 @@ class PickerMarker : public RecordMarker {
601604 return id () >= 0 ;
602605 }
603606
604- void setPick (DataModel::Pick* p) {
607+ void setPick (DataModel::Pick * p) {
605608 _referencedPick = p;
609+ _channelCode = std::string ();
606610 try { _polarity = p->polarity (); }
607611 catch ( ... ) { _polarity = Core::None; }
608612
@@ -613,13 +617,14 @@ class PickerMarker : public RecordMarker {
613617
614618 void convertToManualPick () {
615619 if ( !_referencedPick ) return ;
620+ _channelCode = _referencedPick->waveformID ().channelCode ();
616621 _referencedPick = NULL ;
617622 setMovable (true );
618623 setDescription (" " );
619624 updateVisual ();
620625 }
621626
622- DataModel::Pick* pick () const {
627+ DataModel::Pick * pick () const {
623628 return _referencedPick.get ();
624629 }
625630
@@ -638,6 +643,10 @@ class PickerMarker : public RecordMarker {
638643 return true ;
639644 }
640645
646+ const std::string &channelCode () const {
647+ return _channelCode;
648+ }
649+
641650 void setPolarity (OPT(PickPolarity) p) {
642651 _polarity = p;
643652 }
@@ -981,6 +990,7 @@ class PickerMarker : public RecordMarker {
981990 int _slot;
982991 int _rot;
983992 bool _drawUncertaintyValues;
993+ std::string _channelCode;
984994};
985995
986996
@@ -7369,6 +7379,8 @@ void PickerView::fetchManualPicks(std::vector<RecordMarker*>* markers) const {
73697379
73707380 p->waveformID ().setChannelCode (p->waveformID ().channelCode () + comp);
73717381 }
7382+ else if ( !marker->channelCode ().empty () )
7383+ p->waveformID ().setChannelCode (marker->channelCode ());
73727384#endif
73737385
73747386 p->setTime (marker->correctedTime ());
0 commit comments