mirror of
https://github.com/morgan9e/dash-to-panel
synced 2026-04-14 00:04:17 +09:00
Add and adjust preview settings
This commit is contained in:
1124
Settings.ui
1124
Settings.ui
File diff suppressed because it is too large
Load Diff
117
prefs.js
117
prefs.js
@@ -990,6 +990,13 @@ const Settings = new Lang.Class({
|
||||
'active',
|
||||
Gio.SettingsBindFlags.DEFAULT);
|
||||
|
||||
this._builder.get_object('grid_preview_title_font_color_colorbutton').connect('notify::color', Lang.bind(this, function (button) {
|
||||
let rgba = button.get_rgba();
|
||||
let css = rgba.to_string();
|
||||
let hexString = cssHexString(css);
|
||||
this._settings.set_string('window-preview-title-font-color', hexString);
|
||||
}));
|
||||
|
||||
this._builder.get_object('show_window_previews_button').connect('clicked', Lang.bind(this, function() {
|
||||
|
||||
let dialog = new Gtk.Dialog({ title: _('Window preview options'),
|
||||
@@ -1009,47 +1016,59 @@ const Settings = new Lang.Class({
|
||||
this._settings.set_int('show-window-previews-timeout', widget.get_value());
|
||||
}));
|
||||
|
||||
this._settings.bind('peek-mode',
|
||||
this._builder.get_object('peek_mode_switch'),
|
||||
'active',
|
||||
Gio.SettingsBindFlags.DEFAULT);
|
||||
this._settings.bind('window-preview-show-title',
|
||||
this._builder.get_object('preview_show_title_switch'),
|
||||
'active',
|
||||
Gio.SettingsBindFlags.DEFAULT);
|
||||
this._settings.bind('peek-mode',
|
||||
this._builder.get_object('listboxrow_enter_peek_mode_timeout'),
|
||||
'sensitive',
|
||||
Gio.SettingsBindFlags.DEFAULT);
|
||||
this._settings.bind('peek-mode',
|
||||
this._builder.get_object('listboxrow_peek_mode_opacity'),
|
||||
'sensitive',
|
||||
Gio.SettingsBindFlags.DEFAULT);
|
||||
this._settings.bind('preview-middle-click-close',
|
||||
this._builder.get_object('preview_middle_click_close_switch'),
|
||||
'active',
|
||||
Gio.SettingsBindFlags.DEFAULT);
|
||||
|
||||
this._builder.get_object('enter_peek_mode_timeout_spinbutton').set_value(this._settings.get_int('enter-peek-mode-timeout'));
|
||||
this._settings.bind('peek-mode',
|
||||
this._builder.get_object('peek_mode_switch'),
|
||||
'active',
|
||||
Gio.SettingsBindFlags.DEFAULT);
|
||||
this._settings.bind('peek-mode',
|
||||
this._builder.get_object('grid_enter_peek_mode_timeout'),
|
||||
'sensitive',
|
||||
Gio.SettingsBindFlags.DEFAULT);
|
||||
this._settings.bind('peek-mode',
|
||||
this._builder.get_object('grid_peek_mode_opacity'),
|
||||
'sensitive',
|
||||
Gio.SettingsBindFlags.DEFAULT);
|
||||
|
||||
this._settings.bind('window-preview-show-title',
|
||||
this._builder.get_object('preview_show_title_switch'),
|
||||
'active',
|
||||
Gio.SettingsBindFlags.DEFAULT);
|
||||
this._settings.bind('window-preview-show-title',
|
||||
this._builder.get_object('grid_preview_title_size'),
|
||||
'sensitive',
|
||||
Gio.SettingsBindFlags.DEFAULT);
|
||||
this._settings.bind('window-preview-show-title',
|
||||
this._builder.get_object('grid_preview_title_weight'),
|
||||
'sensitive',
|
||||
Gio.SettingsBindFlags.DEFAULT);
|
||||
this._settings.bind('window-preview-show-title',
|
||||
this._builder.get_object('grid_preview_title_font_color'),
|
||||
'sensitive',
|
||||
Gio.SettingsBindFlags.DEFAULT);
|
||||
|
||||
this._builder.get_object('enter_peek_mode_timeout_spinbutton').set_value(this._settings.get_int('enter-peek-mode-timeout'));
|
||||
this._builder.get_object('enter_peek_mode_timeout_spinbutton').connect('value-changed', Lang.bind (this, function(widget) {
|
||||
this._settings.set_int('enter-peek-mode-timeout', widget.get_value());
|
||||
}));
|
||||
|
||||
this._builder.get_object('peek_mode_opacity_spinbutton').set_value(this._settings.get_int('peek-mode-opacity'));
|
||||
this._builder.get_object('leave_timeout_spinbutton').set_value(this._settings.get_int('leave-timeout'));
|
||||
this._builder.get_object('leave_timeout_spinbutton').connect('value-changed', Lang.bind (this, function(widget) {
|
||||
this._settings.set_int('leave-timeout', widget.get_value());
|
||||
}));
|
||||
|
||||
this._builder.get_object('peek_mode_opacity_spinbutton').set_value(this._settings.get_int('peek-mode-opacity'));
|
||||
this._builder.get_object('peek_mode_opacity_spinbutton').connect('value-changed', Lang.bind (this, function(widget) {
|
||||
this._settings.set_int('peek-mode-opacity', widget.get_value());
|
||||
}));
|
||||
|
||||
this._builder.get_object('preview_width_spinbutton').set_value(this._settings.get_int('window-preview-width'));
|
||||
this._builder.get_object('preview_width_spinbutton').connect('value-changed', Lang.bind (this, function(widget) {
|
||||
this._settings.set_int('window-preview-width', widget.get_value());
|
||||
}));
|
||||
|
||||
this._builder.get_object('preview_height_spinbutton').set_value(this._settings.get_int('window-preview-height'));
|
||||
this._builder.get_object('preview_height_spinbutton').connect('value-changed', Lang.bind (this, function(widget) {
|
||||
this._settings.set_int('window-preview-height', widget.get_value());
|
||||
this._builder.get_object('preview_size_spinbutton').set_value(this._settings.get_int('window-preview-size'));
|
||||
this._builder.get_object('preview_size_spinbutton').connect('value-changed', Lang.bind (this, function(widget) {
|
||||
this._settings.set_int('window-preview-size', widget.get_value());
|
||||
}));
|
||||
|
||||
this._builder.get_object('preview_padding_spinbutton').set_value(this._settings.get_int('window-preview-padding'));
|
||||
@@ -1057,12 +1076,31 @@ const Settings = new Lang.Class({
|
||||
this._settings.set_int('window-preview-padding', widget.get_value());
|
||||
}));
|
||||
|
||||
this._builder.get_object('preview_title_size_spinbutton').set_value(this._settings.get_int('window-preview-title-font-size'));
|
||||
this._builder.get_object('preview_title_size_spinbutton').connect('value-changed', Lang.bind (this, function(widget) {
|
||||
this._settings.set_int('window-preview-title-font-size', widget.get_value());
|
||||
}));
|
||||
|
||||
this._builder.get_object('grid_preview_title_weight_combo').set_active_id(this._settings.get_string('window-preview-title-font-weight'));
|
||||
this._builder.get_object('grid_preview_title_weight_combo').connect('changed', Lang.bind (this, function(widget) {
|
||||
this._settings.set_string('window-preview-title-font-weight', widget.get_active_id());
|
||||
}));
|
||||
|
||||
(function() {
|
||||
let rgba = new Gdk.RGBA();
|
||||
rgba.parse(this._settings.get_string('window-preview-title-font-color'));
|
||||
this._builder.get_object('grid_preview_title_font_color_colorbutton').set_rgba(rgba);
|
||||
}).apply(this);
|
||||
|
||||
dialog.connect('response', Lang.bind(this, function(dialog, id) {
|
||||
if (id == 1) {
|
||||
// restore default settings
|
||||
this._settings.set_value('show-window-previews-timeout', this._settings.get_default_value('show-window-previews-timeout'));
|
||||
this._builder.get_object('preview_timeout_spinbutton').set_value(this._settings.get_int('show-window-previews-timeout'));
|
||||
|
||||
this._settings.set_value('leave-timeout', this._settings.get_default_value('leave-timeout'));
|
||||
this._builder.get_object('leave_timeout_spinbutton').set_value(this._settings.get_int('leave-timeout'));
|
||||
|
||||
this._settings.set_value('peek-mode', this._settings.get_default_value('peek-mode'));
|
||||
this._settings.set_value('window-preview-show-title', this._settings.get_default_value('window-preview-show-title'));
|
||||
this._settings.set_value('enter-peek-mode-timeout', this._settings.get_default_value('enter-peek-mode-timeout'));
|
||||
@@ -1070,17 +1108,25 @@ const Settings = new Lang.Class({
|
||||
this._settings.set_value('peek-mode-opacity', this._settings.get_default_value('peek-mode-opacity'));
|
||||
this._builder.get_object('peek_mode_opacity_spinbutton').set_value(this._settings.get_int('peek-mode-opacity'));
|
||||
|
||||
this._settings.set_value('window-preview-width', this._settings.get_default_value('window-preview-width'));
|
||||
this._builder.get_object('preview_width_spinbutton').set_value(this._settings.get_int('window-preview-width'));
|
||||
this._settings.set_value('window-preview-size', this._settings.get_default_value('window-preview-size'));
|
||||
this._builder.get_object('preview_size_spinbutton').set_value(this._settings.get_int('window-preview-size'));
|
||||
|
||||
this._settings.set_value('window-preview-height', this._settings.get_default_value('window-preview-height'));
|
||||
this._builder.get_object('preview_height_spinbutton').set_value(this._settings.get_int('window-preview-height'));
|
||||
|
||||
this._settings.set_value('window-preview-padding', this._settings.get_default_value('window-preview-padding'));
|
||||
this._builder.get_object('preview_padding_spinbutton').set_value(this._settings.get_int('window-preview-padding'));
|
||||
|
||||
this._settings.set_value('preview-middle-click-close', this._settings.get_default_value('preview-middle-click-close'));
|
||||
|
||||
this._settings.set_value('window-preview-title-font-size', this._settings.get_default_value('window-preview-title-font-size'));
|
||||
this._builder.get_object('preview_title_size_spinbutton').set_value(this._settings.get_int('window-preview-title-font-size'));
|
||||
|
||||
this._settings.set_value('window-preview-title-font-weight', this._settings.get_default_value('window-preview-title-font-weight'));
|
||||
this._builder.get_object('grid_preview_title_weight_combo').set_active_id(this._settings.get_string('window-preview-title-font-weight'));
|
||||
|
||||
this._settings.set_value('window-preview-title-font-color', this._settings.get_default_value('window-preview-title-font-color'));
|
||||
let rgba = new Gdk.RGBA();
|
||||
rgba.parse(this._settings.get_string('window-preview-title-font-color'));
|
||||
this._builder.get_object('grid_preview_title_font_color_colorbutton').set_rgba(rgba);
|
||||
|
||||
} else {
|
||||
// remove the settings box so it doesn't get destroyed;
|
||||
dialog.get_content_area().remove(box);
|
||||
@@ -1414,17 +1460,10 @@ const Settings = new Lang.Class({
|
||||
let box = this._builder.get_object('box_advanced_options');
|
||||
dialog.get_content_area().add(box);
|
||||
|
||||
this._builder.get_object('leave_timeout_spinbutton').set_value(this._settings.get_int('leave-timeout'));
|
||||
|
||||
this._builder.get_object('leave_timeout_spinbutton').connect('value-changed', Lang.bind (this, function(widget) {
|
||||
this._settings.set_int('leave-timeout', widget.get_value());
|
||||
}));
|
||||
|
||||
dialog.connect('response', Lang.bind(this, function(dialog, id) {
|
||||
if (id == 1) {
|
||||
// restore default settings
|
||||
this._settings.set_value('leave-timeout', this._settings.get_default_value('leave-timeout'));
|
||||
this._builder.get_object('leave_timeout_spinbutton').set_value(this._settings.get_int('leave-timeout'));
|
||||
|
||||
} else {
|
||||
// remove the settings box so it doesn't get destroyed;
|
||||
dialog.get_content_area().remove(box);
|
||||
|
||||
@@ -410,23 +410,28 @@
|
||||
<summary>Display title in preview</summary>
|
||||
<description>Display window title in preview</description>
|
||||
</key>
|
||||
<key type="s" name="window-preview-title-font-color">
|
||||
<default>"#dddddd"</default>
|
||||
<summary>Window previews title font color</summary>
|
||||
<description>This defines the Window previews titles font color.</description>
|
||||
</key>
|
||||
<key type="i" name="window-preview-title-font-size">
|
||||
<default>14</default>
|
||||
<summary>Window previews title font size</summary>
|
||||
<description>This defines the Window previews titles font size.</description>
|
||||
</key>
|
||||
<key name="window-preview-title-font-weight" enum="org.gnome.shell.extensions.dash-to-panel.fontWeight">
|
||||
<default>'inherit'</default>
|
||||
<summary>Font weight of window preview titles</summary>
|
||||
<description>This defines the font weight of window preview titles. Supported values: inherit (from theme), normal, lighter, bold and bolder.</description>
|
||||
</key>
|
||||
<key type="i" name="window-preview-size">
|
||||
<default>240</default>
|
||||
<summary>Window previews size</summary>
|
||||
<description>Preferred window previews size</description>
|
||||
</key>
|
||||
<key type="i" name="window-preview-width">
|
||||
<default>350</default>
|
||||
<summary>Window previews width</summary>
|
||||
<description>The width of the window previews</description>
|
||||
</key>
|
||||
<key type="i" name="window-preview-height">
|
||||
<default>200</default>
|
||||
<summary>Window previews height</summary>
|
||||
<description>The height of the window previews</description>
|
||||
</key>
|
||||
<key type="i" name="window-preview-padding">
|
||||
<default>20</default>
|
||||
<default>8</default>
|
||||
<summary>Window previews padding</summary>
|
||||
<description>The padding of the window previews</description>
|
||||
</key>
|
||||
|
||||
@@ -720,35 +720,31 @@ var Preview = Utils.defineClass({
|
||||
if (headerHeight) {
|
||||
let iconTextureSize = headerHeight / scaleFactor * .6;
|
||||
let icon = this._previewMenu.getCurrentAppIcon().app.create_icon_texture(iconTextureSize);
|
||||
let windowTitleStyle = 'max-width: 0px;';
|
||||
let workspaceIndex = '';
|
||||
let workspaceStyle = null;
|
||||
let commonTitleStyles = 'color: ' + this._previewMenu._dtpSettings.get_string('window-preview-title-font-color') + ';' +
|
||||
'font-size: ' + this._previewMenu._dtpSettings.get_int('window-preview-title-font-size') + 'px;' +
|
||||
'font-weight: ' + this._previewMenu._dtpSettings.get_string('window-preview-title-font-weight') + ';';
|
||||
|
||||
this._iconBin.destroy_all_children();
|
||||
this._iconBin.add_child(icon);
|
||||
|
||||
if (isLeftButtons) {
|
||||
windowTitleStyle += 'padding-left:' + (headerHeight - icon.width) * .5 + 'px;';
|
||||
if (!this._previewMenu._dtpSettings.get_boolean('isolate-workspaces')) {
|
||||
workspaceIndex = (this.window.get_workspace().index() + 1).toString();
|
||||
workspaceStyle = 'margin: 0 4px 0 ' + (isLeftButtons ? Math.round((headerHeight - icon.width) * .5) + 'px' : '0') + '; padding: 0 4px;' +
|
||||
'border: 2px solid ' + this._getRgbaColor(FOCUSED_COLOR_OFFSET, .8) + 'border-radius: 2px;' + commonTitleStyles;
|
||||
}
|
||||
|
||||
this._workspaceIndicator.text = workspaceIndex;
|
||||
this._workspaceIndicator.set_style(workspaceStyle);
|
||||
|
||||
this._titleWindowChangeId = this.window.connect('notify::title', () => this._updateWindowTitle());
|
||||
|
||||
this._windowTitle.set_style(windowTitleStyle);
|
||||
this._windowTitle.set_style('max-width: 0px; padding-right: 4px;' + commonTitleStyles);
|
||||
this._updateWindowTitle();
|
||||
}
|
||||
},
|
||||
|
||||
_updateWindowTitle: function() {
|
||||
let workspaceIndex = '';
|
||||
let workspaceStyle = null;
|
||||
|
||||
if (!this._previewMenu._dtpSettings.get_boolean('isolate-workspaces')) {
|
||||
workspaceIndex = (this.window.get_workspace().index() + 1).toString();
|
||||
workspaceStyle = 'padding: 0 4px; border: 2px solid ' + this._getRgbaColor(FOCUSED_COLOR_OFFSET, .8) +
|
||||
'border-radius: 2px; margin-right: 4px;';
|
||||
}
|
||||
|
||||
this._workspaceIndicator.text = workspaceIndex;
|
||||
this._workspaceIndicator.set_style(workspaceStyle);
|
||||
|
||||
this._windowTitle.text = this.window.title;
|
||||
},
|
||||
|
||||
|
||||
Reference in New Issue
Block a user