There's a few small issues left over from #15450:

* [Focusing](https://github.com/bitcoin/bitcoin/pull/15450#pullrequestreview-282297760) on the `Encrypt Wallet` dialog after clicking `Create Wallet`.
> ```cpp
> m_passphrase_dialog->setWindowModality(Qt::ApplicationModal); 
> m_passphrase_dialog->show();
> ```

* Wallet [name escaping issue](https://github.com/bitcoin/bitcoin/pull/15450#pullrequestreview-282297760):
> This is at least one inconsistency where if you create a wallet with a HTML escaped character in the name, i.e Alice & Bob, then the & will not be shown in some menus / dialogs.

* Nits from this [review](https://github.com/bitcoin/bitcoin/pull/15450#pullrequestreview-284450044). 
: QObject(parent)
    , m_activity_thread(new QThread(this))
    , m_activity_worker(new QObject)
    , m_node(node)
    , m_platform_style(platform_style)
    , m_options_model(options_model)
{
    m_handler_load_wallet = m_node.handleLoadWallet([this](std::unique_ptr<interfaces::Wallet> wallet) {
        getOrCreateWallet(std::move(wallet));
    });
    for (std::unique_ptr<interfaces::Wallet>& wallet : m_node.getWallets()) {
        getOrCreateWallet(std::move(wallet));
    }
    m_activity_worker->moveToThread(m_activity_thread);
    m_activity_thread->start();
}
WalletController::~WalletController()
{
    m_activity_thread->quit();
    m_activity_thread->wait();
    delete m_activity_worker;
}
std::vector<WalletModel*> WalletController::getOpenWallets() const
{
    QMutexLocker locker(&m_mutex);
    return m_wallets;
}
std::map<std::string, bool> WalletController::listWalletDir() const