fix: 修复在 wayland 下 dock 无法使用的问题;

This commit is contained in:
寂静的羽夏 2025-05-18 23:58:59 +08:00
parent f299b75198
commit e374f759e5
5 changed files with 51 additions and 38 deletions

View File

@ -171,7 +171,8 @@ QHexView::QHexView(QWidget *parent)
f.setStyleHint(QFont::TypeWriter); f.setStyleHint(QFont::TypeWriter);
} }
m_fontSize = f.pointSizeF(); m_fontSize = qApp->font().pointSizeF();
f.setPointSizeF(m_fontSize);
m_cursor = new QHexCursor(this); m_cursor = new QHexCursor(this);
this->setFont(f); this->setFont(f);
@ -554,7 +555,7 @@ bool QHexView::copy(bool hex) {
qreal QHexView::fontSize() const { return m_fontSize; } qreal QHexView::fontSize() const { return m_fontSize; }
void QHexView::setScaleRate(qreal rate) { void QHexView::setScaleRate(qreal rate) {
if (rate >= 0.2 && rate < 2.01) { if (rate >= 0.2 && rate < 3.01) {
m_scaleRate = rate; m_scaleRate = rate;
setFontSize(fontSize()); setFontSize(fontSize());
emit scaleRateChanged(); emit scaleRateChanged();
@ -576,7 +577,6 @@ void QHexView::setFontSize(qreal size) {
auto font = this->font(); auto font = this->font();
font.setPointSizeF(size * m_scaleRate); font.setPointSizeF(size * m_scaleRate);
this->setFont(font); this->setFont(font);
m_fontSize = size;
} }
QColor QHexView::selectionColor() const { return m_renderer->selectionColor(); } QColor QHexView::selectionColor() const { return m_renderer->selectionColor(); }

View File

@ -410,72 +410,72 @@
<context> <context>
<name>EditorView</name> <name>EditorView</name>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="82"/> <location filename="../../src/control/editorview.cpp" line="83"/>
<source>Cut</source> <source>Cut</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="84"/> <location filename="../../src/control/editorview.cpp" line="85"/>
<source>CutHex</source> <source>CutHex</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="86"/> <location filename="../../src/control/editorview.cpp" line="87"/>
<source>Copy</source> <source>Copy</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="88"/> <location filename="../../src/control/editorview.cpp" line="89"/>
<source>CopyHex</source> <source>CopyHex</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="90"/> <location filename="../../src/control/editorview.cpp" line="91"/>
<source>Paste</source> <source>Paste</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="92"/> <location filename="../../src/control/editorview.cpp" line="93"/>
<source>PasteHex</source> <source>PasteHex</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="94"/> <location filename="../../src/control/editorview.cpp" line="95"/>
<source>Delete</source> <source>Delete</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="97"/> <location filename="../../src/control/editorview.cpp" line="98"/>
<source>Find</source> <source>Find</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="99"/> <location filename="../../src/control/editorview.cpp" line="100"/>
<source>Goto</source> <source>Goto</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="101"/> <location filename="../../src/control/editorview.cpp" line="102"/>
<source>Fill</source> <source>Fill</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="103"/> <location filename="../../src/control/editorview.cpp" line="104"/>
<source>MetaData</source> <source>MetaData</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="105"/> <location filename="../../src/control/editorview.cpp" line="106"/>
<source>BookMark</source> <source>BookMark</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="294"/> <location filename="../../src/control/editorview.cpp" line="295"/>
<source>Untitled</source> <source>Untitled</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="878"/> <location filename="../../src/control/editorview.cpp" line="879"/>
<source>Not allowed operation in non-UI thread</source> <source>Not allowed operation in non-UI thread</source>
<translation> UI 线</translation> <translation> UI 线</translation>
</message> </message>
@ -2617,17 +2617,17 @@
<context> <context>
<name>QHexView</name> <name>QHexView</name>
<message> <message>
<location filename="../../3rdparty/QHexView/qhexview.cpp" line="270"/> <location filename="../../3rdparty/QHexView/qhexview.cpp" line="271"/>
<source>Foreground:</source> <source>Foreground:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../3rdparty/QHexView/qhexview.cpp" line="281"/> <location filename="../../3rdparty/QHexView/qhexview.cpp" line="282"/>
<source>Background:</source> <source>Background:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../3rdparty/QHexView/qhexview.cpp" line="288"/> <location filename="../../3rdparty/QHexView/qhexview.cpp" line="289"/>
<source>Comment:</source> <source>Comment:</source>
<translation></translation> <translation></translation>
</message> </message>

View File

@ -410,72 +410,72 @@
<context> <context>
<name>EditorView</name> <name>EditorView</name>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="82"/> <location filename="../../src/control/editorview.cpp" line="83"/>
<source>Cut</source> <source>Cut</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="84"/> <location filename="../../src/control/editorview.cpp" line="85"/>
<source>CutHex</source> <source>CutHex</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="86"/> <location filename="../../src/control/editorview.cpp" line="87"/>
<source>Copy</source> <source>Copy</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="88"/> <location filename="../../src/control/editorview.cpp" line="89"/>
<source>CopyHex</source> <source>CopyHex</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="90"/> <location filename="../../src/control/editorview.cpp" line="91"/>
<source>Paste</source> <source>Paste</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="92"/> <location filename="../../src/control/editorview.cpp" line="93"/>
<source>PasteHex</source> <source>PasteHex</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="94"/> <location filename="../../src/control/editorview.cpp" line="95"/>
<source>Delete</source> <source>Delete</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="97"/> <location filename="../../src/control/editorview.cpp" line="98"/>
<source>Find</source> <source>Find</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="99"/> <location filename="../../src/control/editorview.cpp" line="100"/>
<source>Goto</source> <source>Goto</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="101"/> <location filename="../../src/control/editorview.cpp" line="102"/>
<source>Fill</source> <source>Fill</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="103"/> <location filename="../../src/control/editorview.cpp" line="104"/>
<source>MetaData</source> <source>MetaData</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="105"/> <location filename="../../src/control/editorview.cpp" line="106"/>
<source>BookMark</source> <source>BookMark</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="294"/> <location filename="../../src/control/editorview.cpp" line="295"/>
<source>Untitled</source> <source>Untitled</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/editorview.cpp" line="878"/> <location filename="../../src/control/editorview.cpp" line="879"/>
<source>Not allowed operation in non-UI thread</source> <source>Not allowed operation in non-UI thread</source>
<translation> UI </translation> <translation> UI </translation>
</message> </message>
@ -2617,17 +2617,17 @@
<context> <context>
<name>QHexView</name> <name>QHexView</name>
<message> <message>
<location filename="../../3rdparty/QHexView/qhexview.cpp" line="270"/> <location filename="../../3rdparty/QHexView/qhexview.cpp" line="271"/>
<source>Foreground:</source> <source>Foreground:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../3rdparty/QHexView/qhexview.cpp" line="281"/> <location filename="../../3rdparty/QHexView/qhexview.cpp" line="282"/>
<source>Background:</source> <source>Background:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../3rdparty/QHexView/qhexview.cpp" line="288"/> <location filename="../../3rdparty/QHexView/qhexview.cpp" line="289"/>
<source>Comment:</source> <source>Comment:</source>
<translation></translation> <translation></translation>
</message> </message>

View File

@ -20,6 +20,18 @@ int main(int argc, char *argv[]) {
QApplication::setAttribute(Qt::AA_DontCreateNativeWidgetSiblings); QApplication::setAttribute(Qt::AA_DontCreateNativeWidgetSiblings);
#ifdef Q_OS_LINUX
// fix wayland issue (a workaround): floating dock not work
// reference:
// https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System/
// issues/714#issuecomment-2802752677
auto denv = qgetenv("XDG_SESSION_TYPE");
if (denv.isEmpty() ||
denv.compare(QByteArrayLiteral("wayland"), Qt::CaseInsensitive) == 0) {
qputenv("QT_QPA_PLATFORM", "xcb");
}
#endif
QApplication::setApplicationName(APP_NAME); QApplication::setApplicationName(APP_NAME);
QApplication::setOrganizationName(APP_ORG); QApplication::setOrganizationName(APP_ORG);
QApplication::setApplicationVersion(WINGHEX_VERSION); QApplication::setApplicationVersion(WINGHEX_VERSION);

View File

@ -63,7 +63,8 @@ EditorView::EditorView(QWidget *parent)
auto hexLayout = new QVBoxLayout(m_hexContainer); auto hexLayout = new QVBoxLayout(m_hexContainer);
hexLayout->setSpacing(0); hexLayout->setSpacing(0);
hexLayout->setContentsMargins(0, 0, 0, 0); hexLayout->setContentsMargins(0, 0, 0, 0);
m_hex = new QHexView; m_hex = new QHexView(this);
hexLayout->addWidget(m_hex, 1); hexLayout->addWidget(m_hex, 1);
m_goto = new GotoWidget(this); m_goto = new GotoWidget(this);
connect(m_goto, &GotoWidget::jumpToLine, this, connect(m_goto, &GotoWidget::jumpToLine, this,