void BitFieldWidget::updateBits(const HNumber& number) { QString binaryNumberString = HMath::format(number, 'b'); QListIterator<BitWidget*> bitsIterator(m_bitWidgets); if (number.isZero() || !number.isInteger()) binaryNumberString.clear(); else if (number.isNegative()) binaryNumberString.remove(0, 3); // Remove '-0b'. else binaryNumberString.remove(0, 2); // Remove '0b'. QString::ConstIterator iterator = binaryNumberString.end(); while (bitsIterator.hasNext()) { if (iterator != binaryNumberString.begin()) { --iterator; bitsIterator.next()->setState(*iterator == '1'); } else bitsIterator.next()->setState(false); } }