+void View::update_data()
+{
+ if (!signal_) {
+ merged_data_->clear();
+ return;
+ }
+
+ if (signal_->get_binary_data_chunk_count(current_segment_) == 0) {
+ merged_data_->clear();
+ return;
+ }
+
+ vector<uint8_t> data;
+ signal_->get_binary_data_chunks_merged(current_segment_, 0,
+ numeric_limits<uint64_t>::max(), &data);
+
+ merged_data_->resize(data.size());
+ memcpy(merged_data_->data(), data.data(), data.size());
+}
+
+void View::on_selected_signal_changed(int index)
+{
+ if (signal_)
+ disconnect(signal_, SIGNAL(new_binary_data(unsigned int)));
+
+ signal_ = (DecodeSignal*)signal_selector_->itemData(index).value<void*>();
+ update_data();
+
+ if (signal_)
+ connect(signal_, SIGNAL(new_binary_data(unsigned int)),
+ this, SLOT(on_new_binary_data(unsigned int)));
+}
+