fix: 修复代码格式化支持导致的编辑器编辑缺陷;修复脚本字典类带来的缺陷;
This commit is contained in:
parent
293cc69a24
commit
a09caae797
|
@ -740,6 +740,10 @@ void QDocument::setLineEnding(LineEnding le) {
|
|||
emit lineEndingChanged(le);
|
||||
}
|
||||
|
||||
QString QDocument::lineEndingString() const {
|
||||
return m_impl->m_lineEndingString;
|
||||
}
|
||||
|
||||
/*!
|
||||
\return the font used by ALL documents to render their content
|
||||
|
||||
|
|
|
@ -120,6 +120,7 @@ public:
|
|||
LineEnding lineEnding() const;
|
||||
LineEnding originalLineEnding() const;
|
||||
void setLineEnding(LineEnding le);
|
||||
QString lineEndingString() const;
|
||||
|
||||
QDateTime lastModified() const;
|
||||
void setLastModified(const QDateTime &d);
|
||||
|
|
|
@ -469,10 +469,7 @@ void QEditor::init(bool actions) {
|
|||
|
||||
a = new QAction(QIcon(":/qeditor/paste.png"), tr("&Paste"), this);
|
||||
a->setObjectName("paste");
|
||||
// aPaste->setEnabled(QApplication::clipboard()->text().count());
|
||||
Q_SHORTCUT(a, "Ctrl+V", "Edit");
|
||||
connect(QApplication::clipboard(), SIGNAL(dataChanged()), this,
|
||||
SLOT(checkClipboard()));
|
||||
|
||||
connect(a, SIGNAL(triggered()), this, SLOT(paste()));
|
||||
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 205 B |
|
@ -2597,103 +2597,103 @@ Restart from the begining ?</source>
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="430"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="934"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="1988"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="931"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="1985"/>
|
||||
<source>&Undo</source>
|
||||
<translation>撤销(&U)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="439"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="935"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="1998"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="932"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="1995"/>
|
||||
<source>&Redo</source>
|
||||
<translation>恢复(&R)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="452"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="937"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="2014"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="934"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="2011"/>
|
||||
<source>Cu&t</source>
|
||||
<translation>剪切(&T)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="461"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="938"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="2025"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="935"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="2022"/>
|
||||
<source>&Copy</source>
|
||||
<translation>复制(&C)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="470"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="939"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="2036"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="936"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="2033"/>
|
||||
<source>&Paste</source>
|
||||
<translation>粘贴(&P)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="485"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="941"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="482"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="938"/>
|
||||
<source>&Indent</source>
|
||||
<translation>缩进(&I)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="492"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="942"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="489"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="939"/>
|
||||
<source>&Unindent</source>
|
||||
<translation>取消缩进(&U)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="503"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="943"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="500"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="940"/>
|
||||
<source>Co&mment</source>
|
||||
<translation>批注(&M)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="510"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="944"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="507"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="941"/>
|
||||
<source>Unc&omment</source>
|
||||
<translation>取消批注(&O)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="521"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="946"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="518"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="943"/>
|
||||
<source>&Select all</source>
|
||||
<translation>全选(&S)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="532"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="948"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="2051"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="529"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="945"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="2048"/>
|
||||
<source>&Find</source>
|
||||
<translation>查找(&F)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="949"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="2059"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="946"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="2056"/>
|
||||
<source>Fin&d next</source>
|
||||
<translation>查找下一个(&D)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="539"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="950"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="2067"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="536"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="947"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="2064"/>
|
||||
<source>&Replace</source>
|
||||
<translation>替换(&R)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="550"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="952"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="2078"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="547"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="949"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="2075"/>
|
||||
<source>&Goto line...</source>
|
||||
<translation>跳转到行(&G)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="684"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="681"/>
|
||||
<source>Conflict!</source>
|
||||
<translation>冲突!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="685"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="682"/>
|
||||
<source>%1
|
||||
has been modified by another application.
|
||||
Press "Save" to overwrite the file on disk
|
||||
|
@ -2707,12 +2707,12 @@ Press "Discard" to ignore this warning.
|
|||
按“放弃”忽略此警告。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="809"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="806"/>
|
||||
<source>File changed</source>
|
||||
<translation>文件被修改</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="810"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="807"/>
|
||||
<source>%1
|
||||
has been modified by another application.
|
||||
|
||||
|
@ -2725,7 +2725,7 @@ Do you wish to keep up to date by reloading the file?</source>
|
|||
您是否希望通过重新加载文件来保持最新状态?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="2917"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="2914"/>
|
||||
<source>untitled</source>
|
||||
<translation>未命名</translation>
|
||||
</message>
|
||||
|
@ -4798,421 +4798,421 @@ Do you wish to keep up to date by reloading the file?</source>
|
|||
<translation>脚本编辑器</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="195"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="199"/>
|
||||
<source>ScriptPermissionDenied</source>
|
||||
<translation>因权限无法打开脚本</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="296"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="300"/>
|
||||
<source>File</source>
|
||||
<translation>文件</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="297"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="301"/>
|
||||
<source>Edit</source>
|
||||
<translation>编辑</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="299"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="303"/>
|
||||
<source>Debugger</source>
|
||||
<translation>调试器</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="301"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="305"/>
|
||||
<source>Setting</source>
|
||||
<translation>设置</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="302"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="306"/>
|
||||
<source>About</source>
|
||||
<translation>关于</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="318"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="322"/>
|
||||
<source>InvalidSourceFile</source>
|
||||
<translation>非法代码文件</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="327"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="331"/>
|
||||
<source>Basic</source>
|
||||
<translation>基础</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="328"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="332"/>
|
||||
<source>New</source>
|
||||
<translation>新建</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="331"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="335"/>
|
||||
<source>OpenF</source>
|
||||
<translation>打开文件</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="334"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="338"/>
|
||||
<source>RecentFiles</source>
|
||||
<translation>最近打开</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="338"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="342"/>
|
||||
<source>Reload</source>
|
||||
<translation>重新加载</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="343"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="345"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="347"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="349"/>
|
||||
<source>Save</source>
|
||||
<translation>保存</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="350"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="354"/>
|
||||
<source>SaveAs</source>
|
||||
<translation>另存为</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="362"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="366"/>
|
||||
<source>General</source>
|
||||
<translation>基本</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="364"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="368"/>
|
||||
<source>Undo</source>
|
||||
<translation>撤销</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="369"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="373"/>
|
||||
<source>Redo</source>
|
||||
<translation>恢复</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="375"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="379"/>
|
||||
<source>Cut</source>
|
||||
<translation>剪切</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="379"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="383"/>
|
||||
<source>Copy</source>
|
||||
<translation>复制</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="384"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="388"/>
|
||||
<source>Paste</source>
|
||||
<translation>粘贴</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="388"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="392"/>
|
||||
<source>Delete</source>
|
||||
<translation>删除</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="394"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="398"/>
|
||||
<source>Lookup</source>
|
||||
<translation>查询</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="395"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="399"/>
|
||||
<source>Find</source>
|
||||
<translation>查找</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="399"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="403"/>
|
||||
<source>Replace</source>
|
||||
<translation>替换</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="404"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="408"/>
|
||||
<source>Goto</source>
|
||||
<translation>跳转</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="411"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="580"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="415"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="584"/>
|
||||
<source>Format</source>
|
||||
<translation>代码样式</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="412"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="416"/>
|
||||
<source>CodeFormat</source>
|
||||
<translation>代码格式化</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="422"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="426"/>
|
||||
<source>Display</source>
|
||||
<translation>显示</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="449"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="453"/>
|
||||
<source>Scale</source>
|
||||
<translation>缩放</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="451"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="455"/>
|
||||
<source>ResetScale</source>
|
||||
<translation>重置缩放</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="457"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="461"/>
|
||||
<source>Window</source>
|
||||
<translation>窗体</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="460"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="575"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="464"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="579"/>
|
||||
<source>Editor</source>
|
||||
<translation>编辑器</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="464"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="468"/>
|
||||
<source>Tools</source>
|
||||
<translation>工具</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="469"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="473"/>
|
||||
<source>Layout</source>
|
||||
<translation>布局</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="470"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="474"/>
|
||||
<source>Fullscreen</source>
|
||||
<translation>全屏</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="472"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="476"/>
|
||||
<source>RestoreLayout</source>
|
||||
<translation>恢复默认布局</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="537"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="541"/>
|
||||
<source>BreakPoint</source>
|
||||
<translation>断点</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="539"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="543"/>
|
||||
<source>ToggleBreakPoint</source>
|
||||
<translation>切换断点</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="542"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="546"/>
|
||||
<source>AddBreakPoint</source>
|
||||
<translation>添加断点</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="573"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="577"/>
|
||||
<source>Settings</source>
|
||||
<translation>设置</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="578"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="582"/>
|
||||
<source>ClangFormat</source>
|
||||
<translation>Clang Format</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="613"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="617"/>
|
||||
<source>Local</source>
|
||||
<translation>本地</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="619"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="623"/>
|
||||
<source>Global</source>
|
||||
<translation>全局</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="622"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="626"/>
|
||||
<source>Variables</source>
|
||||
<translation>变量</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="633"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="637"/>
|
||||
<source>ConsoleOutput</source>
|
||||
<translation>输出</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="647"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="651"/>
|
||||
<source>StackTrace</source>
|
||||
<translation>栈跟踪</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="659"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="663"/>
|
||||
<source>Symbol</source>
|
||||
<translation>符号</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="745"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="993"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1181"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1217"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1237"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1265"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="749"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="997"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1191"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1227"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1247"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1275"/>
|
||||
<source>Error</source>
|
||||
<translation>错误</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="746"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="750"/>
|
||||
<source>Too much opened files</source>
|
||||
<translation>打开的文件过多,无法继续操作!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="770"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="774"/>
|
||||
<source>ConfirmSave</source>
|
||||
<translation>正在关闭未保存的脚本文件,你确定保存吗?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="799"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="803"/>
|
||||
<source>ScriptSaveFailedClose</source>
|
||||
<translation>脚本保存失败,你仍确认关闭吗?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="946"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="950"/>
|
||||
<source>Debuging...</source>
|
||||
<translation>调试中...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="949"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="953"/>
|
||||
<source>Running...</source>
|
||||
<translation>运行中...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1155"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1196"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1165"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1206"/>
|
||||
<source>ChooseFile</source>
|
||||
<translation>选择文件</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="993"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1181"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1237"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="997"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1191"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1247"/>
|
||||
<source>FilePermission</source>
|
||||
<translation>因文件权限无法继续!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1215"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1225"/>
|
||||
<source>ReloadSuccessfully</source>
|
||||
<translation>文件重新加载成功!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1217"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1227"/>
|
||||
<source>ReloadUnSuccessfully</source>
|
||||
<translation>文件重新加载失败!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1254"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1264"/>
|
||||
<source>ChooseSaveFile</source>
|
||||
<translation>请选择保存文件路径:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1235"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1263"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1245"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1273"/>
|
||||
<source>SaveSuccessfully</source>
|
||||
<translation>保存成功!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1265"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1275"/>
|
||||
<source>SaveUnSuccessfully</source>
|
||||
<translation>保存失败!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1341"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1351"/>
|
||||
<source>FormatCodeFailed</source>
|
||||
<translation>代码格式化失败</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1391"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1407"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1401"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1417"/>
|
||||
<source>CannotSave2RunScript</source>
|
||||
<translation>无法保存,故无法继续运行脚本。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="785"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1467"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="789"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1477"/>
|
||||
<source>ScriptStillRunning</source>
|
||||
<translation>脚本仍在运行,你确定要退出吗?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="269"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="273"/>
|
||||
<source>ConfirmScriptSave</source>
|
||||
<translation>你尝试关闭程序,但仍存在未保存的脚本文件,你确定保存这些更改吗?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="298"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="302"/>
|
||||
<source>View</source>
|
||||
<translation>视图</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="483"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="487"/>
|
||||
<source>Debug</source>
|
||||
<translation>调试</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="485"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="489"/>
|
||||
<source>Run</source>
|
||||
<translation>运行</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="491"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="495"/>
|
||||
<source>RunWithDbg</source>
|
||||
<translation>调试运行</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="498"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="502"/>
|
||||
<source>Pause</source>
|
||||
<translation>暂停</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="502"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="506"/>
|
||||
<source>Continue</source>
|
||||
<translation>继续</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="509"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="513"/>
|
||||
<source>Stop</source>
|
||||
<translation>停止</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="514"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="518"/>
|
||||
<source>Restart</source>
|
||||
<translation>重启</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="518"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="522"/>
|
||||
<source>StepInto</source>
|
||||
<translation>单步步入</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="523"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="527"/>
|
||||
<source>StepOver</source>
|
||||
<translation>单步步过</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="528"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="532"/>
|
||||
<source>StepOut</source>
|
||||
<translation>单步跳出</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="545"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="549"/>
|
||||
<source>RemoveBreakPoint</source>
|
||||
<translation>删除断点</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="586"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="590"/>
|
||||
<source>Info</source>
|
||||
<translation>信息</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="588"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="592"/>
|
||||
<source>Software</source>
|
||||
<translation>软件</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="591"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="595"/>
|
||||
<source>Sponsor</source>
|
||||
<translation>赞助</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="594"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="598"/>
|
||||
<source>Wiki</source>
|
||||
<translation>网页 Wiki</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="597"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="601"/>
|
||||
<source>AboutQT</source>
|
||||
<translation>关于 QT</translation>
|
||||
</message>
|
||||
|
@ -5389,39 +5389,39 @@ Do you wish to keep up to date by reloading the file?</source>
|
|||
<translation>提供基础的文件结构分析支持</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="891"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="903"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="916"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="925"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="937"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="945"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="952"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="964"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="976"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="983"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="995"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="1007"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="1032"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="1052"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="1072"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="1093"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="1105"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="861"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="873"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="886"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="895"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="907"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="915"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="922"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="934"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="946"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="953"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="965"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="977"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="1002"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="1022"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="1042"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="1063"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="1075"/>
|
||||
<source>InvalidParamsCount</source>
|
||||
<translation>非法参数个数</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="895"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="907"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="929"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="956"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="968"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="987"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="999"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="1019"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="1041"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="1061"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="865"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="877"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="899"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="926"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="938"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="957"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="969"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="989"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="1011"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="1031"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="1051"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="1081"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="1111"/>
|
||||
<source>InvalidParam</source>
|
||||
<translation>非法参数</translation>
|
||||
</message>
|
||||
|
|
|
@ -2597,103 +2597,103 @@ Restart from the begining ?</source>
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="430"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="934"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="1988"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="931"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="1985"/>
|
||||
<source>&Undo</source>
|
||||
<translation>撤銷(&U)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="439"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="935"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="1998"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="932"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="1995"/>
|
||||
<source>&Redo</source>
|
||||
<translation>恢復(&R)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="452"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="937"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="2014"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="934"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="2011"/>
|
||||
<source>Cu&t</source>
|
||||
<translation>剪切(&T)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="461"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="938"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="2025"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="935"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="2022"/>
|
||||
<source>&Copy</source>
|
||||
<translation>複製(&C)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="470"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="939"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="2036"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="936"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="2033"/>
|
||||
<source>&Paste</source>
|
||||
<translation>粘貼(&P)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="485"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="941"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="482"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="938"/>
|
||||
<source>&Indent</source>
|
||||
<translation>縮進(&I)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="492"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="942"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="489"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="939"/>
|
||||
<source>&Unindent</source>
|
||||
<translation>取消縮進(&U)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="503"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="943"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="500"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="940"/>
|
||||
<source>Co&mment</source>
|
||||
<translation>批註(&M)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="510"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="944"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="507"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="941"/>
|
||||
<source>Unc&omment</source>
|
||||
<translation>取消批註(&O)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="521"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="946"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="518"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="943"/>
|
||||
<source>&Select all</source>
|
||||
<translation>全選(&S)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="532"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="948"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="2051"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="529"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="945"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="2048"/>
|
||||
<source>&Find</source>
|
||||
<translation>查找(&F)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="949"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="2059"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="946"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="2056"/>
|
||||
<source>Fin&d next</source>
|
||||
<translation>查找下一個(&D)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="539"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="950"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="2067"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="536"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="947"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="2064"/>
|
||||
<source>&Replace</source>
|
||||
<translation>替換(&R)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="550"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="952"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="2078"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="547"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="949"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="2075"/>
|
||||
<source>&Goto line...</source>
|
||||
<translation>跳轉到行(&G)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="684"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="681"/>
|
||||
<source>Conflict!</source>
|
||||
<translation>衝突!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="685"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="682"/>
|
||||
<source>%1
|
||||
has been modified by another application.
|
||||
Press "Save" to overwrite the file on disk
|
||||
|
@ -2707,12 +2707,12 @@ Press "Discard" to ignore this warning.
|
|||
按“放棄”忽略此警告。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="809"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="806"/>
|
||||
<source>File changed</source>
|
||||
<translation>檔被修改</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="810"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="807"/>
|
||||
<source>%1
|
||||
has been modified by another application.
|
||||
|
||||
|
@ -2725,7 +2725,7 @@ Do you wish to keep up to date by reloading the file?</source>
|
|||
您是否希望通過重新加載檔來保持最新狀態?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="2917"/>
|
||||
<location filename="../../3rdparty/qcodeedit2/lib/qeditor.cpp" line="2914"/>
|
||||
<source>untitled</source>
|
||||
<translation>未命名</translation>
|
||||
</message>
|
||||
|
@ -4798,421 +4798,421 @@ Do you wish to keep up to date by reloading the file?</source>
|
|||
<translation>腳本編輯器</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="195"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="199"/>
|
||||
<source>ScriptPermissionDenied</source>
|
||||
<translation>因許可權無法打開腳本</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="296"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="300"/>
|
||||
<source>File</source>
|
||||
<translation>檔</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="297"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="301"/>
|
||||
<source>Edit</source>
|
||||
<translation>編輯</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="299"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="303"/>
|
||||
<source>Debugger</source>
|
||||
<translation>調試器</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="301"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="305"/>
|
||||
<source>Setting</source>
|
||||
<translation>設置</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="302"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="306"/>
|
||||
<source>About</source>
|
||||
<translation>關於</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="318"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="322"/>
|
||||
<source>InvalidSourceFile</source>
|
||||
<translation>非法代碼檔</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="327"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="331"/>
|
||||
<source>Basic</source>
|
||||
<translation>基礎</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="328"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="332"/>
|
||||
<source>New</source>
|
||||
<translation>新建</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="331"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="335"/>
|
||||
<source>OpenF</source>
|
||||
<translation>打開檔</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="334"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="338"/>
|
||||
<source>RecentFiles</source>
|
||||
<translation>最近打開</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="338"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="342"/>
|
||||
<source>Reload</source>
|
||||
<translation>重新加載</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="343"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="345"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="347"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="349"/>
|
||||
<source>Save</source>
|
||||
<translation>保存</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="350"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="354"/>
|
||||
<source>SaveAs</source>
|
||||
<translation>另存為</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="362"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="366"/>
|
||||
<source>General</source>
|
||||
<translation>基本</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="364"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="368"/>
|
||||
<source>Undo</source>
|
||||
<translation>撤銷</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="369"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="373"/>
|
||||
<source>Redo</source>
|
||||
<translation>恢復</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="375"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="379"/>
|
||||
<source>Cut</source>
|
||||
<translation>剪切</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="379"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="383"/>
|
||||
<source>Copy</source>
|
||||
<translation>複製</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="384"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="388"/>
|
||||
<source>Paste</source>
|
||||
<translation>粘貼</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="388"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="392"/>
|
||||
<source>Delete</source>
|
||||
<translation>刪除</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="394"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="398"/>
|
||||
<source>Lookup</source>
|
||||
<translation>查詢</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="395"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="399"/>
|
||||
<source>Find</source>
|
||||
<translation>查找</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="399"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="403"/>
|
||||
<source>Replace</source>
|
||||
<translation>替換</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="404"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="408"/>
|
||||
<source>Goto</source>
|
||||
<translation>跳轉</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="411"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="580"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="415"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="584"/>
|
||||
<source>Format</source>
|
||||
<translation>代碼樣式</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="412"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="416"/>
|
||||
<source>CodeFormat</source>
|
||||
<translation>代碼格式化</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="422"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="426"/>
|
||||
<source>Display</source>
|
||||
<translation>顯示</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="449"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="453"/>
|
||||
<source>Scale</source>
|
||||
<translation>縮放</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="451"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="455"/>
|
||||
<source>ResetScale</source>
|
||||
<translation>重置縮放</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="457"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="461"/>
|
||||
<source>Window</source>
|
||||
<translation>窗體</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="460"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="575"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="464"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="579"/>
|
||||
<source>Editor</source>
|
||||
<translation>編輯器</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="464"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="468"/>
|
||||
<source>Tools</source>
|
||||
<translation>工具</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="469"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="473"/>
|
||||
<source>Layout</source>
|
||||
<translation>佈局</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="470"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="474"/>
|
||||
<source>Fullscreen</source>
|
||||
<translation>全屏</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="472"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="476"/>
|
||||
<source>RestoreLayout</source>
|
||||
<translation>恢復默認佈局</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="537"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="541"/>
|
||||
<source>BreakPoint</source>
|
||||
<translation>中斷點</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="539"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="543"/>
|
||||
<source>ToggleBreakPoint</source>
|
||||
<translation>切換中斷點</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="542"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="546"/>
|
||||
<source>AddBreakPoint</source>
|
||||
<translation>添加中斷點</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="573"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="577"/>
|
||||
<source>Settings</source>
|
||||
<translation>設置</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="578"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="582"/>
|
||||
<source>ClangFormat</source>
|
||||
<translation>Clang Format</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="613"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="617"/>
|
||||
<source>Local</source>
|
||||
<translation>本地</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="619"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="623"/>
|
||||
<source>Global</source>
|
||||
<translation>全局</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="622"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="626"/>
|
||||
<source>Variables</source>
|
||||
<translation>變數</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="633"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="637"/>
|
||||
<source>ConsoleOutput</source>
|
||||
<translation>輸出</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="647"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="651"/>
|
||||
<source>StackTrace</source>
|
||||
<translation>棧跟蹤</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="659"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="663"/>
|
||||
<source>Symbol</source>
|
||||
<translation>符號</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="745"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="993"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1181"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1217"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1237"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1265"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="749"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="997"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1191"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1227"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1247"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1275"/>
|
||||
<source>Error</source>
|
||||
<translation>錯誤</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="746"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="750"/>
|
||||
<source>Too much opened files</source>
|
||||
<translation>打開的檔過多,無法繼續操作!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="770"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="774"/>
|
||||
<source>ConfirmSave</source>
|
||||
<translation>正在關閉未保存的腳本檔,你確定保存嗎?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="799"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="803"/>
|
||||
<source>ScriptSaveFailedClose</source>
|
||||
<translation>腳本保存失敗,你仍確認關閉嗎?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="946"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="950"/>
|
||||
<source>Debuging...</source>
|
||||
<translation>調試中...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="949"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="953"/>
|
||||
<source>Running...</source>
|
||||
<translation>運行中...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1155"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1196"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1165"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1206"/>
|
||||
<source>ChooseFile</source>
|
||||
<translation>選擇檔</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="993"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1181"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1237"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="997"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1191"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1247"/>
|
||||
<source>FilePermission</source>
|
||||
<translation>因檔許可權無法繼續!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1215"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1225"/>
|
||||
<source>ReloadSuccessfully</source>
|
||||
<translation>檔重新加載成功!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1217"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1227"/>
|
||||
<source>ReloadUnSuccessfully</source>
|
||||
<translation>檔重新加載失敗!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1254"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1264"/>
|
||||
<source>ChooseSaveFile</source>
|
||||
<translation>請選擇保存檔路徑:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1235"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1263"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1245"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1273"/>
|
||||
<source>SaveSuccessfully</source>
|
||||
<translation>保存成功!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1265"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1275"/>
|
||||
<source>SaveUnSuccessfully</source>
|
||||
<translation>保存失敗!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1341"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1351"/>
|
||||
<source>FormatCodeFailed</source>
|
||||
<translation>代碼格式化失敗</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1391"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1407"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1401"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1417"/>
|
||||
<source>CannotSave2RunScript</source>
|
||||
<translation>無法保存,故無法繼續運行腳本。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="785"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1467"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="789"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="1477"/>
|
||||
<source>ScriptStillRunning</source>
|
||||
<translation>腳本仍在運行,你確定要退出嗎?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="269"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="273"/>
|
||||
<source>ConfirmScriptSave</source>
|
||||
<translation>你嘗試關閉程式,但仍存在未保存的腳本檔,你確定保存這些更改嗎?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="298"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="302"/>
|
||||
<source>View</source>
|
||||
<translation>視圖</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="483"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="487"/>
|
||||
<source>Debug</source>
|
||||
<translation>調試</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="485"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="489"/>
|
||||
<source>Run</source>
|
||||
<translation>運行</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="491"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="495"/>
|
||||
<source>RunWithDbg</source>
|
||||
<translation>調試運行</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="498"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="502"/>
|
||||
<source>Pause</source>
|
||||
<translation>暫停</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="502"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="506"/>
|
||||
<source>Continue</source>
|
||||
<translation>繼續</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="509"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="513"/>
|
||||
<source>Stop</source>
|
||||
<translation>停止</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="514"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="518"/>
|
||||
<source>Restart</source>
|
||||
<translation>重啟</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="518"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="522"/>
|
||||
<source>StepInto</source>
|
||||
<translation>單步步入</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="523"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="527"/>
|
||||
<source>StepOver</source>
|
||||
<translation>單步步過</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="528"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="532"/>
|
||||
<source>StepOut</source>
|
||||
<translation>單步跳出</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="545"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="549"/>
|
||||
<source>RemoveBreakPoint</source>
|
||||
<translation>刪除中斷點</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="586"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="590"/>
|
||||
<source>Info</source>
|
||||
<translation>資訊</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="588"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="592"/>
|
||||
<source>Software</source>
|
||||
<translation>軟體</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="591"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="595"/>
|
||||
<source>Sponsor</source>
|
||||
<translation>贊助</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="594"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="598"/>
|
||||
<source>Wiki</source>
|
||||
<translation>網頁 Wiki</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="597"/>
|
||||
<location filename="../../src/dialog/scriptingdialog.cpp" line="601"/>
|
||||
<source>AboutQT</source>
|
||||
<translation>關於 QT</translation>
|
||||
</message>
|
||||
|
@ -5389,39 +5389,39 @@ Do you wish to keep up to date by reloading the file?</source>
|
|||
<translation>提供基礎的檔結構分析支持</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="891"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="903"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="916"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="925"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="937"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="945"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="952"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="964"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="976"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="983"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="995"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="1007"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="1032"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="1052"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="1072"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="1093"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="1105"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="861"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="873"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="886"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="895"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="907"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="915"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="922"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="934"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="946"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="953"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="965"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="977"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="1002"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="1022"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="1042"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="1063"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="1075"/>
|
||||
<source>InvalidParamsCount</source>
|
||||
<translation>非法參數個數</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="895"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="907"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="929"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="956"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="968"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="987"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="999"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="1019"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="1041"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="1061"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="865"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="877"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="899"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="926"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="938"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="957"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="969"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="989"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="1011"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="1031"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="1051"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="1081"/>
|
||||
<location filename="../../src/class/wingcstruct.cpp" line="1111"/>
|
||||
<source>InvalidParam</source>
|
||||
<translation>非法參數</translation>
|
||||
</message>
|
||||
|
|
|
@ -45,6 +45,7 @@
|
|||
<file>images/layout.png</file>
|
||||
<file>images/layoutexport.png</file>
|
||||
<file>images/lock.png</file>
|
||||
<file>images/lockon.png</file>
|
||||
<file>images/log.png</file>
|
||||
<file>images/mAddr.png</file>
|
||||
<file>images/mColInfo.png</file>
|
||||
|
|
|
@ -94,6 +94,8 @@ QString AngelObjString::dictionaryToString(void *obj, asDebugger *dbg) {
|
|||
}
|
||||
|
||||
QString AngelObjString::colorToString(void *obj, asDebugger *dbg) {
|
||||
Q_UNUSED(dbg);
|
||||
|
||||
auto color = reinterpret_cast<QColor *>(obj);
|
||||
QString str;
|
||||
QTextStream s(&str);
|
||||
|
|
|
@ -18,8 +18,9 @@
|
|||
#include "diffutil.h"
|
||||
|
||||
QVector<DiffUtil::DiffEntry> DiffUtil::compareFiles(const QStringList &lines1,
|
||||
const QStringList &lines2) {
|
||||
return generateOrderedDiff(lines1, lines2);
|
||||
const QStringList &lines2,
|
||||
bool keepUnchanged) {
|
||||
return generateOrderedDiff(lines1, lines2, keepUnchanged);
|
||||
}
|
||||
|
||||
QVector<QVector<int>> DiffUtil::computeLCSMatrix(const QStringList &A,
|
||||
|
@ -40,8 +41,9 @@ QVector<QVector<int>> DiffUtil::computeLCSMatrix(const QStringList &A,
|
|||
return lcs;
|
||||
}
|
||||
|
||||
QVector<DiffUtil::DiffEntry>
|
||||
DiffUtil::generateOrderedDiff(const QStringList &A, const QStringList &B) {
|
||||
QVector<DiffUtil::DiffEntry> DiffUtil::generateOrderedDiff(const QStringList &A,
|
||||
const QStringList &B,
|
||||
bool keepUnchanged) {
|
||||
auto lcs = computeLCSMatrix(A, B);
|
||||
auto i = A.size();
|
||||
auto j = B.size();
|
||||
|
@ -49,7 +51,9 @@ DiffUtil::generateOrderedDiff(const QStringList &A, const QStringList &B) {
|
|||
|
||||
while (i > 0 && j > 0) {
|
||||
if (A[i - 1] == B[j - 1]) {
|
||||
diffEntries.prepend({B[j - 1], DiffEntry::UNCHANGED, i, j});
|
||||
if (keepUnchanged) {
|
||||
diffEntries.prepend({B[j - 1], DiffEntry::UNCHANGED, i, j});
|
||||
}
|
||||
--i;
|
||||
--j;
|
||||
} else if (lcs[i - 1][j] >= lcs[i][j - 1]) {
|
||||
|
|
|
@ -33,7 +33,8 @@ public:
|
|||
|
||||
public:
|
||||
static QVector<DiffEntry> compareFiles(const QStringList &lines1,
|
||||
const QStringList &lines2);
|
||||
const QStringList &lines2,
|
||||
bool keepUnchanged);
|
||||
|
||||
private:
|
||||
// LCS algorithm to find longest common subsequence of lines
|
||||
|
@ -41,7 +42,8 @@ private:
|
|||
const QStringList &B);
|
||||
|
||||
static QVector<DiffEntry> generateOrderedDiff(const QStringList &A,
|
||||
const QStringList &B);
|
||||
const QStringList &B,
|
||||
bool keepUnchanged);
|
||||
};
|
||||
|
||||
#endif // DIFFUTIL_H
|
||||
|
|
|
@ -681,47 +681,30 @@ CScriptDictionary *WingCStruct::convert2AsDictionary(const QVariantHash &hash) {
|
|||
: QMetaType::Type(var.typeId());
|
||||
#endif
|
||||
switch (type) {
|
||||
case QMetaType::Bool: {
|
||||
auto v = var.toBool();
|
||||
dic->Set(p->first, &v, asTYPEID_BOOL);
|
||||
break;
|
||||
}
|
||||
case QMetaType::Bool:
|
||||
case QMetaType::UChar:
|
||||
case QMetaType::Char:
|
||||
case QMetaType::Int:
|
||||
case QMetaType::Long: {
|
||||
auto v = var.toInt();
|
||||
dic->Set(p->first, &v, asTYPEID_INT32);
|
||||
case QMetaType::Long:
|
||||
case QMetaType::LongLong:
|
||||
case QMetaType::SChar:
|
||||
case QMetaType::Short: {
|
||||
auto v = var.toLongLong();
|
||||
dic->Set(p->first, asINT64(v));
|
||||
break;
|
||||
}
|
||||
case QMetaType::UInt:
|
||||
case QMetaType::ULong: {
|
||||
auto v = var.toUInt();
|
||||
dic->Set(p->first, &v, asTYPEID_UINT32);
|
||||
break;
|
||||
}
|
||||
case QMetaType::LongLong: {
|
||||
auto v = var.toLongLong();
|
||||
dic->Set(p->first, &v, asTYPEID_INT64);
|
||||
break;
|
||||
}
|
||||
case QMetaType::ULong:
|
||||
case QMetaType::UShort:
|
||||
case QMetaType::ULongLong: {
|
||||
auto v = var.toULongLong();
|
||||
dic->Set(p->first, &v, asTYPEID_UINT64);
|
||||
dic->Set(p->first, asQWORD(v));
|
||||
break;
|
||||
}
|
||||
case QMetaType::Double:
|
||||
case QMetaType::Float:
|
||||
dic->Set(p->first, var.toDouble());
|
||||
break;
|
||||
case QMetaType::Short: {
|
||||
auto v = var.value<short>();
|
||||
dic->Set(p->first, &v, asTYPEID_INT16);
|
||||
break;
|
||||
}
|
||||
case QMetaType::Char:
|
||||
case QMetaType::SChar: {
|
||||
auto v = var.value<char>();
|
||||
dic->Set(p->first, &v, asTYPEID_INT8);
|
||||
break;
|
||||
}
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
|
||||
case QMetaType::Char16: {
|
||||
auto v = var.value<char16_t>();
|
||||
|
@ -738,19 +721,6 @@ CScriptDictionary *WingCStruct::convert2AsDictionary(const QVariantHash &hash) {
|
|||
break;
|
||||
}
|
||||
#endif
|
||||
case QMetaType::UShort: {
|
||||
auto v = var.value<unsigned short>();
|
||||
dic->Set(p->first, &v, asTYPEID_UINT16);
|
||||
break;
|
||||
}
|
||||
case QMetaType::UChar: {
|
||||
auto v = var.value<unsigned char>();
|
||||
dic->Set(p->first, &v, asTYPEID_UINT8);
|
||||
break;
|
||||
}
|
||||
case QMetaType::Float:
|
||||
dic->Set(p->first, var.toFloat());
|
||||
break;
|
||||
case QMetaType::QVariantList: {
|
||||
// note: empty list is not allowed!
|
||||
// If empty, it will be ignored
|
||||
|
|
|
@ -16,8 +16,10 @@
|
|||
*/
|
||||
|
||||
#include "scripteditor.h"
|
||||
#include "DockWidgetTab.h"
|
||||
#include "qcodeeditwidget/qdocumentswaptextcommand.h"
|
||||
#include "qeditor.h"
|
||||
#include "utilities.h"
|
||||
|
||||
#ifdef Q_OS_LINUX
|
||||
#include "utilities.h"
|
||||
|
@ -110,6 +112,11 @@ bool ScriptEditor::reload() {
|
|||
return e->load(e->fileName());
|
||||
}
|
||||
|
||||
void ScriptEditor::setReadOnly(bool b) {
|
||||
m_editor->editor()->setFlag(QEditor::ReadOnly, b);
|
||||
this->tabWidget()->setIcon(b ? ICONRES("lockon") : QIcon());
|
||||
}
|
||||
|
||||
void ScriptEditor::processTitle() {
|
||||
auto e = m_editor->editor();
|
||||
if (e->isContentModified()) {
|
||||
|
@ -127,7 +134,7 @@ bool ScriptEditor::formatCode() {
|
|||
auto fmtcodes = ClangFormatManager::instance().formatCode(e->text(), ok);
|
||||
if (ok) {
|
||||
auto doc = e->document();
|
||||
doc->execute(new QDocumentSwapTextCommand(fmtcodes, doc));
|
||||
doc->execute(new QDocumentSwapTextCommand(fmtcodes, doc, e));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
|
|
@ -44,6 +44,8 @@ public slots:
|
|||
bool save(const QString &path = QString());
|
||||
bool reload();
|
||||
|
||||
void setReadOnly(bool b);
|
||||
|
||||
private:
|
||||
void processTitle();
|
||||
|
||||
|
|
|
@ -156,6 +156,10 @@ void ScriptingDialog::initConsole() {
|
|||
_needRestart = false;
|
||||
startDebugScript(_DebugingScript);
|
||||
} else {
|
||||
auto view = findEditorView(_DebugingScript);
|
||||
if (view) {
|
||||
view->setReadOnly(false);
|
||||
}
|
||||
_DebugingScript.clear();
|
||||
}
|
||||
});
|
||||
|
@ -1041,6 +1045,12 @@ void ScriptingDialog::startDebugScript(const QString &fileName) {
|
|||
|
||||
_DebugingScript = fileName;
|
||||
PluginSystem::instance().scriptPragmaBegin();
|
||||
|
||||
auto view = findEditorView(fileName);
|
||||
if (view) {
|
||||
view->setReadOnly(true);
|
||||
}
|
||||
|
||||
m_consoleout->machine()->executeScript(fileName, true);
|
||||
|
||||
updateRunDebugMode();
|
||||
|
|
|
@ -18,18 +18,17 @@
|
|||
#include "qdocumentswaptextcommand.h"
|
||||
|
||||
#include "qdocument_p.h"
|
||||
#include "qeditor.h"
|
||||
|
||||
QDocumentSwapTextCommand::QDocumentSwapTextCommand(const QString &text,
|
||||
QDocument *doc,
|
||||
QDocument *doc, QEditor *e,
|
||||
QDocumentCommand *p)
|
||||
: QDocumentCommand(Command::Custom, doc, p) {
|
||||
auto textl = text.split('\n');
|
||||
diffs = DiffUtil::compareFiles(doc->textLines(), textl);
|
||||
auto r = std::find_if(
|
||||
diffs.begin(), diffs.end(), [](const DiffUtil::DiffEntry &diff) {
|
||||
return diff.changeType != DiffUtil::DiffEntry::UNCHANGED;
|
||||
});
|
||||
if (r == diffs.end()) {
|
||||
: QDocumentCommand(Command::Custom, doc, p), _e(e) {
|
||||
Q_ASSERT(e);
|
||||
|
||||
auto textl = text.split(doc->lineEndingString());
|
||||
diffs = DiffUtil::compareFiles(doc->textLines(), textl, false);
|
||||
if (diffs.isEmpty()) {
|
||||
setObsolete(true);
|
||||
return;
|
||||
}
|
||||
|
@ -47,9 +46,33 @@ QDocumentSwapTextCommand::QDocumentSwapTextCommand(const QString &text,
|
|||
|
||||
auto cursor = doc->editCursor();
|
||||
setTargetCursor(cursor->handle());
|
||||
|
||||
_vBarValue = e->verticalScrollBar()->value();
|
||||
_hBarValue = e->horizontalScrollBar()->value();
|
||||
|
||||
QVector<int> rmLineNrs;
|
||||
QVector<int> addLineNrs;
|
||||
for (auto &item : diffs) {
|
||||
if (item.changeType == DiffUtil::DiffEntry::REMOVED) {
|
||||
auto line = m_doc->line(item.lineNumberA - 1);
|
||||
rmLineNrs.append(item.lineNumberA);
|
||||
} else if (item.changeType == DiffUtil::DiffEntry::ADDED) {
|
||||
auto line = m_doc->line(item.lineNumberB - 1);
|
||||
addLineNrs.append(item.lineNumberB);
|
||||
}
|
||||
}
|
||||
|
||||
removeCommonElements(rmLineNrs, addLineNrs);
|
||||
_rmRanges = getRange(rmLineNrs);
|
||||
_addRanges = getRange(addLineNrs);
|
||||
}
|
||||
|
||||
void QDocumentSwapTextCommand::undo() {
|
||||
// breakpoints will be removed if the line handle is removed
|
||||
auto mrkinfo = QLineMarksInfoCenter::instance();
|
||||
auto marks = backupMarks();
|
||||
mrkinfo->removeMarks(_e->fileName());
|
||||
|
||||
removeLines(0, m_doc->lineCount() - 1);
|
||||
removeText(0, 0, header.length());
|
||||
insertText(0, 0, oldheader);
|
||||
|
@ -65,22 +88,130 @@ void QDocumentSwapTextCommand::undo() {
|
|||
markUndone(line.handle());
|
||||
}
|
||||
}
|
||||
|
||||
// so reapply is nessary
|
||||
undoApplyLineMarks(marks);
|
||||
|
||||
// reset the scrollbar
|
||||
_e->verticalScrollBar()->setValue(_vBarValue);
|
||||
_e->horizontalScrollBar()->setValue(_hBarValue);
|
||||
}
|
||||
|
||||
void QDocumentSwapTextCommand::redo() {
|
||||
// breakpoints will be removed if the line handle is removed
|
||||
auto mrkinfo = QLineMarksInfoCenter::instance();
|
||||
auto marks = backupMarks();
|
||||
mrkinfo->removeMarks(_e->fileName());
|
||||
|
||||
removeLines(0, m_doc->lineCount() - 1);
|
||||
removeText(0, 0, oldheader.length());
|
||||
insertText(0, 0, header);
|
||||
insertLines(0, _handles);
|
||||
|
||||
m_doc->impl()->emitContentsChange(0, _handles.count() + 1);
|
||||
for (auto &item : diffs) {
|
||||
if (item.changeType == DiffUtil::DiffEntry::REMOVED) {
|
||||
auto line = m_doc->line(item.lineNumberA - 1);
|
||||
markRedone(line.handle(), m_first);
|
||||
} else if (item.changeType == DiffUtil::DiffEntry::ADDED) {
|
||||
auto line = m_doc->line(item.lineNumberB - 1);
|
||||
markRedone(line.handle(), m_first);
|
||||
|
||||
// so reapply is nessary
|
||||
applyLineMarks(marks);
|
||||
|
||||
_e->verticalScrollBar()->setValue(_vBarValue);
|
||||
_e->horizontalScrollBar()->setValue(_hBarValue);
|
||||
}
|
||||
|
||||
QLineMarkList QDocumentSwapTextCommand::backupMarks() {
|
||||
auto mrkinfo = QLineMarksInfoCenter::instance();
|
||||
auto filename = _e->fileName();
|
||||
return mrkinfo->marks(filename);
|
||||
}
|
||||
|
||||
void QDocumentSwapTextCommand::applyLineMarks(const QLineMarkList &marks) {
|
||||
auto mrkinfo = QLineMarksInfoCenter::instance();
|
||||
|
||||
for (auto &m : marks) {
|
||||
int total = 0;
|
||||
|
||||
auto pend = _rmRanges.lowerBound(m.line);
|
||||
for (auto p = _rmRanges.begin(); p != pend; ++p) {
|
||||
total -= *p;
|
||||
}
|
||||
|
||||
pend = _addRanges.lowerBound(m.line);
|
||||
for (auto p = _addRanges.begin(); p != pend; ++p) {
|
||||
total += *p;
|
||||
}
|
||||
|
||||
auto mark = m;
|
||||
mark.line += total;
|
||||
mrkinfo->addLineMark(mark);
|
||||
}
|
||||
}
|
||||
|
||||
void QDocumentSwapTextCommand::undoApplyLineMarks(const QLineMarkList &marks) {
|
||||
auto mrkinfo = QLineMarksInfoCenter::instance();
|
||||
|
||||
for (auto &m : marks) {
|
||||
int total = 0;
|
||||
|
||||
auto pend = _rmRanges.lowerBound(m.line);
|
||||
for (auto p = _rmRanges.begin(); p != pend; ++p) {
|
||||
total += *p;
|
||||
}
|
||||
|
||||
pend = _addRanges.lowerBound(m.line);
|
||||
for (auto p = _addRanges.begin(); p != pend; ++p) {
|
||||
total -= *p;
|
||||
}
|
||||
|
||||
auto mark = m;
|
||||
mark.line += total;
|
||||
mrkinfo->addLineMark(mark);
|
||||
}
|
||||
}
|
||||
|
||||
void QDocumentSwapTextCommand::removeCommonElements(QVector<int> &vec1,
|
||||
QVector<int> &vec2) {
|
||||
int i = 0, j = 0;
|
||||
|
||||
// Two-pointer technique on sorted vectors
|
||||
while (i < vec1.size() && j < vec2.size()) {
|
||||
if (vec1[i] == vec2[j]) {
|
||||
// If both elements are equal, remove them from both vectors
|
||||
vec1.remove(i);
|
||||
vec2.remove(j);
|
||||
// No need to increment i and j since we removed elements
|
||||
} else if (vec1[i] < vec2[j]) {
|
||||
// If vec1[i] is smaller, move to the next element in vec1
|
||||
++i;
|
||||
} else {
|
||||
// If vec2[j] is smaller, move to the next element in vec2
|
||||
++j;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
QDocumentSwapTextCommand::Ranges
|
||||
QDocumentSwapTextCommand::getRange(const QVector<int> &vec) {
|
||||
if (vec.isEmpty()) {
|
||||
return {};
|
||||
}
|
||||
|
||||
Ranges ranges;
|
||||
auto start = vec.front();
|
||||
auto end = start;
|
||||
|
||||
for (int i = 1; i < vec.size(); ++i) {
|
||||
if (vec[i] == end + 1) {
|
||||
// Continue the current range
|
||||
end = vec[i];
|
||||
} else {
|
||||
// Finalize the current range
|
||||
ranges.insert(start, end - start + 1);
|
||||
|
||||
// Start a new range
|
||||
start = vec[i];
|
||||
end = start;
|
||||
}
|
||||
}
|
||||
|
||||
ranges.insert(start, end - start + 1);
|
||||
return ranges;
|
||||
}
|
||||
|
|
|
@ -20,10 +20,16 @@
|
|||
|
||||
#include "class/diffutil.h"
|
||||
#include "qdocumentcommand.h"
|
||||
#include "qlinemarksinfocenter.h"
|
||||
|
||||
#include <QMap>
|
||||
|
||||
class QEditor;
|
||||
|
||||
class QDocumentSwapTextCommand : public QDocumentCommand {
|
||||
public:
|
||||
explicit QDocumentSwapTextCommand(const QString &text, QDocument *doc,
|
||||
QEditor *e,
|
||||
QDocumentCommand *p = nullptr);
|
||||
|
||||
// QUndoCommand interface
|
||||
|
@ -31,11 +37,31 @@ public:
|
|||
void undo();
|
||||
void redo();
|
||||
|
||||
private:
|
||||
using Ranges = QMap<int, int>;
|
||||
|
||||
private:
|
||||
QLineMarkList backupMarks();
|
||||
void applyLineMarks(const QLineMarkList &marks);
|
||||
void undoApplyLineMarks(const QLineMarkList &marks);
|
||||
|
||||
void removeCommonElements(QVector<int> &vec1, QVector<int> &vec2);
|
||||
|
||||
Ranges getRange(const QVector<int> &vec);
|
||||
|
||||
private:
|
||||
QString header, oldheader;
|
||||
|
||||
QList<QDocumentLineHandle *> _handles;
|
||||
QList<QDocumentLineHandle *> _oldhandles;
|
||||
QVector<DiffUtil::DiffEntry> diffs;
|
||||
|
||||
QEditor *_e;
|
||||
int _vBarValue;
|
||||
int _hBarValue;
|
||||
|
||||
Ranges _rmRanges;
|
||||
Ranges _addRanges;
|
||||
};
|
||||
|
||||
#endif // QDOCUMENTSWAPTEXTCOMMAND_H
|
||||
|
|
|
@ -323,6 +323,10 @@ void CScriptDictionary::Set(const dictKey_t &key, void *value, int typeId) {
|
|||
it->second.Set(engine, value, typeId);
|
||||
}
|
||||
|
||||
void CScriptDictionary::Set(const dictKey_t &key, const asQWORD &value) {
|
||||
Set(key, const_cast<asQWORD *>(&value), asTYPEID_UINT64);
|
||||
}
|
||||
|
||||
// This overloaded method is implemented so that all integer and
|
||||
// unsigned integers types will be stored in the dictionary as int64
|
||||
// through implicit conversions. This simplifies the management of the
|
||||
|
@ -355,6 +359,10 @@ bool CScriptDictionary::Get(const dictKey_t &key, void *value,
|
|||
return false;
|
||||
}
|
||||
|
||||
bool CScriptDictionary::Get(const dictKey_t &key, asQWORD &value) const {
|
||||
return Get(key, &value, asTYPEID_UINT64);
|
||||
}
|
||||
|
||||
// Returns the type id of the stored value
|
||||
int CScriptDictionary::GetTypeId(const dictKey_t &key) const {
|
||||
dictMap_t::const_iterator it;
|
||||
|
@ -477,6 +485,13 @@ void ScriptDictionarySetInt_Generic(asIScriptGeneric *gen) {
|
|||
dict->Set(*key, *(asINT64 *)ref);
|
||||
}
|
||||
|
||||
void ScriptDictionarySetUInt_Generic(asIScriptGeneric *gen) {
|
||||
CScriptDictionary *dict = (CScriptDictionary *)gen->GetObject();
|
||||
dictKey_t *key = *(dictKey_t **)gen->GetAddressOfArg(0);
|
||||
void *ref = *(void **)gen->GetAddressOfArg(1);
|
||||
dict->Set(*key, *(asQWORD *)ref);
|
||||
}
|
||||
|
||||
void ScriptDictionarySetFlt_Generic(asIScriptGeneric *gen) {
|
||||
CScriptDictionary *dict = (CScriptDictionary *)gen->GetObject();
|
||||
dictKey_t *key = *(dictKey_t **)gen->GetAddressOfArg(0);
|
||||
|
@ -500,6 +515,14 @@ void ScriptDictionaryGetInt_Generic(asIScriptGeneric *gen) {
|
|||
dict->Get(*key, *(asINT64 *)ref);
|
||||
}
|
||||
|
||||
void ScriptDictionaryGetUInt_Generic(asIScriptGeneric *gen) {
|
||||
CScriptDictionary *dict = (CScriptDictionary *)gen->GetObject();
|
||||
dictKey_t *key = *(dictKey_t **)gen->GetAddressOfArg(0);
|
||||
void *ref = *(void **)gen->GetAddressOfArg(1);
|
||||
*(bool *)gen->GetAddressOfReturnLocation() =
|
||||
dict->Get(*key, *(asQWORD *)ref);
|
||||
}
|
||||
|
||||
void ScriptDictionaryGetFlt_Generic(asIScriptGeneric *gen) {
|
||||
CScriptDictionary *dict = (CScriptDictionary *)gen->GetObject();
|
||||
dictKey_t *key = *(dictKey_t **)gen->GetAddressOfArg(0);
|
||||
|
@ -662,6 +685,10 @@ void CScriptDictValue::Set(asIScriptEngine *engine, void *value, int typeId) {
|
|||
}
|
||||
}
|
||||
|
||||
void CScriptDictValue::Set(asIScriptEngine *engine, const asQWORD &value) {
|
||||
Set(engine, const_cast<asQWORD *>(&value), asTYPEID_UINT64);
|
||||
}
|
||||
|
||||
void CScriptDictValue::Set(asIScriptEngine *engine, CScriptDictValue &value) {
|
||||
if (value.m_typeId & asTYPEID_OBJHANDLE)
|
||||
Set(engine, (void *)&value.m_valueObj, value.m_typeId);
|
||||
|
@ -761,7 +788,7 @@ bool CScriptDictValue::Get(asIScriptEngine *engine, void *value,
|
|||
return false;
|
||||
}
|
||||
return true;
|
||||
} else if (typeId == asTYPEID_INT64) {
|
||||
} else if (typeId == asTYPEID_INT64 || typeId == asTYPEID_UINT64) {
|
||||
if (m_typeId == asTYPEID_DOUBLE)
|
||||
*(asINT64 *)value = asINT64(m_valueFlt);
|
||||
else if (m_typeId == asTYPEID_BOOL) {
|
||||
|
@ -837,6 +864,10 @@ bool CScriptDictValue::Get(asIScriptEngine *engine, void *value,
|
|||
return false;
|
||||
}
|
||||
|
||||
bool CScriptDictValue::Get(asIScriptEngine *engine, asQWORD &value) const {
|
||||
return Get(engine, &value, asTYPEID_UINT64);
|
||||
}
|
||||
|
||||
const void *CScriptDictValue::GetAddressOfValue() const {
|
||||
if ((m_typeId & asTYPEID_MASK_OBJECT) && !(m_typeId & asTYPEID_OBJHANDLE)) {
|
||||
// Return the address to the object directly
|
||||
|
@ -902,6 +933,11 @@ static CScriptDictValue &CScriptDictValue_opAssign(asINT64 val,
|
|||
return CScriptDictValue_opAssign(&val, asTYPEID_INT64, obj);
|
||||
}
|
||||
|
||||
static CScriptDictValue &CScriptDictValue_opAssign(asQWORD val,
|
||||
CScriptDictValue *obj) {
|
||||
return CScriptDictValue_opAssign(&val, asTYPEID_UINT64, obj);
|
||||
}
|
||||
|
||||
static void CScriptDictValue_opCast(void *ref, int typeId,
|
||||
CScriptDictValue *obj) {
|
||||
asIScriptContext *ctx = asGetActiveContext();
|
||||
|
@ -917,6 +953,12 @@ static asINT64 CScriptDictValue_opConvInt(CScriptDictValue *obj) {
|
|||
return value;
|
||||
}
|
||||
|
||||
static asQWORD CScriptDictValue_opConvUInt(CScriptDictValue *obj) {
|
||||
asQWORD value;
|
||||
CScriptDictValue_opCast(&value, asTYPEID_UINT64, obj);
|
||||
return value;
|
||||
}
|
||||
|
||||
static double CScriptDictValue_opConvDouble(CScriptDictValue *obj) {
|
||||
double value;
|
||||
CScriptDictValue_opCast(&value, asTYPEID_DOUBLE, obj);
|
||||
|
@ -940,6 +982,13 @@ static void CScriptDictValue_opConvInt_Generic(asIScriptGeneric *gen) {
|
|||
*(asINT64 *)gen->GetAddressOfReturnLocation() = value;
|
||||
}
|
||||
|
||||
static void CScriptDictValue_opConvUInt_Generic(asIScriptGeneric *gen) {
|
||||
CScriptDictValue *self = (CScriptDictValue *)gen->GetObject();
|
||||
asQWORD value;
|
||||
self->Get(gen->GetEngine(), value);
|
||||
*(asQWORD *)gen->GetAddressOfReturnLocation() = value;
|
||||
}
|
||||
|
||||
static void CScriptDictValue_opCast_Generic(asIScriptGeneric *gen) {
|
||||
CScriptDictValue *self = (CScriptDictValue *)gen->GetObject();
|
||||
self->Get(gen->GetEngine(), gen->GetArgAddress(0), gen->GetArgTypeId(0));
|
||||
|
@ -951,6 +1000,12 @@ static void CScriptDictValue_opAssign_int64_Generic(asIScriptGeneric *gen) {
|
|||
&CScriptDictValue_opAssign((asINT64)gen->GetArgQWord(0), self);
|
||||
}
|
||||
|
||||
static void CScriptDictValue_opAssign_uint64_Generic(asIScriptGeneric *gen) {
|
||||
CScriptDictValue *self = (CScriptDictValue *)gen->GetObject();
|
||||
*(CScriptDictValue **)gen->GetAddressOfReturnLocation() =
|
||||
&CScriptDictValue_opAssign(gen->GetArgQWord(0), self);
|
||||
}
|
||||
|
||||
static void CScriptDictValue_opAssign_double_Generic(asIScriptGeneric *gen) {
|
||||
CScriptDictValue *self = (CScriptDictValue *)gen->GetObject();
|
||||
*(CScriptDictValue **)gen->GetAddressOfReturnLocation() =
|
||||
|
@ -1013,29 +1068,35 @@ void RegisterScriptDictionary_Native(asIScriptEngine *engine) {
|
|||
r = engine->RegisterObjectType("dictionaryValue", sizeof(CScriptDictValue),
|
||||
asOBJ_VALUE | asOBJ_ASHANDLE | asOBJ_GC |
|
||||
asGetTypeTraits<CScriptDictValue>());
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
#else
|
||||
r = engine->RegisterObjectType("dictionaryValue", sizeof(CScriptDictValue),
|
||||
asOBJ_VALUE | asOBJ_ASHANDLE | asOBJ_GC |
|
||||
asOBJ_APP_CLASS_CD);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
#endif
|
||||
r = engine->RegisterObjectBehaviour(
|
||||
"dictionaryValue", asBEHAVE_CONSTRUCT, "void f()",
|
||||
asFUNCTION(CScriptDictValue_Construct), asCALL_CDECL_OBJLAST);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectBehaviour(
|
||||
"dictionaryValue", asBEHAVE_DESTRUCT, "void f()",
|
||||
asFUNCTION(CScriptDictValue_Destruct), asCALL_CDECL_OBJLAST);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectBehaviour(
|
||||
"dictionaryValue", asBEHAVE_ENUMREFS, "void f(int&in)",
|
||||
asMETHOD(CScriptDictValue, EnumReferences), asCALL_THISCALL);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectBehaviour(
|
||||
"dictionaryValue", asBEHAVE_RELEASEREFS, "void f(int&in)",
|
||||
asMETHOD(CScriptDictValue, FreeValue), asCALL_THISCALL);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionaryValue",
|
||||
"dictionaryValue &opAssign(const dictionaryValue &in)",
|
||||
|
@ -1043,13 +1104,15 @@ void RegisterScriptDictionary_Native(asIScriptEngine *engine) {
|
|||
(const CScriptDictValue &, CScriptDictValue *),
|
||||
CScriptDictValue &),
|
||||
asCALL_CDECL_OBJLAST);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionaryValue", "dictionaryValue &opHndlAssign(const ?&in)",
|
||||
asFUNCTIONPR(CScriptDictValue_opAssign,
|
||||
(void *, int, CScriptDictValue *), CScriptDictValue &),
|
||||
asCALL_CDECL_OBJLAST);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionaryValue",
|
||||
"dictionaryValue &opHndlAssign(const dictionaryValue &in)",
|
||||
|
@ -1057,200 +1120,265 @@ void RegisterScriptDictionary_Native(asIScriptEngine *engine) {
|
|||
(const CScriptDictValue &, CScriptDictValue *),
|
||||
CScriptDictValue &),
|
||||
asCALL_CDECL_OBJLAST);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionaryValue", "dictionaryValue &opAssign(const ?&in)",
|
||||
asFUNCTIONPR(CScriptDictValue_opAssign,
|
||||
(void *, int, CScriptDictValue *), CScriptDictValue &),
|
||||
asCALL_CDECL_OBJLAST);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionaryValue", "dictionaryValue &opAssign(double)",
|
||||
asFUNCTIONPR(CScriptDictValue_opAssign, (double, CScriptDictValue *),
|
||||
CScriptDictValue &),
|
||||
asCALL_CDECL_OBJLAST);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionaryValue", "dictionaryValue &opAssign(int64)",
|
||||
asFUNCTIONPR(CScriptDictValue_opAssign, (asINT64, CScriptDictValue *),
|
||||
CScriptDictValue &),
|
||||
asCALL_CDECL_OBJLAST);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionaryValue", "dictionaryValue &opAssign(uint64)",
|
||||
asFUNCTIONPR(CScriptDictValue_opAssign, (asQWORD, CScriptDictValue *),
|
||||
CScriptDictValue &),
|
||||
asCALL_CDECL_OBJLAST);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionaryValue", "void opCast(?&out)",
|
||||
asFUNCTIONPR(CScriptDictValue_opCast, (void *, int, CScriptDictValue *),
|
||||
void),
|
||||
asCALL_CDECL_OBJLAST);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionaryValue", "void opConv(?&out)",
|
||||
asFUNCTIONPR(CScriptDictValue_opCast, (void *, int, CScriptDictValue *),
|
||||
void),
|
||||
asCALL_CDECL_OBJLAST);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionaryValue", "int64 opConv()",
|
||||
asFUNCTIONPR(CScriptDictValue_opConvInt, (CScriptDictValue *), asINT64),
|
||||
asCALL_CDECL_OBJLAST);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectMethod("dictionaryValue", "uint64 opConv()",
|
||||
asFUNCTIONPR(CScriptDictValue_opConvUInt,
|
||||
(CScriptDictValue *),
|
||||
asQWORD),
|
||||
asCALL_CDECL_OBJLAST);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectMethod("dictionaryValue", "double opConv()",
|
||||
asFUNCTIONPR(CScriptDictValue_opConvDouble,
|
||||
(CScriptDictValue *), double),
|
||||
asCALL_CDECL_OBJLAST);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
|
||||
r = engine->RegisterObjectType("dictionary", sizeof(CScriptDictionary),
|
||||
asOBJ_REF | asOBJ_GC);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
// Use the generic interface to construct the object since we need the
|
||||
// engine pointer, we could also have retrieved the engine pointer from the
|
||||
// active context
|
||||
r = engine->RegisterObjectBehaviour(
|
||||
"dictionary", asBEHAVE_FACTORY, "dictionary@ f()",
|
||||
asFUNCTION(ScriptDictionaryFactory_Generic), asCALL_GENERIC);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectBehaviour(
|
||||
"dictionary", asBEHAVE_LIST_FACTORY,
|
||||
"dictionary @f(int &in) {repeat {string, ?}}",
|
||||
asFUNCTION(ScriptDictionaryListFactory_Generic), asCALL_GENERIC);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectBehaviour(
|
||||
"dictionary", asBEHAVE_ADDREF, "void f()",
|
||||
asMETHOD(CScriptDictionary, AddRef), asCALL_THISCALL);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectBehaviour(
|
||||
"dictionary", asBEHAVE_RELEASE, "void f()",
|
||||
asMETHOD(CScriptDictionary, Release), asCALL_THISCALL);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionary", "dictionary &opAssign(const dictionary &in)",
|
||||
asMETHODPR(CScriptDictionary, operator=, (const CScriptDictionary &),
|
||||
CScriptDictionary &),
|
||||
asCALL_THISCALL);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionary", "void set(const string &in, const ?&in)",
|
||||
asMETHODPR(CScriptDictionary, Set, (const dictKey_t &, void *, int),
|
||||
void),
|
||||
asCALL_THISCALL);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionary", "bool get(const string &in, ?&out) const",
|
||||
asMETHODPR(CScriptDictionary, Get,
|
||||
(const dictKey_t &, void *, int) const, bool),
|
||||
asCALL_THISCALL);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionary", "void set(const string &in, const int64&in)",
|
||||
asMETHODPR(CScriptDictionary, Set, (const dictKey_t &, const asINT64 &),
|
||||
void),
|
||||
asCALL_THISCALL);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionary", "void set(const string &in, const uint64&in)",
|
||||
asMETHODPR(CScriptDictionary, Set, (const dictKey_t &, const asQWORD &),
|
||||
void),
|
||||
asCALL_THISCALL);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionary", "bool get(const string &in, int64&out) const",
|
||||
asMETHODPR(CScriptDictionary, Get, (const dictKey_t &, asINT64 &) const,
|
||||
bool),
|
||||
asCALL_THISCALL);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionary", "bool get(const string &in, uint64&out) const",
|
||||
asMETHODPR(CScriptDictionary, Get, (const dictKey_t &, asQWORD &) const,
|
||||
bool),
|
||||
asCALL_THISCALL);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionary", "void set(const string &in, const double&in)",
|
||||
asMETHODPR(CScriptDictionary, Set, (const dictKey_t &, const double &),
|
||||
void),
|
||||
asCALL_THISCALL);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionary", "bool get(const string &in, double&out) const",
|
||||
asMETHODPR(CScriptDictionary, Get, (const dictKey_t &, double &) const,
|
||||
bool),
|
||||
asCALL_THISCALL);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionary", "bool exists(const string &in) const",
|
||||
asMETHOD(CScriptDictionary, Exists), asCALL_THISCALL);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectMethod("dictionary", "bool isEmpty() const",
|
||||
asMETHOD(CScriptDictionary, IsEmpty),
|
||||
asCALL_THISCALL);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectMethod("dictionary", "uint getSize() const",
|
||||
asMETHOD(CScriptDictionary, GetSize),
|
||||
asCALL_THISCALL);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionary", "bool delete(const string &in)",
|
||||
asMETHOD(CScriptDictionary, Delete), asCALL_THISCALL);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectMethod("dictionary", "void deleteAll()",
|
||||
asMETHOD(CScriptDictionary, DeleteAll),
|
||||
asCALL_THISCALL);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionary", "array<string> @getKeys() const",
|
||||
asMETHOD(CScriptDictionary, GetKeys), asCALL_THISCALL);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionary", "dictionaryValue &opIndex(const string &in)",
|
||||
asMETHODPR(CScriptDictionary, operator[], (const dictKey_t &),
|
||||
CScriptDictValue *),
|
||||
asCALL_THISCALL);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionary", "const dictionaryValue &opIndex(const string &in) const",
|
||||
asMETHODPR(CScriptDictionary, operator[], (const dictKey_t &) const,
|
||||
const CScriptDictValue *),
|
||||
asCALL_THISCALL);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
|
||||
// Register GC behaviours
|
||||
r = engine->RegisterObjectBehaviour(
|
||||
"dictionary", asBEHAVE_GETREFCOUNT, "int f()",
|
||||
asMETHOD(CScriptDictionary, GetRefCount), asCALL_THISCALL);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectBehaviour(
|
||||
"dictionary", asBEHAVE_SETGCFLAG, "void f()",
|
||||
asMETHOD(CScriptDictionary, SetGCFlag), asCALL_THISCALL);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectBehaviour(
|
||||
"dictionary", asBEHAVE_GETGCFLAG, "bool f()",
|
||||
asMETHOD(CScriptDictionary, GetGCFlag), asCALL_THISCALL);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectBehaviour(
|
||||
"dictionary", asBEHAVE_ENUMREFS, "void f(int&in)",
|
||||
asMETHOD(CScriptDictionary, EnumReferences), asCALL_THISCALL);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectBehaviour(
|
||||
"dictionary", asBEHAVE_RELEASEREFS, "void f(int&in)",
|
||||
asMETHOD(CScriptDictionary, ReleaseAllReferences), asCALL_THISCALL);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
|
||||
#if AS_USE_STLNAMES == 1
|
||||
// Same as isEmpty
|
||||
r = engine->RegisterObjectMethod("dictionary", "bool empty() const",
|
||||
asMETHOD(CScriptDictionary, IsEmpty),
|
||||
asCALL_THISCALL);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
// Same as getSize
|
||||
r = engine->RegisterObjectMethod("dictionary", "uint size() const",
|
||||
asMETHOD(CScriptDictionary, GetSize),
|
||||
asCALL_THISCALL);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
// Same as delete
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionary", "void erase(const string &in)",
|
||||
asMETHOD(CScriptDictionary, Delete), asCALL_THISCALL);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
// Same as deleteAll
|
||||
r = engine->RegisterObjectMethod("dictionary", "void clear()",
|
||||
asMETHOD(CScriptDictionary, DeleteAll),
|
||||
asCALL_THISCALL);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
#endif
|
||||
|
||||
// Cache some things the dictionary will need at runtime
|
||||
|
@ -1270,182 +1398,243 @@ void RegisterScriptDictionary_Generic(asIScriptEngine *engine) {
|
|||
r = engine->RegisterObjectType("dictionaryValue", sizeof(CScriptDictValue),
|
||||
asOBJ_VALUE | asOBJ_ASHANDLE | asOBJ_GC |
|
||||
asGetTypeTraits<CScriptDictValue>());
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
#else
|
||||
r = engine->RegisterObjectType("dictionaryValue", sizeof(CScriptDictValue),
|
||||
asOBJ_VALUE | asOBJ_ASHANDLE | asOBJ_GC |
|
||||
asOBJ_APP_CLASS_CD);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
#endif
|
||||
r = engine->RegisterObjectBehaviour(
|
||||
"dictionaryValue", asBEHAVE_CONSTRUCT, "void f()",
|
||||
asFUNCTION(CScriptDictValue_Construct_Generic), asCALL_GENERIC);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectBehaviour(
|
||||
"dictionaryValue", asBEHAVE_DESTRUCT, "void f()",
|
||||
asFUNCTION(CScriptDictValue_Destruct_Generic), asCALL_GENERIC);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectBehaviour(
|
||||
"dictionaryValue", asBEHAVE_ENUMREFS, "void f(int&in)",
|
||||
asFUNCTION(CScriptDictValue_EnumReferences_Generic), asCALL_GENERIC);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectBehaviour(
|
||||
"dictionaryValue", asBEHAVE_RELEASEREFS, "void f(int&in)",
|
||||
asFUNCTION(CScriptDictValue_FreeValue_Generic), asCALL_GENERIC);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionaryValue",
|
||||
"dictionaryValue &opAssign(const dictionaryValue &in)",
|
||||
asFUNCTION(CScriptDictValue_opCopyAssign_Generic), asCALL_GENERIC);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionaryValue", "dictionaryValue &opHndlAssign(const ?&in)",
|
||||
asFUNCTION(CScriptDictValue_opAssign_Generic), asCALL_GENERIC);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionaryValue",
|
||||
"dictionaryValue &opHndlAssign(const dictionaryValue &in)",
|
||||
asFUNCTION(CScriptDictValue_opCopyAssign_Generic), asCALL_GENERIC);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionaryValue", "dictionaryValue &opAssign(const ?&in)",
|
||||
asFUNCTION(CScriptDictValue_opAssign_Generic), asCALL_GENERIC);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionaryValue", "dictionaryValue &opAssign(double)",
|
||||
asFUNCTION(CScriptDictValue_opAssign_double_Generic), asCALL_GENERIC);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionaryValue", "dictionaryValue &opAssign(int64)",
|
||||
asFUNCTION(CScriptDictValue_opAssign_int64_Generic), asCALL_GENERIC);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionaryValue", "dictionaryValue &opAssign(uint64)",
|
||||
asFUNCTION(CScriptDictValue_opAssign_uint64_Generic), asCALL_GENERIC);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionaryValue", "void opCast(?&out)",
|
||||
asFUNCTION(CScriptDictValue_opCast_Generic), asCALL_GENERIC);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionaryValue", "void opConv(?&out)",
|
||||
asFUNCTION(CScriptDictValue_opCast_Generic), asCALL_GENERIC);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionaryValue", "int64 opConv()",
|
||||
asFUNCTION(CScriptDictValue_opConvInt_Generic), asCALL_GENERIC);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionaryValue", "uint64 opConv()",
|
||||
asFUNCTION(CScriptDictValue_opConvUInt_Generic), asCALL_GENERIC);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionaryValue", "double opConv()",
|
||||
asFUNCTION(CScriptDictValue_opConvDouble_Generic), asCALL_GENERIC);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
|
||||
r = engine->RegisterObjectType("dictionary", sizeof(CScriptDictionary),
|
||||
asOBJ_REF | asOBJ_GC);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectBehaviour(
|
||||
"dictionary", asBEHAVE_FACTORY, "dictionary@ f()",
|
||||
asFUNCTION(ScriptDictionaryFactory_Generic), asCALL_GENERIC);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectBehaviour(
|
||||
"dictionary", asBEHAVE_LIST_FACTORY,
|
||||
"dictionary @f(int &in) {repeat {string, ?}}",
|
||||
asFUNCTION(ScriptDictionaryListFactory_Generic), asCALL_GENERIC);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectBehaviour(
|
||||
"dictionary", asBEHAVE_ADDREF, "void f()",
|
||||
asFUNCTION(ScriptDictionaryAddRef_Generic), asCALL_GENERIC);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectBehaviour(
|
||||
"dictionary", asBEHAVE_RELEASE, "void f()",
|
||||
asFUNCTION(ScriptDictionaryRelease_Generic), asCALL_GENERIC);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionary", "dictionary &opAssign(const dictionary &in)",
|
||||
asFUNCTION(ScriptDictionaryAssign_Generic), asCALL_GENERIC);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionary", "void set(const string &in, const ?&in)",
|
||||
asFUNCTION(ScriptDictionarySet_Generic), asCALL_GENERIC);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionary", "bool get(const string &in, ?&out) const",
|
||||
asFUNCTION(ScriptDictionaryGet_Generic), asCALL_GENERIC);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionary", "void set(const string &in, const int64&in)",
|
||||
asFUNCTION(ScriptDictionarySetInt_Generic), asCALL_GENERIC);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionary", "void set(const string &in, const uint64&in)",
|
||||
asFUNCTION(ScriptDictionarySetUInt_Generic), asCALL_GENERIC);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionary", "bool get(const string &in, int64&out) const",
|
||||
asFUNCTION(ScriptDictionaryGetInt_Generic), asCALL_GENERIC);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionary", "bool get(const string &in, uint64&out) const",
|
||||
asFUNCTION(ScriptDictionaryGetUInt_Generic), asCALL_GENERIC);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionary", "void set(const string &in, const double&in)",
|
||||
asFUNCTION(ScriptDictionarySetFlt_Generic), asCALL_GENERIC);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionary", "bool get(const string &in, double&out) const",
|
||||
asFUNCTION(ScriptDictionaryGetFlt_Generic), asCALL_GENERIC);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionary", "bool exists(const string &in) const",
|
||||
asFUNCTION(ScriptDictionaryExists_Generic), asCALL_GENERIC);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionary", "bool isEmpty() const",
|
||||
asFUNCTION(ScriptDictionaryIsEmpty_Generic), asCALL_GENERIC);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionary", "uint getSize() const",
|
||||
asFUNCTION(ScriptDictionaryGetSize_Generic), asCALL_GENERIC);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionary", "bool delete(const string &in)",
|
||||
asFUNCTION(ScriptDictionaryDelete_Generic), asCALL_GENERIC);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionary", "void deleteAll()",
|
||||
asFUNCTION(ScriptDictionaryDeleteAll_Generic), asCALL_GENERIC);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionary", "array<string> @getKeys() const",
|
||||
asFUNCTION(CScriptDictionaryGetKeys_Generic), asCALL_GENERIC);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionary", "dictionaryValue &opIndex(const string &in)",
|
||||
asFUNCTION(CScriptDictionary_opIndex_Generic), asCALL_GENERIC);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectMethod(
|
||||
"dictionary", "const dictionaryValue &opIndex(const string &in) const",
|
||||
asFUNCTION(CScriptDictionary_opIndex_const_Generic), asCALL_GENERIC);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
|
||||
// Register GC behaviours
|
||||
r = engine->RegisterObjectBehaviour(
|
||||
"dictionary", asBEHAVE_GETREFCOUNT, "int f()",
|
||||
asFUNCTION(ScriptDictionaryGetRefCount_Generic), asCALL_GENERIC);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectBehaviour(
|
||||
"dictionary", asBEHAVE_SETGCFLAG, "void f()",
|
||||
asFUNCTION(ScriptDictionarySetGCFlag_Generic), asCALL_GENERIC);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectBehaviour(
|
||||
"dictionary", asBEHAVE_GETGCFLAG, "bool f()",
|
||||
asFUNCTION(ScriptDictionaryGetGCFlag_Generic), asCALL_GENERIC);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectBehaviour(
|
||||
"dictionary", asBEHAVE_ENUMREFS, "void f(int&in)",
|
||||
asFUNCTION(ScriptDictionaryEnumReferences_Generic), asCALL_GENERIC);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
r = engine->RegisterObjectBehaviour(
|
||||
"dictionary", asBEHAVE_RELEASEREFS, "void f(int&in)",
|
||||
asFUNCTION(ScriptDictionaryReleaseAllReferences_Generic),
|
||||
asCALL_GENERIC);
|
||||
assert(r >= 0);
|
||||
Q_ASSERT(r >= 0);
|
||||
Q_UNUSED(r);
|
||||
|
||||
// Cache some things the dictionary will need at runtime
|
||||
SDictionaryCache::Setup(engine);
|
||||
|
@ -1501,6 +1690,10 @@ int CScriptDictionary::CIterator::GetTypeId() const {
|
|||
return m_it->second.m_typeId;
|
||||
}
|
||||
|
||||
bool CScriptDictionary::CIterator::GetValue(asQWORD &value) const {
|
||||
return m_it->second.Get(m_dict.engine, &value, asTYPEID_UINT64);
|
||||
}
|
||||
|
||||
bool CScriptDictionary::CIterator::GetValue(asINT64 &value) const {
|
||||
return m_it->second.Get(m_dict.engine, &value, asTYPEID_INT64);
|
||||
}
|
||||
|
|
|
@ -67,6 +67,7 @@ public:
|
|||
|
||||
// Replace the stored value
|
||||
void Set(asIScriptEngine *engine, void *value, int typeId);
|
||||
void Set(asIScriptEngine *engine, const asQWORD &value);
|
||||
void Set(asIScriptEngine *engine, const asINT64 &value);
|
||||
void Set(asIScriptEngine *engine, const double &value);
|
||||
void Set(asIScriptEngine *engine, CScriptDictValue &value);
|
||||
|
@ -74,6 +75,7 @@ public:
|
|||
// Gets the stored value. Returns false if the value isn't compatible with
|
||||
// the informed typeId
|
||||
bool Get(asIScriptEngine *engine, void *value, int typeId) const;
|
||||
bool Get(asIScriptEngine *engine, asQWORD &value) const;
|
||||
bool Get(asIScriptEngine *engine, asINT64 &value) const;
|
||||
bool Get(asIScriptEngine *engine, double &value) const;
|
||||
|
||||
|
@ -118,12 +120,14 @@ public:
|
|||
|
||||
// Sets a key/value pair
|
||||
void Set(const dictKey_t &key, void *value, int typeId);
|
||||
void Set(const dictKey_t &key, const asQWORD &value);
|
||||
void Set(const dictKey_t &key, const asINT64 &value);
|
||||
void Set(const dictKey_t &key, const double &value);
|
||||
|
||||
// Gets the stored value. Returns false if the value isn't compatible with
|
||||
// the informed typeId
|
||||
bool Get(const dictKey_t &key, void *value, int typeId) const;
|
||||
bool Get(const dictKey_t &key, asQWORD &value) const;
|
||||
bool Get(const dictKey_t &key, asINT64 &value) const;
|
||||
bool Get(const dictKey_t &key, double &value) const;
|
||||
|
||||
|
@ -171,6 +175,7 @@ public:
|
|||
// Accessors
|
||||
const dictKey_t &GetKey() const;
|
||||
int GetTypeId() const;
|
||||
bool GetValue(asQWORD &value) const;
|
||||
bool GetValue(asINT64 &value) const;
|
||||
bool GetValue(double &value) const;
|
||||
bool GetValue(void *value, int typeId) const;
|
||||
|
|
Loading…
Reference in New Issue