using std::all_of;
using std::make_pair;
using std::max;
-using std::map;
using std::min;
using std::out_of_range;
using std::pair;
using std::shared_ptr;
-using std::make_shared;
using std::tie;
-using std::unordered_set;
using std::vector;
using pv::data::decode::Annotation;
connect(decode_signal_.get(), SIGNAL(new_annotations()),
this, SLOT(on_new_annotations()));
+ connect(decode_signal_.get(), SIGNAL(decode_finished()),
+ this, SLOT(on_decode_finished()));
connect(decode_signal_.get(), SIGNAL(channels_updated()),
this, SLOT(on_channels_updated()));
// Draw the hatching
draw_unresolved_period(p, annotation_height, pp.left(), pp.right());
- if ((int)visible_rows_.size() > max_visible_rows_)
- owner_->extents_changed(false, true);
+ if ((int)visible_rows_.size() > max_visible_rows_) {
+ max_visible_rows_ = (int)visible_rows_.size();
- // Update the maximum row count if needed
- max_visible_rows_ = max(max_visible_rows_, (int)visible_rows_.size());
+ // Call order is important, otherwise the lazy event handler won't work
+ owner_->extents_changed(false, true);
+ owner_->row_item_appearance_changed(false, true);
+ }
}
void DecodeTrace::paint_fore(QPainter &p, ViewItemPaintParams &pp)
assert(view);
QPoint hp = view->hover_point();
+
+ if (hp.x() == 0) {
+ QToolTip::hideText();
+ return;
+ }
+
QString ann = get_annotation_at_point(hp);
assert(view);
owner_->row_item_appearance_changed(false, true);
}
+void DecodeTrace::on_decode_finished()
+{
+ if (owner_)
+ owner_->row_item_appearance_changed(false, true);
+}
+
void DecodeTrace::delete_pressed()
{
on_delete();
{
decode_signal_->remove_decoder(index);
+ // Force re-calculation of the trace height, see paint_mid()
+ max_visible_rows_ = 0;
+ owner_->extents_changed(false, true);
+
// Update the popup
create_popup_form();
}
assert(index < (int)decoder_forms_.size());
decoder_forms_[index]->set_decoder_visible(state);
+ if (!state) {
+ // Force re-calculation of the trace height, see paint_mid()
+ max_visible_rows_ = 0;
+ owner_->extents_changed(false, true);
+ }
+
if (owner_)
owner_->row_item_appearance_changed(false, true);
}