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