From d769723b237d9b6b1a4f6440d0ffa4a68dc30b15 Mon Sep 17 00:00:00 2001 From: arm64v8a <48624112+arm64v8a@users.noreply.github.com> Date: Mon, 15 May 2023 11:09:01 +0900 Subject: [PATCH] fix ui --- ui/dialog_basic_settings.ui | 18 ++++++++++++++++-- ui/edit/dialog_edit_profile.ui | 4 ++++ ui/widget/FloatCheckBox.h | 21 +++++++++++++++++++-- 3 files changed, 39 insertions(+), 4 deletions(-) diff --git a/ui/dialog_basic_settings.ui b/ui/dialog_basic_settings.ui index a3160e9..1b13ea2 100644 --- a/ui/dialog_basic_settings.ui +++ b/ui/dialog_basic_settings.ui @@ -100,7 +100,14 @@ - + + + + 0 + 0 + + + @@ -116,7 +123,14 @@ - + + + + 0 + 0 + + + diff --git a/ui/edit/dialog_edit_profile.ui b/ui/edit/dialog_edit_profile.ui index a75ebfc..78de5ec 100644 --- a/ui/edit/dialog_edit_profile.ui +++ b/ui/edit/dialog_edit_profile.ui @@ -158,6 +158,8 @@ + + Apply settings to this group @@ -181,6 +183,8 @@ + + diff --git a/ui/widget/FloatCheckBox.h b/ui/widget/FloatCheckBox.h index 90d48df..98ca3bd 100644 --- a/ui/widget/FloatCheckBox.h +++ b/ui/widget/FloatCheckBox.h @@ -1,16 +1,33 @@ #pragma once +#include #include class FloatCheckBox : public QCheckBox { public: - explicit FloatCheckBox(QWidget *parent, QWidget *window) : QCheckBox(window) { + QWidget *parent; + QWidget *window; + + void refresh() { setFixedSize(24, 24); auto pos = parent->rect().topRight(); pos = parent->mapTo(window, pos); pos.setX(pos.x() - 48); // ? move(pos); raise(); - if (parent->isVisible()) show(); + setVisible(parent->isVisible()); + }; + + bool eventFilter(QObject *obj, QEvent *e) override { + if (obj != window || e->type() != QEvent::Resize) return false; + refresh(); + return false; + }; + + explicit FloatCheckBox(QWidget *parent, QWidget *window) : QCheckBox(window) { + this->parent = parent; + this->window = window; + window->installEventFilter(this); + refresh(); }; };