@@ -206,6 +206,32 @@ std::shared_ptr<CWallet> SetupDescriptorsWallet(interfaces::Node& node, TestChai
206
206
return wallet;
207
207
}
208
208
209
+ struct MiniGUI {
210
+ public:
211
+ SendCoinsDialog sendCoinsDialog;
212
+ TransactionView transactionView;
213
+ OptionsModel optionsModel;
214
+ std::unique_ptr<ClientModel> clientModel;
215
+ std::unique_ptr<WalletModel> walletModel;
216
+
217
+ MiniGUI (interfaces::Node& node, const PlatformStyle* platformStyle) : sendCoinsDialog(platformStyle), transactionView(platformStyle), optionsModel(node) {
218
+ bilingual_str error;
219
+ QVERIFY (optionsModel.Init (error));
220
+ clientModel = std::make_unique<ClientModel>(node, &optionsModel);
221
+ }
222
+
223
+ void initModelForWallet (interfaces::Node& node, const std::shared_ptr<CWallet>& wallet, const PlatformStyle* platformStyle)
224
+ {
225
+ WalletContext& context = *node.walletLoader ().context ();
226
+ AddWallet (context, wallet);
227
+ walletModel = std::make_unique<WalletModel>(interfaces::MakeWallet (context, wallet), *clientModel, platformStyle);
228
+ RemoveWallet (context, wallet, /* load_on_start= */ std::nullopt);
229
+ sendCoinsDialog.setModel (walletModel.get ());
230
+ transactionView.setModel (walletModel.get ());
231
+ }
232
+
233
+ };
234
+
209
235
// ! Simple qt wallet tests.
210
236
//
211
237
// Test widgets can be debugged interactively calling show() on them and
@@ -223,18 +249,11 @@ void TestGUI(interfaces::Node& node, const std::shared_ptr<CWallet>& wallet)
223
249
{
224
250
// Create widgets for sending coins and listing transactions.
225
251
std::unique_ptr<const PlatformStyle> platformStyle (PlatformStyle::instantiate (" other" ));
226
- SendCoinsDialog sendCoinsDialog (platformStyle.get ());
227
- TransactionView transactionView (platformStyle.get ());
228
- OptionsModel optionsModel (node);
229
- bilingual_str error;
230
- QVERIFY (optionsModel.Init (error));
231
- ClientModel clientModel (node, &optionsModel);
232
- WalletContext& context = *node.walletLoader ().context ();
233
- AddWallet (context, wallet);
234
- WalletModel walletModel (interfaces::MakeWallet (context, wallet), clientModel, platformStyle.get ());
235
- RemoveWallet (context, wallet, /* load_on_start= */ std::nullopt);
236
- sendCoinsDialog.setModel (&walletModel);
237
- transactionView.setModel (&walletModel);
252
+ MiniGUI mini_gui (node, platformStyle.get ());
253
+ mini_gui.initModelForWallet (node, wallet, platformStyle.get ());
254
+ WalletModel& walletModel = *mini_gui.walletModel ;
255
+ SendCoinsDialog& sendCoinsDialog = mini_gui.sendCoinsDialog ;
256
+ TransactionView& transactionView = mini_gui.transactionView ;
238
257
239
258
// Update walletModel cached balance which will trigger an update for the 'labelBalance' QLabel.
240
259
walletModel.pollBalanceChanged ();
0 commit comments