增加人性化设计

This commit is contained in:
寂静的羽夏 2022-06-14 09:28:05 +08:00
parent d70fe649ef
commit 71d688c1d1
7 changed files with 270 additions and 163 deletions

View File

@ -62,7 +62,7 @@
### 协议
  本软件如果用于非商业用途,采用`WingSummer OpenSource Lincense`协议,对应的协议内容在仓库`OpenSource-LICENSE`文件。 **没有我的任何授权,不得将该软件用于本协议之外的商业用途,包括我改良的部分,除非你直接使用原组件,不限于商业二次开发、换 UI 套壳、二手转卖等,我不允许任何人随意把我当作免费劳动力作为赚钱的工具!** 我的初衷是让 Linux 的生态更加完整,早日让祖国推动操作系统国产化。我不希望“吸血鬼”们利益归自己,脏活累活给开源,都那么理所当然,开源就是这么被败坏的。我不希望因为版权的事情牵扯了大量的精力。本人初次深入接触开源协议,不太会根据自己真正的需要来选择合适的协议,感谢`Deepin`前辈`BLumia`给我提供相关的建议。由于本人一直在`README`一直强调商业用途相关事宜,本开源协议和我强调的内容相一致,故适用于目前所有本仓库的代码及其`fork`分支以及所有发行版。
  本软件如果用于非商业用途,采用`WingSummer OpenSource Lincense`协议,对应的协议内容在仓库`OpenSource-LICENSE`文件。 **没有我的任何授权,不得将该软件用于任何形式的商业用途,包括我改良的部分,除非你直接使用原组件,不限于商业二次开发、换 UI 套壳、二手转卖等,我不允许任何人随意把我当作免费劳动力作为赚钱的工具!** 我的初衷是让 Linux 的生态更加完整,早日让祖国推动操作系统国产化。我不希望“吸血鬼”们利益归自己,脏活累活给开源,都那么理所当然,开源就是这么被败坏的。我不希望因为版权的事情牵扯了大量的精力。本人初次深入接触开源协议,不太会根据自己真正的需要来选择合适的协议,感谢`Deepin`前辈`BLumia`给我提供相关的建议和指导。由于本人一直在`README`一直强调商业用途相关事宜,本开源协议和我强调的内容相一致,故适用于目前所有本仓库的代码及其`fork`分支以及所有发行版。
  如果你想将本软件或者本软件的部分代码用于商业用途,必须亲自咨询我,商讨商业授权相关事宜。如果得到授权则采用`WingSummer Commerical License`协议,也就是本仓库的`Commerical-LICENSE`文件的内容。

View File

@ -301,10 +301,16 @@ MainWindow::MainWindow(DMainWindow *parent) {
#define AddContextMenuAction(Icon, Title, Slot, ShortCut) \
AddMenuShortcutAction(Icon, Title, Slot, hexeditorMenu, ShortCut)
#define AddContextMenuDB(index) \
a->setEnabled(false); \
conmenutools.insert(index, a);
AddContextMenuAction("undo", tr("Undo"), MainWindow::on_undofile,
QKeySequence::Undo);
AddContextMenuDB(ToolBoxIndex::Undo);
AddContextMenuAction("redo", tr("Redo"), MainWindow::on_redofile,
QKeySequence::Redo);
AddContextMenuDB(ToolBoxIndex::Redo);
hexeditorMenu->addSeparator();
AddContextMenuAction("cut", tr("Cut"), MainWindow::on_cutfile,
QKeySequence::Cut);
@ -1180,6 +1186,9 @@ void MainWindow::connectShadowSlot(HexViewShadow *shadow) {
hexfiles[_pcurfile].render->setEncoding(encoding);
});
ConnectShadows(HexViewShadow::openWorkSpace, MainWindow::openWorkSpace);
ConnectShadows(HexViewShadow::saveWorkSpace, MainWindow::saveWorkSpace);
ConnectShadows(HexViewShadow::saveAsWorkSpace, MainWindow::saveAsWorkSpace);
ConnectShadows(HexViewShadow::newFile, MainWindow::newFile);
ConnectShadowLamba(
HexViewShadow::openFile,
@ -1674,8 +1683,16 @@ void MainWindow::closeEvent(QCloseEvent *event) {
void MainWindow::on_savefile() {
CheckEnabled;
if (saveCurrentFile() == ErrFile::IsNewFile)
auto res = saveCurrentFile();
if (res == ErrFile::IsNewFile)
on_saveasfile();
else if (res == ErrFile::Success) {
DMessageManager::instance()->sendMessage(this, ICONRES("save"),
tr("SaveSuccessfully"));
} else {
DMessageManager::instance()->sendMessage(this, ICONRES("save"),
tr("SaveUnSuccessfully"));
}
}
void MainWindow::on_delete() {
@ -1688,7 +1705,13 @@ void MainWindow::on_saveasfile() {
auto filename = QFileDialog::getSaveFileName(this, tr("ChooseSaveFile"));
if (filename.isEmpty())
return;
saveasFile(filename, _currentfile);
if (saveasFile(filename, _currentfile) == ErrFile::Success) {
DMessageManager::instance()->sendMessage(this, ICONRES("saveas"),
tr("SaveSuccessfully"));
} else {
DMessageManager::instance()->sendMessage(this, ICONRES("saveas"),
tr("SaveUnSuccessfully"));
}
}
void MainWindow::on_findfile() {
@ -1720,6 +1743,8 @@ void MainWindow::on_findfile() {
findresult->setItem(i, 1, frow + 1);
findresult->setItem(i, 2, frow + 2);
}
DMessageManager::instance()->sendMessage(this, ICONRES("find"),
tr("FindFininish"));
});
th->start();
}
@ -1761,9 +1786,8 @@ void MainWindow::on_locChanged() {
if (len == sizeof(quint64)) {
auto s = n;
numsitem[NumTableIndex::Uint64].setText(QString("0x%1 | %2")
.arg(QString::number(s, 16))
.arg(QString::number(s)));
numsitem[NumTableIndex::Uint64].setText(
QString("0x%1").arg(QString::number(s, 16)));
auto s1 = qint64(n);
numsitem[NumTableIndex::Int64].setText(QString::number(s1));
} else {
@ -1773,9 +1797,8 @@ void MainWindow::on_locChanged() {
if (len > int(sizeof(quint32))) {
auto s = ulong(n);
numsitem[NumTableIndex::Uint32].setText(QString("0x%1 | %2")
.arg(QString::number(s, 16))
.arg(QString::number(s)));
numsitem[NumTableIndex::Uint32].setText(
QString("0x%1").arg(QString::number(s, 16)));
auto s1 = long(n);
numsitem[NumTableIndex::Int32].setText(QString::number(s1));
} else {
@ -1785,9 +1808,8 @@ void MainWindow::on_locChanged() {
if (len > int(sizeof(ushort))) {
auto s = ushort(n);
numsitem[NumTableIndex::Ushort].setText(QString("0x%1 | %2")
.arg(QString::number(s, 16))
.arg(QString::number(s)));
numsitem[NumTableIndex::Ushort].setText(
QString("0x%1").arg(QString::number(s, 16)));
auto s1 = short(n);
numsitem[NumTableIndex::Short].setText(QString::number(s1));
} else {
@ -1797,9 +1819,8 @@ void MainWindow::on_locChanged() {
if (len > int(sizeof(uchar))) {
auto s1 = tmp.at(0);
auto s = uchar(s1);
numsitem[NumTableIndex::Byte].setText(QString("0x%1 | %2")
.arg(QString::number(s, 16))
.arg(QString::number(s)));
numsitem[NumTableIndex::Byte].setText(
QString("0x%1").arg(QString::number(s, 16)));
numsitem[NumTableIndex::Char].setText(QString::number(s1));
} else {
numsitem[NumTableIndex::Byte].setText("-");
@ -1821,6 +1842,14 @@ void MainWindow::on_setting_general() {
void MainWindow::on_documentChanged() {
CheckEnabled;
iSaved->setPixmap(isModified(_currentfile) ? infoUnsaved : infoSaved);
auto canundo = hexeditor->document()->canUndo();
auto canredo = hexeditor->document()->canRedo();
toolbartools[ToolBoxIndex::Undo]->setEnabled(canundo);
toolbartools[ToolBoxIndex::Redo]->setEnabled(canredo);
toolmenutools[ToolBoxIndex::Undo]->setEnabled(canundo);
toolmenutools[ToolBoxIndex::Redo]->setEnabled(canredo);
conmenutools[ToolBoxIndex::Undo]->setEnabled(canundo);
conmenutools[ToolBoxIndex::Redo]->setEnabled(canredo);
}
void MainWindow::on_savesel() {
@ -2020,6 +2049,7 @@ void MainWindow::setEditModeEnabled(bool b, bool isdriver) {
status->setEnabled(b);
if (b) {
on_documentChanged();
on_documentStatusChanged();
} else {
iSaved->setPixmap(infoSaveg);
@ -2108,11 +2138,7 @@ void MainWindow::on_about() {
d.exec();
}
void MainWindow::on_openworkspace() {
auto filename = QFileDialog::getOpenFileName(
this, tr("ChooseFile"), QString(), tr("ProjectFile (*.wingpro)"));
if (filename.isEmpty())
return;
bool MainWindow::openWorkSpace(QString filename) {
QString file;
QList<BookMarkStruct> bookmarks;
QHash<quint64, QHexLineMetadata> metas;
@ -2122,10 +2148,42 @@ void MainWindow::on_openworkspace() {
doc->applyBookMarks(bookmarks);
on_documentSwitched();
doc->metadata()->applyMetas(metas);
} else {
return true;
}
return false;
}
void MainWindow::on_openworkspace() {
auto filename = QFileDialog::getOpenFileName(
this, tr("ChooseFile"), QString(), tr("ProjectFile (*.wingpro)"));
if (filename.isEmpty())
return;
if (!openWorkSpace(filename))
DMessageManager::instance()->sendMessage(this, ICONRES("workspace"),
tr("SaveUnSuccessfully"));
}
bool MainWindow::saveWorkSpace() {
if (hexfiles.count() > 0) {
auto f = hexfiles[_currentfile];
if (f.workspace.length() == 0) {
return false;
}
return WorkSpaceManager::saveWorkSpace(
f.workspace, f.filename, hexeditor->document()->getAllBookMarks(),
hexeditor->document()->metadata()->getallMetas());
}
return false;
}
bool MainWindow::saveAsWorkSpace(QString filename) {
if (hexfiles.count() > 0) {
auto f = hexfiles[_currentfile];
return WorkSpaceManager::saveWorkSpace(
filename, f.filename, hexeditor->document()->getAllBookMarks(),
hexeditor->document()->metadata()->getallMetas());
}
return false;
}
void MainWindow::on_saveworkspace() {
@ -2135,9 +2193,7 @@ void MainWindow::on_saveworkspace() {
on_saveasworkspace();
return;
}
if (WorkSpaceManager::saveWorkSpace(
f.workspace, f.filename, hexeditor->document()->getAllBookMarks(),
hexeditor->document()->metadata()->getallMetas())) {
if (saveWorkSpace()) {
DMessageManager::instance()->sendMessage(this, ICONRES("workspacesave"),
tr("SaveSuccessfully"));
} else {
@ -2160,9 +2216,7 @@ void MainWindow::on_saveasworkspace() {
if (!filename.endsWith(".wingpro")) {
filename += ".wingpro";
}
if (WorkSpaceManager::saveWorkSpace(
filename, f.filename, hexeditor->document()->getAllBookMarks(),
hexeditor->document()->metadata()->getallMetas())) {
if (saveAsWorkSpace(filename)) {
f.workspace = filename;
DMessageManager::instance()->sendMessage(this, ICONRES("workspacesaveas"),
tr("SaveSuccessfully"));

View File

@ -139,6 +139,9 @@ private:
void cutCurrentBytes(quint64 pos, qint64 len, QByteArray &arr);
void pasteFileBytes(int index, QByteArray arr, qint64 len = -1);
void pasteCurrentBytes(quint64 pos, QByteArray arr, qint64 len = -1);
bool openWorkSpace(QString filename);
bool saveWorkSpace();
bool saveAsWorkSpace(QString filename);
private:
void setFilePage(int index);
@ -191,6 +194,7 @@ private:
QList<HexFile> hexfiles;
QMap<ToolBoxIndex, QAction *> toolbartools;
QMap<ToolBoxIndex, QAction *> toolmenutools;
QMap<ToolBoxIndex, QAction *> conmenutools;
uint defaultindex = 1; //表示新建使用的累计索引
int _currentfile = -1; //表示正在使用文件的索引,编辑器使用

Binary file not shown.

View File

@ -113,37 +113,37 @@
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="109"/>
<location filename="../dialog/mainwindow.cpp" line="361"/>
<location filename="../dialog/mainwindow.cpp" line="360"/>
<source>New</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="112"/>
<location filename="../dialog/mainwindow.cpp" line="362"/>
<location filename="../dialog/mainwindow.cpp" line="361"/>
<source>OpenF</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="175"/>
<location filename="../dialog/mainwindow.cpp" line="363"/>
<location filename="../dialog/mainwindow.cpp" line="362"/>
<source>OpenD</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="178"/>
<location filename="../dialog/mainwindow.cpp" line="365"/>
<location filename="../dialog/mainwindow.cpp" line="364"/>
<source>Save</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="181"/>
<location filename="../dialog/mainwindow.cpp" line="367"/>
<location filename="../dialog/mainwindow.cpp" line="366"/>
<source>SaveAs</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="184"/>
<location filename="../dialog/mainwindow.cpp" line="369"/>
<location filename="../dialog/mainwindow.cpp" line="368"/>
<source>Export</source>
<translation></translation>
</message>
@ -154,356 +154,372 @@
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="190"/>
<location filename="../dialog/mainwindow.cpp" line="373"/>
<location filename="../dialog/mainwindow.cpp" line="372"/>
<source>OpenWorkSpace</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="193"/>
<location filename="../dialog/mainwindow.cpp" line="376"/>
<location filename="../dialog/mainwindow.cpp" line="192"/>
<location filename="../dialog/mainwindow.cpp" line="374"/>
<source>SaveWorkSpace</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="196"/>
<location filename="../dialog/mainwindow.cpp" line="379"/>
<location filename="../dialog/mainwindow.cpp" line="195"/>
<location filename="../dialog/mainwindow.cpp" line="377"/>
<source>SaveAsWorkSpace</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="200"/>
<location filename="../dialog/mainwindow.cpp" line="199"/>
<source>Exit</source>
<translation>退</translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="205"/>
<location filename="../dialog/mainwindow.cpp" line="204"/>
<source>Edit</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="207"/>
<location filename="../dialog/mainwindow.cpp" line="305"/>
<location filename="../dialog/mainwindow.cpp" line="382"/>
<location filename="../dialog/mainwindow.cpp" line="206"/>
<location filename="../dialog/mainwindow.cpp" line="304"/>
<location filename="../dialog/mainwindow.cpp" line="380"/>
<source>Undo</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="210"/>
<location filename="../dialog/mainwindow.cpp" line="307"/>
<location filename="../dialog/mainwindow.cpp" line="384"/>
<location filename="../dialog/mainwindow.cpp" line="209"/>
<location filename="../dialog/mainwindow.cpp" line="306"/>
<location filename="../dialog/mainwindow.cpp" line="382"/>
<source>Redo</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="214"/>
<location filename="../dialog/mainwindow.cpp" line="310"/>
<location filename="../dialog/mainwindow.cpp" line="386"/>
<location filename="../dialog/mainwindow.cpp" line="213"/>
<location filename="../dialog/mainwindow.cpp" line="309"/>
<location filename="../dialog/mainwindow.cpp" line="384"/>
<source>Cut</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="217"/>
<location filename="../dialog/mainwindow.cpp" line="312"/>
<location filename="../dialog/mainwindow.cpp" line="388"/>
<location filename="../dialog/mainwindow.cpp" line="216"/>
<location filename="../dialog/mainwindow.cpp" line="311"/>
<location filename="../dialog/mainwindow.cpp" line="386"/>
<source>Copy</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="220"/>
<location filename="../dialog/mainwindow.cpp" line="314"/>
<location filename="../dialog/mainwindow.cpp" line="390"/>
<location filename="../dialog/mainwindow.cpp" line="219"/>
<location filename="../dialog/mainwindow.cpp" line="313"/>
<location filename="../dialog/mainwindow.cpp" line="388"/>
<source>Paste</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="223"/>
<location filename="../dialog/mainwindow.cpp" line="316"/>
<location filename="../dialog/mainwindow.cpp" line="392"/>
<location filename="../dialog/mainwindow.cpp" line="222"/>
<location filename="../dialog/mainwindow.cpp" line="315"/>
<location filename="../dialog/mainwindow.cpp" line="390"/>
<source>Delete</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="227"/>
<location filename="../dialog/mainwindow.cpp" line="319"/>
<location filename="../dialog/mainwindow.cpp" line="395"/>
<location filename="../dialog/mainwindow.cpp" line="226"/>
<location filename="../dialog/mainwindow.cpp" line="318"/>
<location filename="../dialog/mainwindow.cpp" line="393"/>
<source>Find</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="230"/>
<location filename="../dialog/mainwindow.cpp" line="321"/>
<location filename="../dialog/mainwindow.cpp" line="397"/>
<location filename="../dialog/mainwindow.cpp" line="229"/>
<location filename="../dialog/mainwindow.cpp" line="320"/>
<location filename="../dialog/mainwindow.cpp" line="395"/>
<source>Goto</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="234"/>
<location filename="../dialog/mainwindow.cpp" line="323"/>
<location filename="../dialog/mainwindow.cpp" line="400"/>
<location filename="../dialog/mainwindow.cpp" line="2047"/>
<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"/>
<source>Fill</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="237"/>
<location filename="../dialog/mainwindow.cpp" line="324"/>
<location filename="../dialog/mainwindow.cpp" line="402"/>
<location filename="../dialog/mainwindow.cpp" line="236"/>
<location filename="../dialog/mainwindow.cpp" line="323"/>
<location filename="../dialog/mainwindow.cpp" line="400"/>
<source>FillNop</source>
<translation> nop</translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="240"/>
<location filename="../dialog/mainwindow.cpp" line="326"/>
<location filename="../dialog/mainwindow.cpp" line="404"/>
<location filename="../dialog/mainwindow.cpp" line="239"/>
<location filename="../dialog/mainwindow.cpp" line="325"/>
<location filename="../dialog/mainwindow.cpp" line="402"/>
<source>FillZero</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="244"/>
<location filename="../dialog/mainwindow.cpp" line="329"/>
<location filename="../dialog/mainwindow.cpp" line="407"/>
<location filename="../dialog/mainwindow.cpp" line="243"/>
<location filename="../dialog/mainwindow.cpp" line="328"/>
<location filename="../dialog/mainwindow.cpp" line="405"/>
<source>MetaData</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="247"/>
<location filename="../dialog/mainwindow.cpp" line="331"/>
<location filename="../dialog/mainwindow.cpp" line="410"/>
<location filename="../dialog/mainwindow.cpp" line="246"/>
<location filename="../dialog/mainwindow.cpp" line="330"/>
<location filename="../dialog/mainwindow.cpp" line="408"/>
<source>DeleteMetaData</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="250"/>
<location filename="../dialog/mainwindow.cpp" line="333"/>
<location filename="../dialog/mainwindow.cpp" line="413"/>
<location filename="../dialog/mainwindow.cpp" line="249"/>
<location filename="../dialog/mainwindow.cpp" line="332"/>
<location filename="../dialog/mainwindow.cpp" line="411"/>
<source>ClearMetaData</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="254"/>
<location filename="../dialog/mainwindow.cpp" line="336"/>
<location filename="../dialog/mainwindow.cpp" line="416"/>
<location filename="../dialog/mainwindow.cpp" line="656"/>
<location filename="../dialog/mainwindow.cpp" line="1960"/>
<location filename="../dialog/mainwindow.cpp" line="1967"/>
<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"/>
<source>BookMark</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="257"/>
<location filename="../dialog/mainwindow.cpp" line="338"/>
<location filename="../dialog/mainwindow.cpp" line="419"/>
<location filename="../dialog/mainwindow.cpp" line="256"/>
<location filename="../dialog/mainwindow.cpp" line="337"/>
<location filename="../dialog/mainwindow.cpp" line="417"/>
<source>DeleteBookMark</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="260"/>
<location filename="../dialog/mainwindow.cpp" line="340"/>
<location filename="../dialog/mainwindow.cpp" line="422"/>
<location filename="../dialog/mainwindow.cpp" line="259"/>
<location filename="../dialog/mainwindow.cpp" line="339"/>
<location filename="../dialog/mainwindow.cpp" line="420"/>
<source>ClearBookMark</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="264"/>
<location filename="../dialog/mainwindow.cpp" line="343"/>
<location filename="../dialog/mainwindow.cpp" line="424"/>
<location filename="../dialog/mainwindow.cpp" line="263"/>
<location filename="../dialog/mainwindow.cpp" line="342"/>
<location filename="../dialog/mainwindow.cpp" line="422"/>
<source>Encoding</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="270"/>
<location filename="../dialog/mainwindow.cpp" line="269"/>
<source>Setting</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="272"/>
<location filename="../dialog/mainwindow.cpp" line="427"/>
<location filename="../dialog/mainwindow.cpp" line="271"/>
<location filename="../dialog/mainwindow.cpp" line="425"/>
<source>General</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="274"/>
<location filename="../dialog/mainwindow.cpp" line="281"/>
<location filename="../dialog/mainwindow.cpp" line="273"/>
<location filename="../dialog/mainwindow.cpp" line="280"/>
<source>Plugin</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="276"/>
<location filename="../dialog/mainwindow.cpp" line="275"/>
<source>RestoreLayout</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="283"/>
<location filename="../dialog/mainwindow.cpp" line="282"/>
<source>LoadPlugin</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="290"/>
<location filename="../dialog/mainwindow.cpp" line="289"/>
<source>Author</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="292"/>
<location filename="../dialog/mainwindow.cpp" line="428"/>
<location filename="../dialog/mainwindow.cpp" line="291"/>
<location filename="../dialog/mainwindow.cpp" line="426"/>
<source>About</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="293"/>
<location filename="../dialog/mainwindow.cpp" line="292"/>
<source>Sponsor</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="468"/>
<location filename="../dialog/mainwindow.cpp" line="466"/>
<source>SetaddressBase</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="471"/>
<location filename="../dialog/mainwindow.cpp" line="469"/>
<source>addressBase</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="471"/>
<location filename="../dialog/mainwindow.cpp" line="469"/>
<source>inputAddressBase</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="479"/>
<location filename="../dialog/mainwindow.cpp" line="477"/>
<source>ErrBaseAddress</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="485"/>
<location filename="../dialog/mainwindow.cpp" line="483"/>
<source>SetColInfo</source>
<translation>/</translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="489"/>
<location filename="../dialog/mainwindow.cpp" line="487"/>
<source>SetHeaderInfo</source>
<translation>/</translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="493"/>
<location filename="../dialog/mainwindow.cpp" line="491"/>
<source>SetAsciiString</source>
<translation>/</translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="498"/>
<location filename="../dialog/mainwindow.cpp" line="496"/>
<source>loc:</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="510"/>
<location filename="../dialog/mainwindow.cpp" line="508"/>
<source>sel:</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="545"/>
<location filename="../dialog/mainwindow.cpp" line="543"/>
<source>SetLocked</source>
<translation>/</translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="549"/>
<location filename="../dialog/mainwindow.cpp" line="547"/>
<source>SetOver</source>
<translation>/</translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="554"/>
<location filename="../dialog/mainwindow.cpp" line="552"/>
<source>ErrUnLock</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="561"/>
<location filename="../dialog/mainwindow.cpp" line="559"/>
<source>ErrUnOver</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="571"/>
<location filename="../dialog/mainwindow.cpp" line="569"/>
<source>ClearFindResult</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="581"/>
<location filename="../dialog/mainwindow.cpp" line="579"/>
<source>file</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="581"/>
<location filename="../dialog/mainwindow.cpp" line="579"/>
<source>addr</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="581"/>
<location filename="../dialog/mainwindow.cpp" line="579"/>
<source>value</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="604"/>
<location filename="../dialog/mainwindow.cpp" line="602"/>
<source>FindResult</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="611"/>
<location filename="../dialog/mainwindow.cpp" line="609"/>
<source>Log</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="621"/>
<location filename="../dialog/mainwindow.cpp" line="619"/>
<source>LoggerInitFinish</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="2143"/>
<location filename="../dialog/mainwindow.cpp" line="2198"/>
<source>ProjectFile (*.wingpro)</source>
<translation> (*.wingpro)</translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="2194"/>
<source>Warn</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="2194"/>
<source>PleaseSaveNewFile</source>
<translation></translation>
</message>
<message>
<source>Type</source>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="628"/>
<location filename="../dialog/mainwindow.cpp" line="626"/>
<source>Value</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="642"/>
<location filename="../dialog/mainwindow.cpp" line="640"/>
<source>Number</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="700"/>
<location filename="../dialog/mainwindow.cpp" line="698"/>
<source>SettingLoading</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="758"/>
<location filename="../dialog/mainwindow.cpp" line="756"/>
<source>PluginLoading</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="772"/>
<location filename="../dialog/mainwindow.cpp" line="770"/>
<source>UnLoadPluginSetting</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="791"/>
<location filename="../dialog/mainwindow.cpp" line="789"/>
<source>MenuName :</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="799"/>
<location filename="../dialog/mainwindow.cpp" line="797"/>
<source>DockWidgetName :</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="1266"/>
<location filename="../dialog/mainwindow.cpp" line="1269"/>
<source>Untitled</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="2086"/>
<location filename="../dialog/mainwindow.cpp" line="2104"/>
<source>ChoosePlugin</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="2086"/>
<location filename="../dialog/mainwindow.cpp" line="2104"/>
<source>PluginFile (*.wingplg)</source>
<translation> (*.wingplg)</translation>
</message>
@ -512,89 +528,113 @@
<translation type="vanished"> ROOT </translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="1634"/>
<location filename="../dialog/mainwindow.cpp" line="1640"/>
<source>DriverOpenErrorTip</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="1485"/>
<location filename="../dialog/mainwindow.cpp" line="1570"/>
<location filename="../dialog/mainwindow.cpp" line="1585"/>
<location filename="../dialog/mainwindow.cpp" line="1491"/>
<location filename="../dialog/mainwindow.cpp" line="1576"/>
<location filename="../dialog/mainwindow.cpp" line="1591"/>
<source>Error</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="1485"/>
<location filename="../dialog/mainwindow.cpp" line="1491"/>
<source>NoRoot</source>
<translation> root </translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="1566"/>
<location filename="../dialog/mainwindow.cpp" line="1572"/>
<location filename="../dialog/mainwindow.cpp" line="2143"/>
<source>ChooseFile</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="1570"/>
<location filename="../dialog/mainwindow.cpp" line="1576"/>
<source>FileNotExist</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="1585"/>
<location filename="../dialog/mainwindow.cpp" line="1591"/>
<source>FilePermission</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="1596"/>
<location filename="../dialog/mainwindow.cpp" line="1656"/>
<location filename="../dialog/mainwindow.cpp" line="1602"/>
<location filename="../dialog/mainwindow.cpp" line="1662"/>
<source>Close</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="1597"/>
<location filename="../dialog/mainwindow.cpp" line="1657"/>
<location filename="../dialog/mainwindow.cpp" line="1603"/>
<location filename="../dialog/mainwindow.cpp" line="1663"/>
<source>ConfirmSave</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="1640"/>
<location filename="../dialog/mainwindow.cpp" line="1646"/>
<source>ChooseExportFile</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="1685"/>
<location filename="../dialog/mainwindow.cpp" line="1825"/>
<location filename="../dialog/mainwindow.cpp" line="1704"/>
<location filename="../dialog/mainwindow.cpp" line="2183"/>
<location filename="../dialog/mainwindow.cpp" line="2207"/>
<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"/>
<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"/>
<source>ChooseSaveFile</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="1835"/>
<location filename="../dialog/mainwindow.cpp" line="1741"/>
<source>FindFininish</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="1853"/>
<source>SaveSelError</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="1848"/>
<location filename="../dialog/mainwindow.cpp" line="1973"/>
<location filename="../dialog/mainwindow.cpp" line="1866"/>
<location filename="../dialog/mainwindow.cpp" line="1991"/>
<source>Addr : 0x%1</source>
<translation>0x%1</translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="1930"/>
<location filename="../dialog/mainwindow.cpp" line="1948"/>
<source>NoSelection</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="1960"/>
<location filename="../dialog/mainwindow.cpp" line="1967"/>
<location filename="../dialog/mainwindow.cpp" line="1978"/>
<location filename="../dialog/mainwindow.cpp" line="1985"/>
<source>InputComment</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="2047"/>
<location filename="../dialog/mainwindow.cpp" line="2065"/>
<source>PleaseInputFill</source>
<translation></translation>
</message>
<message>
<location filename="../dialog/mainwindow.cpp" line="2059"/>
<location filename="../dialog/mainwindow.cpp" line="2077"/>
<source>FillInputError</source>
<translation></translation>
</message>

View File

@ -226,6 +226,11 @@ signals:
QStringList getSupportedEncodings();
QString currentEncoding();
void setCurrentEncoding(QString encoding);
// workspace
bool openWorkSpace(QString filename);
bool saveWorkSpace();
bool saveAsWorkSpace(QString filename);
};
#endif // HEXVIEWSHADOW_H

View File

@ -26,5 +26,9 @@ v1.2:
4. 增加快捷键,增强易用性
5. 修复菜单项被禁用但仍能被快捷键调用的问题
6. 修复书签在关闭窗体后缓存不清理的问题
7. 增加保存工作区的功能,保存你的工作记录
7. 增加保存工作区的功能,保存你的工作记录(包含相应的插件接口)
8. 修复标记不能够正确删除的问题
9. 删除没必要的数值显示(即同时显示十进制和十六进制对应的条目)
10. 增强设置标记功能
11. 增加了一些完成操作的提示,提高易用性
12. 增加撤销、重复的状态提示,指示是否可以继续撤销和重复