| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -70,9 +70,10 @@ void BinaryView::mousePressEvent(QMouseEvent *event) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					void BinaryView::mouseMoveEvent(QMouseEvent *event) { | 
					 | 
					 | 
					 | 
					void BinaryView::mouseMoveEvent(QMouseEvent *event) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  if (auto index = indexAt(event->pos()); index.isValid()) { | 
					 | 
					 | 
					 | 
					  if (auto index = indexAt(event->pos()); index.isValid()) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    auto item = (BinaryViewModel::Item *)index.internalPointer(); | 
					 | 
					 | 
					 | 
					    auto item = (BinaryViewModel::Item *)index.internalPointer(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    highlight(item->sig); | 
					 | 
					 | 
					 | 
					    const Signal *sig = item->sigs.isEmpty() ? nullptr : item->sigs.back(); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    item->sig ? QToolTip::showText(event->globalPos(), item->sig->name.c_str(), this, rect()) | 
					 | 
					 | 
					 | 
					    highlight(sig); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					              : QToolTip::hideText(); | 
					 | 
					 | 
					 | 
					    sig ? QToolTip::showText(event->globalPos(), sig->name.c_str(), this, rect()) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        : QToolTip::hideText(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  } | 
					 | 
					 | 
					 | 
					  } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  QTableView::mouseMoveEvent(event); | 
					 | 
					 | 
					 | 
					  QTableView::mouseMoveEvent(event); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					} | 
					 | 
					 | 
					 | 
					} | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -119,11 +120,13 @@ void BinaryView::updateState() { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					const Signal *BinaryView::getResizingSignal() const { | 
					 | 
					 | 
					 | 
					const Signal *BinaryView::getResizingSignal() const { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  if (anchor_index.isValid()) { | 
					 | 
					 | 
					 | 
					  if (anchor_index.isValid()) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    auto item = (const BinaryViewModel::Item *)anchor_index.internalPointer(); | 
					 | 
					 | 
					 | 
					    auto item = (const BinaryViewModel::Item *)anchor_index.internalPointer(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    if (item && item->sig) { | 
					 | 
					 | 
					 | 
					    if (item && item->sigs.size() > 0) { | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      int archor_pos = anchor_index.row() * 8 + anchor_index.column(); | 
					 | 
					 | 
					 | 
					      int archor_pos = anchor_index.row() * 8 + anchor_index.column(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      auto [sig_from, sig_to] = getSignalRange(item->sig); | 
					 | 
					 | 
					 | 
					      for (auto s : item->sigs) { | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      if (archor_pos == sig_from || archor_pos == sig_to) | 
					 | 
					 | 
					 | 
					        auto [sig_from, sig_to] = getSignalRange(s); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        return item->sig; | 
					 | 
					 | 
					 | 
					        if (archor_pos == sig_from || archor_pos == sig_to) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					          return s; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					      } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    } | 
					 | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  } | 
					 | 
					 | 
					 | 
					  } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  return nullptr; | 
					 | 
					 | 
					 | 
					  return nullptr; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -157,7 +160,7 @@ void BinaryViewModel::setMessage(const QString &message_id) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					          sig.is_little_endian ? items[idx].is_msb = true : items[idx].is_lsb = true; | 
					 | 
					 | 
					 | 
					          sig.is_little_endian ? items[idx].is_msb = true : items[idx].is_lsb = true; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        } | 
					 | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        items[idx].bg_color = getColor(i); | 
					 | 
					 | 
					 | 
					        items[idx].bg_color = getColor(i); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        items[idx].sig = &dbc_msg->sigs[i]; | 
					 | 
					 | 
					 | 
					        items[idx].sigs.push_back(&dbc_msg->sigs[i]); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      } | 
					 | 
					 | 
					 | 
					      } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    } | 
					 | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  } | 
					 | 
					 | 
					 | 
					  } | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -235,7 +238,8 @@ void BinaryItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &op | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  BinaryView *bin_view = (BinaryView *)parent(); | 
					 | 
					 | 
					 | 
					  BinaryView *bin_view = (BinaryView *)parent(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  painter->save(); | 
					 | 
					 | 
					 | 
					  painter->save(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  bool hover = item->sig && bin_view->hoveredSignal() == item->sig; | 
					 | 
					 | 
					 | 
					  bool hover = std::find_if(item->sigs.begin(), item->sigs.end(), [=](auto s) { return s == bin_view->hoveredSignal(); }) != | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					               item->sigs.end(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  // background
 | 
					 | 
					 | 
					 | 
					  // background
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  QColor bg_color = hover ? hoverColor(item->bg_color) : item->bg_color; | 
					 | 
					 | 
					 | 
					  QColor bg_color = hover ? hoverColor(item->bg_color) : item->bg_color; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  if (option.state & QStyle::State_Selected) { | 
					 | 
					 | 
					 | 
					  if (option.state & QStyle::State_Selected) { | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
  |