mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-06-17 01:58:57 +02:00
refactor: Make ThreadSafeMessageBox signal void
The message will always return false (a constant) and the return value is never used. Also, annotate ThreadSafeMessageBox in the GUI code as [[nodiscard]], because it may actually return a value, which is handled for questions (but not for messages).
This commit is contained in:
@@ -219,8 +219,7 @@ public:
|
||||
virtual std::unique_ptr<Handler> handleInitMessage(InitMessageFn fn) = 0;
|
||||
|
||||
//! Register handler for message box messages.
|
||||
using MessageBoxFn =
|
||||
std::function<bool(const bilingual_str& message, unsigned int style)>;
|
||||
using MessageBoxFn = std::function<void(const bilingual_str& message, unsigned int style)>;
|
||||
virtual std::unique_ptr<Handler> handleMessageBox(MessageBoxFn fn) = 0;
|
||||
|
||||
//! Register handler for question messages.
|
||||
|
||||
@@ -13,7 +13,7 @@ using util::MakeUnorderedList;
|
||||
CClientUIInterface uiInterface;
|
||||
|
||||
struct UISignals {
|
||||
btcsignals::signal<CClientUIInterface::ThreadSafeMessageBoxSig, btcsignals::optional_last_value<bool>> ThreadSafeMessageBox;
|
||||
btcsignals::signal<CClientUIInterface::ThreadSafeMessageBoxSig> ThreadSafeMessageBox;
|
||||
btcsignals::signal<CClientUIInterface::ThreadSafeQuestionSig, btcsignals::optional_last_value<bool>> ThreadSafeQuestion;
|
||||
btcsignals::signal<CClientUIInterface::InitMessageSig> InitMessage;
|
||||
btcsignals::signal<CClientUIInterface::InitWalletSig> InitWallet;
|
||||
@@ -45,7 +45,7 @@ ADD_SIGNALS_IMPL_WRAPPER(NotifyBlockTip);
|
||||
ADD_SIGNALS_IMPL_WRAPPER(NotifyHeaderTip);
|
||||
ADD_SIGNALS_IMPL_WRAPPER(BannedListChanged);
|
||||
|
||||
bool CClientUIInterface::ThreadSafeMessageBox(const bilingual_str& message, unsigned int style) { return g_ui_signals.ThreadSafeMessageBox(message, style).value_or(false);}
|
||||
void CClientUIInterface::ThreadSafeMessageBox(const bilingual_str& message, unsigned int style) { return g_ui_signals.ThreadSafeMessageBox(message, style); }
|
||||
bool CClientUIInterface::ThreadSafeQuestion(const bilingual_str& message, const std::string& non_interactive_message, unsigned int style) { return g_ui_signals.ThreadSafeQuestion(message, non_interactive_message, style).value_or(false);}
|
||||
void CClientUIInterface::InitMessage(const std::string& message) { return g_ui_signals.InitMessage(message); }
|
||||
void CClientUIInterface::InitWallet() { return g_ui_signals.InitWallet(); }
|
||||
|
||||
@@ -72,7 +72,7 @@ public:
|
||||
btcsignals::connection signal_name##_connect(std::function<signal_name##Sig> fn)
|
||||
|
||||
/** Show message box. */
|
||||
ADD_SIGNALS_DECL_WRAPPER(ThreadSafeMessageBox, bool, const bilingual_str& message, unsigned int style);
|
||||
ADD_SIGNALS_DECL_WRAPPER(ThreadSafeMessageBox, void, const bilingual_str& message, unsigned int style);
|
||||
|
||||
/** If possible, ask the user a question. If not, falls back to ThreadSafeMessageBox(noninteractive_message, style) and returns false. */
|
||||
ADD_SIGNALS_DECL_WRAPPER(ThreadSafeQuestion, bool, const bilingual_str& message, const std::string& noninteractive_message, unsigned int style);
|
||||
|
||||
@@ -17,7 +17,7 @@ btcsignals::connection noui_ThreadSafeMessageBoxConn;
|
||||
btcsignals::connection noui_ThreadSafeQuestionConn;
|
||||
btcsignals::connection noui_InitMessageConn;
|
||||
|
||||
bool noui_ThreadSafeMessageBox(const bilingual_str& message, unsigned int style)
|
||||
void noui_ThreadSafeMessageBox(const bilingual_str& message, unsigned int style)
|
||||
{
|
||||
bool fSecure = style & CClientUIInterface::SECURE;
|
||||
style &= ~CClientUIInterface::SECURE;
|
||||
@@ -41,12 +41,12 @@ bool noui_ThreadSafeMessageBox(const bilingual_str& message, unsigned int style)
|
||||
}
|
||||
|
||||
tfm::format(std::cerr, "%s%s\n", strCaption, message.original);
|
||||
return false;
|
||||
}
|
||||
|
||||
bool noui_ThreadSafeQuestion(const bilingual_str& /* ignored interactive message */, const std::string& message, unsigned int style)
|
||||
{
|
||||
return noui_ThreadSafeMessageBox(Untranslated(message), style);
|
||||
noui_ThreadSafeMessageBox(Untranslated(message), style);
|
||||
return false; // Answer the question with false in the noui context
|
||||
}
|
||||
|
||||
void noui_InitMessage(const std::string& message)
|
||||
@@ -61,10 +61,9 @@ void noui_connect()
|
||||
noui_InitMessageConn = uiInterface.InitMessage_connect(noui_InitMessage);
|
||||
}
|
||||
|
||||
bool noui_ThreadSafeMessageBoxRedirect(const bilingual_str& message, unsigned int style)
|
||||
void noui_ThreadSafeMessageBoxRedirect(const bilingual_str& message, unsigned int style)
|
||||
{
|
||||
LogInfo("%s", message.original);
|
||||
return false;
|
||||
}
|
||||
|
||||
bool noui_ThreadSafeQuestionRedirect(const bilingual_str& /* ignored interactive message */, const std::string& message, unsigned int style)
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
struct bilingual_str;
|
||||
|
||||
/** Non-GUI handler, which logs and prints messages. */
|
||||
bool noui_ThreadSafeMessageBox(const bilingual_str& message, unsigned int style);
|
||||
void noui_ThreadSafeMessageBox(const bilingual_str& message, unsigned int style);
|
||||
/** Non-GUI handler, which logs and prints questions. */
|
||||
bool noui_ThreadSafeQuestion(const bilingual_str& /* ignored interactive message */, const std::string& message, unsigned int style);
|
||||
/** Non-GUI handler, which only logs a message. */
|
||||
|
||||
@@ -1589,7 +1589,7 @@ void BitcoinGUI::showModalOverlay()
|
||||
modalOverlay->toggleVisibility();
|
||||
}
|
||||
|
||||
static bool ThreadSafeMessageBox(BitcoinGUI* gui, const bilingual_str& message, unsigned int style)
|
||||
[[nodiscard]] static bool ThreadSafeMessageBox(BitcoinGUI* gui, const bilingual_str& message, unsigned int style)
|
||||
{
|
||||
bool modal = (style & CClientUIInterface::MODAL);
|
||||
// The SECURE flag has no effect in the Qt GUI.
|
||||
@@ -1621,7 +1621,7 @@ void BitcoinGUI::subscribeToCoreSignals()
|
||||
{
|
||||
// Connect signals to client
|
||||
m_handler_message_box = m_node.handleMessageBox([this](const bilingual_str& message, unsigned int style) {
|
||||
return ThreadSafeMessageBox(this, message, style);
|
||||
(void)ThreadSafeMessageBox(this, message, style);
|
||||
});
|
||||
m_handler_question = m_node.handleQuestion([this](const bilingual_str& message, const std::string& /*non_interactive_message*/, unsigned int style) {
|
||||
return ThreadSafeMessageBox(this, message, style);
|
||||
|
||||
Reference in New Issue
Block a user