diff --git a/src/ui/windows/wallets_dialog.h b/src/ui/windows/wallets_dialog.h index b04cf38..ab55999 100644 --- a/src/ui/windows/wallets_dialog.h +++ b/src/ui/windows/wallets_dialog.h @@ -209,6 +209,18 @@ public: if (t) s += "\xE2\x80\xA6"; return s; }; + // The containing sub-directory as its last 1-2 components (e.g. "…/Backups/2021"), so several + // same-named wallet.dat files surfaced by the recursive scan are distinguishable at a glance. + auto shortSubdir = [](std::string d) { + while (d.size() > 1 && (d.back() == '/' || d.back() == '\\')) d.pop_back(); + const auto p2 = d.find_last_of("/\\"); + if (p2 == std::string::npos) return d; // no separator: whole thing + std::string leaf = d.substr(p2 + 1); + const auto p1 = (p2 > 0) ? d.find_last_of("/\\", p2 - 1) : std::string::npos; + std::string parent = (p1 == std::string::npos) ? d.substr(0, p2) : d.substr(p1 + 1, p2 - p1 - 1); + std::string out = parent.empty() ? leaf : (parent + "/" + leaf); + return (p1 != std::string::npos && p1 > 0) ? ("\xE2\x80\xA6/" + out) : out; // "…/" if deeper + }; for (std::size_t k = 0; k < s_order.size(); ++k) { const std::size_t i = s_order[k]; // sorted display order → actual s_rows index @@ -301,7 +313,9 @@ public: // wallet index gives the authoritative user-facing ADDRESS count; the btree walk gives an // exact tx count and a spendable-KEY count (labeled "keys", not "addresses", since it counts // change keys the daemon's address list omits — a different figure for the same wallet). - std::string ms = util::Platform::formatFileSize((uint64_t)r.sizeBytes); + std::string ms; + if (!r.inDatadir) ms = shortSubdir(r.dir) + dot; // which sub-directory this wallet is in + ms += util::Platform::formatFileSize((uint64_t)r.sizeBytes); char b[80]; if (meta && meta->cachedAddressCount >= 0) { snprintf(b, sizeof(b), "%s%lld %s", dot, (long long)meta->cachedAddressCount, TR("wallets_col_addresses")); ms += b; } else if (pres.hasCounts && pres.keyCount > 0) { snprintf(b, sizeof(b), "%s%d %s", dot, pres.keyCount, TR("wallets_col_keys")); ms += b; }