class_selector_(new QComboBox()),
stacked_widget_(new QStackedWidget()),
hex_view_(new QHexView()),
- signal_(nullptr),
- merged_data_(new QByteArray())
+ signal_(nullptr)
{
QVBoxLayout *root_layout = new QVBoxLayout(this);
root_layout->setContentsMargins(0, 0, 0, 0);
connect(class_selector_, SIGNAL(currentIndexChanged(int)),
this, SLOT(on_selected_class_changed(int)));
- hex_view_->setData(merged_data_);
+ // Configure widgets
+ decoder_selector_->setSizeAdjustPolicy(QComboBox::AdjustToContents);
+ class_selector_->setSizeAdjustPolicy(QComboBox::AdjustToContents);
reset_view_state();
}
void View::update_data()
{
if (!signal_) {
- merged_data_->clear();
+ hex_view_->clear();
return;
}
if (signal_->get_binary_data_chunk_count(current_segment_, decoder_, bin_class_id_) == 0) {
- merged_data_->clear();
+ hex_view_->clear();
return;
}
- vector<uint8_t> data;
- signal_->get_binary_data_chunks_merged(current_segment_, decoder_, bin_class_id_,
- 0, numeric_limits<uint64_t>::max(), &data);
+ const DecodeBinaryClass* bin_class =
+ signal_->get_binary_data_class(current_segment_, decoder_, bin_class_id_);
- merged_data_->resize(data.size());
- memcpy(merged_data_->data(), data.data(), data.size());
-
- hex_view_->setData(merged_data_);
+ hex_view_->setData(bin_class);
}
void View::on_selected_decoder_changed(int index)
if (signal_) {
// Populate binary class selector
- uint8_t bin_classes = decoder_->get_binary_class_count();
- for (uint8_t i = 0; i < bin_classes; i++) {
+ uint32_t bin_classes = decoder_->get_binary_class_count();
+ for (uint32_t i = 0; i < bin_classes; i++) {
const data::decode::DecodeBinaryClassInfo* class_info = decoder_->get_binary_class(i);
class_selector_->addItem(class_info->name, QVariant::fromValue(i));
}
void View::on_selected_class_changed(int index)
{
- bin_class_id_ = class_selector_->itemData(index).value<uint8_t>();
+ bin_class_id_ = class_selector_->itemData(index).value<uint32_t>();
update_data();
}