// newFromStorage creates a config page builder with the given config storage. // func newFromStorage(source cftype.Source, log cdtype.Logger, storage cftype.Storage, originalConf, gettextDomain string) *grouper { grouper := &grouper{ Builder: NewBuilder(source, log, storage, originalConf, gettextDomain), } storage.SetBuilder(grouper) grouper.free = grouper.Builder.Free grouper.Builder.Connect("destroy", func() { grouper.free() }) return grouper }