aboutsummaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
authorKoni Marti <koni.marti@gmail.com>2024-08-07 20:52:30 +0200
committerRobin Jarry <robin@jarry.cc>2024-08-20 12:26:47 +0200
commit2a83d3e9c872f38b8dd7b7a214310d87adefb25e (patch)
tree2ba015f1f9e63fca89f127e7798cb025e19942f9 /config
parent50647d589544abab35bcfb3d120bd2b6f907525e (diff)
downloadaerc-2a83d3e9c872f38b8dd7b7a214310d87adefb25e.tar.gz
config: extract load styleset function
Extract the function to load stylesets. Add a function to clear the contextual UI cache. Signed-off-by: Koni Marti <koni.marti@gmail.com> Tested-by: Inwit <inwit@sindominio.net> Acked-by: Robin Jarry <robin@jarry.cc>
Diffstat (limited to 'config')
-rw-r--r--config/ui.go52
1 files changed, 33 insertions, 19 deletions
diff --git a/config/ui.go b/config/ui.go
index 578ad294..bcdc6ef4 100644
--- a/config/ui.go
+++ b/config/ui.go
@@ -192,28 +192,10 @@ func parseUi(file *ini.File) error {
)
}
- if err := Ui.loadStyleSet(Ui.StyleSetDirs); err != nil {
+ if err := Ui.LoadStyle(); err != nil {
return err
}
- for _, contextualUi := range Ui.contextualUis {
- if contextualUi.UiConfig.StyleSetName == "" &&
- len(contextualUi.UiConfig.StyleSetDirs) == 0 {
- continue // no need to do anything if nothing is overridden
- }
- // fill in the missing part from the base
- if contextualUi.UiConfig.StyleSetName == "" {
- contextualUi.UiConfig.StyleSetName = Ui.StyleSetName
- } else if len(contextualUi.UiConfig.StyleSetDirs) == 0 {
- contextualUi.UiConfig.StyleSetDirs = Ui.StyleSetDirs
- }
- // since at least one of them has changed, load the styleset
- if err := contextualUi.UiConfig.loadStyleSet(
- contextualUi.UiConfig.StyleSetDirs); err != nil {
- return err
- }
- }
-
log.Debugf("aerc.conf: [ui] %#v", Ui)
return nil
@@ -313,6 +295,38 @@ func (*UIConfig) ParseCompletionMinChars(section *ini.Section, key *ini.Key) (in
return key.Int()
}
+func (ui *UIConfig) ClearCache() {
+ for k := range ui.contextualCache {
+ delete(ui.contextualCache, k)
+ }
+}
+
+func (ui *UIConfig) LoadStyle() error {
+ if err := ui.loadStyleSet(ui.StyleSetDirs); err != nil {
+ return err
+ }
+
+ for _, contextualUi := range ui.contextualUis {
+ if contextualUi.UiConfig.StyleSetName == "" &&
+ len(contextualUi.UiConfig.StyleSetDirs) == 0 {
+ continue // no need to do anything if nothing is overridden
+ }
+ // fill in the missing part from the base
+ if contextualUi.UiConfig.StyleSetName == "" {
+ contextualUi.UiConfig.StyleSetName = ui.StyleSetName
+ } else if len(contextualUi.UiConfig.StyleSetDirs) == 0 {
+ contextualUi.UiConfig.StyleSetDirs = ui.StyleSetDirs
+ }
+ // since at least one of them has changed, load the styleset
+ if err := contextualUi.UiConfig.loadStyleSet(
+ contextualUi.UiConfig.StyleSetDirs); err != nil {
+ return err
+ }
+ }
+
+ return nil
+}
+
func (ui *UIConfig) loadStyleSet(styleSetDirs []string) error {
ui.style = NewStyleSet()
err := ui.style.LoadStyleSet(ui.StyleSetName, styleSetDirs)