@@ -31,18 +31,19 @@ var possibleConfigPaths = []string{
31
31
}
32
32
33
33
type config struct {
34
- Shortcuts map [string ]interface {} `toml:"shortcuts"`
35
- Favorites map [string ]interface {} `toml:"favorites"`
36
- Portfolio map [string ]interface {} `toml:"portfolio"`
37
- PriceAlerts map [string ]interface {} `toml:"price_alerts"`
38
- Currency interface {} `toml:"currency"`
39
- DefaultView interface {} `toml:"default_view"`
40
- CoinMarketCap map [string ]interface {} `toml:"coinmarketcap"`
41
- API interface {} `toml:"api"`
42
- Colorscheme interface {} `toml:"colorscheme"`
43
- RefreshRate interface {} `toml:"refresh_rate"`
44
- CacheDir interface {} `toml:"cache_dir"`
45
- Table map [string ]interface {} `toml:"table"`
34
+ Shortcuts map [string ]interface {} `toml:"shortcuts"`
35
+ Favorites map [string ]interface {} `toml:"favorites"`
36
+ Portfolio map [string ]interface {} `toml:"portfolio"`
37
+ PriceAlerts map [string ]interface {} `toml:"price_alerts"`
38
+ Currency interface {} `toml:"currency"`
39
+ DefaultView interface {} `toml:"default_view"`
40
+ DefaultChartRange interface {} `toml:"default_chart_range"`
41
+ CoinMarketCap map [string ]interface {} `toml:"coinmarketcap"`
42
+ API interface {} `toml:"api"`
43
+ Colorscheme interface {} `toml:"colorscheme"`
44
+ RefreshRate interface {} `toml:"refresh_rate"`
45
+ CacheDir interface {} `toml:"cache_dir"`
46
+ Table map [string ]interface {} `toml:"table"`
46
47
}
47
48
48
49
// SetupConfig loads config file
@@ -69,6 +70,9 @@ func (ct *Cointop) SetupConfig() error {
69
70
if err := ct .loadDefaultViewFromConfig (); err != nil {
70
71
return err
71
72
}
73
+ if err := ct .loadDefaultChartRangeFromConfig (); err != nil {
74
+ return err
75
+ }
72
76
if err := ct .loadAPIKeysFromConfig (); err != nil {
73
77
return err
74
78
}
@@ -255,6 +259,7 @@ func (ct *Cointop) configToToml() ([]byte, error) {
255
259
256
260
var currencyIfc interface {} = ct .State .currencyConversion
257
261
var defaultViewIfc interface {} = ct .State .defaultView
262
+ var defaultChartRangeIfc interface {} = ct .State .defaultChartRange
258
263
var colorschemeIfc interface {} = ct .colorschemeName
259
264
var refreshRateIfc interface {} = uint (ct .State .refreshRate .Seconds ())
260
265
var cacheDirIfc interface {} = ct .State .cacheDir
@@ -289,18 +294,19 @@ func (ct *Cointop) configToToml() ([]byte, error) {
289
294
tableMapIfc ["keep_row_focus_on_sort" ] = keepRowFocusOnSortIfc
290
295
291
296
var inputs = & config {
292
- API : apiChoiceIfc ,
293
- Colorscheme : colorschemeIfc ,
294
- CoinMarketCap : cmcIfc ,
295
- Currency : currencyIfc ,
296
- DefaultView : defaultViewIfc ,
297
- Favorites : favoritesMapIfc ,
298
- RefreshRate : refreshRateIfc ,
299
- Shortcuts : shortcutsIfcs ,
300
- Portfolio : portfolioIfc ,
301
- PriceAlerts : priceAlertsMapIfc ,
302
- CacheDir : cacheDirIfc ,
303
- Table : tableMapIfc ,
297
+ API : apiChoiceIfc ,
298
+ Colorscheme : colorschemeIfc ,
299
+ CoinMarketCap : cmcIfc ,
300
+ Currency : currencyIfc ,
301
+ DefaultView : defaultViewIfc ,
302
+ DefaultChartRange : defaultChartRangeIfc ,
303
+ Favorites : favoritesMapIfc ,
304
+ RefreshRate : refreshRateIfc ,
305
+ Shortcuts : shortcutsIfcs ,
306
+ Portfolio : portfolioIfc ,
307
+ PriceAlerts : priceAlertsMapIfc ,
308
+ CacheDir : cacheDirIfc ,
309
+ Table : tableMapIfc ,
304
310
}
305
311
306
312
var b bytes.Buffer
@@ -399,6 +405,21 @@ func (ct *Cointop) loadDefaultViewFromConfig() error {
399
405
return nil
400
406
}
401
407
408
+ // LoadDefaultChartRangeFromConfig loads default chart range from config file to struct
409
+ func (ct * Cointop ) loadDefaultChartRangeFromConfig () error {
410
+ ct .debuglog ("loadDefaultChartRangeFromConfig()" )
411
+ if defaultChartRange , ok := ct .config .DefaultChartRange .(string ); ok {
412
+ // validate configured value
413
+ _ , present := ct .chartRangesMap [defaultChartRange ]
414
+ if ! present {
415
+ defaultChartRange = DefaultChartRange
416
+ }
417
+ ct .State .defaultChartRange = defaultChartRange
418
+ ct .State .selectedChartRange = defaultChartRange
419
+ }
420
+ return nil
421
+ }
422
+
402
423
// LoadAPIKeysFromConfig loads API keys from config file to struct
403
424
func (ct * Cointop ) loadAPIKeysFromConfig () error {
404
425
ct .debuglog ("loadAPIKeysFromConfig()" )
0 commit comments