parent
76a91813d8
commit
caad1b2c06
48 changed files with 326 additions and 1087 deletions
config
|
|
@ -45,9 +45,6 @@ type UIConfig struct {
|
|||
NextMessageOnDelete bool `ini:"next-message-on-delete"`
|
||||
CompletionDelay time.Duration `ini:"completion-delay"`
|
||||
CompletionPopovers bool `ini:"completion-popovers"`
|
||||
StyleSetDirs []string `ini:"stylesets-dirs", delim:":"`
|
||||
StyleSetName string `ini:"styleset-name"`
|
||||
style StyleSet
|
||||
}
|
||||
|
||||
type ContextType int
|
||||
|
|
@ -335,11 +332,6 @@ func (config *AercConfig) LoadConfig(file *ini.File) error {
|
|||
if err := ui.MapTo(&config.Ui); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
stylesetsDirs := ui.Key("stylesets-dirs").String()
|
||||
if stylesetsDirs != "" {
|
||||
config.Ui.StyleSetDirs = strings.Split(stylesetsDirs, ":")
|
||||
}
|
||||
}
|
||||
for _, sectionName := range file.SectionStrings() {
|
||||
if !strings.Contains(sectionName, "ui:") {
|
||||
|
|
@ -354,10 +346,6 @@ func (config *AercConfig) LoadConfig(file *ini.File) error {
|
|||
if err := uiSection.MapTo(&uiSubConfig); err != nil {
|
||||
return err
|
||||
}
|
||||
stylesetsDirs := uiSection.Key("stylesets-dirs").String()
|
||||
if stylesetsDirs != "" {
|
||||
uiSubConfig.StyleSetDirs = strings.Split(stylesetsDirs, ":")
|
||||
}
|
||||
contextualUi :=
|
||||
UIConfigContext{
|
||||
UiConfig: uiSubConfig,
|
||||
|
|
@ -418,19 +406,6 @@ func (config *AercConfig) LoadConfig(file *ini.File) error {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
if err := config.Ui.loadStyleSet(
|
||||
config.Ui.StyleSetDirs); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
for idx, _ := range config.ContextualUis {
|
||||
if err := config.ContextualUis[idx].UiConfig.loadStyleSet(
|
||||
config.Ui.StyleSetDirs); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
@ -491,8 +466,6 @@ func LoadConfigFromFile(root *string, sharedir string) (*AercConfig, error) {
|
|||
NextMessageOnDelete: true,
|
||||
CompletionDelay: 250 * time.Millisecond,
|
||||
CompletionPopovers: true,
|
||||
StyleSetDirs: []string{path.Join(sharedir, "stylesets")},
|
||||
StyleSetName: "default",
|
||||
},
|
||||
|
||||
ContextualUis: []UIConfigContext{},
|
||||
|
|
@ -522,7 +495,6 @@ func LoadConfigFromFile(root *string, sharedir string) (*AercConfig, error) {
|
|||
Forwards: "forward_as_body",
|
||||
},
|
||||
}
|
||||
|
||||
// These bindings are not configurable
|
||||
config.Bindings.AccountWizard.ExKey = KeyStroke{
|
||||
Key: tcell.KeyCtrlE,
|
||||
|
|
@ -533,7 +505,6 @@ func LoadConfigFromFile(root *string, sharedir string) (*AercConfig, error) {
|
|||
if err = config.LoadConfig(file); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if ui, err := file.GetSection("general"); err == nil {
|
||||
if err := ui.MapTo(&config.General); err != nil {
|
||||
return nil, err
|
||||
|
|
@ -641,17 +612,8 @@ func parseLayout(layout string) [][]string {
|
|||
return l
|
||||
}
|
||||
|
||||
func (ui *UIConfig) loadStyleSet(styleSetDirs []string) error {
|
||||
ui.style = NewStyleSet()
|
||||
if err := ui.style.ParseStyleSet(ui.StyleSetName, styleSetDirs); err != nil {
|
||||
return fmt.Errorf("Error whie parsing styleset \"%s\": %s", ui.StyleSetName, err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (config AercConfig) mergeContextualUi(baseUi UIConfig,
|
||||
contextType ContextType, s string) UIConfig {
|
||||
func (config *AercConfig) mergeContextualUi(baseUi *UIConfig,
|
||||
contextType ContextType, s string) {
|
||||
for _, contextualUi := range config.ContextualUis {
|
||||
if contextualUi.ContextType != contextType {
|
||||
continue
|
||||
|
|
@ -661,30 +623,17 @@ func (config AercConfig) mergeContextualUi(baseUi UIConfig,
|
|||
continue
|
||||
}
|
||||
|
||||
mergo.Merge(&baseUi, contextualUi.UiConfig, mergo.WithOverride)
|
||||
if contextualUi.UiConfig.StyleSetName != "" {
|
||||
baseUi.style = contextualUi.UiConfig.style
|
||||
}
|
||||
return baseUi
|
||||
mergo.MergeWithOverwrite(baseUi, contextualUi.UiConfig)
|
||||
return
|
||||
}
|
||||
|
||||
return baseUi
|
||||
}
|
||||
|
||||
func (config AercConfig) GetUiConfig(params map[ContextType]string) UIConfig {
|
||||
func (config *AercConfig) GetUiConfig(params map[ContextType]string) UIConfig {
|
||||
baseUi := config.Ui
|
||||
|
||||
for k, v := range params {
|
||||
baseUi = config.mergeContextualUi(baseUi, k, v)
|
||||
config.mergeContextualUi(&baseUi, k, v)
|
||||
}
|
||||
|
||||
return baseUi
|
||||
}
|
||||
|
||||
func (uiConfig UIConfig) GetStyle(so StyleObject) tcell.Style {
|
||||
return uiConfig.style.Get(so)
|
||||
}
|
||||
|
||||
func (uiConfig UIConfig) GetStyleSelected(so StyleObject) tcell.Style {
|
||||
return uiConfig.style.Selected(so)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue