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:
@@ -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"));
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user