This PR makes code more maintainable by leveraging -Wswitch compiler warnings.
Only the RecentRequestsTableModel is not refactored, because its enum ColumnIndex contains additional NUMBER_OF_COLUMNS value.
No behavior change.
This PR makes code more maintainable by leveraging -Wswitch compiler warnings.
Only the RecentRequestsTableModel is not refactored, because its enum ColumnIndex contains additional NUMBER_OF_COLUMNS value.
No behavior change.
Concept ACK.
It's not clear to me if data() implementation should check for out of bounds. I think Qt views and proxy model behave correctly by querying data inside columnCount() and rowCount().
As follow up:
AddressTableModel::columns member to priv instancesection < columns.size() check in AddressTableModel::headerDataIt's not clear to me if
data()implementation should check for out of bounds. I think Qt views and proxy model behave correctly by querying data insidecolumnCount()androwCount().
At least, these changes do not affect the current behavior, right?
@jonasschnelli Maybe tag this pr with 22.0 milestone?
ACK 1d5d832d5c045cbbe3a0f4aa8fc29e52ecadc182, tested on macOS 11.1 Qt 5.15.2
This refactor brings a safer switch statement design to the address, ban, peer, and transaction table models. It also brings us in accordance with the switch design recommendation included in developer-notes.md.
The ability to leverage the -Wswitch compiler warning, as mentioned in the OP, is another benefit of this refactor. An example of the benefit this brings can be shown by considering a scenario where a new Address type is introduced, and the author forgets to update the code to consider the new type. In such a scenario, the compiler will warn about this, thus preventing errors.
ACK https://github.com/bitcoin-core/gui/pull/166/commits/1d5d832d5c045cbbe3a0f4aa8fc29e52ecadc182, tested on Ubuntu 20.04 Qt 5.12.8
Code review ACK 1d5d832d5c045cbbe3a0f4aa8fc29e52ecadc182.
No problem. Changed it to the top PR commit.