diff --git a/3rdparty/qwindowkitty/src/styles/styles.qrc b/3rdparty/qwindowkitty/src/styles/styles.qrc index a52665482b..0cf1b4fa57 100644 --- a/3rdparty/qwindowkitty/src/styles/styles.qrc +++ b/3rdparty/qwindowkitty/src/styles/styles.qrc @@ -21,13 +21,5 @@ window-bar/login-white.svg window-bar/logout.svg window-bar/logout-white.svg - window-bar/left-align.svg - window-bar/left-align-white.svg - window-bar/middle-align.svg - window-bar/middle-align-white.svg - window-bar/right-align.svg - window-bar/right-align-white.svg - window-bar/ocr.svg - window-bar/ocr-white.svg diff --git a/3rdparty/qwindowkitty/src/styles/window-bar/left-align-white.svg b/3rdparty/qwindowkitty/src/styles/window-bar/left-align-white.svg deleted file mode 100644 index 394a54a653..0000000000 --- a/3rdparty/qwindowkitty/src/styles/window-bar/left-align-white.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/3rdparty/qwindowkitty/src/styles/window-bar/left-align.svg b/3rdparty/qwindowkitty/src/styles/window-bar/left-align.svg deleted file mode 100644 index e3031d39d3..0000000000 --- a/3rdparty/qwindowkitty/src/styles/window-bar/left-align.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/3rdparty/qwindowkitty/src/styles/window-bar/middle-align-white.svg b/3rdparty/qwindowkitty/src/styles/window-bar/middle-align-white.svg deleted file mode 100644 index 6d10d57a3c..0000000000 --- a/3rdparty/qwindowkitty/src/styles/window-bar/middle-align-white.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/3rdparty/qwindowkitty/src/styles/window-bar/middle-align.svg b/3rdparty/qwindowkitty/src/styles/window-bar/middle-align.svg deleted file mode 100644 index 667e74f4a2..0000000000 --- a/3rdparty/qwindowkitty/src/styles/window-bar/middle-align.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/3rdparty/qwindowkitty/src/styles/window-bar/ocr-white.svg b/3rdparty/qwindowkitty/src/styles/window-bar/ocr-white.svg deleted file mode 100644 index 47a0697303..0000000000 --- a/3rdparty/qwindowkitty/src/styles/window-bar/ocr-white.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/3rdparty/qwindowkitty/src/styles/window-bar/ocr.svg b/3rdparty/qwindowkitty/src/styles/window-bar/ocr.svg deleted file mode 100644 index 0207f68b92..0000000000 --- a/3rdparty/qwindowkitty/src/styles/window-bar/ocr.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/3rdparty/qwindowkitty/src/styles/window-bar/right-align-white.svg b/3rdparty/qwindowkitty/src/styles/window-bar/right-align-white.svg deleted file mode 100644 index be51762f11..0000000000 --- a/3rdparty/qwindowkitty/src/styles/window-bar/right-align-white.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/3rdparty/qwindowkitty/src/styles/window-bar/right-align.svg b/3rdparty/qwindowkitty/src/styles/window-bar/right-align.svg deleted file mode 100644 index 3ad85d0504..0000000000 --- a/3rdparty/qwindowkitty/src/styles/window-bar/right-align.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/TeXmacs/misc/images/images.qrc b/TeXmacs/misc/images/images.qrc new file mode 100644 index 0000000000..eab0c22212 --- /dev/null +++ b/TeXmacs/misc/images/images.qrc @@ -0,0 +1,15 @@ + + + ocr-button/left-align.svg + ocr-button/middle-align.svg + ocr-button/right-align.svg + ocr-button/ocr.svg + + + + ocr-button/left-align-white.svg + ocr-button/middle-align-white.svg + ocr-button/right-align-white.svg + ocr-button/ocr-white.svg + + \ No newline at end of file diff --git a/TeXmacs/misc/images/ocr-button/left-align-white.svg b/TeXmacs/misc/images/ocr-button/left-align-white.svg new file mode 100644 index 0000000000..002d21b022 --- /dev/null +++ b/TeXmacs/misc/images/ocr-button/left-align-white.svg @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/TeXmacs/misc/images/ocr-button/left-align.svg b/TeXmacs/misc/images/ocr-button/left-align.svg new file mode 100644 index 0000000000..e63297a38a --- /dev/null +++ b/TeXmacs/misc/images/ocr-button/left-align.svg @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/TeXmacs/misc/images/ocr-button/middle-align-white.svg b/TeXmacs/misc/images/ocr-button/middle-align-white.svg new file mode 100644 index 0000000000..7c55d0603b --- /dev/null +++ b/TeXmacs/misc/images/ocr-button/middle-align-white.svg @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/TeXmacs/misc/images/ocr-button/middle-align.svg b/TeXmacs/misc/images/ocr-button/middle-align.svg new file mode 100644 index 0000000000..1ffc2c05b6 --- /dev/null +++ b/TeXmacs/misc/images/ocr-button/middle-align.svg @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/TeXmacs/misc/images/ocr-button/ocr-white.svg b/TeXmacs/misc/images/ocr-button/ocr-white.svg new file mode 100644 index 0000000000..bd66c33daf --- /dev/null +++ b/TeXmacs/misc/images/ocr-button/ocr-white.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/TeXmacs/misc/images/ocr-button/ocr.svg b/TeXmacs/misc/images/ocr-button/ocr.svg new file mode 100644 index 0000000000..e5686f3891 --- /dev/null +++ b/TeXmacs/misc/images/ocr-button/ocr.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/TeXmacs/misc/images/ocr-button/right-align-white.svg b/TeXmacs/misc/images/ocr-button/right-align-white.svg new file mode 100644 index 0000000000..a06c661af7 --- /dev/null +++ b/TeXmacs/misc/images/ocr-button/right-align-white.svg @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/TeXmacs/misc/images/ocr-button/right-align.svg b/TeXmacs/misc/images/ocr-button/right-align.svg new file mode 100644 index 0000000000..4cf62a85d8 --- /dev/null +++ b/TeXmacs/misc/images/ocr-button/right-align.svg @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/TeXmacs/misc/themes/liii-night.css b/TeXmacs/misc/themes/liii-night.css index cb91d85573..d0721fb778 100644 --- a/TeXmacs/misc/themes/liii-night.css +++ b/TeXmacs/misc/themes/liii-night.css @@ -670,19 +670,19 @@ QWidget#image_popup { } QToolButton#image-align-button[icon-name="left"] { - qproperty-icon: url(":/window-bar/left-align-white.svg"); + qproperty-icon: url(":/ocr-button/left-align-white.svg"); } QToolButton#image-align-button[icon-name="center"] { - qproperty-icon: url(":/window-bar/middle-align-white.svg"); + qproperty-icon: url(":/ocr-button/middle-align-white.svg"); } QToolButton#image-align-button[icon-name="right"] { - qproperty-icon: url(":/window-bar/right-align-white.svg"); + qproperty-icon: url(":/ocr-button/right-align-white.svg"); } QToolButton#image-align-button[icon-name="ocr"] { - qproperty-icon: url(":/window-bar/ocr-white.svg"); + qproperty-icon: url(":/ocr-button/ocr-white.svg"); } /*图片悬浮菜单按钮样式*/ diff --git a/TeXmacs/misc/themes/liii.css b/TeXmacs/misc/themes/liii.css index 5d2ae28f5a..7be023fa31 100644 --- a/TeXmacs/misc/themes/liii.css +++ b/TeXmacs/misc/themes/liii.css @@ -678,19 +678,19 @@ QWidget#image_popup { } QToolButton#image-align-button[icon-name="left"] { - qproperty-icon: url(":/window-bar/left-align.svg"); + qproperty-icon: url(":/ocr-button/left-align.svg"); } QToolButton#image-align-button[icon-name="center"] { - qproperty-icon: url(":/window-bar/middle-align.svg"); + qproperty-icon: url(":/ocr-button/middle-align.svg"); } QToolButton#image-align-button[icon-name="right"] { - qproperty-icon: url(":/window-bar/right-align.svg"); + qproperty-icon: url(":/ocr-button/right-align.svg"); } QToolButton#image-align-button[icon-name="ocr"] { - qproperty-icon: url(":/window-bar/ocr.svg"); + qproperty-icon: url(":/ocr-button/ocr.svg"); } /*图片悬浮菜单按钮样式*/ diff --git a/devel/201_37.md b/devel/201_37.md index 3bb5da7655..db8c830db1 100644 --- a/devel/201_37.md +++ b/devel/201_37.md @@ -17,6 +17,10 @@ + 修复之后,期望鼠标移入图片范围后,菜单仅出现一次,且出现的菜单尺寸是经过调整的,与当前页面缩放相适应 +## 2025/12/27 修改图标 +### What +更换了图片位置,更改了图标 + ## 2025/12/26 图片悬浮菜单渲染修复 ### What diff --git a/src/Plugins/Qt/QTMImagePopup.cpp b/src/Plugins/Qt/QTMImagePopup.cpp index d9e87e75ff..84fd7ceb50 100644 --- a/src/Plugins/Qt/QTMImagePopup.cpp +++ b/src/Plugins/Qt/QTMImagePopup.cpp @@ -1,8 +1,8 @@ /****************************************************************************** - * MODULE : QTMMathCompletionPopup.cpp + * MODULE : QTMImagePopup.cpp * DESCRIPTION: - * COPYRIGHT : (C) 2025 Mogan STEM authors + * COPYRIGHT : (C) 2025 MoonLL, Yuki Lu ******************************************************************************* * This software falls under the GNU general public license version 3 or later. * It comes WITHOUT ANY WARRANTY WHATSOEVER. For details, see the file LICENSE @@ -22,8 +22,10 @@ const string left_str = "\"left\""; const string mid_str = "\"center\""; const string right_str= "\"right\""; +// 悬浮菜单创建函数 QTMImagePopup::QTMImagePopup (QWidget* parent, qt_simple_widget_rep* owner) : QWidget (parent), owner (owner), layout (nullptr) { + Q_INIT_RESOURCE (images); setObjectName ("image_popup"); setWindowFlags (Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint); setAttribute (Qt::WA_ShowWithoutActivating); @@ -34,7 +36,7 @@ QTMImagePopup::QTMImagePopup (QWidget* parent, qt_simple_widget_rep* owner) layout->setSizeConstraint (QLayout::SetMinimumSize); layout->setSpacing (1); setLayout (layout); - // 阴影效果 + QGraphicsDropShadowEffect* effect= new QGraphicsDropShadowEffect (this); effect->setBlurRadius (40); effect->setOffset (0, 4); @@ -44,22 +46,18 @@ QTMImagePopup::QTMImagePopup (QWidget* parent, qt_simple_widget_rep* owner) leftBtn= new QToolButton (); leftBtn->setObjectName ("image-align-button"); leftBtn->setProperty ("icon-name", "left"); - leftBtn->setIcon (QIcon (":/window-bar/left-align.svg")); leftBtn->setCheckable (true); middleBtn= new QToolButton (); middleBtn->setObjectName ("image-align-button"); middleBtn->setProperty ("icon-name", "center"); - middleBtn->setIcon (QIcon (":/window-bar/middle-align.svg")); middleBtn->setCheckable (true); rightBtn= new QToolButton (); rightBtn->setObjectName ("image-align-button"); rightBtn->setProperty ("icon-name", "right"); - rightBtn->setIcon (QIcon (":/window-bar/right-align.svg")); rightBtn->setCheckable (true); ocrBtn= new QToolButton (); ocrBtn->setObjectName ("image-align-button"); ocrBtn->setProperty ("icon-name", "ocr"); - ocrBtn->setIcon (QIcon (":/window-bar/ocr.svg")); QButtonGroup* alignGroup= new QButtonGroup (this); alignGroup->addButton (leftBtn); alignGroup->addButton (middleBtn); @@ -89,6 +87,7 @@ QTMImagePopup::QTMImagePopup (QWidget* parent, qt_simple_widget_rep* owner) QTMImagePopup::~QTMImagePopup () {} +// 显示图片悬浮菜单,根据缩放比例决定是否显示 void QTMImagePopup::showImagePopup (rectangle selr, double magf, int scroll_x, int scroll_y, int canvas_x) { @@ -135,6 +134,7 @@ QTMImagePopup::updatePosition () { move (pos_x, pos_y); } +// 根据DPI缩放和图片缩放比例自动调整按钮大小和窗口尺寸 void QTMImagePopup::autoSize () { QScreen* Screen = QGuiApplication::primaryScreen (); @@ -157,6 +157,7 @@ QTMImagePopup::autoSize () { layout->update (); } +// 缓存菜单显示位置 void QTMImagePopup::cachePosition (rectangle selr, double magf, int scroll_x, int scroll_y, int canvas_x) { @@ -168,6 +169,7 @@ QTMImagePopup::cachePosition (rectangle selr, double magf, int scroll_x, cached_magf = magf; } +// 计算菜单显示位置 void QTMImagePopup::getCachedPosition (int& x, int& y) { x= ((cached_image_mid_x - cached_scroll_x - 500) * cached_magf + diff --git a/src/Plugins/Qt/QTMImagePopup.hpp b/src/Plugins/Qt/QTMImagePopup.hpp index 3fd68ede7c..0fb5079053 100644 --- a/src/Plugins/Qt/QTMImagePopup.hpp +++ b/src/Plugins/Qt/QTMImagePopup.hpp @@ -1,8 +1,8 @@ /****************************************************************************** - * MODULE : QTMMathCompletionPopup.hpp + * MODULE : QTMImagePopup.hpp * DESCRIPTION: - * COPYRIGHT : (C) 2025 Mogan STEM authors + * COPYRIGHT : (C) 2025 MoonLL, Yuki Lu ******************************************************************************* * This software falls under the GNU general public license version 3 or later. * It comes WITHOUT ANY WARRANTY WHATSOEVER. For details, see the file LICENSE diff --git a/xmake.lua b/xmake.lua index fb7d1565bb..6ba833ff7e 100644 --- a/xmake.lua +++ b/xmake.lua @@ -804,6 +804,10 @@ target("libmogan") do add_files("src/Plugins/Qt/**.cpp", "src/Plugins/Qt/**.hpp") + -- Add Qt resource file + add_rules("qt.qrc") + add_files("TeXmacs/misc/images/images.qrc") + if is_plat("macosx") then plugin_macos_srcs = { "$(projectdir)/src/Plugins/MacOS/HIDRemote.m",