fix: fix some minor bugs

This commit is contained in:
Daniil Polyakov 2026-04-02 22:54:49 +03:00
parent 5b1d74f237
commit b7bce31cdc
2 changed files with 21 additions and 6 deletions

View File

@ -122,23 +122,32 @@ void ExplorerWidget::navigateTo(const NavTarget& target, bool addToHistory)
} else if constexpr (std::is_same_v<T, NavBlock>) {
auto block = m_indexer->getBlockById(t.blockId);
if (block) {
auto* page = new BlockPage(*block);
auto* page = new BlockPage(*block, this);
connectPageSignals(page);
showPage(page);
} else {
qWarning("Block #%llu not found", static_cast<unsigned long long>(t.blockId));
showPage(m_mainPage);
}
} else if constexpr (std::is_same_v<T, NavTransaction>) {
auto tx = m_indexer->getTransaction(t.hash);
if (tx) {
auto* page = new TransactionPage(*tx);
auto* page = new TransactionPage(*tx, this);
connectPageSignals(page);
showPage(page);
} else {
qWarning("Transaction %s not found", qPrintable(t.hash));
showPage(m_mainPage);
}
} else if constexpr (std::is_same_v<T, NavAccount>) {
auto account = m_indexer->getAccount(t.accountId);
if (account) {
auto* page = new AccountPage(*account, m_indexer.get());
auto* page = new AccountPage(*account, m_indexer.get(), this);
connectPageSignals(page);
showPage(page);
} else {
qWarning("Account %s not found", qPrintable(t.accountId));
showPage(m_mainPage);
}
}
}, target);

View File

@ -217,7 +217,7 @@ void MainPage::refresh()
if (m_recentBlocksWidget) {
m_contentLayout->removeWidget(m_recentBlocksWidget);
delete m_recentBlocksWidget;
m_recentBlocksWidget->deleteLater();
m_recentBlocksWidget = nullptr;
m_blocksLayout = nullptr;
m_loadMoreBtn = nullptr;
@ -322,8 +322,14 @@ void MainPage::onNewBlock(const Block& block)
m_healthLabel->setText(QString("Chain height: %1").arg(block.blockId));
// Append to layout then move to top (index 0)
int countBefore = m_blocksLayout->count();
addBlockRow(m_blocksLayout, block);
auto* newRow = m_blocksLayout->itemAt(m_blocksLayout->count() - 1)->widget();
if (m_blocksLayout->count() <= countBefore) return;
QLayoutItem* item = m_blocksLayout->itemAt(m_blocksLayout->count() - 1);
if (!item || !item->widget()) return;
QWidget* newRow = item->widget();
m_blocksLayout->removeWidget(newRow);
m_blocksLayout->insertWidget(0, newRow);
}
@ -332,7 +338,7 @@ void MainPage::clearSearchResults()
{
if (m_searchResultsWidget) {
m_contentLayout->removeWidget(m_searchResultsWidget);
delete m_searchResultsWidget;
m_searchResultsWidget->deleteLater();
m_searchResultsWidget = nullptr;
}
if (m_recentBlocksWidget) {