Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
cb9d0bf
Initial plan
Copilot Feb 6, 2026
937e53c
Add getdashboardmetrics RPC endpoint for dogebox integration
Copilot Feb 6, 2026
6e6c3d2
Add formatting tests and example output for dashboard metrics
Copilot Feb 6, 2026
3cebbc9
Improve code quality: remove magic number and add clarifying comment
Copilot Feb 6, 2026
3ef0f77
Add comprehensive project summary
Copilot Feb 6, 2026
57220d6
Start rewriting dashboard metrics to match libdogecoin spec
Copilot Feb 6, 2026
46c1b39
Rewrite getdashboardmetrics to match libdogecoin dashboard spec
Copilot Feb 6, 2026
6a6e4e7
Address code review feedback: improve performance and types
Copilot Feb 6, 2026
4bfe0e2
Add comprehensive documentation for dashboard metrics
Copilot Feb 6, 2026
a96301c
Complete dashboard metrics implementation with documentation
Copilot Feb 6, 2026
7bb4e47
Rename smpv metrics to mempool metrics for clarity
Copilot Feb 19, 2026
8b5ed09
Add Qt dashboard files and Makefile integration
Copilot Feb 19, 2026
dd88e72
Add complete dashboard implementation summary
Copilot Feb 19, 2026
14817b4
Integrate dashboard into GUI with toolbar button
Copilot Feb 19, 2026
ee52169
Add complete integration documentation
Copilot Feb 19, 2026
e614c3e
Fix compilation error in dashb0rdpage.cpp
Copilot Feb 19, 2026
1f81d1d
Add documentation for compilation fix
Copilot Feb 19, 2026
1a0971b
Remove unnecessary dashboard documentation files
Copilot Feb 19, 2026
1de36a7
Fix linking errors: Move ParseScriptFlags and FormatScriptFlags to co…
Copilot Feb 19, 2026
eb30072
Add build fix summary documentation
Copilot Feb 19, 2026
4206b7e
Add build instructions for regenerating build system
Copilot Feb 19, 2026
7183cb8
Add comprehensive dashboard implementation README
Copilot Feb 19, 2026
5d2616b
Add TROUBLESHOOTING.md for "undefined reference to main" errors
Copilot Feb 19, 2026
f7b6300
Add QUICK_START.md for easy onboarding
Copilot Feb 19, 2026
6a204ec
Add comprehensive README_DASHBOARD.md master document
Copilot Feb 19, 2026
c5bbf94
Fix dashboard tab switching issue
Copilot Feb 20, 2026
263b1f1
Save progress: Comprehensive dashboard redesign approach documented
Copilot Feb 20, 2026
be6173c
Add comprehensive dashboard redesign implementation guide
Copilot Feb 20, 2026
9f3b047
Add quick reference guide for completing dashboard implementation
Copilot Feb 20, 2026
0ebf401
Initial plan
Copilot Feb 20, 2026
d62f4a0
fix dashboard rpc metrics grid sparklines and tab switching fallback
Copilot Feb 20, 2026
e76e40f
fix uptime display edge case in dashboard metrics
Copilot Feb 20, 2026
dfbf290
fix qt compatibility for dashboard chain tip timestamp conversion
Copilot Feb 20, 2026
0d6e5cd
feat dashboard customizable metric layout with drag drop and right-cl…
Copilot Feb 20, 2026
d5adbab
fix dashboard metric toggle action state handling
Copilot Feb 20, 2026
11d541f
fix dashboard drag target placement and add ghost drag preview
Copilot Feb 20, 2026
025b93d
improve dashboard metric clarity and add timestamped sparkline hover …
Copilot Feb 20, 2026
bbe74cb
chore remove redundant dashboard and build markdown docs
Copilot Feb 21, 2026
23342f8
chore standardize dashboard module copyright headers and comments
Copilot Feb 23, 2026
7daae5d
fix dashboard tooltip units add metric definitions and configurable s…
Copilot Feb 23, 2026
6f20e4c
chore remove unused dashb0rdpage_new header
Copilot Feb 23, 2026
36f86ec
fix dashboard tile spacing fit and initial visibility reflow
Copilot Feb 23, 2026
ee3fd03
fix dashboard initial sparse render and keep fixed tile spacing
Copilot Feb 23, 2026
a05c569
fix dashboard shrink reflow and remove max column cap
Copilot Feb 23, 2026
a515717
fix metric description tooltip hover visibility on dashboard tiles
Copilot Feb 23, 2026
b6cbcd3
remove analyzed blocks dashboard metric tile
Copilot Feb 23, 2026
120cf21
simplify walletframe navigation by removing explicit stack switching
Copilot Feb 24, 2026
34d614f
add txid metadata to sparkline points and decode-on-doubleclick dialog
Copilot Feb 24, 2026
92051bc
revert walletframe currentWalletView fallback logic
Copilot Feb 24, 2026
8184546
fix title-only metric tooltips and single decoded tx dialog on point …
Copilot Feb 24, 2026
8566a44
use expandable context tree and block-aware point details in sparklin…
Copilot Feb 24, 2026
33050a8
restore walletframe qmap fallback in currentWalletView
Copilot Feb 24, 2026
b647d00
adjust metric card heights to grow vertically without forced oversizing
Copilot Feb 24, 2026
05b7250
improve block tx tree drilldown and title tooltip handling with wider…
Copilot Feb 24, 2026
7f1ec7b
fix block-context tx doubleclick decode path in sparkline tree
Copilot Feb 24, 2026
991945c
restore original currentWalletView behavior in walletframe
Copilot Feb 24, 2026
230886a
restore walletframe per-function map-based wallet lookup behavior
Copilot Feb 24, 2026
dc85e6b
revert walletframe function rewrites back to currentWalletView usage
Copilot Feb 24, 2026
2c563b7
refactor sparkline metadata handling into dashboard page
Copilot Feb 25, 2026
12c78e5
remove dashboard example output and markdown doc artifacts
Copilot Feb 25, 2026
54d3bf3
restore QMap fallback in walletframe currentWalletView
Copilot Feb 25, 2026
0cbf18c
restore walletframe inline QMap lookup blocks and simplify currentWal…
Copilot Feb 25, 2026
96dfac3
reset walletframe to minimal dashboard-only integration flow
Copilot Feb 25, 2026
5ce6c7c
restore exact QMap lookup blocks in walletframe functions
Copilot Feb 25, 2026
29fbccc
reset walletframe to minimal dashb0rd integration only
Copilot Feb 25, 2026
e20381b
move dashb0rd into walletview and restore walletframe qmap routing style
Copilot Feb 26, 2026
a9184b5
remove inline walletframe fallback blocks and centralize qmap lookup
Copilot Feb 27, 2026
11b8598
restore walletframe original minimal routing pattern
Copilot Feb 27, 2026
c65923e
restore qmap fallback blocks across walletframe handlers
Copilot Feb 27, 2026
3753347
revert walletframe handlers to currentWalletView routing pattern
Copilot Feb 27, 2026
48a8bf2
highlight matching scriptPubKey asm for script metric points
Copilot Feb 27, 2026
cbdd902
optimize dashboard by pausing polling when tab is hidden
Copilot Mar 2, 2026
b298829
revert walletframe changes
edtubbs Mar 3, 2026
93f5ef3
revert ParseScriptFlags move from core back to tests
Copilot Mar 16, 2026
223a92d
revert script/core parser files completely as requested
Copilot Mar 16, 2026
461fcbb
reset four script/core files exactly to origin/master versions
Copilot Mar 16, 2026
868460c
fix getdashboardmetrics cli numeric arg conversion
Copilot Mar 16, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions src/Makefile.qt.include
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,8 @@ QT_MOC_CPP = \
qt/moc_coincontroldialog.cpp \
qt/moc_coincontroltreewidget.cpp \
qt/moc_csvmodelwriter.cpp \
qt/moc_dashb0rd.cpp \
qt/moc_dashb0rdpage.cpp \
qt/moc_editaddressdialog.cpp \
qt/moc_guiutil.cpp \
qt/moc_intro.cpp \
Expand All @@ -131,6 +133,7 @@ QT_MOC_CPP = \
qt/moc_sendcoinsdialog.cpp \
qt/moc_sendcoinsentry.cpp \
qt/moc_signverifymessagedialog.cpp \
qt/moc_sparklinewidget.cpp \
qt/moc_splashscreen.cpp \
qt/moc_trafficgraphwidget.cpp \
qt/moc_transactiondesc.cpp \
Expand Down Expand Up @@ -175,6 +178,8 @@ BITCOIN_QT_H = \
qt/coincontroldialog.h \
qt/coincontroltreewidget.h \
qt/csvmodelwriter.h \
qt/dashb0rd.h \
qt/dashb0rdpage.h \
qt/editaddressdialog.h \
qt/guiconstants.h \
qt/guiutil.h \
Expand All @@ -201,6 +206,7 @@ BITCOIN_QT_H = \
qt/sendcoinsdialog.h \
qt/sendcoinsentry.h \
qt/signverifymessagedialog.h \
qt/sparklinewidget.h \
qt/splashscreen.h \
qt/trafficgraphwidget.h \
qt/transactiondesc.h \
Expand Down Expand Up @@ -286,6 +292,8 @@ BITCOIN_QT_BASE_CPP = \
qt/bitcoinunits.cpp \
qt/clientmodel.cpp \
qt/csvmodelwriter.cpp \
qt/dashb0rd.cpp \
qt/dashb0rdpage.cpp \
qt/guiutil.cpp \
qt/intro.cpp \
qt/modaloverlay.cpp \
Expand All @@ -298,6 +306,7 @@ BITCOIN_QT_BASE_CPP = \
qt/qvalidatedlineedit.cpp \
qt/qvaluecombobox.cpp \
qt/rpcconsole.cpp \
qt/sparklinewidget.cpp \
qt/splashscreen.cpp \
qt/trafficgraphwidget.cpp \
qt/utilitydialog.cpp \
Expand Down
17 changes: 17 additions & 0 deletions src/qt/bitcoingui.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ BitcoinGUI::BitcoinGUI(const PlatformStyle *_platformStyle, const NetworkStyle *
appMenuBar(0),
overviewAction(0),
historyAction(0),
dashb0rdAction(0),
quitAction(0),
sendCoinsAction(0),
sendCoinsMenuAction(0),
Expand Down Expand Up @@ -327,6 +328,13 @@ void BitcoinGUI::createActions()
historyAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_4));
tabGroup->addAction(historyAction);

dashb0rdAction = new QAction(platformStyle->SingleColorIcon(":/icons/about"), tr("&Dashb0rd"), this);
dashb0rdAction->setStatusTip(tr("View dashboard metrics"));
dashb0rdAction->setToolTip(dashb0rdAction->statusTip());
dashb0rdAction->setCheckable(true);
dashb0rdAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_5));
tabGroup->addAction(dashb0rdAction);

#ifdef ENABLE_WALLET
// These showNormalIfMinimized are needed because Send Coins and Receive Coins
// can be triggered from the tray menu, and need to show the GUI to be useful.
Expand All @@ -342,6 +350,8 @@ void BitcoinGUI::createActions()
connect(receiveCoinsMenuAction, SIGNAL(triggered()), this, SLOT(gotoReceiveCoinsPage()));
connect(historyAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized()));
connect(historyAction, SIGNAL(triggered()), this, SLOT(gotoHistoryPage()));
connect(dashb0rdAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized()));
connect(dashb0rdAction, SIGNAL(triggered()), this, SLOT(gotoDashb0rdPage()));
#endif // ENABLE_WALLET

quitAction = new QAction(platformStyle->TextColorIcon(":/icons/quit"), tr("E&xit"), this);
Expand Down Expand Up @@ -484,6 +494,7 @@ void BitcoinGUI::createToolBars()
toolbar->addAction(sendCoinsAction);
toolbar->addAction(receiveCoinsAction);
toolbar->addAction(historyAction);
toolbar->addAction(dashb0rdAction);
overviewAction->setChecked(true);
}
}
Expand Down Expand Up @@ -714,6 +725,12 @@ void BitcoinGUI::gotoHistoryPage()
if (walletFrame) walletFrame->gotoHistoryPage();
}

void BitcoinGUI::gotoDashb0rdPage()
{
dashb0rdAction->setChecked(true);
if (walletFrame) walletFrame->gotoDashb0rdPage();
}

void BitcoinGUI::gotoReceiveCoinsPage()
{
receiveCoinsAction->setChecked(true);
Expand Down
3 changes: 3 additions & 0 deletions src/qt/bitcoingui.h
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,7 @@ class BitcoinGUI : public QMainWindow
QMenuBar *appMenuBar;
QAction *overviewAction;
QAction *historyAction;
QAction *dashb0rdAction;
QAction *quitAction;
QAction *sendCoinsAction;
QAction *sendCoinsMenuAction;
Expand Down Expand Up @@ -200,6 +201,8 @@ private Q_SLOTS:
void gotoOverviewPage();
/** Switch to history (transactions) page */
void gotoHistoryPage();
/** Switch to dashboard page */
void gotoDashb0rdPage();
/** Switch to receive coins page */
void gotoReceiveCoinsPage();
/** Switch to send coins page */
Expand Down
41 changes: 41 additions & 0 deletions src/qt/dashb0rd.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
// Copyright (c) 2011-2016 The Bitcoin Core developers
// Copyright (c) 2021-2026 The Dogecoin Core developers
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.

#include "dashb0rd.h"

#include "dashb0rdpage.h"

#include <QVBoxLayout>

Dashb0rd::Dashb0rd(const PlatformStyle* platformStyle, QWidget* parent)
: QWidget(parent),
m_platformStyle(platformStyle),
m_page(nullptr)
{
// Embed the dashboard page directly so this wrapper can forward model updates.
QVBoxLayout* root = new QVBoxLayout(this);
root->setContentsMargins(0, 0, 0, 0);
root->setSpacing(0);

// Constructor order for Dashb0rdPage is (platformStyle, parent).
m_page = new Dashb0rdPage(m_platformStyle, this);
root->addWidget(m_page);
}

Dashb0rd::~Dashb0rd()
{
}

void Dashb0rd::setClientModel(ClientModel* model)
{
// Forward the shared client model to the underlying dashboard page.
if (m_page) m_page->setClientModel(model);
}

void Dashb0rd::setWalletModel(WalletModel* model)
{
// Forward the wallet model so page-level wallet features can use it.
if (m_page) m_page->setWalletModel(model);
}
32 changes: 32 additions & 0 deletions src/qt/dashb0rd.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
// Copyright (c) 2011-2016 The Bitcoin Core developers
// Copyright (c) 2021-2026 The Dogecoin Core developers
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.

#ifndef BITCOIN_QT_DASHB0RD_H
#define BITCOIN_QT_DASHB0RD_H

#include <QWidget>

class ClientModel;
class WalletModel;
class PlatformStyle;
class Dashb0rdPage;

class Dashb0rd : public QWidget
{
Q_OBJECT

public:
explicit Dashb0rd(const PlatformStyle* platformStyle, QWidget* parent = nullptr);
~Dashb0rd();

void setClientModel(ClientModel* model);
void setWalletModel(WalletModel* model);

private:
const PlatformStyle* m_platformStyle;
Dashb0rdPage* m_page;
};

#endif // BITCOIN_QT_DASHB0RD_H
Loading
Loading