-
-
Notifications
You must be signed in to change notification settings - Fork 354
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Qt scaling fix #1437
Qt scaling fix #1437
Conversation
WalkthroughThe recent updates introduce resizing and dynamic text adjustment functionalities to several UI components in the application. Methods for handling resize events and scaling text sizes based on window dimensions have been added or modified across various dialogues and pages. This enhances the user interface, ensuring better usability and readability on different screen sizes. Changes
Poem
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (invoked as PR comments)
Additionally, you can add CodeRabbit Configration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 4
Out of diff range and nitpick comments (1)
src/qt/bitcoingui.cpp (1)
Line range hint
513-526
: Refactor toolbar setup to improve readability and maintainability.- toolbar = addToolBar(tr("Tabs toolbar")); - toolbar->setContextMenuPolicy(Qt::PreventContextMenu); - toolbar->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); - toolbar->setToolButtonStyle(Qt::ToolButtonTextOnly); - toolbar->setMovable(false); - toolbar->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); - toolbar->addAction(overviewAction); - toolbar->addAction(sendCoinsAction); - toolbar->addAction(receiveCoinsAction); - toolbar->addAction(historyAction); - toolbar->addAction(lelantusAction); - toolbar->addAction(masternodeAction); + setupToolbar();Consider extracting the toolbar setup into a separate method called
setupToolbar
. This will make thecreateToolBars
method cleaner and improve the modularity of the code.
Review Details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files selected for processing (10)
- src/qt/bitcoingui.cpp (3 hunks)
- src/qt/bitcoingui.h (3 hunks)
- src/qt/masternodelist.cpp (1 hunks)
- src/qt/masternodelist.h (2 hunks)
- src/qt/overviewpage.cpp (1 hunks)
- src/qt/overviewpage.h (2 hunks)
- src/qt/receivecoinsdialog.cpp (2 hunks)
- src/qt/receivecoinsdialog.h (2 hunks)
- src/qt/transactionview.cpp (2 hunks)
- src/qt/transactionview.h (2 hunks)
Additional comments not posted (13)
src/qt/masternodelist.h (2)
14-14
: IncludeQResizeEvent
to handle dynamic resizing.
42-42
: Addition ofresizeEvent
method to dynamically adjust UI components.src/qt/receivecoinsdialog.h (2)
18-19
: IncludeQResizeEvent
andQScreen
to handle dynamic resizing and screen-related functionalities.
63-63
: Addition ofresizeEvent
method to dynamically adjust UI components.src/qt/overviewpage.h (2)
19-23
: IncludeQResizeEvent
,QPainter
,QStyleOptionViewItem
, andQMetaMethod
to handle dynamic resizing and painting functionalities.
52-52
: Addition ofresizeEvent
method to dynamically adjust UI components.src/qt/transactionview.h (2)
12-12
: IncludeQResizeEvent
to handle dynamic resizing.
41-41
: Addition ofresizeEvent
method to dynamically adjust UI components.src/qt/bitcoingui.h (2)
20-21
: IncludeQPushButton
andQWidget
for UI component handling.
147-147
: Addition ofresizeEvent
method to dynamically adjust UI components.src/qt/masternodelist.cpp (1)
371-394
: ImplementresizeEvent
to dynamically adjust column widths based on window size changes.src/qt/receivecoinsdialog.cpp (1)
367-428
: ImplementresizeEvent
to dynamically adjust component sizes and column widths based on window size changes.src/qt/transactionview.cpp (1)
714-753
: Verify the responsiveness of the UI with extreme window sizes.This script is a placeholder for manual testing. Ensure that the UI components do not overlap or become unusable at very small or very large window sizes.
src/qt/transactionview.cpp
Outdated
// Handles resize events for the TransactionView widget by adjusting internal component sizes. | ||
void TransactionView::resizeEvent(QResizeEvent* event) | ||
{ | ||
QWidget::resizeEvent(event); | ||
|
||
// Retrieve new dimensions from the resize event | ||
int newWidth = event->size().width(); | ||
int newHeight = event->size().height(); | ||
|
||
int headerHeight = newHeight * 0.1; | ||
|
||
// Calculate the height of widgets in the header subtracting a small margin | ||
int widgetHeight = headerHeight - 5; | ||
|
||
// Determine widths for specific widgets as percentages of total width | ||
int comboBoxesWidgetWidth = newWidth * 0.10; | ||
int addressWidgetWidth = newWidth * 0.25; | ||
|
||
dateWidget->setFixedWidth(comboBoxesWidgetWidth); | ||
typeWidget->setFixedWidth(comboBoxesWidgetWidth); | ||
amountWidget->setFixedWidth(comboBoxesWidgetWidth); | ||
instantsendWidget->setFixedWidth(comboBoxesWidgetWidth); | ||
|
||
int tableViewHeight = newHeight - headerHeight; | ||
|
||
// Calculate and set column widths based on new width, keeping proportions | ||
int statusColumnWidth = newWidth * 0.05; | ||
int watchOnlyColumnWidth = newWidth * 0.05; | ||
int instantSendColumnWidth = newWidth * 0.05; | ||
int dateColumnWidth = newWidth * 0.08; | ||
int typeColumnWidth = newWidth * 0.10; | ||
int addressColumnWidth = newWidth * 0.25; | ||
|
||
transactionView->setColumnWidth(TransactionTableModel::Status, statusColumnWidth); | ||
transactionView->setColumnWidth(TransactionTableModel::Watchonly, watchOnlyColumnWidth); | ||
transactionView->setColumnWidth(TransactionTableModel::InstantSend, instantSendColumnWidth); | ||
transactionView->setColumnWidth(TransactionTableModel::Date, dateColumnWidth); | ||
transactionView->setColumnWidth(TransactionTableModel::Type, typeColumnWidth); | ||
transactionView->setColumnWidth(TransactionTableModel::ToAddress, addressColumnWidth); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ensure consistent use of magic numbers in resizing logic.
The resizeEvent
method uses several magic numbers (e.g., 0.1
, 5
, 0.10
, 0.25
) for calculating dimensions. It's recommended to define these as constants at the beginning of the method or class to improve readability and maintainability. This also makes it easier to adjust these values in the future without having to modify multiple lines of code.
Consider adding a minimum size constraint for widgets.
The current implementation does not specify a minimum size for widgets, which might lead to UI elements being too small to interact with under certain conditions. Consider setting a reasonable minimum size for the widgets to ensure they remain usable regardless of the window size.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 14
Out of diff range and nitpick comments (4)
src/rpc/server.cpp (1)
347-348
: Add documentation for the new RPC command.Consider adding a comment or documentation for the new
checkifmncollateral
RPC command to explain its purpose and usage.src/rpc/misc.cpp (3)
1434-1435
: Add a brief comment describing the purpose of the function.// Checks if the given transaction is a masternode collateral. UniValue checkifmncollateral(const JSONRPCRequest& request)
1436-1445
: Improve the error message to include the expected arguments.throw std::runtime_error( "checkifmncollateral\n" "\nReturns bool value indicating if the transaction is a masternode collateral.\n" "\nArguments:\n" "1. \"txHash\" (string, required) The transaction hash\n" "2. \"index\" (number, required) The output index\n" "\nExamples:\n" + HelpExampleCli("checkifmncollateral", "\"b476ed2b374bb081ea51d111f68f0136252521214e213d119b8dc67b92f5a390\" \"0\"") + HelpExampleRpc("checkifmncollateral", "\"b476ed2b374bb081ea51d111f68f0136252521214e213d119b8dc67b92f5a390\" \"0\"") );
1461-1462
: Improve the error message to provide more context.throw std::runtime_error("Unknown transaction. Unable to retrieve transaction details for the given txHash.");
Review Details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files selected for processing (15)
- src/qt/bitcoingui.cpp (3 hunks)
- src/qt/bitcoinstrings.cpp (1 hunks)
- src/qt/overviewpage.cpp (1 hunks)
- src/qt/overviewpage.h (3 hunks)
- src/qt/receivecoinsdialog.cpp (2 hunks)
- src/qt/receivecoinsdialog.h (3 hunks)
- src/qt/sendcoinsdialog.cpp (1 hunks)
- src/qt/sendcoinsdialog.h (2 hunks)
- src/rpc/misc.cpp (3 hunks)
- src/rpc/server.cpp (1 hunks)
- src/rpc/server.h (1 hunks)
- src/spark/sparkwallet.cpp (2 hunks)
- src/wallet/lelantusjoinsplitbuilder.cpp (1 hunks)
- src/wallet/txbuilder.cpp (1 hunks)
- src/wallet/wallet.cpp (3 hunks)
Files skipped from review due to trivial changes (1)
- src/wallet/wallet.cpp
Additional comments not posted (20)
src/qt/receivecoinsdialog.h (1)
83-83
: Ensure that theadjustTextSize
method is implemented correctly in the corresponding.cpp
file to adjust text sizes dynamically.src/qt/overviewpage.h (2)
52-52
: Ensure that theresizeEvent
method is implemented correctly in the corresponding.cpp
file to handle dynamic resizing.
98-98
: Ensure that theadjustTextSize
method is implemented correctly in the corresponding.cpp
file to adjust text sizes dynamically.src/qt/sendcoinsdialog.h (1)
71-71
: Ensure that theadjustTextSize
method is implemented correctly in the corresponding.cpp
file to adjust text sizes dynamically.Verification successful
adjustTextSize
method is implemented insendcoinsdialog.cpp
The
adjustTextSize
method is indeed implemented insendcoinsdialog.cpp
.
src/qt/sendcoinsdialog.cpp
:void SendCoinsDialog::adjustTextSize(int width, int height)
Scripts Executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Verify the implementation of the adjustTextSize method in sendcoinsdialog.cpp ast-grep --lang cpp --pattern $'void SendCoinsDialog::adjustTextSize(int width, int height) { $$$ }' src/qt/sendcoinsdialog.cppLength of output: 130
Script:
#!/bin/bash # Search for the adjustTextSize method definition in the entire codebase rg 'void SendCoinsDialog::adjustTextSize\(int width, int height\)'Length of output: 157
src/rpc/server.h (1)
221-221
: Ensure that thecheckifmncollateral
function is implemented correctly in the corresponding.cpp
file to handle the new RPC command.Verification successful
Implementation of
checkifmncollateral
function found insrc/rpc/misc.cpp
The
checkifmncollateral
function is implemented insrc/rpc/misc.cpp
. Here are the relevant lines:
src/rpc/misc.cpp:UniValue checkifmncollateral(const JSONRPCRequest& request)
src/rpc/misc.cpp: "checkifmncollateral\n"
src/rpc/misc.cpp: + HelpExampleCli("checkifmncollateral", "\"b476ed2b374bb081ea51d111f68f0136252521214e213d119b8dc67b92f5a390\"" "\"0\" ")
src/rpc/misc.cpp: + HelpExampleRpc("checkifmncollateral", "\"b476ed2b374bb081ea51d111f68f0136252521214e213d119b8dc67b92f5a390\"" "\"0\" ")
src/rpc/misc.cpp: { "mobile", "checkifmncollateral", &checkifmncollateral, false },
The function is correctly implemented and registered for the RPC command.
Scripts Executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Verify the implementation of the checkifmncollateral function in server.cpp ast-grep --lang cpp --pattern $'UniValue checkifmncollateral(const JSONRPCRequest& params) { $$$ }' src/rpc/server.cppLength of output: 121
Script:
#!/bin/bash # Search for the implementation of the checkifmncollateral function in the entire codebase ast-grep --lang cpp --pattern $'UniValue checkifmncollateral(const JSONRPCRequest& params) { $$$ }'Length of output: 102
Script:
#!/bin/bash # Search for any comments or TODOs related to checkifmncollateral in the codebase rg -i 'checkifmncollateral|TODO|FIXME'Length of output: 32412
src/wallet/txbuilder.cpp (1)
227-227
: The updated error message provides more specific guidance, which is helpful for users. Ensure that this change is consistent across all relevant files.src/qt/receivecoinsdialog.cpp (5)
27-27
: Inclusion ofQScreen
is appropriate for handling screen-related properties in the resize logic.
367-370
: TheresizeEvent
method correctly overrides the base class method and calls the parent class'sresizeEvent
.
371-417
: The component resizing logic for ComboBoxes and buttons is clear and ensures appropriate scaling of UI components.
419-428
: The logic for adjusting column widths proportionally ensures that the table columns scale appropriately with the window size.
430-454
: TheadjustTextSize
method effectively calculates and applies a font size based on the window dimensions, ensuring consistent text scaling across UI components.src/wallet/lelantusjoinsplitbuilder.cpp (1)
324-324
: Improved error message for large transactions.The updated error message provides more specific guidance to the user, which enhances usability.
src/qt/bitcoinstrings.cpp (1)
556-556
: Update error message for transaction size limit.The updated error message "Transaction is too large (size limit: 100Kb). Select less inputs or consolidate your UTXOs" provides clearer guidance to the user. This change improves the user experience by offering specific actions to resolve the issue.
src/qt/bitcoingui.cpp (3)
513-513
: Initializetoolbar
withaddToolBar
.The initialization of the
toolbar
withaddToolBar
is correct and follows the standard practice.
526-526
: InitializelogoLabel
withnew QLabel()
.The initialization of the
logoLabel
withnew QLabel()
is correct and follows the standard practice.
1478-1499
: Implement dynamic resizing inresizeEvent
.The
resizeEvent
method correctly handles resize events by dynamically adjusting the widths of toolbar actions based on the new window dimensions. This implementation enhances the responsiveness of the UI.src/qt/sendcoinsdialog.cpp (2)
1281-1301
: Ensure proper handling of resize events and dynamic adjustments.The
resizeEvent
method correctly handles the resize event by adjusting the minimum width of buttons and callingadjustTextSize
to adjust text sizes dynamically. This enhances the UI responsiveness.
1303-1356
: Ensure proper dynamic text size adjustments.The
adjustTextSize
method correctly calculates a base font size based on the window dimensions and applies it to various UI components. This ensures that text remains readable and appropriately sized across different window sizes.src/spark/sparkwallet.cpp (2)
1027-1027
: Improved error message for transaction size limit.The updated error message provides clear guidance on how to resolve the issue when a transaction exceeds the size limit.
1539-1539
: Improved error message for transaction size limit.The updated error message provides clear guidance on how to resolve the issue when a transaction exceeds the size limit.
src/rpc/misc.cpp
Outdated
try { | ||
strTxId = request.params[0].get_str(); | ||
index = std::stol(request.params[1].get_str()); | ||
} catch (std::logic_error const & e) { | ||
throw std::runtime_error(std::string("An exception occurred while parsing parameters: ") + e.what()); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Consider using std::stoi
instead of std::stol
for parsing the index since it is an integer.
- index = std::stol(request.params[1].get_str());
+ index = std::stoi(request.params[1].get_str());
Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.
try { | |
strTxId = request.params[0].get_str(); | |
index = std::stol(request.params[1].get_str()); | |
} catch (std::logic_error const & e) { | |
throw std::runtime_error(std::string("An exception occurred while parsing parameters: ") + e.what()); | |
} | |
try { | |
strTxId = request.params[0].get_str(); | |
index = std::stoi(request.params[1].get_str()); | |
} catch (std::logic_error const & e) { | |
throw std::runtime_error(std::string("An exception occurred while parsing parameters: ") + e.what()); | |
} |
src/rpc/misc.cpp
Outdated
auto mnList = deterministicMNManager->GetListAtChainTip(); | ||
COutPoint o(txid, index); | ||
bool fMnExists = deterministicMNManager->IsProTxWithCollateral(tx, index) || mnList.HasMNByCollateral(o); | ||
return UniValue(fMnExists); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ensure that deterministicMNManager
is not null before dereferencing.
assert(deterministicMNManager != nullptr);
auto mnList = deterministicMNManager->GetListAtChainTip();
COutPoint o(txid, index);
bool fMnExists = deterministicMNManager->IsProTxWithCollateral(tx, index) || mnList.HasMNByCollateral(o);
return UniValue(fMnExists);
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
Review Details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files selected for processing (12)
- src/qt/masternodelist.cpp (1 hunks)
- src/qt/masternodelist.h (2 hunks)
- src/qt/overviewpage.cpp (1 hunks)
- src/qt/overviewpage.h (3 hunks)
- src/qt/receivecoinsdialog.cpp (2 hunks)
- src/qt/receivecoinsdialog.h (3 hunks)
- src/qt/sendcoinsdialog.cpp (1 hunks)
- src/qt/sendcoinsdialog.h (2 hunks)
- src/qt/sendcoinsentry.cpp (2 hunks)
- src/qt/sendcoinsentry.h (1 hunks)
- src/qt/transactionview.cpp (2 hunks)
- src/qt/transactionview.h (2 hunks)
Files skipped from review as they are similar to previous changes (6)
- src/qt/overviewpage.cpp
- src/qt/overviewpage.h
- src/qt/receivecoinsdialog.cpp
- src/qt/receivecoinsdialog.h
- src/qt/sendcoinsdialog.cpp
- src/qt/sendcoinsdialog.h
Additional comments not posted (10)
src/qt/masternodelist.h (2)
14-14
: Include ofQResizeEvent
is appropriate for handling resize events.
42-43
: Ensure that the implementation ofresizeEvent
andadjustTextSize
properly handles the dynamic resizing and text adjustment as intended.Verification successful
Verification of
resizeEvent
andadjustTextSize
ImplementationsThe implementations of
resizeEvent
andadjustTextSize
methods for theMasternodeList
class have been found in the following locations:
resizeEvent
:
- Declaration:
src/qt/masternodelist.h
- Implementation:
src/qt/masternodelist.cpp
adjustTextSize
:
- Declaration:
src/qt/masternodelist.h
- Implementation:
src/qt/masternodelist.cpp
These methods are correctly declared and implemented within the
MasternodeList
class, ensuring they handle dynamic resizing and text adjustment as intended.
src/qt/masternodelist.h
src/qt/masternodelist.cpp
Scripts Executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify the implementation of resizeEvent and adjustTextSize in MasternodeList. # Test: Search for the implementation of resizeEvent and adjustTextSize in MasternodeList. ast-grep --lang cpp --pattern $'class MasternodeList { $$$ resizeEvent($_, $_) { $$$ } $$$ adjustTextSize($_, $_) { $$$ } $$$ }'Length of output: 151
Script:
#!/bin/bash # Description: Verify the implementation of resizeEvent and adjustTextSize in MasternodeList. # Test: Search for the implementation of resizeEvent in the codebase. ast-grep --lang cpp --pattern 'resizeEvent(QResizeEvent*)' # Test: Search for the implementation of adjustTextSize in the codebase. ast-grep --lang cpp --pattern 'adjustTextSize(int, int)'Length of output: 119
Script:
#!/bin/bash # Description: Verify the declaration and implementation of resizeEvent and adjustTextSize in the codebase. # Test: Search for the declaration of resizeEvent in the codebase. rg --pcre2 --glob '!*.min.js' --glob '!*.map' 'resizeEvent' # Test: Search for the declaration of adjustTextSize in the codebase. rg --pcre2 --glob '!*.min.js' --glob '!*.map' 'adjustTextSize'Length of output: 3180
src/qt/sendcoinsentry.h (1)
76-77
: Ensure that the implementation ofresizeEvent
andadjustTextSize
properly handles the dynamic resizing and text adjustment as intended.Verification successful
Verification of
resizeEvent
andadjustTextSize
ImplementationsThe implementations of the
resizeEvent
andadjustTextSize
methods in theSendCoinsEntry
class have been successfully located and reviewed. Here are the details:
resizeEvent
Method:void SendCoinsEntry::resizeEvent(QResizeEvent* event) { QStackedWidget::resizeEvent(event); const int newWidth = event->size().width(); const int newHeight = event->size().height(); adjustTextSize(newWidth, newHeight); }This method handles the resize event by first calling the base class's
resizeEvent
method. It then retrieves the new width and height from the event and callsadjustTextSize
with these dimensions.
adjustTextSize
Method:void SendCoinsEntry::adjustTextSize(int width, int height) { int baseFontSize = std::max(14, width / 120); QFont font = this->font(); font.setPointSize(baseFontSize); ui->payToLabel->setFont(font); ui->labellLabel->setFont(font); ui->addAsLabel->setFont(font); ui->amountLabel->setFont(font); ui->messageLabel->setFont(font); }This method adjusts the text size based on the new width. It calculates a base font size and sets this font size to various labels in the UI.
Both methods appear to handle dynamic resizing and text adjustment as intended.
Scripts Executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify the implementation of resizeEvent and adjustTextSize in SendCoinsEntry. # Test: Search for the implementation of resizeEvent and adjustTextSize in SendCoinsEntry. ast-grep --lang cpp --pattern $'class SendCoinsEntry { $$$ resizeEvent($_, $_) { $$$ } $$$ adjustTextSize($_, $_) { $$$ } $$$ }'Length of output: 151
Script:
#!/bin/bash # Description: Locate the SendCoinsEntry class and its methods resizeEvent and adjustTextSize. # Step 1: Search for the SendCoinsEntry class definition. ast-grep --lang cpp --pattern 'class SendCoinsEntry { $$$ }' # Step 2: Search for the resizeEvent method implementation within the codebase. ast-grep --lang cpp --pattern 'void SendCoinsEntry::resizeEvent(QResizeEvent* event) { $$$ }' # Step 3: Search for the adjustTextSize method implementation within the codebase. ast-grep --lang cpp --pattern 'void SendCoinsEntry::adjustTextSize(int width, int height) { $$$ }'Length of output: 604
Script:
#!/bin/bash # Description: Locate the SendCoinsEntry class and its methods resizeEvent and adjustTextSize. # Step 1: Search for the SendCoinsEntry class definition. rg 'class SendCoinsEntry' # Step 2: Search for the resizeEvent method implementation within the codebase. rg 'void SendCoinsEntry::resizeEvent' # Step 3: Search for the adjustTextSize method implementation within the codebase. rg 'void SendCoinsEntry::adjustTextSize'Length of output: 445
Script:
#!/bin/bash # Description: Extract and review the implementations of resizeEvent and adjustTextSize methods in SendCoinsEntry. # Step 1: Extract the resizeEvent method implementation. rg -A 10 'void SendCoinsEntry::resizeEvent' src/qt/sendcoinsentry.cpp # Step 2: Extract the adjustTextSize method implementation. rg -A 10 'void SendCoinsEntry::adjustTextSize' src/qt/sendcoinsentry.cppLength of output: 808
src/qt/transactionview.h (1)
41-42
: Ensure that the implementation ofresizeEvent
andadjustTextSize
properly handles the dynamic resizing and text adjustment as intended.Verification successful
The implementations of
resizeEvent
andadjustTextSize
methods inTransactionView
have been successfully located and reviewed. Both methods appear to handle dynamic resizing and text adjustment as intended.
resizeEvent
retrieves new dimensions from the resize event and callsadjustTextSize
with the new width and height.adjustTextSize
calculates an appropriate font size based on the new dimensions and sets this font size for various UI elements.These implementations seem to be correctly addressing the dynamic resizing and text adjustment functionalities.
Scripts Executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify the implementation of resizeEvent and adjustTextSize in TransactionView. # Test: Search for the implementation of resizeEvent and adjustTextSize in TransactionView. ast-grep --lang cpp --pattern $'class TransactionView { $$$ resizeEvent($_, $_) { $$$ } $$$ adjustTextSize($_, $_) { $$$ } $$$ }'Length of output: 152
Script:
#!/bin/bash # Description: Locate the TransactionView class and its methods resizeEvent and adjustTextSize. # Step 1: Locate the TransactionView class definition. ast-grep --lang cpp --pattern 'class TransactionView { $$$ }' # Step 2: Locate the resizeEvent method within the TransactionView class. ast-grep --lang cpp --pattern 'class TransactionView { $$$ resizeEvent($_, $_) { $$$ } $$$ }' # Step 3: Locate the adjustTextSize method within the TransactionView class. ast-grep --lang cpp --pattern 'class TransactionView { $$$ adjustTextSize($_, $_) { $$$ } $$$ }'Length of output: 1293
Script:
#!/bin/bash # Description: Locate the TransactionView class and its methods resizeEvent and adjustTextSize. # Step 1: Locate the TransactionView class definition. ast-grep --lang cpp --pattern 'class TransactionView { $$$ }' # Step 2: Locate the resizeEvent method within the TransactionView class. ast-grep --lang cpp --pattern 'void TransactionView::resizeEvent($_) { $$$ }' # Step 3: Locate the adjustTextSize method within the TransactionView class. ast-grep --lang cpp --pattern 'void TransactionView::adjustTextSize($_, $_) { $$$ }'Length of output: 575
Script:
#!/bin/bash # Description: Locate the resizeEvent and adjustTextSize methods in the codebase. # Step 1: Locate the resizeEvent method definition. rg 'void TransactionView::resizeEvent' # Step 2: Locate the adjustTextSize method definition. rg 'void TransactionView::adjustTextSize'Length of output: 253
Script:
#!/bin/bash # Description: Display the content of resizeEvent and adjustTextSize methods in src/qt/transactionview.cpp. # Step 1: Display the resizeEvent method implementation. rg -A 10 'void TransactionView::resizeEvent' src/qt/transactionview.cpp # Step 2: Display the adjustTextSize method implementation. rg -A 10 'void TransactionView::adjustTextSize' src/qt/transactionview.cppLength of output: 880
src/qt/sendcoinsentry.cpp (2)
Line range hint
269-397
: The implementation ofresizeEvent
inSendCoinsEntry
appears to handle dynamic resizing by adjusting text sizes and column widths based on the new window dimensions. Ensure that the resizing logic maintains a good user experience across different resolutions.
279-305
: TheadjustTextSize
method dynamically adjusts font sizes based on window dimensions. This is a good practice for responsive design. Ensure that the base font size calculations are appropriate for the expected range of window sizes.src/qt/masternodelist.cpp (2)
371-397
: The implementation ofresizeEvent
inMasternodeList
appears to handle dynamic resizing by adjusting text sizes and column widths based on the new window dimensions. Ensure that the resizing logic maintains a good user experience across different resolutions.
398-412
: TheadjustTextSize
method dynamically adjusts font sizes based on window dimensions. This is a good practice for responsive design. Ensure that the base font size calculations are appropriate for the expected range of window sizes.src/qt/transactionview.cpp (2)
714-755
: Define constants for magic numbers used in resizing logic.As previously suggested, consider defining constants for magic numbers such as
0.1
,5
,0.10
,0.25
used in the resizing calculations. This will improve code readability and maintainability.
714-755
: Consider adding a minimum size constraint for widgets.As previously noted, the current implementation does not specify a minimum size for widgets, which might lead to UI elements being too small to interact with under certain conditions. Consider setting a reasonable minimum size for the widgets to ensure they remain usable regardless of the window size.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
Outside diff range and nitpick comments (1)
src/qt/transactionview.cpp (1)
714-755
: Consider adding a minimum size constraint for widgets.The current implementation does not specify a minimum size for widgets, which might lead to UI elements being too small to interact with under certain conditions. Consider setting a reasonable minimum size for the widgets to ensure they remain usable regardless of the window size.
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files selected for processing (5)
- src/qt/masternodelist.cpp (1 hunks)
- src/qt/overviewpage.cpp (1 hunks)
- src/qt/receivecoinsdialog.cpp (2 hunks)
- src/qt/sendcoinsdialog.cpp (1 hunks)
- src/qt/transactionview.cpp (2 hunks)
Additional comments not posted (11)
src/qt/masternodelist.cpp (2)
371-397
: The implementation of dynamic resizing inresizeEvent
method is well-executed and aligns with the PR objectives for dynamic UI adjustments.
398-412
: TheadjustTextSize
method effectively scales font sizes based on window dimensions, enhancing readability across different resolutions.src/qt/receivecoinsdialog.cpp (1)
366-430
: The implementation of dynamic resizing inresizeEvent
method is well-executed and aligns with the PR objectives for dynamic UI adjustments.src/qt/overviewpage.cpp (6)
479-530
: Ensure consistent use ofoverride
specifier for virtual function overrides.This comment is still valid as per the previous review. Consider adding the
override
specifier to theresizeEvent
method to indicate that it overrides a virtual function from the base class.
481-481
: Remove unnecessary call to base classresizeEvent
.This comment is still valid as per the previous review. The call to
QWidget::resizeEvent(event)
is unnecessary because the base class implementation does not need to be called explicitly in this context.
484-485
: Use const references for event size to avoid unnecessary copies.This comment is still valid as per the previous review. To avoid unnecessary copies, use const references when accessing the size of the event.
488-490
: Improve variable naming for clarity and maintain consistency in const correctness.This comment is still valid as per the previous review. Consider using more descriptive variable names to improve code readability and ensure that variables that do not change after initialization are declared as
const
.Also applies to: 504-507
531-573
: Ensure consistent use ofoverride
specifier for virtual function overrides.This comment is still valid as per the previous review. Consider adding the
override
specifier to theadjustTextSize
method to indicate that it overrides a virtual function from the base class.
540-540
: Remove redundant semicolon.This comment is still valid as per the previous review. Remove the redundant semicolon after
font()
.src/qt/sendcoinsdialog.cpp (2)
1281-1301
: Implement dynamic resizing logic for UI components.The
resizeEvent
method has been implemented to adjust the UI components dynamically based on the window size. This aligns with the PR's objective to enhance UI responsiveness across different resolutions.
1303-1356
: Adjust text sizes dynamically based on window dimensions.The
adjustTextSize
method dynamically adjusts the font sizes of various UI elements based on the window's dimensions, improving readability and user experience on different display settings.
// Handles resize events for the TransactionView widget by adjusting internal component sizes. | ||
void TransactionView::resizeEvent(QResizeEvent* event) | ||
{ | ||
QWidget::resizeEvent(event); | ||
|
||
// Retrieve new dimensions from the resize event | ||
const int newWidth = event->size().width(); | ||
const int newHeight = event->size().height(); | ||
|
||
adjustTextSize(newWidth, newHeight); | ||
|
||
int headerHeight = newHeight * 0.1; | ||
|
||
// Calculate the height of widgets in the header subtracting a small margin | ||
int widgetHeight = headerHeight - 5; | ||
|
||
// Determine widths for specific widgets as percentages of total width | ||
int comboBoxesWidgetWidth = newWidth * 0.10; | ||
int addressWidgetWidth = newWidth * 0.25; | ||
|
||
dateWidget->setFixedWidth(comboBoxesWidgetWidth); | ||
typeWidget->setFixedWidth(comboBoxesWidgetWidth); | ||
amountWidget->setFixedWidth(comboBoxesWidgetWidth); | ||
instantsendWidget->setFixedWidth(comboBoxesWidgetWidth); | ||
|
||
int tableViewHeight = newHeight - headerHeight; | ||
|
||
// Calculate and set column widths based on new width, keeping proportions | ||
int statusColumnWidth = newWidth * 0.05; | ||
int watchOnlyColumnWidth = newWidth * 0.05; | ||
int instantSendColumnWidth = newWidth * 0.05; | ||
int dateColumnWidth = newWidth * 0.08; | ||
int typeColumnWidth = newWidth * 0.10; | ||
int addressColumnWidth = newWidth * 0.25; | ||
|
||
transactionView->setColumnWidth(TransactionTableModel::Status, statusColumnWidth); | ||
transactionView->setColumnWidth(TransactionTableModel::Watchonly, watchOnlyColumnWidth); | ||
transactionView->setColumnWidth(TransactionTableModel::InstantSend, instantSendColumnWidth); | ||
transactionView->setColumnWidth(TransactionTableModel::Date, dateColumnWidth); | ||
transactionView->setColumnWidth(TransactionTableModel::Type, typeColumnWidth); | ||
transactionView->setColumnWidth(TransactionTableModel::ToAddress, addressColumnWidth); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Refactor the resizeEvent
method to use constants for magic numbers.
The method uses several magic numbers (e.g., 0.1
, 5
, 0.10
, 0.25
) for calculating dimensions. It's recommended to define these as constants at the beginning of the method or class to improve readability and maintainability. This also makes it easier to adjust these values in the future without having to modify multiple lines of code.
src/qt/transactionview.cpp
Outdated
void TransactionView::adjustTextSize(int width,int height){ | ||
|
||
int fontSize = std::max(12, std::min(width, height) / 70); | ||
QFont font = this->font(); | ||
font.setPointSize(fontSize); | ||
|
||
// Set font size for all labels | ||
transactionView->setFont(font); | ||
transactionView->horizontalHeader()->setFont(font); | ||
transactionView->verticalHeader()->setFont(font); | ||
dateWidget->setFont(font); | ||
typeWidget->setFont(font); | ||
amountWidget->setFont(font); | ||
instantsendWidget->setFont(font); | ||
addressWidget->setFont(font); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Optimize the adjustTextSize
method by caching the font object.
Currently, the adjustTextSize
method recalculates and sets the font size for multiple widgets each time it's called. This could be optimized by caching the QFont
object after setting its point size, rather than creating a new QFont
object each time. This would reduce the overhead of font manipulation and improve performance, especially during frequent resize events.
- QFont font = this->font();
- font.setPointSize(fontSize);
+ static QFont cachedFont = this->font();
+ if (cachedFont.pointSize() != fontSize) {
+ cachedFont.setPointSize(fontSize);
+ transactionView->setFont(cachedFont);
+ transactionView->horizontalHeader()->setFont(cachedFont);
+ transactionView->verticalHeader()->setFont(cachedFont);
+ dateWidget->setFont(cachedFont);
+ typeWidget->setFont(cachedFont);
+ amountWidget->setFont(cachedFont);
+ instantsendWidget->setFont(cachedFont);
+ addressWidget->setFont(cachedFont);
+ }
Committable suggestion was skipped due low confidence.
302ef0c
to
44da2da
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
Outside diff range and nitpick comments (5)
src/qt/masternodelist.h (1)
14-14
: Add a brief comment describing the purpose of includingQResizeEvent
.src/qt/receivecoinsdialog.h (1)
18-18
: Add a brief comment describing the purpose of includingQResizeEvent
.src/qt/overviewpage.h (1)
19-20
: Add a brief comment describing the purpose of includingQResizeEvent
.src/qt/sendcoinsdialog.cpp (2)
1407-1426
: Ensure the magic number0.15
is documented or made configurable.Consider defining this value as a constant at the beginning of the file or as a class member variable, with a descriptive name and comments explaining its purpose. This will improve code readability and maintainability.
1431-1432
: Document or make the scaling factor131.3
configurable.This scaling factor determines the base font size relative to the window width. Consider defining it as a constant with a descriptive name and comments explaining its purpose, similar to the previous suggestion about the magic number
0.15
.
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files selected for processing (14)
- src/qt/bitcoingui.cpp (3 hunks)
- src/qt/bitcoingui.h (3 hunks)
- src/qt/masternodelist.cpp (1 hunks)
- src/qt/masternodelist.h (2 hunks)
- src/qt/overviewpage.cpp (4 hunks)
- src/qt/overviewpage.h (3 hunks)
- src/qt/receivecoinsdialog.cpp (2 hunks)
- src/qt/receivecoinsdialog.h (3 hunks)
- src/qt/sendcoinsdialog.cpp (1 hunks)
- src/qt/sendcoinsdialog.h (2 hunks)
- src/qt/sendcoinsentry.cpp (2 hunks)
- src/qt/sendcoinsentry.h (1 hunks)
- src/qt/transactionview.cpp (2 hunks)
- src/qt/transactionview.h (2 hunks)
Files not summarized due to errors (2)
- src/qt/overviewpage.cpp: Error: Server error. Please try again later.
- src/qt/overviewpage.h: Error: Server error. Please try again later.
Files not reviewed due to errors (1)
- src/qt/receivecoinsdialog.cpp (no review received)
Additional comments not posted (23)
src/qt/masternodelist.h (1)
42-43
: Ensure that theresizeEvent
andadjustTextSize
implementations in the corresponding.cpp
file handle dynamic resizing and text adjustment efficiently. Consider adding parameter validation insideadjustTextSize
.src/qt/sendcoinsentry.h (1)
76-77
: Ensure that theresizeEvent
andadjustTextSize
implementations in the corresponding.cpp
file are efficient and handle dynamic resizing and text adjustment properly. Consider adding parameter validation insideadjustTextSize
.src/qt/receivecoinsdialog.h (2)
62-62
: Ensure that theresizeEvent
implementation in the corresponding.cpp
file handles dynamic resizing efficiently.
82-82
: Ensure that theadjustTextSize
implementation in the corresponding.cpp
file handles text size adjustments based on dynamic window sizes efficiently.Verification successful
The
adjustTextSize
function is indeed implemented insrc/qt/receivecoinsdialog.cpp
:
src/qt/receivecoinsdialog.cpp:void ReceiveCoinsDialog::adjustTextSize(int width,int height){
Given this information, we should review the implementation to ensure it handles text size adjustments efficiently.
The implementation of the
adjustTextSize
function inreceivecoinsdialog.cpp
adjusts the font size based on the window dimensions and updates the font size for various UI elements. This approach seems reasonable and should handle dynamic window sizes efficiently.
src/qt/receivecoinsdialog.cpp
:void ReceiveCoinsDialog::adjustTextSize(int width,int height){ const double fontSizeScalingFactor = 70.0; int baseFontSize = std::min(width, height) / fontSizeScalingFactor; int fontSize = std::max(12, baseFontSize); QFont font = this->font(); font.setPointSize(fontSize); // Set font size for all labels ui->reuseAddress->setFont(font); ui->label_4->setFont(font); ui->label_3->setFont(font); ui->addressTypeLabel->setFont(font); ui->label_5->setFont(font); ui->label_2->setFont(font); ui->label->setFont(font); ui->label_7->setFont(font); ui->label_6->setFont(font); ui->receiveButton->setFont(font); ui->clearButton->setFont(font); ui->showRequestButton->setFont(font); ui->removeRequestButton->setFont(font); ui->addressTypeCombobox->setFont(font); ui->addressTypeHistoryCombobox->setFont(font); ui->recentRequestsView->setFont(font); ui->recentRequestsView->horizontalHeader()->setFont(font); ui->recentRequestsView->verticalHeader()->setFont(font); }This confirms that the
adjustTextSize
function is implemented and handles text size adjustments based on dynamic window sizes efficiently.Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Verify the implementation of adjustTextSize in receivecoinsdialog.cpp ast-grep --lang cpp --pattern $'void ReceiveCoinsDialog::adjustTextSize(int width, int height) { $$$ }' src/qt/receivecoinsdialog.cppLength of output: 136
Script:
#!/bin/bash # Search for the implementation of adjustTextSize in the entire codebase ast-grep --lang cpp --pattern $'void ReceiveCoinsDialog::adjustTextSize(int width, int height) { $$$ }'Length of output: 106
Script:
#!/bin/bash # Search for the declaration of adjustTextSize in the entire codebase ast-grep --lang cpp --pattern 'void adjustTextSize(int width, int height);'Length of output: 77
Script:
#!/bin/bash # Search for the term adjustTextSize in the entire codebase to gather more context rg 'adjustTextSize'Length of output: 1380
Script:
#!/bin/bash # Display the implementation of adjustTextSize in receivecoinsdialog.cpp sed -n '/void ReceiveCoinsDialog::adjustTextSize(int width,int height){/,/}/p' src/qt/receivecoinsdialog.cppLength of output: 1166
src/qt/overviewpage.h (2)
49-49
: Ensure that theresizeEvent
implementation in the corresponding.cpp
file handles dynamic resizing efficiently.
95-95
: Ensure that theadjustTextSize
implementation in the corresponding.cpp
file handles text size adjustments based on dynamic window sizes efficiently.Verification successful
The
adjustTextSize
method inoverviewpage.cpp
is implemented and adjusts the font sizes of various UI components based on the window width. The method appears to handle text size adjustments efficiently by calculating a base font size and applying it to multiple UI elements.
adjustTextSize
method implementation starts at line 556 and ends at line 602 insrc/qt/overviewpage.cpp
.The implementation seems to be in order, ensuring that text sizes are adjusted dynamically based on the window size.
Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Verify the implementation of adjustTextSize in overviewpage.cpp ast-grep --lang cpp --pattern $'void OverviewPage::adjustTextSize(int width, int height) { $$$ }' src/qt/overviewpage.cppLength of output: 124
Script:
#!/bin/bash # Confirm the presence of the OverviewPage class in overviewpage.cpp ast-grep --lang cpp --pattern $'class OverviewPage { $$$ }' src/qt/overviewpage.cpp # Search for the adjustTextSize method within the OverviewPage class ast-grep --lang cpp --pattern $'void OverviewPage::adjustTextSize(int width, int height) { $$$ }' src/qt/overviewpage.cppLength of output: 556
Script:
#!/bin/bash # Verify the presence of the OverviewPage class in overviewpage.cpp rg "class OverviewPage" src/qt/overviewpage.cpp # Verify the presence of the adjustTextSize method in overviewpage.cpp rg "void OverviewPage::adjustTextSize" src/qt/overviewpage.cppLength of output: 172
Script:
#!/bin/bash # Extract the implementation of the adjustTextSize method in overviewpage.cpp ast-grep --lang cpp --pattern $'void OverviewPage::adjustTextSize(int width, int height) { $$$ }' src/qt/overviewpage.cpp --jsonLength of output: 134
Script:
#!/bin/bash # Locate the adjustTextSize method in overviewpage.cpp rg -n "void OverviewPage::adjustTextSize" src/qt/overviewpage.cpp # Extract the implementation of the adjustTextSize method using sed # Assuming the method starts at line <start_line> and ends at line <end_line> start_line=$(rg -n "void OverviewPage::adjustTextSize" src/qt/overviewpage.cpp | cut -d: -f2) end_line=$(tail -n +$start_line src/qt/overviewpage.cpp | grep -n '}' | head -n 1 | cut -d: -f1) end_line=$((start_line + end_line - 1)) sed -n "${start_line},${end_line}p" src/qt/overviewpage.cppLength of output: 636
Script:
#!/bin/bash # Locate the adjustTextSize method in overviewpage.cpp start_line=$(rg -n "void OverviewPage::adjustTextSize" src/qt/overviewpage.cpp | cut -d: -f1) # Extract the implementation of the adjustTextSize method using sed end_line=$(tail -n +$start_line src/qt/overviewpage.cpp | grep -n '}' | head -n 1 | cut -d: -f1) end_line=$((start_line + end_line - 1)) sed -n "${start_line},${end_line}p" src/qt/overviewpage.cppLength of output: 2039
src/qt/transactionview.h (2)
12-12
: AddedQResizeEvent
include to support new resizing functionality.
41-42
: AddedresizeEvent
andadjustTextSize
methods to dynamically handle UI resizing.Ensure these methods are properly implemented in the corresponding
.cpp
file to effectively manage UI scaling.src/qt/sendcoinsdialog.h (1)
70-71
: AddedresizeEvent
andadjustTextSize
methods to dynamically handle resizing inSendCoinsDialog
.Ensure these methods are properly implemented in the corresponding
.cpp
file to effectively manage UI scaling.src/qt/sendcoinsentry.cpp (2)
17-17
: IncludedQResizeEvent
to support resizing functionality inSendCoinsEntry
.
269-307
: ImplementedresizeEvent
andadjustTextSize
methods to handle dynamic resizing and text adjustments inSendCoinsEntry
.This implementation dynamically adjusts font sizes based on the widget's size, which should enhance usability across different display sizes.
Verify that the font scaling factor and the minimum font size are appropriate for all supported resolutions.src/qt/bitcoingui.h (3)
20-21
: Included<QPushButton>
and<QWidget>
which are necessary for UI components inBitcoinGUI
.
126-127
: Streamlined the declaration oftoolbar
andlogoLabel
by removing explicit type declarations.This change simplifies the code and aligns with modern C++ practices. Ensure that these components are correctly initialized in the constructor to prevent any null reference issues.
147-147
: AddedresizeEvent
declaration to handle resizing inBitcoinGUI
.Ensure this method is properly implemented in the corresponding
.cpp
file to manage UI scaling effectively.src/qt/masternodelist.cpp (2)
371-397
: LGTM! The dynamic resizing logic for the Masternode list columns is implemented correctly.
398-415
: Good implementation of dynamic text resizing based on window dimensions. This will enhance readability across different display settings.src/qt/overviewpage.cpp (2)
502-554
: The implementation ofresizeEvent
efficiently handles dynamic resizing by adjusting widget dimensions based on the window size. However, consider adding theoverride
specifier to ensure clarity that this method is overriding a virtual function from the base class.
556-601
: TheadjustTextSize
method effectively scales font sizes based on window dimensions, ensuring UI text remains legible across different resolutions. However, consider adding theoverride
specifier to clarify that this method is overriding a virtual function from the base class.src/qt/transactionview.cpp (3)
714-755
: Refactor to use constants for magic numbers inresizeEvent
.The use of magic numbers for dimensions and percentages (e.g.,
0.1
,5
,0.10
,0.25
) should be replaced with named constants for better readability and maintainability. This has been previously noted and the recommendation remains relevant.
757-774
: Optimize font adjustment inadjustTextSize
by caching the font object.Consider caching the
QFont
object after setting its point size, rather than creating a newQFont
object each time the method is called. This would reduce overhead and improve performance, especially during frequent resize events. A committable suggestion was made previously but was skipped due to low confidence. Revisiting this might be beneficial.
714-755
: Consider adding a minimum size constraint for widgets inresizeEvent
.The current implementation does not specify a minimum size for widgets, which might lead to UI elements being too small to interact with under certain conditions. Setting a reasonable minimum size for the widgets to ensure they remain usable regardless of the window size is advisable.
src/qt/bitcoingui.cpp (2)
Line range hint
513-526
: Simplified declarations increateToolBars
function enhance readability and maintainability.
1478-1499
: TheresizeEvent
method correctly handles dynamic resizing of toolbar actions, ensuring UI elements scale properly with window size changes.
44da2da
to
e14108d
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files selected for processing (6)
- src/qt/masternodelist.cpp (1 hunks)
- src/qt/overviewpage.cpp (1 hunks)
- src/qt/receivecoinsdialog.cpp (2 hunks)
- src/qt/sendcoinsdialog.cpp (1 hunks)
- src/qt/sendcoinsentry.cpp (2 hunks)
- src/qt/transactionview.cpp (2 hunks)
Files skipped from review as they are similar to previous changes (5)
- src/qt/masternodelist.cpp
- src/qt/receivecoinsdialog.cpp
- src/qt/sendcoinsdialog.cpp
- src/qt/sendcoinsentry.cpp
- src/qt/transactionview.cpp
New Features
Bug Fixes
Refactor
resizeEvent
handlers across multiple UI components to utilize dynamic sizing calculations instead of fixed pixel values. This change simplifies future UI adjustments and enhances code maintainability.