增强搜索功能

This commit is contained in:
寂静的羽夏 2022-06-14 15:11:09 +08:00
parent 71d688c1d1
commit 1588fb6dda
16 changed files with 374 additions and 194 deletions

View File

@ -86,13 +86,16 @@ void QHexDocument::applyBookMarks(QList<BookMarkStruct> books) {
bookmarks.append(books);
}
void QHexDocument::FindAllBytes(QByteArray b, QList<quint64> &results) {
void QHexDocument::FindAllBytes(qint64 begin, qint64 end, QByteArray b,
QList<quint64> &results, int maxCount) {
results.clear();
qlonglong p = 0;
qlonglong p = begin > 0 ? begin : 0;
qlonglong e = end > begin ? end : -1;
auto offset = b.count();
while (1) {
p = m_buffer->indexOf(b, p);
if (p < 0) {
if (p < 0 || (e > 0 && p > e) ||
(maxCount > 0 && results.count() >= maxCount)) {
break;
}
results.append(quint64(p));
@ -160,13 +163,15 @@ QByteArray QHexDocument::read(qint64 offset, int len) {
return m_buffer->read(offset, len);
}
void QHexDocument::removeSelection() {
bool QHexDocument::removeSelection() {
if (!m_cursor->hasSelection())
return;
return false;
this->remove(m_cursor->selectionStart().offset(),
m_cursor->selectionLength());
m_cursor->clearSelection();
auto res = this->remove(m_cursor->selectionStart().offset(),
m_cursor->selectionLength());
if (res)
m_cursor->clearSelection();
return res;
}
QByteArray QHexDocument::selectedBytes() const {
@ -199,12 +204,12 @@ void QHexDocument::redo() {
emit documentChanged();
}
void QHexDocument::cut(bool hex) {
bool QHexDocument::cut(bool hex) {
if (!m_cursor->hasSelection() || m_keepsize)
return;
return false;
this->copy(hex);
this->removeSelection();
return this->removeSelection();
}
void QHexDocument::copy(bool hex) {
@ -265,11 +270,12 @@ void QHexDocument::replace(qint64 offset, const QByteArray &data) {
emit documentChanged();
}
void QHexDocument::remove(qint64 offset, int len) {
bool QHexDocument::remove(qint64 offset, int len) {
if (m_keepsize || m_readonly || m_islocked)
return;
return false;
m_undostack.push(new RemoveCommand(m_buffer, offset, len));
emit documentChanged();
return true;
}
QByteArray QHexDocument::read(qint64 offset, int len) const {

View File

@ -58,12 +58,13 @@ public:
void gotoBookMark(int index);
bool existBookMark(int &index);
void FindAllBytes(QByteArray b, QList<quint64> &results);
void FindAllBytes(qint64 begin, qint64 end, QByteArray b,
QList<quint64> &results, int maxCount = -1);
/*======================*/
public:
void removeSelection();
bool removeSelection();
QByteArray read(qint64 offset, int len = 0);
QByteArray selectedBytes() const;
char at(int offset) const;
@ -73,14 +74,14 @@ public:
public slots:
void undo();
void redo();
void cut(bool hex = false);
bool cut(bool hex = false);
void copy(bool hex = false);
void paste(bool hex = false);
void insert(qint64 offset, uchar b);
void replace(qint64 offset, uchar b);
void insert(qint64 offset, const QByteArray &data);
void replace(qint64 offset, const QByteArray &data);
void remove(qint64 offset, int len);
bool remove(qint64 offset, int len);
QByteArray read(qint64 offset, int len) const;
bool saveTo(QIODevice *device, bool cleanUndo);

View File

@ -43,7 +43,9 @@
### 协议
&emsp;&emsp;本软件采用`GNU Affero General Public License v3.0`协议,但并不意味着你可以将本人编写的任何相关代码用于商业用途,包括我改良的部分,除非你直接使用原组件。 **没有我的任何授权,不得将该软件以任何形式用于商业用途,不限于商业二次开发、换 UI 套壳、二手转卖等。** 你可以不需要亲自来确认我的授权进行非商业用途的分发代码、编译代码、修改代码、使用二进制文件等。
&emsp;&emsp;本软件如果用于非商业用途,采用`WingSummer OpenSource Lincense`协议,对应的协议内容在仓库`OpenSource-LICENSE`文件。 **没有我的任何授权,不得将该软件用于任何形式的商业用途,包括我改良的部分,除非你直接使用原组件,不限于商业二次开发、换 UI 套壳、二手转卖等,我不允许任何人随意把我当作免费劳动力作为赚钱的工具!** 我的初衷是让 Linux 的生态更加完整,早日让祖国推动操作系统国产化。我不希望“吸血鬼”们利益归自己,脏活累活给开源,都那么理所当然,开源就是这么被败坏的。我不希望因为版权的事情牵扯了大量的精力。本人初次深入接触开源协议,不太会根据自己真正的需要来选择合适的协议,感谢`Deepin`前辈`BLumia`给我提供相关的建议和指导。由于本人一直在`README`一直强调商业用途相关事宜,本开源协议和我强调的内容相一致,故适用于目前所有本仓库的代码及其`fork`分支以及所有发行版。
&emsp;&emsp;如果你想将本软件或者本软件的部分代码用于商业用途,必须亲自咨询我,商讨商业授权相关事宜。如果得到授权则采用`WingSummer Commerical License`协议,也就是本仓库的`Commerical-LICENSE`文件的内容。
### issue 前必读
@ -127,3 +129,6 @@ GNU Lesser General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
## 其他
&emsp;&emsp;本篇仅仅是本软件的简介,具体请到我的仓库,一切以我的仓库说明为准: https://gitee.com/wingsummer/wing-hex-explorer

View File

@ -82,7 +82,10 @@ void GotoBar::handleLineChanged() {
}
}
void GotoBar::jumpCancel() { setVisible(false); }
void GotoBar::jumpCancel() {
jumpToLine(qlonglong(m_oldFileOffsetBeforeJump), false);
setVisible(false);
}
void GotoBar::jumpConfirm() {
handleLineChanged();
@ -126,7 +129,7 @@ qint64 GotoBar::Convert2Pos(QString value, SEEKPOS &ps, bool isline) {
value = value.remove(0, 1);
bool ok = false;
res = -value.toLongLong(&ok, 0);
res = value.toLongLong(&ok, 0);
if (!ok) {
ps = SEEKPOS::Invaild;
@ -139,11 +142,11 @@ qint64 GotoBar::Convert2Pos(QString value, SEEKPOS &ps, bool isline) {
res -= m_rowBeforeJump;
}
} else {
if (res - qlonglong(m_oldFileOffsetBeforeJump) < 0) {
if (qlonglong(m_oldFileOffsetBeforeJump) - res < 0) {
ps = SEEKPOS::Invaild;
res = 0;
} else {
res -= qlonglong(m_oldFileOffsetBeforeJump);
res = qlonglong(m_oldFileOffsetBeforeJump) - res;
}
}
}
@ -166,11 +169,11 @@ qint64 GotoBar::Convert2Pos(QString value, SEEKPOS &ps, bool isline) {
res = m_maxFilelines - res;
}
} else {
if (qlonglong(m_oldFileOffsetBeforeJump) - res < 0) {
if (qlonglong(m_maxFileBytes) - res < 0) {
ps = SEEKPOS::Invaild;
res = 0;
} else {
res = qlonglong(m_oldFileOffsetBeforeJump) - res;
res = qlonglong(m_maxFileBytes) - res;
}
}
}

View File

@ -1,11 +1,12 @@
#include "finddialog.h"
#include "utilities.h"
#include <DButtonBox>
#include <DDialogButtonBox>
#include <DPushButton>
#include <QShortcut>
#include <QTextCodec>
FindDialog::FindDialog(DMainWindow *parent) : DDialog(parent) {
FindDialog::FindDialog(bool sel, DMainWindow *parent) : DDialog(parent) {
this->setFixedSize(500, 600);
this->setWindowTitle(tr("find"));
@ -45,6 +46,43 @@ FindDialog::FindDialog(DMainWindow *parent) : DDialog(parent) {
m_hex->setChecked(true);
auto group = new DButtonBox(this);
QList<DButtonBoxButton *> blist;
auto b = new DButtonBoxButton(tr("BeforeCursor"), this);
connect(b, &DButtonBoxButton::toggled, [=](bool b) {
if (b)
_dir = SearchDirection::Foreword;
});
blist.push_back(b);
b = new DButtonBoxButton(tr("AfterCursor"), this);
connect(b, &DButtonBoxButton::toggled, [=](bool b) {
if (b)
_dir = SearchDirection::Backword;
});
blist.push_back(b);
b = new DButtonBoxButton(tr("Selection"), this);
if (sel) {
connect(b, &DButtonBoxButton::toggled, [=](bool b) {
if (b)
_dir = SearchDirection::Selection;
});
} else {
b->setEnabled(false);
}
blist.push_back(b);
b = new DButtonBoxButton(tr("None"), this);
connect(b, &DButtonBoxButton::toggled, [=](bool b) {
if (b)
_dir = SearchDirection::None;
});
blist.push_front(b);
group->setButtonList(blist, true);
b->setChecked(true);
addContent(group);
addSpacing(20);
auto dbbox = new DDialogButtonBox(
DDialogButtonBox::Ok | DDialogButtonBox::Cancel, this);
connect(dbbox, &DDialogButtonBox::accepted, this, &FindDialog::on_accept);
@ -55,7 +93,10 @@ FindDialog::FindDialog(DMainWindow *parent) : DDialog(parent) {
addContent(dbbox);
}
QByteArray FindDialog::getResult() { return _findarr; }
QByteArray FindDialog::getResult(SearchDirection &dir) {
dir = _dir;
return _findarr;
}
void FindDialog::on_accept() {
if (m_string->isChecked()) {

View File

@ -11,11 +11,13 @@
DWIDGET_USE_NAMESPACE
enum class SearchDirection { None, Foreword, Backword, Selection };
class FindDialog : public DDialog {
Q_OBJECT
public:
FindDialog(DMainWindow *parent = nullptr);
QByteArray getResult();
FindDialog(bool sel = true, DMainWindow *parent = nullptr);
QByteArray getResult(SearchDirection &dir);
private:
void on_accept();
@ -28,6 +30,8 @@ private:
DRadioButton *m_hex;
DComboBox *m_encodings;
QByteArray _findarr;
SearchDirection _dir = SearchDirection::None;
};
#endif // FINDDIALOG_H

View File

@ -670,11 +670,12 @@ MainWindow::MainWindow(DMainWindow *parent) {
vlayout->insertWidget(1, gotobar);
gotobar->setVisible(false);
connect(gotobar, &GotoBar::jumpToLine, this, &MainWindow::on_gotobar);
connect(gotobar, &GotoBar::pressEsc, [=] { // ToDo
});
#define ConnectShortCut(ShortCut, Slot) \
s = new QShortcut(ShortCut, this); \
connect(s, &QShortcut::activated, this, &Slot);
QShortcut *s;
ConnectShortCut(QKeySequence::New, MainWindow::on_newfile);
ConnectShortCut(QKeySequence::Open, MainWindow::on_openfile);
@ -736,6 +737,8 @@ MainWindow::MainWindow(DMainWindow *parent) {
[=](bool b) { _rootenableplugin = b; });
connect(m_settings, &Settings::sigChangedEncoding,
[=](QString encoding) { _encoding = encoding; });
connect(m_settings, &Settings::sigAdjustFindMaxCount,
[=](int count) { _findmax = count; });
m_settings->applySetting();
hexeditor->setAddressVisible(_showaddr);
@ -952,8 +955,9 @@ void MainWindow::connectShadow(HexViewShadow *shadow) {
PCHECKRETURN(hexfiles[_pcurfile].doc->read(offset, len), QByteArray());
});
ConnectShadowLamba(
HexViewShadow::FindAllBytes, [=](QByteArray b, QList<quint64> &results) {
PCHECK(hexfiles[_pcurfile].doc->FindAllBytes(b, results), );
HexViewShadow::FindAllBytes, [=](qlonglong begin, qlonglong end,
QByteArray b, QList<quint64> &results) {
PCHECK(hexfiles[_pcurfile].doc->FindAllBytes(begin, end, b, results), );
});
ConnectShadowLamba(HexViewShadow::searchForward, [=](const QByteArray &ba) {
PCHECKRETURN(hexfiles[_pcurfile].doc->searchForward(ba), qint64(-1));
@ -1627,11 +1631,19 @@ void MainWindow::on_redofile() {
void MainWindow::on_cutfile() {
CheckEnabled;
hexeditor->document()->cut();
if (hexeditor->document()->cut()) {
DMessageManager::instance()->sendMessage(this, ICONRES("cut"),
tr("CutToClipBoard"));
} else {
DMessageManager::instance()->sendMessage(this, ICONRES("cut"),
tr("UnCutToClipBoard"));
}
}
void MainWindow::on_copyfile() {
CheckEnabled;
hexeditor->document()->copy();
DMessageManager::instance()->sendMessage(this, ICONRES("copy"),
tr("CopyToClipBoard"));
}
void MainWindow::on_pastefile() {
CheckEnabled;
@ -1641,9 +1653,9 @@ void MainWindow::on_pastefile() {
void MainWindow::on_opendriver() {
DriverSelectorDialog ds;
if (ds.exec()) {
auto d = DMessageManager::instance();
if (openDriver(ds.GetResult().device()) != ErrFile::Success)
d->sendMessage(this, ICONRES("opendriver"), tr("DriverOpenErrorTip"));
DMessageManager::instance()->sendMessage(this, ICONRES("opendriver"),
tr("DriverOpenErrorTip"));
}
}
@ -1716,15 +1728,36 @@ void MainWindow::on_saveasfile() {
void MainWindow::on_findfile() {
CheckEnabled;
FindDialog *fd = new FindDialog();
FindDialog *fd = new FindDialog(hexeditor->selectlength() > 1, this);
if (fd->exec()) {
auto th = QThread ::create([=]() {
auto res = fd->getResult();
SearchDirection sd;
auto res = fd->getResult(sd);
auto d = hexeditor->document();
QList<quint64> results;
if (d == nullptr)
return;
d->FindAllBytes(res, results);
qint64 begin, end;
switch (sd) {
case SearchDirection::Foreword: {
begin = 0;
end = qlonglong(hexeditor->currentOffset());
} break;
case SearchDirection::Backword: {
begin = qlonglong(hexeditor->currentOffset());
end = -1;
} break;
case SearchDirection::Selection: {
auto cur = hexeditor->document()->cursor();
begin = qlonglong(cur->selectionStart().offset());
end = qlonglong(cur->selectionEnd().offset());
} break;
default: {
begin = -1;
end = -1;
} break;
}
d->FindAllBytes(begin, end, res, results, _findmax);
if (findresitem) {
delete[] findresitem;
findresult->setRowCount(0);
@ -1743,8 +1776,15 @@ void MainWindow::on_findfile() {
findresult->setItem(i, 1, frow + 1);
findresult->setItem(i, 2, frow + 2);
}
});
connect(th, &QThread::finished, this, [=] {
DMessageManager::instance()->sendMessage(this, ICONRES("find"),
tr("FindFininish"));
if (findresult->rowCount() == _findmax) {
DMessageManager::instance()->sendMessage(this, ICONRES("find"),
tr("TooMuchFindResult"));
}
delete fd;
});
th->start();
}
@ -2124,8 +2164,8 @@ void MainWindow::on_loadplg() {
void MainWindow::on_clearfindresult() {
delete[] findresitem;
findresitem = nullptr;
findresult->setRowCount(0);
findresitem = nullptr;
}
void MainWindow::on_sponsor() {

View File

@ -23,6 +23,7 @@
#include <DToolBar>
#include <QFile>
#include <QList>
#include <QMutex>
#include <QObject>
#include <QPixmap>
#include <QPoint>
@ -219,6 +220,7 @@ private:
private:
DMenu *plgmenu;
DMenu *toolmenu;
QMutex mutex;
DIconButton *iSetBaseAddr;
DIconButton *iColInfo;
@ -263,6 +265,8 @@ private:
bool _enableplugin = true;
bool _rootenableplugin = false;
int _findmax = 100;
};
#endif // MAINWINDOW_H

Binary file not shown.

View File

@ -66,20 +66,40 @@
<context>
<name>FindDialog</name>
<message>
<location filename="../dialog/finddialog.cpp" line="10"/>
<location filename="../dialog/finddialog.cpp" line="11"/>
<source>find</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/finddialog.cpp" line="13"/>
<location filename="../dialog/finddialog.cpp" line="14"/>
<source>findstring</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/finddialog.cpp" line="34"/>
<location filename="../dialog/finddialog.cpp" line="35"/>
<source>findhex</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/finddialog.cpp" line="52"/>
<source>BeforeCursor</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/finddialog.cpp" line="58"/>
<source>AfterCursor</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/finddialog.cpp" line="65"/>
<source>Selection</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/finddialog.cpp" line="75"/>
<source>None</source>
<translation></translation>
</message>
</context>
<context>
<name>GotoBar</name>
@ -113,37 +133,37 @@
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="109"/>
<location filename="../dialog/mainwindow.cpp" line="360"/>
<location filename="../dialog/mainwindow.cpp" line="366"/>
<source>New</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="112"/>
<location filename="../dialog/mainwindow.cpp" line="361"/>
<location filename="../dialog/mainwindow.cpp" line="367"/>
<source>OpenF</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="175"/>
<location filename="../dialog/mainwindow.cpp" line="362"/>
<location filename="../dialog/mainwindow.cpp" line="368"/>
<source>OpenD</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="178"/>
<location filename="../dialog/mainwindow.cpp" line="364"/>
<location filename="../dialog/mainwindow.cpp" line="370"/>
<source>Save</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="181"/>
<location filename="../dialog/mainwindow.cpp" line="366"/>
<location filename="../dialog/mainwindow.cpp" line="372"/>
<source>SaveAs</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="184"/>
<location filename="../dialog/mainwindow.cpp" line="368"/>
<location filename="../dialog/mainwindow.cpp" line="374"/>
<source>Export</source>
<translation></translation>
</message>
@ -154,19 +174,19 @@
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="190"/>
<location filename="../dialog/mainwindow.cpp" line="372"/>
<location filename="../dialog/mainwindow.cpp" line="378"/>
<source>OpenWorkSpace</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="192"/>
<location filename="../dialog/mainwindow.cpp" line="374"/>
<location filename="../dialog/mainwindow.cpp" line="380"/>
<source>SaveWorkSpace</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="195"/>
<location filename="../dialog/mainwindow.cpp" line="377"/>
<location filename="../dialog/mainwindow.cpp" line="383"/>
<source>SaveAsWorkSpace</source>
<translation></translation>
</message>
@ -182,131 +202,131 @@
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="206"/>
<location filename="../dialog/mainwindow.cpp" line="304"/>
<location filename="../dialog/mainwindow.cpp" line="380"/>
<location filename="../dialog/mainwindow.cpp" line="308"/>
<location filename="../dialog/mainwindow.cpp" line="386"/>
<source>Undo</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="209"/>
<location filename="../dialog/mainwindow.cpp" line="306"/>
<location filename="../dialog/mainwindow.cpp" line="382"/>
<location filename="../dialog/mainwindow.cpp" line="311"/>
<location filename="../dialog/mainwindow.cpp" line="388"/>
<source>Redo</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="213"/>
<location filename="../dialog/mainwindow.cpp" line="309"/>
<location filename="../dialog/mainwindow.cpp" line="384"/>
<location filename="../dialog/mainwindow.cpp" line="315"/>
<location filename="../dialog/mainwindow.cpp" line="390"/>
<source>Cut</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="216"/>
<location filename="../dialog/mainwindow.cpp" line="311"/>
<location filename="../dialog/mainwindow.cpp" line="386"/>
<location filename="../dialog/mainwindow.cpp" line="317"/>
<location filename="../dialog/mainwindow.cpp" line="392"/>
<source>Copy</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="219"/>
<location filename="../dialog/mainwindow.cpp" line="313"/>
<location filename="../dialog/mainwindow.cpp" line="388"/>
<location filename="../dialog/mainwindow.cpp" line="319"/>
<location filename="../dialog/mainwindow.cpp" line="394"/>
<source>Paste</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="222"/>
<location filename="../dialog/mainwindow.cpp" line="315"/>
<location filename="../dialog/mainwindow.cpp" line="390"/>
<location filename="../dialog/mainwindow.cpp" line="321"/>
<location filename="../dialog/mainwindow.cpp" line="396"/>
<source>Delete</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="226"/>
<location filename="../dialog/mainwindow.cpp" line="318"/>
<location filename="../dialog/mainwindow.cpp" line="393"/>
<location filename="../dialog/mainwindow.cpp" line="324"/>
<location filename="../dialog/mainwindow.cpp" line="399"/>
<source>Find</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="229"/>
<location filename="../dialog/mainwindow.cpp" line="320"/>
<location filename="../dialog/mainwindow.cpp" line="395"/>
<location filename="../dialog/mainwindow.cpp" line="326"/>
<location filename="../dialog/mainwindow.cpp" line="401"/>
<source>Goto</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="233"/>
<location filename="../dialog/mainwindow.cpp" line="322"/>
<location filename="../dialog/mainwindow.cpp" line="398"/>
<location filename="../dialog/mainwindow.cpp" line="2065"/>
<location filename="../dialog/mainwindow.cpp" line="328"/>
<location filename="../dialog/mainwindow.cpp" line="404"/>
<location filename="../dialog/mainwindow.cpp" line="2120"/>
<source>Fill</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="236"/>
<location filename="../dialog/mainwindow.cpp" line="323"/>
<location filename="../dialog/mainwindow.cpp" line="400"/>
<location filename="../dialog/mainwindow.cpp" line="329"/>
<location filename="../dialog/mainwindow.cpp" line="406"/>
<source>FillNop</source>
<translation> nop</translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="239"/>
<location filename="../dialog/mainwindow.cpp" line="325"/>
<location filename="../dialog/mainwindow.cpp" line="402"/>
<location filename="../dialog/mainwindow.cpp" line="331"/>
<location filename="../dialog/mainwindow.cpp" line="408"/>
<source>FillZero</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="243"/>
<location filename="../dialog/mainwindow.cpp" line="328"/>
<location filename="../dialog/mainwindow.cpp" line="405"/>
<location filename="../dialog/mainwindow.cpp" line="334"/>
<location filename="../dialog/mainwindow.cpp" line="411"/>
<source>MetaData</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="246"/>
<location filename="../dialog/mainwindow.cpp" line="330"/>
<location filename="../dialog/mainwindow.cpp" line="408"/>
<location filename="../dialog/mainwindow.cpp" line="336"/>
<location filename="../dialog/mainwindow.cpp" line="414"/>
<source>DeleteMetaData</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="249"/>
<location filename="../dialog/mainwindow.cpp" line="332"/>
<location filename="../dialog/mainwindow.cpp" line="411"/>
<location filename="../dialog/mainwindow.cpp" line="338"/>
<location filename="../dialog/mainwindow.cpp" line="417"/>
<source>ClearMetaData</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="253"/>
<location filename="../dialog/mainwindow.cpp" line="335"/>
<location filename="../dialog/mainwindow.cpp" line="414"/>
<location filename="../dialog/mainwindow.cpp" line="654"/>
<location filename="../dialog/mainwindow.cpp" line="1978"/>
<location filename="../dialog/mainwindow.cpp" line="1985"/>
<location filename="../dialog/mainwindow.cpp" line="341"/>
<location filename="../dialog/mainwindow.cpp" line="420"/>
<location filename="../dialog/mainwindow.cpp" line="660"/>
<location filename="../dialog/mainwindow.cpp" line="2032"/>
<location filename="../dialog/mainwindow.cpp" line="2039"/>
<source>BookMark</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="256"/>
<location filename="../dialog/mainwindow.cpp" line="337"/>
<location filename="../dialog/mainwindow.cpp" line="417"/>
<location filename="../dialog/mainwindow.cpp" line="343"/>
<location filename="../dialog/mainwindow.cpp" line="423"/>
<source>DeleteBookMark</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="259"/>
<location filename="../dialog/mainwindow.cpp" line="339"/>
<location filename="../dialog/mainwindow.cpp" line="420"/>
<location filename="../dialog/mainwindow.cpp" line="345"/>
<location filename="../dialog/mainwindow.cpp" line="426"/>
<source>ClearBookMark</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="263"/>
<location filename="../dialog/mainwindow.cpp" line="342"/>
<location filename="../dialog/mainwindow.cpp" line="422"/>
<location filename="../dialog/mainwindow.cpp" line="348"/>
<location filename="../dialog/mainwindow.cpp" line="428"/>
<source>Encoding</source>
<translation></translation>
</message>
@ -317,7 +337,7 @@
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="271"/>
<location filename="../dialog/mainwindow.cpp" line="425"/>
<location filename="../dialog/mainwindow.cpp" line="431"/>
<source>General</source>
<translation></translation>
</message>
@ -344,7 +364,7 @@
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="291"/>
<location filename="../dialog/mainwindow.cpp" line="426"/>
<location filename="../dialog/mainwindow.cpp" line="432"/>
<source>About</source>
<translation></translation>
</message>
@ -354,118 +374,138 @@
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="466"/>
<location filename="../dialog/mainwindow.cpp" line="472"/>
<source>SetaddressBase</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="469"/>
<location filename="../dialog/mainwindow.cpp" line="475"/>
<source>addressBase</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="469"/>
<location filename="../dialog/mainwindow.cpp" line="475"/>
<source>inputAddressBase</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="477"/>
<location filename="../dialog/mainwindow.cpp" line="483"/>
<source>ErrBaseAddress</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="483"/>
<location filename="../dialog/mainwindow.cpp" line="489"/>
<source>SetColInfo</source>
<translation>/</translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="487"/>
<location filename="../dialog/mainwindow.cpp" line="493"/>
<source>SetHeaderInfo</source>
<translation>/</translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="491"/>
<location filename="../dialog/mainwindow.cpp" line="497"/>
<source>SetAsciiString</source>
<translation>/</translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="496"/>
<location filename="../dialog/mainwindow.cpp" line="502"/>
<source>loc:</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="508"/>
<location filename="../dialog/mainwindow.cpp" line="514"/>
<source>sel:</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="543"/>
<location filename="../dialog/mainwindow.cpp" line="549"/>
<source>SetLocked</source>
<translation>/</translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="547"/>
<location filename="../dialog/mainwindow.cpp" line="553"/>
<source>SetOver</source>
<translation>/</translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="552"/>
<location filename="../dialog/mainwindow.cpp" line="558"/>
<source>ErrUnLock</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="559"/>
<location filename="../dialog/mainwindow.cpp" line="565"/>
<source>ErrUnOver</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="569"/>
<location filename="../dialog/mainwindow.cpp" line="575"/>
<source>ClearFindResult</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="579"/>
<location filename="../dialog/mainwindow.cpp" line="585"/>
<source>file</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="579"/>
<location filename="../dialog/mainwindow.cpp" line="585"/>
<source>addr</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="579"/>
<location filename="../dialog/mainwindow.cpp" line="585"/>
<source>value</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="602"/>
<location filename="../dialog/mainwindow.cpp" line="608"/>
<source>FindResult</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="609"/>
<location filename="../dialog/mainwindow.cpp" line="615"/>
<source>Log</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="619"/>
<location filename="../dialog/mainwindow.cpp" line="625"/>
<source>LoggerInitFinish</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="2143"/>
<location filename="../dialog/mainwindow.cpp" line="1636"/>
<source>CutToClipBoard</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="1639"/>
<source>UnCutToClipBoard</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="1646"/>
<source>CopyToClipBoard</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="1785"/>
<source>TooMuchFindResult</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="2198"/>
<location filename="../dialog/mainwindow.cpp" line="2253"/>
<source>ProjectFile (*.wingpro)</source>
<translation> (*.wingpro)</translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="2194"/>
<location filename="../dialog/mainwindow.cpp" line="2249"/>
<source>Warn</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="2194"/>
<location filename="../dialog/mainwindow.cpp" line="2249"/>
<source>PleaseSaveNewFile</source>
<translation></translation>
</message>
@ -474,52 +514,52 @@
<translation type="vanished"></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="626"/>
<location filename="../dialog/mainwindow.cpp" line="632"/>
<source>Value</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="640"/>
<location filename="../dialog/mainwindow.cpp" line="646"/>
<source>Number</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="698"/>
<location filename="../dialog/mainwindow.cpp" line="705"/>
<source>SettingLoading</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="756"/>
<location filename="../dialog/mainwindow.cpp" line="765"/>
<source>PluginLoading</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="770"/>
<location filename="../dialog/mainwindow.cpp" line="779"/>
<source>UnLoadPluginSetting</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="789"/>
<location filename="../dialog/mainwindow.cpp" line="798"/>
<source>MenuName :</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="797"/>
<location filename="../dialog/mainwindow.cpp" line="806"/>
<source>DockWidgetName :</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="1269"/>
<location filename="../dialog/mainwindow.cpp" line="1279"/>
<source>Untitled</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="2104"/>
<location filename="../dialog/mainwindow.cpp" line="2159"/>
<source>ChoosePlugin</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="2104"/>
<location filename="../dialog/mainwindow.cpp" line="2159"/>
<source>PluginFile (*.wingplg)</source>
<translation> (*.wingplg)</translation>
</message>
@ -528,113 +568,113 @@
<translation type="vanished"> ROOT </translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="1640"/>
<location filename="../dialog/mainwindow.cpp" line="1658"/>
<source>DriverOpenErrorTip</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="1491"/>
<location filename="../dialog/mainwindow.cpp" line="1576"/>
<location filename="../dialog/mainwindow.cpp" line="1591"/>
<location filename="../dialog/mainwindow.cpp" line="1501"/>
<location filename="../dialog/mainwindow.cpp" line="1586"/>
<location filename="../dialog/mainwindow.cpp" line="1601"/>
<source>Error</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="1491"/>
<location filename="../dialog/mainwindow.cpp" line="1501"/>
<source>NoRoot</source>
<translation> root </translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="1572"/>
<location filename="../dialog/mainwindow.cpp" line="2143"/>
<location filename="../dialog/mainwindow.cpp" line="1582"/>
<location filename="../dialog/mainwindow.cpp" line="2198"/>
<source>ChooseFile</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="1576"/>
<location filename="../dialog/mainwindow.cpp" line="1586"/>
<source>FileNotExist</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="1591"/>
<location filename="../dialog/mainwindow.cpp" line="1601"/>
<source>FilePermission</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="1602"/>
<location filename="../dialog/mainwindow.cpp" line="1662"/>
<location filename="../dialog/mainwindow.cpp" line="1612"/>
<location filename="../dialog/mainwindow.cpp" line="1680"/>
<source>Close</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="1603"/>
<location filename="../dialog/mainwindow.cpp" line="1663"/>
<location filename="../dialog/mainwindow.cpp" line="1613"/>
<location filename="../dialog/mainwindow.cpp" line="1681"/>
<source>ConfirmSave</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="1646"/>
<location filename="../dialog/mainwindow.cpp" line="1664"/>
<source>ChooseExportFile</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="1685"/>
<location filename="../dialog/mainwindow.cpp" line="1704"/>
<location filename="../dialog/mainwindow.cpp" line="2183"/>
<location filename="../dialog/mainwindow.cpp" line="2207"/>
<location filename="../dialog/mainwindow.cpp" line="1703"/>
<location filename="../dialog/mainwindow.cpp" line="1722"/>
<location filename="../dialog/mainwindow.cpp" line="2238"/>
<location filename="../dialog/mainwindow.cpp" line="2262"/>
<source>SaveSuccessfully</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="1688"/>
<location filename="../dialog/mainwindow.cpp" line="1707"/>
<location filename="../dialog/mainwindow.cpp" line="2148"/>
<location filename="../dialog/mainwindow.cpp" line="2186"/>
<location filename="../dialog/mainwindow.cpp" line="2210"/>
<location filename="../dialog/mainwindow.cpp" line="1706"/>
<location filename="../dialog/mainwindow.cpp" line="1725"/>
<location filename="../dialog/mainwindow.cpp" line="2203"/>
<location filename="../dialog/mainwindow.cpp" line="2241"/>
<location filename="../dialog/mainwindow.cpp" line="2265"/>
<source>SaveUnSuccessfully</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="1699"/>
<location filename="../dialog/mainwindow.cpp" line="1843"/>
<location filename="../dialog/mainwindow.cpp" line="2198"/>
<location filename="../dialog/mainwindow.cpp" line="1717"/>
<location filename="../dialog/mainwindow.cpp" line="1897"/>
<location filename="../dialog/mainwindow.cpp" line="2253"/>
<source>ChooseSaveFile</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="1741"/>
<location filename="../dialog/mainwindow.cpp" line="1782"/>
<source>FindFininish</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="1853"/>
<location filename="../dialog/mainwindow.cpp" line="1907"/>
<source>SaveSelError</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="1866"/>
<location filename="../dialog/mainwindow.cpp" line="1991"/>
<location filename="../dialog/mainwindow.cpp" line="1920"/>
<location filename="../dialog/mainwindow.cpp" line="2045"/>
<source>Addr : 0x%1</source>
<translation>0x%1</translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="1948"/>
<location filename="../dialog/mainwindow.cpp" line="2002"/>
<source>NoSelection</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="1978"/>
<location filename="../dialog/mainwindow.cpp" line="1985"/>
<location filename="../dialog/mainwindow.cpp" line="2032"/>
<location filename="../dialog/mainwindow.cpp" line="2039"/>
<source>InputComment</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="2065"/>
<location filename="../dialog/mainwindow.cpp" line="2120"/>
<source>PleaseInputFill</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="2077"/>
<location filename="../dialog/mainwindow.cpp" line="2132"/>
<source>FillInputError</source>
<translation></translation>
</message>
@ -749,64 +789,74 @@
</message>
<message>
<location filename="../settingdialog.cpp" line="7"/>
<source>Basic</source>
<translation></translation>
</message>
<message>
<location filename="../settingdialog.cpp" line="8"/>
<source>Font Size</source>
<translation></translation>
</message>
<message>
<location filename="../settingdialog.cpp" line="8"/>
<location filename="../settingdialog.cpp" line="9"/>
<source>Show adress numbers</source>
<translation></translation>
</message>
<message>
<location filename="../settingdialog.cpp" line="9"/>
<location filename="../settingdialog.cpp" line="10"/>
<source>Show column numbers</source>
<translation></translation>
</message>
<message>
<location filename="../settingdialog.cpp" line="10"/>
<location filename="../settingdialog.cpp" line="11"/>
<source>Show the encoding text</source>
<translation></translation>
</message>
<message>
<location filename="../settingdialog.cpp" line="11"/>
<location filename="../settingdialog.cpp" line="12"/>
<source>Window size</source>
<translation></translation>
</message>
<message>
<location filename="../settingdialog.cpp" line="12"/>
<location filename="../settingdialog.cpp" line="13"/>
<source>Font</source>
<translation></translation>
</message>
<message>
<location filename="../settingdialog.cpp" line="13"/>
<location filename="../settingdialog.cpp" line="14"/>
<source>Info Font Size</source>
<translation></translation>
</message>
<message>
<location filename="../settingdialog.cpp" line="14"/>
<location filename="../settingdialog.cpp" line="15"/>
<source>Plugin</source>
<translation></translation>
</message>
<message>
<location filename="../settingdialog.cpp" line="15"/>
<location filename="../settingdialog.cpp" line="16"/>
<source>EnablePluginOnRoot</source>
<translation> Root </translation>
</message>
<message>
<location filename="../settingdialog.cpp" line="16"/>
<location filename="../settingdialog.cpp" line="17"/>
<source>Enable Plugin</source>
<translation></translation>
</message>
<message>
<location filename="../settingdialog.cpp" line="17"/>
<location filename="../settingdialog.cpp" line="18"/>
<source>Window</source>
<translation></translation>
</message>
<message>
<location filename="../settingdialog.cpp" line="18"/>
<location filename="../settingdialog.cpp" line="19"/>
<source>Encoding</source>
<translation></translation>
</message>
<message>
<location filename="../settingdialog.cpp" line="20"/>
<source>FindMaxResultCount</source>
<translation></translation>
</message>
<message>
<location filename="../main.cpp" line="42"/>
<location filename="../main.cpp" line="45"/>
@ -841,37 +891,42 @@
<translation></translation>
</message>
<message>
<location filename="../settings.cpp" line="99"/>
<location filename="../settings.cpp" line="86"/>
<source>FindNextTakeEffect</source>
<translation></translation>
</message>
<message>
<location filename="../settings.cpp" line="104"/>
<source>Normal</source>
<translation></translation>
</message>
<message>
<location filename="../settings.cpp" line="99"/>
<location filename="../settings.cpp" line="104"/>
<source>Maximum</source>
<translation></translation>
</message>
<message>
<location filename="../settings.cpp" line="100"/>
<location filename="../settings.cpp" line="105"/>
<source>Minimum</source>
<translation></translation>
</message>
<message>
<location filename="../settings.cpp" line="100"/>
<location filename="../settings.cpp" line="105"/>
<source>Fullscreen</source>
<translation></translation>
</message>
<message>
<location filename="../settings.cpp" line="195"/>
<location filename="../settings.cpp" line="202"/>
<source>Cancel</source>
<translation></translation>
</message>
<message>
<location filename="../settings.cpp" line="196"/>
<location filename="../settings.cpp" line="203"/>
<source>Replace</source>
<translation></translation>
</message>
<message>
<location filename="../settings.cpp" line="198"/>
<location filename="../settings.cpp" line="205"/>
<source>OK</source>
<translation></translation>
</message>

View File

@ -155,7 +155,8 @@ signals:
QByteArray read(qint64 offset, int len);
qint64 searchForward(const QByteArray &ba);
qint64 searchBackward(const QByteArray &ba);
void FindAllBytes(QByteArray b, QList<quint64> &results);
void FindAllBytes(qlonglong begin, qlonglong end, QByteArray b,
QList<quint64> &results);
// render
bool editableArea(int area);

View File

@ -4,6 +4,7 @@ void GenerateSettingTranslate() {
auto group_editor = QObject::tr("Editor");
auto group_appearance = QObject::tr("Appearance");
auto editor_fontstyle = QObject::tr("Font Style");
auto editor_basic = QObject::tr("Basic");
auto editor_fontsize = QObject::tr("Font Size");
auto editor_showaddr = QObject::tr("Show adress numbers");
auto editor_showcol = QObject::tr("Show column numbers");
@ -16,4 +17,5 @@ void GenerateSettingTranslate() {
auto editor_eplugin = QObject::tr("Enable Plugin");
auto window = QObject::tr("Window");
auto editor_encoding = QObject::tr("Encoding");
auto editor_findrc = QObject::tr("FindMaxResultCount");
}

View File

@ -51,21 +51,21 @@ Settings::Settings(QWidget *parent) : QObject(parent) {
emit sigChangeRootPluginEnabled(v);
});
BindConfigSignal(hexfontSize, "editor.font.size",
BindConfigSignal(hexfontSize, "editor.basic.size",
{ emit sigAdjustEditorFontSize(value.toInt()); });
BindConfigSignal(infofontSize, "appearance.font.size",
BindConfigSignal(infofontSize, "appearance.basic.size",
{ emit sigAdjustInfoFontSize(value.toInt()); });
BindConfigSignal(showAddr, "editor.font.showaddr", {
BindConfigSignal(showAddr, "editor.basic.showaddr", {
emit sigShowAddressNumber(value.toBool());
DMessageManager::instance()->sendMessage(
m_pSettingsDialog, ICONRES("setting"), tr("OpenNextTakeEffect"));
});
BindConfigSignal(showCol, "editor.font.showcol", {
BindConfigSignal(showCol, "editor.basic.showcol", {
emit sigShowColNumber(value.toBool());
DMessageManager::instance()->sendMessage(
m_pSettingsDialog, ICONRES("setting"), tr("OpenNextTakeEffect"));
});
BindConfigSignal(showText, "editor.font.showtext", {
BindConfigSignal(showText, "editor.basic.showtext", {
emit sigShowEncodingText(value.toBool());
DMessageManager::instance()->sendMessage(
m_pSettingsDialog, ICONRES("setting"), tr("OpenNextTakeEffect"));
@ -75,13 +75,18 @@ Settings::Settings(QWidget *parent) : QObject(parent) {
DMessageManager::instance()->sendMessage(
m_pSettingsDialog, ICONRES("setting"), tr("RestartTakeEffect"));
});
BindConfigSignal(encoding, "editor.font.encoding", {
BindConfigSignal(encoding, "editor.basic.encoding", {
emit sigChangedEncoding(value.toString());
DMessageManager::instance()->sendMessage(
m_pSettingsDialog, ICONRES("setting"), tr("OpenNextTakeEffect"));
});
BindConfigSignal(fmax, "editor.basic.findmaxcount", {
emit sigAdjustFindMaxCount(value.toInt());
DMessageManager::instance()->sendMessage(
m_pSettingsDialog, ICONRES("setting"), tr("FindNextTakeEffect"));
});
auto enCoding = settings->option("editor.font.encoding");
auto enCoding = settings->option("editor.basic.encoding");
QMap<QString, QVariant> encodingMap;
QStringList encodings = Utilities::GetEncodings();
encodingMap.insert("keys", encodings);
@ -169,20 +174,22 @@ void Settings::applySetting() {
sigChangeRootPluginEnabled(rootplugin->value().toBool()));
Apply(fontFamliy, "appearance.font.family",
sigAdjustFont(fontFamliy->value().toString()));
Apply(hexfontSize, "editor.font.size",
Apply(hexfontSize, "editor.basic.size",
sigAdjustEditorFontSize(hexfontSize->value().toInt()));
Apply(infofontSize, "appearance.font.size",
Apply(infofontSize, "appearance.basic.size",
sigAdjustInfoFontSize(infofontSize->value().toInt()));
Apply(showAddr, "editor.font.showaddr",
Apply(showAddr, "editor.basic.showaddr",
sigShowAddressNumber(showAddr->value().toBool()));
Apply(showCol, "editor.font.showcol",
Apply(showCol, "editor.basic.showcol",
sigShowColNumber(showCol->value().toBool()));
Apply(showText, "editor.font.showtext",
Apply(showText, "editor.basic.showtext",
sigShowEncodingText(showText->value().toBool()));
Apply(windowstate, "appearance.window.windowsize",
sigChangeWindowState(windowstate->value().toString()));
Apply(encoding, "editor.font.encoding",
Apply(encoding, "editor.basic.encoding",
sigChangedEncoding(encoding->value().toString()));
Apply(fmax, "editor.basic.findmaxcount",
sigAdjustFindMaxCount(fmax->value().toInt()););
}
DDialog *Settings::createDialog(const QString &title, const QString &content,

View File

@ -51,6 +51,7 @@ signals:
void sigChangeWindowState(QString state);
void sigChangePluginEnabled(bool b);
void sigChangeRootPluginEnabled(bool b);
void sigAdjustFindMaxCount(int count);
private:
DDialog *createDialog(const QString &title, const QString &content,

View File

@ -25,8 +25,8 @@
]
},
{
"key": "font",
"name": "Font Style",
"key": "basic",
"name": "Basic",
"options": [
{
"key": "size",
@ -36,6 +36,14 @@
"max": 50,
"min": 8
},
{
"key": "findmaxcount",
"name": "FindMaxResultCount",
"type": "spinbutton",
"default": 100,
"max": 10000,
"min": 10
},
{
"key": "encoding",
"name": "Encoding",

View File

@ -32,3 +32,5 @@ v1.2:
10. 增强设置标记功能
11. 增加了一些完成操作的提示,提高易用性
12. 增加撤销、重复的状态提示,指示是否可以继续撤销和重复
13. 增加最大搜索数量限制,防止因数量过多导致程序崩溃
14. 增加搜索方向和选区,充分发挥搜索功能