Release v0.6.26: OpenBao settings synchronization with per-setting conflicts

This commit is contained in:
2026-11-02 00:37:57 +02:00
parent 908985d775
commit 22edece7cf
24 changed files with 1442 additions and 29 deletions
+14
View File
@@ -82,6 +82,7 @@ LRESULT CALLBACK controller(HWND window, UINT message, WPARAM wp, LPARAM lp)
App::App(HINSTANCE h, bool, const std::filesystem::path &) : instance(h)
{
current = this;
data = dataDirectory();
layouts = readLayouts();
}
App::~App()
@@ -110,6 +111,13 @@ void App::reloadLayouts()
settings = decodeSettings(bytes, layouts);
}
void App::clearHistory() { request(*this, ConfigClearHistory); }
Bytes App::syncConflictData() { return request(*this, ConfigSyncConflicts); }
std::wstring App::syncCommand(int action, const std::vector<SyncChoice> &choices)
{
auto result = action == 4 ? request(*this, ConfigSyncResolve, encodeSyncChoices(choices)) :
request(*this, ConfigSync, Bytes{static_cast<unsigned char>(action)});
return wide(std::string(result.begin(), result.end()));
}
void App::setHotkeyCapture(HWND field)
{
hotkeyCapture = field;
@@ -180,6 +188,12 @@ int runConfigurator(HINSTANCE instance, bool snippets, bool logs)
if (app.settingsWindow && !IsWindowEnabled(app.settingsWindow))
{
HWND popup = GetLastActivePopup(app.settingsWindow);
while (!IsWindowEnabled(popup))
{
HWND next = GetLastActivePopup(popup);
if (next == popup) break;
popup = next;
}
if (popup != app.settingsWindow && IsDialogMessageW(popup, &message)) continue;
}
if (app.settingsWindow && IsDialogMessageW(app.settingsWindow, &message)) continue;