Skip to content

Commit 22bc804

Browse files
committed
feat: 更好的脚本管理多语言和自定义支持;
1 parent ca3d24f commit 22bc804

10 files changed

Lines changed: 239 additions & 165 deletions

File tree

3rdparty/QHexView/document/qhexrenderer.cpp

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -745,11 +745,12 @@ void QHexRenderer::applyBookMark(QPainter *painter, QTextCursor &textcursor,
745745
painter->save();
746746

747747
auto pos = m_document->getLineBookmarksPos(line);
748+
auto height = lineHeight() - 2;
749+
748750
for (auto &item : pos) {
749751
auto off = item % hexLineWidth();
750752

751753
qreal begin, width;
752-
auto height = lineHeight();
753754

754755
// add some paddings
755756
if (factor == Hex) {
@@ -763,16 +764,26 @@ void QHexRenderer::applyBookMark(QPainter *painter, QTextCursor &textcursor,
763764
textcursor.setPosition(m_cursor->currentColumn());
764765
}
765766

767+
textcursor.movePosition(QTextCursor::NextCharacter);
766768
auto charformat = textcursor.charFormat();
767769
auto textOutline = charformat.textOutline();
768770

769771
constexpr auto ALPHA = 180;
772+
painter->setBrush(Qt::transparent);
773+
painter->setBackground(Qt::transparent);
770774

771775
if (textOutline.style() != Qt::NoPen) {
776+
auto color = m_bytesColor;
777+
color.setAlpha(ALPHA);
778+
QPen pen(color, 2);
779+
painter->setPen(pen);
780+
painter->drawRect(begin, 1, width, height);
781+
772782
auto outColor = textOutline.color();
773783
outColor.setAlpha(ALPHA);
774-
QPen pen(outColor, 1, Qt::DotLine);
775-
painter->setPen(pen);
784+
QPen outPen(outColor, 1, Qt::DotLine);
785+
painter->setPen(outPen);
786+
painter->drawRect(begin, 1, width, height);
776787
} else {
777788
if (m_cursor->currentLine() == line &&
778789
m_cursor->currentColumn() == off) {
@@ -782,8 +793,8 @@ void QHexRenderer::applyBookMark(QPainter *painter, QTextCursor &textcursor,
782793
painter->setPen(pen);
783794
} else {
784795
auto foreground = charformat.foreground();
785-
if (foreground.style() != Qt::NoBrush) {
786-
auto textColor = foreground.color();
796+
auto textColor = foreground.color();
797+
if (textColor.isValid() && foreground.style() != Qt::NoBrush) {
787798
textColor.setAlpha(ALPHA);
788799
QPen pen(textColor, 1, Qt::DotLine);
789800
painter->setPen(pen);
@@ -794,11 +805,8 @@ void QHexRenderer::applyBookMark(QPainter *painter, QTextCursor &textcursor,
794805
painter->setPen(pen);
795806
}
796807
}
808+
painter->drawRect(begin, 1, width, height);
797809
}
798-
799-
painter->setBrush(Qt::transparent);
800-
painter->setBackground(Qt::transparent);
801-
painter->drawRect(begin, 0, width, height);
802810
}
803811

804812
painter->restore();

lang/en_US/winghex_en_US.ts

Lines changed: 41 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -955,7 +955,7 @@
955955
<name>MainWindow</name>
956956
<message>
957957
<location filename="../../src/dialog/mainwindow.ui" line="14"/>
958-
<location filename="../../src/dialog/mainwindow.cpp" line="3535"/>
958+
<location filename="../../src/dialog/mainwindow.cpp" line="3529"/>
959959
<source>WingHexExplorer</source>
960960
<translation>WingHexExplorer</translation>
961961
</message>
@@ -1776,12 +1776,12 @@
17761776
<translation>Logs (*.log)</translation>
17771777
</message>
17781778
<message>
1779-
<location filename="../../src/dialog/mainwindow.cpp" line="4227"/>
1779+
<location filename="../../src/dialog/mainwindow.cpp" line="4229"/>
17801780
<source>FileInvalidFmt</source>
17811781
<translation>Unsupported file format</translation>
17821782
</message>
17831783
<message>
1784-
<location filename="../../src/dialog/mainwindow.cpp" line="4390"/>
1784+
<location filename="../../src/dialog/mainwindow.cpp" line="4392"/>
17851785
<source>ScriptStillRunning</source>
17861786
<translation>The script is still running. Are you sure to exit?</translation>
17871787
</message>
@@ -1794,31 +1794,31 @@
17941794
<location filename="../../src/dialog/mainwindow.cpp" line="3220"/>
17951795
<location filename="../../src/dialog/mainwindow.cpp" line="3286"/>
17961796
<location filename="../../src/dialog/mainwindow.cpp" line="3293"/>
1797-
<location filename="../../src/dialog/mainwindow.cpp" line="3566"/>
1798-
<location filename="../../src/dialog/mainwindow.cpp" line="3926"/>
1799-
<location filename="../../src/dialog/mainwindow.cpp" line="3935"/>
1800-
<location filename="../../src/dialog/mainwindow.cpp" line="4215"/>
1801-
<location filename="../../src/dialog/mainwindow.cpp" line="4218"/>
1802-
<location filename="../../src/dialog/mainwindow.cpp" line="4221"/>
1803-
<location filename="../../src/dialog/mainwindow.cpp" line="4224"/>
1804-
<location filename="../../src/dialog/mainwindow.cpp" line="4227"/>
1805-
<location filename="../../src/dialog/mainwindow.cpp" line="4230"/>
1806-
<location filename="../../src/dialog/mainwindow.cpp" line="4238"/>
1807-
<location filename="../../src/dialog/mainwindow.cpp" line="4241"/>
1797+
<location filename="../../src/dialog/mainwindow.cpp" line="3576"/>
1798+
<location filename="../../src/dialog/mainwindow.cpp" line="3928"/>
1799+
<location filename="../../src/dialog/mainwindow.cpp" line="3937"/>
1800+
<location filename="../../src/dialog/mainwindow.cpp" line="4217"/>
1801+
<location filename="../../src/dialog/mainwindow.cpp" line="4220"/>
1802+
<location filename="../../src/dialog/mainwindow.cpp" line="4223"/>
1803+
<location filename="../../src/dialog/mainwindow.cpp" line="4226"/>
1804+
<location filename="../../src/dialog/mainwindow.cpp" line="4229"/>
1805+
<location filename="../../src/dialog/mainwindow.cpp" line="4232"/>
1806+
<location filename="../../src/dialog/mainwindow.cpp" line="4240"/>
1807+
<location filename="../../src/dialog/mainwindow.cpp" line="4243"/>
18081808
<source>Error</source>
18091809
<translation>Error</translation>
18101810
</message>
18111811
<message>
18121812
<location filename="../../src/dialog/mainwindow.cpp" line="2093"/>
1813-
<location filename="../../src/dialog/mainwindow.cpp" line="4221"/>
1813+
<location filename="../../src/dialog/mainwindow.cpp" line="4223"/>
18141814
<source>FileNotExist</source>
18151815
<translation>File does not exist!</translation>
18161816
</message>
18171817
<message>
18181818
<location filename="../../src/dialog/mainwindow.cpp" line="2096"/>
1819-
<location filename="../../src/dialog/mainwindow.cpp" line="3926"/>
1820-
<location filename="../../src/dialog/mainwindow.cpp" line="3935"/>
1821-
<location filename="../../src/dialog/mainwindow.cpp" line="4218"/>
1819+
<location filename="../../src/dialog/mainwindow.cpp" line="3928"/>
1820+
<location filename="../../src/dialog/mainwindow.cpp" line="3937"/>
1821+
<location filename="../../src/dialog/mainwindow.cpp" line="4220"/>
18221822
<source>FilePermission</source>
18231823
<translation>Access denied due to file permissions!</translation>
18241824
</message>
@@ -1858,14 +1858,14 @@
18581858
<translation>Saving...</translation>
18591859
</message>
18601860
<message>
1861-
<location filename="../../src/dialog/mainwindow.cpp" line="4224"/>
1861+
<location filename="../../src/dialog/mainwindow.cpp" line="4226"/>
18621862
<source>SaveWSError</source>
18631863
<translation>Workspace save error!</translation>
18641864
</message>
18651865
<message>
18661866
<location filename="../../src/dialog/mainwindow.cpp" line="2177"/>
18671867
<location filename="../../src/dialog/mainwindow.cpp" line="2240"/>
1868-
<location filename="../../src/dialog/mainwindow.cpp" line="3967"/>
1868+
<location filename="../../src/dialog/mainwindow.cpp" line="3969"/>
18691869
<source>SaveSuccessfully</source>
18701870
<translation>Saved successfully!</translation>
18711871
</message>
@@ -1899,7 +1899,7 @@
18991899
<location filename="../../src/dialog/mainwindow.cpp" line="2231"/>
19001900
<location filename="../../src/dialog/mainwindow.cpp" line="2302"/>
19011901
<location filename="../../src/dialog/mainwindow.cpp" line="2868"/>
1902-
<location filename="../../src/dialog/mainwindow.cpp" line="3894"/>
1902+
<location filename="../../src/dialog/mainwindow.cpp" line="3896"/>
19031903
<source>ChooseSaveFile</source>
19041904
<translation>Please select the file save location:</translation>
19051905
</message>
@@ -2101,7 +2101,7 @@
21012101
</message>
21022102
<message>
21032103
<location filename="../../src/dialog/mainwindow.cpp" line="3040"/>
2104-
<location filename="../../src/dialog/mainwindow.cpp" line="4323"/>
2104+
<location filename="../../src/dialog/mainwindow.cpp" line="4325"/>
21052105
<source>LayoutRestoring...</source>
21062106
<translation>Restoring layout...</translation>
21072107
</message>
@@ -2171,73 +2171,73 @@
21712171
<translation>An unknown error occurred preventing saving. Are you sure to exit?</translation>
21722172
</message>
21732173
<message>
2174-
<location filename="../../src/dialog/mainwindow.cpp" line="3480"/>
2174+
<location filename="../../src/dialog/mainwindow.cpp" line="3474"/>
21752175
<source>CopyLimit</source>
21762176
<translation>Copy bytes exceeded limit</translation>
21772177
</message>
21782178
<message>
2179-
<location filename="../../src/dialog/mainwindow.cpp" line="3567"/>
2179+
<location filename="../../src/dialog/mainwindow.cpp" line="3577"/>
21802180
<source>ErrOpenFileBelow</source>
21812181
<translation>An error occurred while opening the file (due to insufficient permissions). The following is the file that failed to open:</translation>
21822182
</message>
21832183
<message>
2184-
<location filename="../../src/dialog/mainwindow.cpp" line="3881"/>
2184+
<location filename="../../src/dialog/mainwindow.cpp" line="3883"/>
21852185
<source>SaveWorkSpace</source>
21862186
<translation>Save WorkSpace</translation>
21872187
</message>
21882188
<message>
2189-
<location filename="../../src/dialog/mainwindow.cpp" line="3882"/>
2189+
<location filename="../../src/dialog/mainwindow.cpp" line="3884"/>
21902190
<source>WingHexWorkSpace (*.wingpro)</source>
21912191
<translation>WingHex WorkSpace (*.wingpro)</translation>
21922192
</message>
21932193
<message>
2194-
<location filename="../../src/dialog/mainwindow.cpp" line="3888"/>
2194+
<location filename="../../src/dialog/mainwindow.cpp" line="3890"/>
21952195
<source>NothingToSave</source>
21962196
<translation>No saved data</translation>
21972197
</message>
21982198
<message>
2199-
<location filename="../../src/dialog/mainwindow.cpp" line="4143"/>
2199+
<location filename="../../src/dialog/mainwindow.cpp" line="4145"/>
22002200
<source>TooManyBytesDecode</source>
22012201
<translation>Exceeding the decoding byte limit...</translation>
22022202
</message>
22032203
<message>
2204-
<location filename="../../src/dialog/mainwindow.cpp" line="4153"/>
2204+
<location filename="../../src/dialog/mainwindow.cpp" line="4155"/>
22052205
<source>SetupScriptEditor</source>
22062206
<translation>Building Script Editor</translation>
22072207
</message>
22082208
<message>
2209-
<location filename="../../src/dialog/mainwindow.cpp" line="4194"/>
2210-
<location filename="../../src/dialog/mainwindow.cpp" line="4420"/>
2209+
<location filename="../../src/dialog/mainwindow.cpp" line="4196"/>
2210+
<location filename="../../src/dialog/mainwindow.cpp" line="4422"/>
22112211
<source>ConfirmSave</source>
22122212
<translation>Closing unsaved files or workspaces. Are you sure to save?</translation>
22132213
</message>
22142214
<message>
2215-
<location filename="../../src/dialog/mainwindow.cpp" line="4215"/>
2215+
<location filename="../../src/dialog/mainwindow.cpp" line="4217"/>
22162216
<source>DevNotFound</source>
22172217
<translation>No devices found</translation>
22182218
</message>
22192219
<message>
2220-
<location filename="../../src/dialog/mainwindow.cpp" line="4230"/>
2220+
<location filename="../../src/dialog/mainwindow.cpp" line="4232"/>
22212221
<source>TooManyOpenedFile</source>
22222222
<translation>Too many files are open to continue!</translation>
22232223
</message>
22242224
<message>
2225-
<location filename="../../src/dialog/mainwindow.cpp" line="4239"/>
2225+
<location filename="../../src/dialog/mainwindow.cpp" line="4241"/>
22262226
<source>UnknownError</source>
22272227
<translation>An unknown error occurred</translation>
22282228
</message>
22292229
<message>
2230-
<location filename="../../src/dialog/mainwindow.cpp" line="4288"/>
2230+
<location filename="../../src/dialog/mainwindow.cpp" line="4290"/>
22312231
<source>[Info]</source>
22322232
<translation>[Info]</translation>
22332233
</message>
22342234
<message>
2235-
<location filename="../../src/dialog/mainwindow.cpp" line="4296"/>
2235+
<location filename="../../src/dialog/mainwindow.cpp" line="4298"/>
22362236
<source>[Warn]</source>
22372237
<translation>[Warn]</translation>
22382238
</message>
22392239
<message>
2240-
<location filename="../../src/dialog/mainwindow.cpp" line="4304"/>
2240+
<location filename="../../src/dialog/mainwindow.cpp" line="4306"/>
22412241
<source>[Error]</source>
22422242
<translation>[Error]</translation>
22432243
</message>
@@ -2971,22 +2971,22 @@
29712971
<context>
29722972
<name>ScriptManager</name>
29732973
<message>
2974-
<location filename="../../src/class/scriptmanager.cpp" line="93"/>
2974+
<location filename="../../src/class/scriptmanager.cpp" line="114"/>
29752975
<source>RunScript</source>
29762976
<translation>Run script</translation>
29772977
</message>
29782978
<message>
2979-
<location filename="../../src/class/scriptmanager.cpp" line="94"/>
2979+
<location filename="../../src/class/scriptmanager.cpp" line="115"/>
29802980
<source>CanNotRunUsrScriptForPolicy</source>
29812981
<translation>Due to security restrictions, user scripts cannot be run in Root mode!</translation>
29822982
</message>
29832983
<message>
2984-
<location filename="../../src/class/scriptmanager.cpp" line="303"/>
2984+
<location filename="../../src/class/scriptmanager.cpp" line="349"/>
29852985
<source>ScriptRunning</source>
29862986
<translation>Script running</translation>
29872987
</message>
29882988
<message>
2989-
<location filename="../../src/class/scriptmanager.cpp" line="304"/>
2989+
<location filename="../../src/class/scriptmanager.cpp" line="350"/>
29902990
<source>ScriptRunningRequestLastStop?</source>
29912991
<translation>The script is still running. Do you want to terminate the previous script before proceeding?</translation>
29922992
</message>

0 commit comments

Comments
 (0)