Merge pull request #1432 from bokicoder/main

Add a button to copy settings
This commit is contained in:
Lemmy
2026-01-17 08:55:21 -05:00
committed by GitHub
3 changed files with 41 additions and 19 deletions
+3 -1
View File
@@ -899,6 +899,7 @@
"title": "Dock"
},
"general": {
"copy-settings": "Copy settings",
"fonts-default-description": "Main font used throughout the interface.",
"fonts-default-label": "Default font",
"fonts-default-placeholder": "Select default font...",
@@ -933,7 +934,8 @@
"screen-corners-show-corners-label": "Show screen corners",
"screen-corners-solid-black-description": "Use solid black instead of the bar background color.",
"screen-corners-solid-black-label": "Solid black corners",
"screen-corners-title": "Screen corners"
"screen-corners-title": "Screen corners",
"settings-copied": "Settings copied to clipboard"
},
"hooks": {
"info-command-info-description": "• Commands are executed via shell (sh -lc)<br>• Commands run in background (detached)<br>• Test buttons execute with current values",
+3 -1
View File
@@ -899,6 +899,7 @@
"title": "停靠栏"
},
"general": {
"copy-settings": "复制设置",
"fonts-default-description": "整个界面使用的主要字体。",
"fonts-default-label": "默认字体",
"fonts-default-placeholder": "选择默认字体...",
@@ -933,7 +934,8 @@
"screen-corners-show-corners-label": "显示屏幕圆角",
"screen-corners-solid-black-description": "使用实心黑色而非状态栏背景色。",
"screen-corners-solid-black-label": "实心黑色边角",
"screen-corners-title": "屏幕边角"
"screen-corners-title": "屏幕边角",
"settings-copied": "设置已复制到剪贴板"
},
"hooks": {
"info-command-info-description": "• 命令通过 shell 执行(sh -lc<br>• 命令在后台运行(分离)<br>• 测试按钮使用当前值执行",
+35 -17
View File
@@ -6,6 +6,7 @@ import qs.Commons
import qs.Services.System
import qs.Services.UI
import qs.Widgets
import "../../../../Helpers/QtObj2JS.js" as QtObj2JS
ColumnLayout {
id: root
@@ -172,24 +173,41 @@ ColumnLayout {
Layout.bottomMargin: Style.marginM
}
NButton {
icon: "wand"
text: I18n.tr("panels.general.launch-setup-wizard")
outlined: true
onClicked: {
var targetScreen = PanelService.openedPanel ? PanelService.openedPanel.screen : (Quickshell.screens.length > 0 ? Quickshell.screens[0] : null);
if (!targetScreen) {
return;
RowLayout {
spacing: Style.marginL
Layout.fillWidth: true
NButton {
icon: "wand"
text: I18n.tr("panels.general.launch-setup-wizard")
outlined: true
onClicked: {
var targetScreen = PanelService.openedPanel ? PanelService.openedPanel.screen : (Quickshell.screens.length > 0 ? Quickshell.screens[0] : null);
if (!targetScreen) {
return;
}
var setupPanel = PanelService.getPanel("setupWizardPanel", targetScreen);
if (setupPanel) {
setupPanel.open();
} else {
Qt.callLater(() => {
var sp = PanelService.getPanel("setupWizardPanel", targetScreen);
if (sp)
sp.open();
});
}
}
var setupPanel = PanelService.getPanel("setupWizardPanel", targetScreen);
if (setupPanel) {
setupPanel.open();
} else {
Qt.callLater(() => {
var sp = PanelService.getPanel("setupWizardPanel", targetScreen);
if (sp)
sp.open();
});
}
NButton {
icon: "json"
text: I18n.tr("panels.general.copy-settings")
outlined: true
onClicked: {
var plainData = QtObj2JS.qtObjectToPlainObject(Settings.data);
var json = JSON.stringify(plainData, null, 2);
Quickshell.execDetached(["wl-copy", json]);
ToastService.showNotice(I18n.tr("panels.general.settings-copied"));
}
}
}