【发布时间】:2014-11-15 10:28:26
【问题描述】:
所以我正在编写一个扩展程序,它有一些偏好。 我使用便利.js(如here 所述)将首选项存储在 GSettings 中。 相关代码如下:
const SETTINGS_APP_SORT_MODE = 'sort-mode';
this._settings = Convenience.getSettings("org.gnome.shell.extensions.workspace-alt-tab"); //get schema
this._settings.set_string(SETTINGS_APP_SORT_MODE,modeCapture); //set value
this._sortMode = this._settings.get_string(SETTINGS_APP_SORT_MODE); //get value
目前运行良好,我也可以使用命令
gsettings 监控 org.gnome.shell.extensions.workspace-alt-tab 排序模式
为了确保我真的按照自己的意愿设置了值。
但是当我尝试捕获对这些设置所做的更改以将它们反映在我的代码中时,这就是我的问题。从我在其他扩展中看到的情况来看,我猜它应该看起来像这样:
_init: function(params) {
this._settingsChanged=
this._settings.connect('changed',
Lang.bind(this,this._settingsChanged)); //get notified on every schema change
this._sortModeChangedId =
this._settings.connect('changed::' + SETTINGS_APP_SORT_MODE,
Lang.bind(this,this._sortModeChanged)); //get notified for sort-mode changes
this._sortModeChanged(); //force initialization
},
_settingsChanged: function() {
this._sortMode = this._settings.get_string(SETTINGS_APP_SORT_MODE);
log("[_settingsChanged] new sortMode: "+this._sortMode);
},
_sortModeChanged: function() {
this._sortMode = this._settings.get_string(SETTINGS_APP_SORT_MODE);
log("[_sortModeChanged] new sortMode: "+this._sortMode);
}
但问题是我只看到从 init 调用的日志行:
Gjs-消息:JS 日志:[_sortModeChanged] 新的 sortMode:最近使用的
另外,我完全不知道如何调试这种东西(即使在 LookGlass 中......)。如果有人可以指出我的愚蠢错误,或者就如何调试这类事情提供一些指示,将不胜感激!
【问题讨论】:
标签: javascript gio gjs gnome-shell-extensions