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). 
: WalletControllerActivity(wallet_controller, parent_widget)
{
}
void OpenWalletActivity::finish()
{
    m_progress_dialog->hide();
    if (!m_error_message.empty()) {
        QMessageBox::critical(m_parent_widget, tr("Open wallet failed"), QString::fromStdString(m_error_message));
    } else if (!m_warning_message.empty()) {
        QMessageBox::warning(m_parent_widget, tr("Open wallet warning"), QString::fromStdString(m_warning_message));
    }
    if (m_wallet_model) Q_EMIT opened(m_wallet_model);
    Q_EMIT finished();
}
void OpenWalletActivity::open(const std::string& path)
{
    QString name = path.empty() ? QString("["+tr("default wallet")+"]") : QString::fromStdString(path);
    showProgressDialog(tr("Opening Wallet <b>%1</b>...").arg(name.toHtmlEscaped()));
    QTimer::singleShot(0, worker(), [this, path] {
        std::unique_ptr<interfaces::Wallet> wallet = node().loadWallet(path, m_error_message, m_warning_message);
        if (wallet) m_wallet_model = m_wallet_controller->getOrCreateWallet(std::move(wallet));
        QTimer::singleShot(0, this, &OpenWalletActivity::finish);
    });
}