feat(lite): add ObsidianDragonLite build mode and gate full-node features
Add --lite build flow and ObsidianDragonLite target naming, hide full-node pages/features in lite mode, enforce pool-only mining in lite, and include chat port feasibility audit documentation.
This commit is contained in:
@@ -1073,6 +1073,7 @@ void RenderSettingsPage(App* app) {
|
||||
|
||||
// Privacy, Network & Daemon checkboxes — all on one line, shrink text to fit
|
||||
{
|
||||
const bool showDaemonOptions = !app->isLiteBuild();
|
||||
float cbSpacing = Layout::spacingMd();
|
||||
float fh = ImGui::GetFrameHeight();
|
||||
float inner = ImGui::GetStyle().ItemInnerSpacing.x;
|
||||
@@ -1080,9 +1081,12 @@ void RenderSettingsPage(App* app) {
|
||||
|
||||
float totalW = cbW(TR("save_z_transactions")) + cbSpacing
|
||||
+ cbW(TR("auto_shield")) + cbSpacing
|
||||
+ cbW(TR("use_tor")) + cbSpacing
|
||||
+ cbW(TR("keep_daemon")) + cbSpacing
|
||||
+ cbW(TR("stop_external"));
|
||||
+ cbW(TR("use_tor")) + cbSpacing;
|
||||
if (showDaemonOptions) {
|
||||
totalW += cbW(TR("keep_daemon")) + cbSpacing
|
||||
+ cbW(TR("stop_external")) + cbSpacing;
|
||||
}
|
||||
totalW += cbW(TR("verbose_logging"));
|
||||
float scale = (totalW > contentW) ? contentW / totalW : 1.0f;
|
||||
if (scale < 1.0f) ImGui::SetWindowFontScale(scale);
|
||||
float sp = cbSpacing * scale;
|
||||
@@ -1095,18 +1099,20 @@ void RenderSettingsPage(App* app) {
|
||||
ImGui::SameLine(0, sp);
|
||||
ImGui::Checkbox(TrId("use_tor", "tor").c_str(), &s_settingsState.use_tor);
|
||||
if (ImGui::IsItemHovered()) ImGui::SetTooltip("%s", TR("tt_tor"));
|
||||
ImGui::SameLine(0, sp);
|
||||
if (ImGui::Checkbox(TrId("keep_daemon", "keep_dmn").c_str(), &s_settingsState.keep_daemon_running)) {
|
||||
saveSettingsPageState(app->settings());
|
||||
if (showDaemonOptions) {
|
||||
ImGui::SameLine(0, sp);
|
||||
if (ImGui::Checkbox(TrId("keep_daemon", "keep_dmn").c_str(), &s_settingsState.keep_daemon_running)) {
|
||||
saveSettingsPageState(app->settings());
|
||||
}
|
||||
if (ImGui::IsItemHovered())
|
||||
ImGui::SetTooltip("%s", TR("tt_keep_daemon"));
|
||||
ImGui::SameLine(0, sp);
|
||||
if (ImGui::Checkbox(TrId("stop_external", "stop_ext").c_str(), &s_settingsState.stop_external_daemon)) {
|
||||
saveSettingsPageState(app->settings());
|
||||
}
|
||||
if (ImGui::IsItemHovered())
|
||||
ImGui::SetTooltip("%s", TR("tt_stop_external"));
|
||||
}
|
||||
if (ImGui::IsItemHovered())
|
||||
ImGui::SetTooltip("%s", TR("tt_keep_daemon"));
|
||||
ImGui::SameLine(0, sp);
|
||||
if (ImGui::Checkbox(TrId("stop_external", "stop_ext").c_str(), &s_settingsState.stop_external_daemon)) {
|
||||
saveSettingsPageState(app->settings());
|
||||
}
|
||||
if (ImGui::IsItemHovered())
|
||||
ImGui::SetTooltip("%s", TR("tt_stop_external"));
|
||||
ImGui::SameLine(0, sp);
|
||||
if (ImGui::Checkbox(TrId("verbose_logging", "verbose").c_str(), &s_settingsState.verbose_logging)) {
|
||||
dragonx::util::Logger::instance().setVerbose(s_settingsState.verbose_logging);
|
||||
@@ -1469,8 +1475,8 @@ void RenderSettingsPage(App* app) {
|
||||
}
|
||||
|
||||
ImGui::Dummy(ImVec2(0, Layout::spacingSm()));
|
||||
// Node maintenance buttons
|
||||
{
|
||||
// Node maintenance buttons (full-node build only)
|
||||
if (!app->isLiteBuild()) {
|
||||
ImFont* btnFont = S.resolveFont("button");
|
||||
float nodeBtnW;
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user