Building GXDE Arch Package / detect (push) Skipped
Building GXDE Arch Package / aarch64-arch (push) Skipped
Building GXDE Arch Package / x86_64-arch (push) Skipped
Building GXDE Testing Package / call-arch (push) Skipped
Building Program / call (push) Skipped
Building GXDE Testing Package / call-zhuangzhuang (push) Skipped
Building GXDE Testing Package (zhuangzhuang) / call-i386-zhuangzhuang (push) Skipped
Building GXDE Testing Package (zhuangzhuang) / call-amd64-zhuangzhuang (push) Skipped
Building GXDE Testing Package (zhuangzhuang) / call-arm64-zhuangzhuang (push) Skipped
Building GXDE Testing Package (zhuangzhuang) / call-riscv64-zhuangzhuang (push) Skipped
Building GXDE Testing Package (zhuangzhuang) / call-loong64-zhuangzhuang (push) Skipped
Building GXDE Package / ${{ inputs.display-name || 'Build Job' }} (push) Skipped
- 会话列表拖拽排序/多选/批量删除 - 128k/1024k token 上下文上限 - 待办取消置顶;全屏隐藏联动 - 英文回退翻译补齐;新应用图标 - DTK 关于窗口、分词/朗读对话框、消息常驻操作
58 lines
1.4 KiB
C++
58 lines
1.4 KiB
C++
// SPDX-FileCopyrightText: 2026 GXDE OS Team
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
#pragma once
|
|
|
|
#include <DBlurEffectWidget>
|
|
#include <QWidget>
|
|
|
|
class QLabel;
|
|
class QListView;
|
|
class TodoModel;
|
|
|
|
/**
|
|
* Floating todo window (optional keep-above, draggable, hidden from the dock).
|
|
*
|
|
* On Wayland it is a layer-shell overlay surface (keyboard interactivity is
|
|
* none so it never steals focus); new entries are added from the panel or the
|
|
* "+" button which opens a normal dialog.
|
|
*/
|
|
class TodoWindow : public Dtk::Widget::DBlurEffectWidget
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit TodoWindow(TodoModel *model, QWidget *parent = nullptr);
|
|
|
|
void popup();
|
|
void refreshLayout();
|
|
|
|
protected:
|
|
void contextMenuEvent(QContextMenuEvent *event) override;
|
|
void showEvent(QShowEvent *event) override;
|
|
void mousePressEvent(QMouseEvent *event) override;
|
|
void mouseMoveEvent(QMouseEvent *event) override;
|
|
void mouseReleaseEvent(QMouseEvent *event) override;
|
|
|
|
signals:
|
|
void recreateRequested();
|
|
|
|
private:
|
|
void setupWindow();
|
|
void setupUi();
|
|
void addEntry();
|
|
void applyMargins();
|
|
void saveMargins();
|
|
|
|
TodoModel *m_model = nullptr;
|
|
QListView *m_view = nullptr;
|
|
QLabel *m_countLabel = nullptr;
|
|
int m_rightMargin = 16;
|
|
int m_topMargin = 72;
|
|
bool m_keepAbove = true;
|
|
bool m_dragging = false;
|
|
QPoint m_dragStart;
|
|
int m_dragStartRight = 0;
|
|
int m_dragStartTop = 0;
|
|
};
|