fix(lite): "Open data folder" points to the actual lite wallet dir

The lite SilentDragonXLite backend stores its wallet in its own directory
(dirs::data_dir()/silentdragonxlite — %APPDATA%\silentdragonxlite on Windows,
~/.silentdragonxlite on Linux, ~/Library/Application Support/silentdragonxlite on
macOS), NOT the full-node getDragonXDataDir() (…/Hush/DRAGONX). The newly added
lite "Open data folder" button opened the wrong (full-node) directory.

Add Platform::getLiteWalletDataDir() mirroring the backend's get_zcash_data_path
for the "main" chain, and point the lite button at it. The full-node button is
unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-16 02:01:40 -05:00
parent b3251e9244
commit d54c7f9e11
3 changed files with 31 additions and 2 deletions

View File

@@ -1652,11 +1652,13 @@ void RenderSettingsPage(App* app) {
}
}
// Open the wallet data folder in the OS file manager (always available in lite).
// Open the lite wallet data folder in the OS file manager (always available in
// lite). The lite backend stores its wallet in its OWN dir (silentdragonxlite),
// NOT the full-node getDragonXDataDir().
ImGui::Dummy(ImVec2(0, Layout::spacingSm()));
ImGui::SetCursorScreenPos(ImVec2(leftX, ImGui::GetCursorScreenPos().y));
if (TactileButton(TR("settings_open_data_dir"), ImVec2(0, 0), S.resolveFont("button"))) {
util::Platform::openFolder(util::Platform::getDragonXDataDir());
util::Platform::openFolder(util::Platform::getLiteWalletDataDir());
}
if (ImGui::IsItemHovered()) ImGui::SetTooltip("%s", TR("tt_open_data_dir"));

View File

@@ -219,6 +219,24 @@ std::string Platform::getDataDir()
return getDragonXDataDir();
}
std::string Platform::getLiteWalletDataDir()
{
// Mirror the SilentDragonXLite backend's get_zcash_data_path() for the "main" chain:
// Windows/macOS: dirs::data_dir()/silentdragonxlite (data_dir = %APPDATA%, ~/Library/App Support)
// Linux: ~/.silentdragonxlite
#ifdef _WIN32
char path[MAX_PATH];
if (SUCCEEDED(SHGetFolderPathA(nullptr, CSIDL_APPDATA, nullptr, 0, path))) {
return std::string(path) + "\\silentdragonxlite\\";
}
return getHomeDir() + "\\AppData\\Roaming\\silentdragonxlite\\";
#elif defined(__APPLE__)
return getHomeDir() + "/Library/Application Support/silentdragonxlite/";
#else
return getHomeDir() + "/.silentdragonxlite/";
#endif
}
std::string Platform::getConfigDir()
{
#ifdef _WIN32

View File

@@ -61,6 +61,15 @@ public:
* @return Path like ~/.hush/DRAGONX/ or %APPDATA%\Hush\DRAGONX\
*/
static std::string getDataDir();
/**
* @brief Get the LITE wallet data directory (where the SilentDragonXLite backend stores
* silentdragonxlite-wallet.dat). Mirrors the backend's get_zcash_data_path() for the
* "main" chain: dirs::data_dir()/silentdragonxlite on Windows/macOS, ~/.silentdragonxlite
* on Linux. Distinct from getDragonXDataDir() (the full-node blocks/wallet dir).
* @return Path like ~/.silentdragonxlite/ or %APPDATA%\silentdragonxlite\
*/
static std::string getLiteWalletDataDir();
/**
* @brief Get the config directory for storing wallet exports/backups