Skip to content

guitar_prometheus::AppPreferences

guitar_prometheus::AppPreferences

Persistent app-level preferences backed by juce::PropertiesFile. More…

#include <AppPreferences.h>

Public Functions

Name
AppPreferences()
voidaddToRecent(const juce::File & path)
Push a project path to the front of the recent list and persist immediately.
voidclearRecents()
Remove every entry from the recent list and persist immediately.
std::vector< juce::File >recentProjects() const
Read the current recent list from in-memory state.
juce::StringgetThemePair() const
Selected theme pair id (e.g.
voidsetThemePair(const juce::String & pairId)
Persist the selected theme pair id.
juce::StringgetThemeMode() const
Theme mode in its serialized string form (“light” / “dark” / “followSystem”).
voidsetThemeMode(const juce::String & mode)
Persist the theme mode in serialized string form.
boolgetShowBundledPresets() const
voidsetShowBundledPresets(bool show)
juce::StringgetColumnState() const
voidsetColumnState(const juce::String & state)
boolgetShowUnmappedForBundled(const juce::Uuid & profileId) const
Per-bundled-profile editor preference.
voidsetShowUnmappedForBundled(const juce::Uuid & profileId, bool show)

Public Attributes

Name
constexpr intkMaxRecents
Maximum number of recent project paths kept on disk.

Detailed Description

class guitar_prometheus::AppPreferences;

Persistent app-level preferences backed by juce::PropertiesFile.

Settings live at ~/Library/Application Support/Guitar Prometheus/preferences.settings (macOS) or the platform equivalent. The file is created on first save; missing-file load is treated as “no recents yet”. Currently exposes only the recently-opened-projects list, but additional simple key/value pairs can ride the same PropertiesFile when needed.

Public Functions Documentation

function AppPreferences

AppPreferences()

function addToRecent

void addToRecent(
const juce::File & path
)

Push a project path to the front of the recent list and persist immediately.

Duplicate paths are deduplicated; the list is capped at kMaxRecents.

function clearRecents

void clearRecents()

Remove every entry from the recent list and persist immediately.

function recentProjects

std::vector< juce::File > recentProjects() const

Read the current recent list from in-memory state.

The returned vector is in most-recent-first order.

function getThemePair

juce::String getThemePair() const

Selected theme pair id (e.g.

“default”, “fragmented”, “rapture”). Empty string when no value has been persisted yet — the caller should treat that as “use the first pair”.

function setThemePair

void setThemePair(
const juce::String & pairId
)

Persist the selected theme pair id.

Pass the stable pair id, not the display name.

function getThemeMode

juce::String getThemeMode() const

Theme mode in its serialized string form (“light” / “dark” / “followSystem”).

Empty when no value has been persisted yet — Theming::modeFromString handles that as FollowSystem.

function setThemeMode

void setThemeMode(
const juce::String & mode
)

Persist the theme mode in serialized string form.

function getShowBundledPresets

bool getShowBundledPresets() const

function setShowBundledPresets

void setShowBundledPresets(
bool show
)

function getColumnState

juce::String getColumnState() const

function setColumnState

void setColumnState(
const juce::String & state
)

function getShowUnmappedForBundled

bool getShowUnmappedForBundled(
const juce::Uuid & profileId
) const

Per-bundled-profile editor preference.

Bundled profiles are read-only on disk, so the “show unmapped techniques” toggle for them lives in app prefs keyed by profile UUID.

Default is true — every bundled profile starts with unmapped techniques visible the first time the user opens it.

function setShowUnmappedForBundled

void setShowUnmappedForBundled(
const juce::Uuid & profileId,
bool show
)

Public Attributes Documentation

variable kMaxRecents

static constexpr int kMaxRecents = 10;

Maximum number of recent project paths kept on disk.

Older entries are discarded when the list grows past the limit.


Updated on 2026-05-29 at 07:39:52 +0000