fix(ui): Phase 7 C5 — 移除假按钮 + 真实托盘图标
用户报告设置页很多按钮无反应 + 关闭后托盘看不到图标。两处问题:\n\n1. ServerCard 占位按钮无回调:\n- server-card.slint:去掉了 toggled/edit-clicked/remove-clicked 三个回调以及 enabled 切换、Edit / Remove 按钮;变成纯展示卡(状态点 + name + url + 当前标记)\n- settings-page.slint:去掉硬编码的 Home / NAS 占位,改用 active-server-name / active-server-url / active-server-enabled 三个属性(MainWindow → AppConfig 实时填充);空时显示 '(未配置服务器)' 空态提示\n- app.slint:MainWindow 加三个属性 + 转发给 SettingsPage\n- lib.rs:startup 阶段把活跃服务器信息塞进 UI;测试连接成功/失败时更新 enabled 状态\n\n2. 托盘图标看不见:\n- tray.rs:原本 hIcon 写 null,Win10+ 上 Shell_NotifyIconW(NIM_ADD, NULL hIcon) 实际渲染为空白或很弱的小方块。改用 LoadIconW(NULL, IDI_APPLICATION) 加载 Windows 自带的应用程序图标(无需嵌入 .ico 资源,主题感知)。show_toast / Drop 的 hIcon 维持 null(让 NIM_MODIFY/NIM_DELETE 不动原有图标)。AGENTS.md §53 标记真 .ico 资源为 V2 项。
This commit is contained in:
+39
-12
@@ -128,6 +128,16 @@ export component SettingsPage inherits Rectangle {
|
||||
|
||||
callback toggle-persist(string, bool);
|
||||
|
||||
// Phase 7 C5: active server config (forwarded from MainWindow →
|
||||
// AppConfig). Empty strings mean "未配置服务器". The page used to
|
||||
// hardcode two placeholder rows ("Home" / "NAS") with Edit /
|
||||
// Remove buttons that didn't do anything — that's what the user
|
||||
// reported as "很多都没反应". V1 only has the single active
|
||||
// server anyway, so a single card is honest about scope.
|
||||
in property <string> active-server-name: "";
|
||||
in property <string> active-server-url: "";
|
||||
in property <bool> active-server-enabled: false;
|
||||
|
||||
in property <color> divider-color: #3a3b40;
|
||||
in property <color> hint-color: #6a6a6a;
|
||||
|
||||
@@ -162,18 +172,35 @@ export component SettingsPage inherits Rectangle {
|
||||
}
|
||||
}
|
||||
|
||||
ServerCard {
|
||||
server-name: "Home";
|
||||
server-url: "https://gotify.example.com";
|
||||
enabled: true;
|
||||
is-current: true;
|
||||
}
|
||||
ServerCard {
|
||||
server-name: "NAS";
|
||||
server-url: "http://192.168.50.103:50334";
|
||||
enabled: true;
|
||||
is-current: false;
|
||||
}
|
||||
// Phase 7 C5: 单卡显示活跃服务器。多 server 添加/编辑/
|
||||
// 删除 UI 在 V2 实现(AGENTS.md §21),V1 只有一个活跃
|
||||
// server。空字符串 → 空态。
|
||||
if root.active-server-url != "":
|
||||
ServerCard {
|
||||
server-name: root.active-server-name;
|
||||
server-url: root.active-server-url;
|
||||
enabled: root.active-server-enabled;
|
||||
is-current: true;
|
||||
}
|
||||
|
||||
if root.active-server-url == "":
|
||||
Rectangle {
|
||||
width: 100%;
|
||||
height: 56px;
|
||||
border-radius: 8px;
|
||||
background: #28292d;
|
||||
border-color: #3a3b40;
|
||||
border-width: 1px;
|
||||
Text {
|
||||
x: 16px;
|
||||
y: (parent.height - self.height) / 2;
|
||||
text: "(未配置服务器 — V1 暂不支持 UI 添加,请手动编辑 %APPDATA%\\WindowsGotify\\config.json)";
|
||||
color: #6a6a6a;
|
||||
font-size: 12px;
|
||||
wrap: word-wrap;
|
||||
width: parent.width - 32px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 通知
|
||||
|
||||
Reference in New Issue
Block a user