mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-04 17:33:05 +00:00
mime/screenedge:: lazy load gsettings.
Change-Id: I37bcf419da514f8302cdc84dcdfdc716f658a4fc
This commit is contained in:
parent
845fcf87aa
commit
a03ee07958
@ -10,6 +10,7 @@ import (
|
||||
"pkg.linuxdeepin.com/lib/glib-2.0"
|
||||
dutils "pkg.linuxdeepin.com/lib/utils"
|
||||
"strings"
|
||||
"sync"
|
||||
)
|
||||
|
||||
type DefaultApps struct {
|
||||
@ -39,11 +40,21 @@ const (
|
||||
|
||||
var (
|
||||
_TerminalBlacklist = []string{"guake"}
|
||||
|
||||
_TerminalGSettings = gio.NewSettings(_TERMINAL_SCHEMA)
|
||||
mimeWatcher *fsnotify.Watcher
|
||||
)
|
||||
|
||||
var _TerminalGSettings = func() func() *gio.Settings {
|
||||
var terminalGSettings *gio.Settings
|
||||
var initTerminalGSettings sync.Once
|
||||
|
||||
return func() *gio.Settings {
|
||||
initTerminalGSettings.Do(func() {
|
||||
terminalGSettings = gio.NewSettings(_TERMINAL_SCHEMA)
|
||||
})
|
||||
return terminalGSettings
|
||||
}
|
||||
}()
|
||||
|
||||
func NewDAppInfo(gioApp *gio.AppInfo) AppInfo {
|
||||
dappInfo := AppInfo{}
|
||||
if gioApp == nil {
|
||||
@ -87,7 +98,7 @@ func (dapp *DefaultApps) AppsListViaType(typeName string) []AppInfo {
|
||||
|
||||
func (dapp *DefaultApps) DefaultAppViaType(typeName string) AppInfo {
|
||||
if typeName == "terminal" {
|
||||
exec := _TerminalGSettings.GetString("exec")
|
||||
exec := _TerminalGSettings().GetString("exec")
|
||||
terminalApps := dapp.AppsListViaType(typeName)
|
||||
|
||||
for _, v := range terminalApps {
|
||||
@ -110,7 +121,7 @@ func (dapp *DefaultApps) SetDefaultAppViaType(typeName, appID string) bool {
|
||||
return false
|
||||
}
|
||||
|
||||
if _TerminalGSettings.SetString("exec", appInfo.Exec) {
|
||||
if _TerminalGSettings().SetString("exec", appInfo.Exec) {
|
||||
gio.SettingsSync()
|
||||
return true
|
||||
}
|
||||
|
@ -55,7 +55,7 @@ func (dapp *DefaultApps) Reset() bool {
|
||||
homeDir+"/"+MIME_CACHE_FILE, err)
|
||||
return false
|
||||
}
|
||||
_TerminalGSettings.Reset("exec")
|
||||
_TerminalGSettings().Reset("exec")
|
||||
|
||||
return true
|
||||
}
|
||||
|
@ -32,15 +32,25 @@ import (
|
||||
)
|
||||
|
||||
var (
|
||||
dspObj *libdsp.Display
|
||||
areaObj *libarea.XMouseArea
|
||||
launchObj *launcher.Launcher
|
||||
logger = log.NewLogger(ZONE_DEST)
|
||||
zoneSettings = gio.NewSettings("com.deepin.dde.zone")
|
||||
dspObj *libdsp.Display
|
||||
areaObj *libarea.XMouseArea
|
||||
launchObj *launcher.Launcher
|
||||
logger = log.NewLogger(ZONE_DEST)
|
||||
|
||||
mutex = new(sync.Mutex)
|
||||
edgeActionMap = make(map[string]string)
|
||||
)
|
||||
var zoneSettings = func() func() *gio.Settings {
|
||||
var initZoneSettings sync.Once
|
||||
var _zoneSettings *gio.Settings
|
||||
|
||||
return func() *gio.Settings {
|
||||
initZoneSettings.Do(func() {
|
||||
_zoneSettings = gio.NewSettings("com.deepin.dde.zone")
|
||||
})
|
||||
return _zoneSettings
|
||||
}
|
||||
}()
|
||||
|
||||
func (op *Manager) EnableZoneDetected(enable bool) {
|
||||
if enable {
|
||||
@ -58,7 +68,7 @@ func (op *Manager) SetTopLeft(value string) {
|
||||
}
|
||||
|
||||
func (op *Manager) TopLeftAction() string {
|
||||
return zoneSettings.GetString("left-up")
|
||||
return zoneSettings().GetString("left-up")
|
||||
}
|
||||
|
||||
func (op *Manager) SetBottomLeft(value string) {
|
||||
@ -68,7 +78,7 @@ func (op *Manager) SetBottomLeft(value string) {
|
||||
}
|
||||
|
||||
func (op *Manager) BottomLeftAction() string {
|
||||
return zoneSettings.GetString("left-down")
|
||||
return zoneSettings().GetString("left-down")
|
||||
}
|
||||
|
||||
func (op *Manager) SetTopRight(value string) {
|
||||
@ -78,7 +88,7 @@ func (op *Manager) SetTopRight(value string) {
|
||||
}
|
||||
|
||||
func (op *Manager) TopRightAction() string {
|
||||
return zoneSettings.GetString("right-up")
|
||||
return zoneSettings().GetString("right-up")
|
||||
}
|
||||
|
||||
func (op *Manager) SetBottomRight(value string) {
|
||||
@ -88,7 +98,7 @@ func (op *Manager) SetBottomRight(value string) {
|
||||
}
|
||||
|
||||
func (op *Manager) BottomRightAction() string {
|
||||
return zoneSettings.GetString("right-down")
|
||||
return zoneSettings().GetString("right-down")
|
||||
}
|
||||
|
||||
func initDBusIFC() error {
|
||||
|
@ -43,7 +43,7 @@ func isAppInWhiteList(pid uint32) bool {
|
||||
return false
|
||||
}
|
||||
|
||||
whiteList := zoneSettings.GetStrv("white-list")
|
||||
whiteList := zoneSettings().GetStrv("white-list")
|
||||
for _, v := range whiteList {
|
||||
if strings.Contains(string(contents), v) {
|
||||
return true
|
||||
@ -73,7 +73,7 @@ func isAppInBlackList() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
blackList := zoneSettings.GetStrv("black-list")
|
||||
blackList := zoneSettings().GetStrv("black-list")
|
||||
for _, target := range blackList {
|
||||
if strings.Contains(string(contents), target) {
|
||||
return true
|
||||
|
@ -148,12 +148,12 @@ func isInArea(x, y int32, area areaRange) bool {
|
||||
}
|
||||
|
||||
func getEdgeForCommand(cmd string) string {
|
||||
keys := zoneSettings.ListKeys()
|
||||
keys := zoneSettings().ListKeys()
|
||||
|
||||
for _, key := range keys {
|
||||
switch key {
|
||||
case "left-up", "left-down", "right-up", "right-down":
|
||||
v := zoneSettings.GetString(key)
|
||||
v := zoneSettings().GetString(key)
|
||||
if v == cmd {
|
||||
return key
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user