summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIru Cai <mytbk920423@gmail.com>2018-04-28 20:39:32 +0800
committerIru Cai <mytbk920423@gmail.com>2018-05-11 11:39:42 +0800
commit0f3bfceb42c7be847ff75fab9065927aae7baab4 (patch)
treeca8034242032d7b2e1d9683a9886aea04e00544d
parentc717d2f640fd40db73cf24632f6c8e30e230ff95 (diff)
downloadfqterm-0f3bfceb42c7be847ff75fab9065927aae7baab4.tar.xz
AddingFunction.rst
-rw-r--r--doc/dev/AddingFunction.rst22
1 files changed, 22 insertions, 0 deletions
diff --git a/doc/dev/AddingFunction.rst b/doc/dev/AddingFunction.rst
new file mode 100644
index 0000000..3318923
--- /dev/null
+++ b/doc/dev/AddingFunction.rst
@@ -0,0 +1,22 @@
+如何添加一个新的功能
+=====================
+
+在FQTerm添加新的功能,可以参考 `3ddf947c <https://github.com/mytbk/fqterm/commit/3ddf947c8da82a6d2e40688583143005b632942e>`__, 它的功能是记录收到的(解密后的)数据包。以下以此为例,讲解添加新功能的方法。此外,也可以参考 `8b2b2f18 <https://github.com/mytbk/fqterm/commit/8b2b2f18b2539bb73769b2196af977023903b2db>`__,它的功能是显示连接信息。
+
+首先在 src/common/fqterm_shortcuthelper.h 添加一个新项,在这里是 LOGRAW. 之后在 src/common/fqterm_shortcuthelper.cpp 中用 initShortcutDescriptionTableEntry 和 retranslateAction 函数注册此功能,包括它的文字描述、快捷键,图标等。如果这个功能需要图标,请在 res/pic 下建立一个图标文件,具体见 initShortcutDescriptionTableEntry 函数的源码。
+
+在主窗口的源文件 src/fqterm/fqterm_frame.cpp 中,用::
+
+ toolBarMdiConnectTools_->addAction(getAction(FQTermShortcutHelper::LOGRAW));
+
+以及::
+
+ FQTERM_ADDACTION(spec, LOGRAW, this, logRaw);
+
+分别在工具栏和菜单中添加此功能。用 ``getAction(FQTermShortcutHelper::LOGRAW)->setEnabled(enable);`` 启用此功能。
+
+此外, ``void FQTermFrame::updateMenuToolBar()`` 过程在窗口切换等操作发生时会被调用,由于 LOGRAW 功能是针对单个窗口的功能,在窗口切换时要改变它的选择状态,于是要在此过程中添加::
+
+ getAction(FQTermShortcutHelper::LOGRAW)->setChecked(window->getSession()->isLogging());
+
+此后,实现 ``void FQTermFrame::logRaw()`` 函数完成新功能的实现。