LCOV - code coverage report
Current view: top level - src/node - interface_ui.cpp (source / functions) Hit Total Coverage
Test: total_coverage.info Lines: 29 41 70.7 %
Date: 2026-06-25 07:23:43 Functions: 26 39 66.7 %

          Line data    Source code
       1             : // Copyright (c) 2010-2021 The Bitcoin Core developers
       2             : // Distributed under the MIT software license, see the accompanying
       3             : // file COPYING or http://www.opensource.org/licenses/mit-license.php.
       4             : 
       5             : #include <node/interface_ui.h>
       6             : 
       7             : #include <util/translation.h>
       8             : 
       9             : #include <boost/signals2/optional_last_value.hpp>
      10             : #include <boost/signals2/signal.hpp>
      11             : 
      12             : CClientUIInterface uiInterface;
      13             : 
      14        3308 : struct UISignals {
      15             :     boost::signals2::signal<CClientUIInterface::ThreadSafeMessageBoxSig, boost::signals2::optional_last_value<bool>> ThreadSafeMessageBox;
      16             :     boost::signals2::signal<CClientUIInterface::ThreadSafeQuestionSig, boost::signals2::optional_last_value<bool>> ThreadSafeQuestion;
      17             :     boost::signals2::signal<CClientUIInterface::InitMessageSig> InitMessage;
      18             :     boost::signals2::signal<CClientUIInterface::InitWalletSig> InitWallet;
      19             :     boost::signals2::signal<CClientUIInterface::NotifyNumConnectionsChangedSig> NotifyNumConnectionsChanged;
      20             :     boost::signals2::signal<CClientUIInterface::NotifyNetworkActiveChangedSig> NotifyNetworkActiveChanged;
      21             :     boost::signals2::signal<CClientUIInterface::NotifyAlertChangedSig> NotifyAlertChanged;
      22             :     boost::signals2::signal<CClientUIInterface::ShowProgressSig> ShowProgress;
      23             :     boost::signals2::signal<CClientUIInterface::NotifyBlockTipSig> NotifyBlockTip;
      24             :     boost::signals2::signal<CClientUIInterface::NotifyChainLockSig> NotifyChainLock;
      25             :     boost::signals2::signal<CClientUIInterface::NotifyHeaderTipSig> NotifyHeaderTip;
      26             :     boost::signals2::signal<CClientUIInterface::NotifyGovernanceChangedSig> NotifyGovernanceChanged;
      27             :     boost::signals2::signal<CClientUIInterface::NotifyInstantSendChangedSig> NotifyInstantSendChanged;
      28             :     boost::signals2::signal<CClientUIInterface::NotifyMasternodeListChangedSig> NotifyMasternodeListChanged;
      29             :     boost::signals2::signal<CClientUIInterface::NotifyAdditionalDataSyncProgressChangedSig> NotifyAdditionalDataSyncProgressChanged;
      30             :     boost::signals2::signal<CClientUIInterface::BannedListChangedSig> BannedListChanged;
      31             : };
      32        3308 : static UISignals g_ui_signals;
      33             : 
      34             : #define ADD_SIGNALS_IMPL_WRAPPER(signal_name)                                                                 \
      35             :     boost::signals2::connection CClientUIInterface::signal_name##_connect(std::function<signal_name##Sig> fn) \
      36             :     {                                                                                                         \
      37             :         return g_ui_signals.signal_name.connect(fn);                                                          \
      38             :     }
      39             : 
      40        3390 : ADD_SIGNALS_IMPL_WRAPPER(ThreadSafeMessageBox);
      41        3390 : ADD_SIGNALS_IMPL_WRAPPER(ThreadSafeQuestion);
      42        6409 : ADD_SIGNALS_IMPL_WRAPPER(InitMessage);
      43           0 : ADD_SIGNALS_IMPL_WRAPPER(InitWallet);
      44           0 : ADD_SIGNALS_IMPL_WRAPPER(NotifyNumConnectionsChanged);
      45           0 : ADD_SIGNALS_IMPL_WRAPPER(NotifyNetworkActiveChanged);
      46           0 : ADD_SIGNALS_IMPL_WRAPPER(NotifyAlertChanged);
      47           0 : ADD_SIGNALS_IMPL_WRAPPER(ShowProgress);
      48        3918 : ADD_SIGNALS_IMPL_WRAPPER(NotifyBlockTip);
      49           4 : ADD_SIGNALS_IMPL_WRAPPER(NotifyChainLock);
      50           0 : ADD_SIGNALS_IMPL_WRAPPER(NotifyHeaderTip);
      51           0 : ADD_SIGNALS_IMPL_WRAPPER(NotifyGovernanceChanged);
      52           0 : ADD_SIGNALS_IMPL_WRAPPER(NotifyInstantSendChanged);
      53           0 : ADD_SIGNALS_IMPL_WRAPPER(NotifyMasternodeListChanged);
      54           0 : ADD_SIGNALS_IMPL_WRAPPER(NotifyAdditionalDataSyncProgressChanged);
      55           0 : ADD_SIGNALS_IMPL_WRAPPER(BannedListChanged);
      56             : 
      57         333 : bool CClientUIInterface::ThreadSafeMessageBox(const bilingual_str& message, const std::string& caption, unsigned int style) { return g_ui_signals.ThreadSafeMessageBox(message, caption, style).value_or(false);}
      58          18 : bool CClientUIInterface::ThreadSafeQuestion(const bilingual_str& message, const std::string& non_interactive_message, const std::string& caption, unsigned int style) { return g_ui_signals.ThreadSafeQuestion(message, non_interactive_message, caption, style).value_or(false);}
      59       21237 : void CClientUIInterface::InitMessage(const std::string& message) { return g_ui_signals.InitMessage(message); }
      60        3023 : void CClientUIInterface::InitWallet() { return g_ui_signals.InitWallet(); }
      61       13855 : void CClientUIInterface::NotifyNumConnectionsChanged(int newNumConnections) { return g_ui_signals.NotifyNumConnectionsChanged(newNumConnections); }
      62         374 : void CClientUIInterface::NotifyNetworkActiveChanged(bool networkActive) { return g_ui_signals.NotifyNetworkActiveChanged(networkActive); }
      63           4 : void CClientUIInterface::NotifyAlertChanged() { return g_ui_signals.NotifyAlertChanged(); }
      64       23762 : void CClientUIInterface::ShowProgress(const std::string& title, int nProgress, bool resume_possible) { return g_ui_signals.ShowProgress(title, nProgress, resume_possible); }
      65      245018 : void CClientUIInterface::NotifyBlockTip(SynchronizationState s, const CBlockIndex* i) { return g_ui_signals.NotifyBlockTip(s, i); }
      66       13549 : void CClientUIInterface::NotifyChainLock(const std::string& bestChainLockHash, int bestChainLockHeight) { return g_ui_signals.NotifyChainLock(bestChainLockHash, bestChainLockHeight); }
      67      216239 : void CClientUIInterface::NotifyHeaderTip(SynchronizationState s, const CBlockIndex* i) { return g_ui_signals.NotifyHeaderTip(s, i); }
      68        1780 : void CClientUIInterface::NotifyGovernanceChanged() { return g_ui_signals.NotifyGovernanceChanged(); }
      69         805 : void CClientUIInterface::NotifyInstantSendChanged() { return g_ui_signals.NotifyInstantSendChanged(); }
      70      105505 : void CClientUIInterface::NotifyMasternodeListChanged(const CDeterministicMNList& list, const CBlockIndex* i) { return g_ui_signals.NotifyMasternodeListChanged(list, i); }
      71        9413 : void CClientUIInterface::NotifyAdditionalDataSyncProgressChanged(double nSyncProgress) { return g_ui_signals.NotifyAdditionalDataSyncProgressChanged(nSyncProgress); }
      72          68 : void CClientUIInterface::BannedListChanged() { return g_ui_signals.BannedListChanged(); }
      73             : 
      74         298 : bool InitError(const bilingual_str& str)
      75             : {
      76         298 :     uiInterface.ThreadSafeMessageBox(str, "", CClientUIInterface::MSG_ERROR);
      77         298 :     return false;
      78           0 : }
      79             : 
      80          34 : void InitWarning(const bilingual_str& str)
      81             : {
      82          34 :     uiInterface.ThreadSafeMessageBox(str, "", CClientUIInterface::MSG_WARNING);
      83          34 : }

Generated by: LCOV version 1.16