| 177 | } |
| 178 | |
| 179 | void HexWidget::showCursor() { |
| 180 | disconnect(verticalScrollBar(), &QScrollBar::valueChanged, this, &HexWidget::scroll); |
| 181 | int addr = m_cursorOffset / 2; |
| 182 | if (addr <= m_bytesPerLine) { |
| 183 | verticalScrollBar()->setValue(0); |
| 184 | } else if (addr <= m_lineStart) { |
| 185 | verticalScrollBar()->setValue(addr / m_bytesPerLine); |
| 186 | } |
| 187 | if (addr > (m_lineStart + m_visibleRows * m_bytesPerLine - 1)) { |
| 188 | verticalScrollBar()->setValue((addr / m_bytesPerLine) - m_visibleRows + 1); |
| 189 | } |
| 190 | if (m_cursor.x() < horizontalScrollBar()->value()) { |
| 191 | horizontalScrollBar()->setValue(0); |
| 192 | } |
| 193 | adjust(); |
| 194 | connect(verticalScrollBar(), &QScrollBar::valueChanged, this, &HexWidget::scroll); |
| 195 | } |
| 196 | |
| 197 | void HexWidget::adjust() { |
| 198 | m_size = m_data.size(); |
nothing calls this directly
no outgoing calls
no test coverage detected