Skip to content

Commit

Permalink
Update file(s): 2024-12-20
Browse files Browse the repository at this point in the history
  • Loading branch information
horsicq committed Dec 19, 2024
1 parent 3f2c38f commit 7e92e6e
Show file tree
Hide file tree
Showing 13 changed files with 109 additions and 94 deletions.
48 changes: 24 additions & 24 deletions AbstractWidgets/Structs/xmach_defs.cpp

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions AbstractWidgets/abstractwidgets.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,9 @@ set(ABSTRACTWIDGETS_SOURCES
${CMAKE_CURRENT_LIST_DIR}/xgenericheaderwidget.cpp
${CMAKE_CURRENT_LIST_DIR}/xgenericheaderwidget.h
${CMAKE_CURRENT_LIST_DIR}/xgenericheaderwidget.ui
${CMAKE_CURRENT_LIST_DIR}/xgenerichexwidget.cpp
${CMAKE_CURRENT_LIST_DIR}/xgenerichexwidget.h
${CMAKE_CURRENT_LIST_DIR}/xgenerichexwidget.ui
${CMAKE_CURRENT_LIST_DIR}/xgenerictablewidget.cpp
${CMAKE_CURRENT_LIST_DIR}/xgenerictablewidget.h
${CMAKE_CURRENT_LIST_DIR}/xgenerictablewidget.ui
Expand Down
3 changes: 3 additions & 0 deletions AbstractWidgets/abstractwidgets.pri
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ HEADERS += \
$$PWD/xformatwidget.h \
$$PWD/xformatwidget_def.h \
$$PWD/xgenericheaderwidget.h \
$$PWD/xgenerichexwidget.h \
$$PWD/xgenerictablewidget.h \
$$PWD/xmainwidget.h \
$$PWD/xmainwidgetadvanced.h \
Expand All @@ -37,6 +38,7 @@ SOURCES += \
$$PWD/xdialogprocessdata.cpp \
$$PWD/xformatwidget.cpp \
$$PWD/xgenericheaderwidget.cpp \
$$PWD/xgenerichexwidget.cpp \
$$PWD/xgenerictablewidget.cpp \
$$PWD/xmainwidget.cpp \
$$PWD/xmainwidgetadvanced.cpp \
Expand All @@ -46,6 +48,7 @@ FORMS += \
$$PWD/dialogsetgenericwidget.ui \
$$PWD/dialogxmainwidget.ui \
$$PWD/xgenericheaderwidget.ui \
$$PWD/xgenerichexwidget.ui \
$$PWD/xgenerictablewidget.ui \
$$PWD/xmainwidget.ui

Expand Down
5 changes: 4 additions & 1 deletion AbstractWidgets/xformatwidget.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,11 @@ if (NOT DEFINED XTABLEVIEW_SOURCES)
include(${CMAKE_CURRENT_LIST_DIR}/../../Controls/xtableview.cmake)
set(XFORMATWIDGET_SOURCES ${XFORMATWIDGET_SOURCES} ${XTABLEVIEW_SOURCES})
endif()
if (NOT DEFINED XDATETIMEEDITX_SOURCES)
include(${CMAKE_CURRENT_LIST_DIR}/../../Controls/xdatetimeeditx.cmake)
set(XFORMATWIDGET_SOURCES ${XFORMATWIDGET_SOURCES} ${XDATETIMEEDITX_SOURCES})
endif()

include(${CMAKE_CURRENT_LIST_DIR}/../../Controls/xdatetimeeditx.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/../../XHexView/xhexview.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/../../XMemoryMapWidget/xmemorymapwidget.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/../../XEntropyWidget/xentropywidget.cmake)
Expand Down
95 changes: 63 additions & 32 deletions AbstractWidgets/xformatwidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -314,7 +314,7 @@ QString XFormatWidget::getTypeTitle(XFW_DEF::TYPE type, XBinary::MODE mode, XBin
sResult = QString("atom_info_command");
} else if (type == XFW_DEF::TYPE_function_starts_command) {
sResult = QString("function_starts_command");
} else if (type == XFW_DEF::TYPE_dyld_exports_trie_command) {
} else if (type == XFW_DEF::TYPE_MACH_dyld_exports_trie_command) {
sResult = QString("dyld_exports_trie_command");
} else if (type == XFW_DEF::TYPE_dyld_chained_fixups_command) {
sResult = QString("dyld_chained_fixups_command");
Expand Down Expand Up @@ -362,6 +362,8 @@ QString XFormatWidget::getTypeTitle(XFW_DEF::TYPE type, XBinary::MODE mode, XBin
sResult = QString("section");
} else if (type == XFW_DEF::TYPE_MACH_section_64) {
sResult = QString("section_64");
} else if (type == XFW_DEF::TYPE_MACH_trie_export) {
sResult = tr("Export");
} else if (type == XFW_DEF::TYPE_DEX_HEADER) {
sResult = QString("HEADER");
}
Expand Down Expand Up @@ -432,7 +434,7 @@ QList<XFW_DEF::HEADER_RECORD> XFormatWidget::getHeaderRecords(const XFW_DEF::CWO
} else if (pCwOptions->_type == XFW_DEF::TYPE_function_starts_command) {
pRecords = XTYPE_MACH::X_linkedit_data_command::records;
nNumberOfRecords = XTYPE_MACH::X_linkedit_data_command::__data_size;
} else if (pCwOptions->_type == XFW_DEF::TYPE_dyld_exports_trie_command) {
} else if (pCwOptions->_type == XFW_DEF::TYPE_MACH_dyld_exports_trie_command) {
pRecords = XTYPE_MACH::X_linkedit_data_command::records;
nNumberOfRecords = XTYPE_MACH::X_linkedit_data_command::__data_size;
} else if (pCwOptions->_type == XFW_DEF::TYPE_dyld_chained_fixups_command) {
Expand Down Expand Up @@ -574,7 +576,7 @@ qint64 XFormatWidget::getStructSize(XFW_DEF::TYPE type)
nResult = sizeof(XMACH_DEF::linkedit_data_command);
} else if (type == XFW_DEF::TYPE_function_starts_command) {
nResult = sizeof(XMACH_DEF::linkedit_data_command);
} else if (type == XFW_DEF::TYPE_dyld_exports_trie_command) {
} else if (type == XFW_DEF::TYPE_MACH_dyld_exports_trie_command) {
nResult = sizeof(XMACH_DEF::linkedit_data_command);
} else if (type == XFW_DEF::TYPE_dyld_chained_fixups_command) {
nResult = sizeof(XMACH_DEF::linkedit_data_command);
Expand Down Expand Up @@ -676,18 +678,6 @@ void XFormatWidget::setValue(QVariant vValue, qint32 nPosition, qint64 nOffset,

_adjustRecWidget(&recWidget, vValue);

SV sv = _setValue(vValue, nPosition);
// if (sv == SV_EDITED) {
// reset();
// } else if (sv == SV_RELOADDATA) {
// reset();
// reloadData(true);
// } else if (sv == SV_RELOADALL) {
// reset();
// reload();
// reloadData(false);
// }

emit dataChanged(nOffset, nSize);
}
} else {
Expand Down Expand Up @@ -1107,8 +1097,13 @@ void XFormatWidget::updateRecWidgets(QIODevice *pDevice, QList<RECWIDGET> *pList
if (pListRecWidget->at(i).pWidget) {
bool bIsSize = false;

if ((pListRecWidget->at(i).nVType & XFW_DEF::VAL_TYPE_SIZE) && (pListRecWidget->at(i).nSubPosition != -1)) {
bIsSize = true;
if (pListRecWidget->at(i).nVType & XFW_DEF::VAL_TYPE_SIZE) {
if (pListRecWidget->at(i).nSubPosition != -1) {
bIsSize = true;
}
else if (pListRecWidget->at(i).nVType & XFW_DEF::VAL_TYPE_RELTOSTRUCT) {
bIsSize = true;
}
}

QList<QToolButton *> listWidgets = pListRecWidget->at(i).pWidget->findChildren<QToolButton *>();
Expand All @@ -1118,7 +1113,12 @@ void XFormatWidget::updateRecWidgets(QIODevice *pDevice, QList<RECWIDGET> *pList
for (qint32 j = 0; j < nNumberOfWidgets; j++) {
qint64 nDelta = listWidgets.at(j)->property("DELTA").toLongLong();
if (bIsSize) {
listWidgets.at(j)->setProperty("LOCATION", listVariants.at(pListRecWidget->at(i).nSubPosition).toULongLong() + nDelta);
if (pListRecWidget->at(i).nSubPosition != -1) {
listWidgets.at(j)->setProperty("LOCATION", listVariants.at(pListRecWidget->at(i).nSubPosition).toULongLong() + nDelta);
} else {
listWidgets.at(j)->setProperty("LOCATION", nDelta);
}

listWidgets.at(j)->setProperty("SIZE", listVariants.at(i));
} else {
listWidgets.at(j)->setProperty("LOCATION", listVariants.at(i).toULongLong() + nDelta);
Expand All @@ -1141,13 +1141,17 @@ void XFormatWidget::_adjustRecWidget(RECWIDGET *pRecWidget, QVariant varValue)

if (pRecWidget->pLineEdit) bBlockLineEdit = pRecWidget->pLineEdit->blockSignals(true);

QList<XComboBoxEx *> listWidgets = pRecWidget->pWidget->findChildren<XComboBoxEx *>();
qint32 nNumberOfWidgets = 0;
QList<XComboBoxEx *> listWidgets;

qint32 nNumberOfWidgets = listWidgets.count();
if (pRecWidget->pWidget) {
listWidgets = pRecWidget->pWidget->findChildren<XComboBoxEx *>();
nNumberOfWidgets = listWidgets.count();

for (qint32 i = 0; i < nNumberOfWidgets; i++) {
bool bState = listWidgets.at(i)->blockSignals(true);
listBlockComboBoxes.append(bState);
for (qint32 i = 0; i < nNumberOfWidgets; i++) {
bool bState = listWidgets.at(i)->blockSignals(true);
listBlockComboBoxes.append(bState);
}
}

if (pRecWidget->pLineEdit) {
Expand Down Expand Up @@ -1713,6 +1717,20 @@ void XFormatWidget::_addStruct(const SPSTRUCT &spStruct)
_spStructRecord.widgetMode = XFW_DEF::WIDGETMODE_TABLE;
_spStructRecord.type = XFW_DEF::TYPE_GENERIC_STRINGTABLE_ANSI;

_addStruct(_spStructRecord);
}
} else if ((_spStruct.widgetMode == XFW_DEF::WIDGETMODE_HEADER) && (_spStruct.type == XFW_DEF::TYPE_MACH_dyld_exports_trie_command)) {
XMACH_DEF::linkedit_data_command _command = mach._read_linkedit_data_command(_spStruct.nStructOffset);

if (_command.dataoff && _command.datasize) {
SPSTRUCT _spStructRecord = _spStruct;
_spStructRecord.pTreeWidgetItem = pTreeWidgetItem;
_spStructRecord.nStructOffset = _spStruct.nOffset + _command.dataoff;
_spStructRecord.nStructSize = _command.datasize;
_spStructRecord.nStructCount = 0;
_spStructRecord.widgetMode = XFW_DEF::WIDGETMODE_HEX;
_spStructRecord.type = XFW_DEF::TYPE_MACH_trie_export;

_addStruct(_spStructRecord);
}
} else if ((_spStruct.widgetMode == XFW_DEF::WIDGETMODE_HEADER) && (_spStruct.type == XFW_DEF::TYPE_segment_command)) {
Expand Down Expand Up @@ -1848,7 +1866,7 @@ XFW_DEF::TYPE XFormatWidget::load_commandIdToType(qint32 nCommandId)
} else if (nCommandId == XMACH_DEF::S_LC_FUNCTION_STARTS) {
result = XFW_DEF::TYPE_function_starts_command;
} else if (nCommandId == XMACH_DEF::S_LC_DYLD_EXPORTS_TRIE) {
result = XFW_DEF::TYPE_dyld_exports_trie_command;
result = XFW_DEF::TYPE_MACH_dyld_exports_trie_command;
} else if (nCommandId == XMACH_DEF::S_LC_DYLD_CHAINED_FIXUPS) {
result = XFW_DEF::TYPE_dyld_chained_fixups_command;
} else if (nCommandId == XMACH_DEF::S_LC_ENCRYPTION_INFO) {
Expand Down Expand Up @@ -2206,8 +2224,25 @@ bool XFormatWidget::createHeaderTable(QTableWidget *pTableWidget, const QList<XF
}

for (qint32 i = 0; i < nNumberOfRecords; i++) {
if ((pListRecWidget->at(i).nVType & XFW_DEF::VAL_TYPE_OFFSET) || (pListRecWidget->at(i).nVType & XFW_DEF::VAL_TYPE_ADDRESS) ||
((pListRecWidget->at(i).nVType & XFW_DEF::VAL_TYPE_SIZE) && (pListRecWidget->at(i).nSubPosition != -1))) {
if (pListRecWidget->at(i).nVType & XFW_DEF::VAL_TYPE_RELTOPARENT) {
(*pListRecWidget)[i].varDelta = var1.toULongLong();
} else if (pListRecWidget->at(i).nVType & XFW_DEF::VAL_TYPE_RELTOSTRUCT) {
(*pListRecWidget)[i].varDelta = nOffset;
}

bool bValid = false;

if (pListRecWidget->at(i).nVType & XFW_DEF::VAL_TYPE_OFFSET) {
bValid = true;
} else if (pListRecWidget->at(i).nVType & XFW_DEF::VAL_TYPE_ADDRESS) {
bValid = true;
} else if ((pListRecWidget->at(i).nVType & XFW_DEF::VAL_TYPE_SIZE) && (pListRecWidget->at(i).nSubPosition != -1)) {
bValid = true;
} else if ((pListRecWidget->at(i).nVType & XFW_DEF::VAL_TYPE_SIZE) && (pListRecWidget->at(i).nVType & XFW_DEF::VAL_TYPE_RELTOSTRUCT)) {
bValid = true;
}

if (bValid) {
_adjustCellWidget(pListRecWidget, pTableWidget, i, HEADER_COLUMN_INFO);

XBinary::LT locType = XBinary::LT_UNKNOWN;
Expand All @@ -2224,15 +2259,11 @@ bool XFormatWidget::createHeaderTable(QTableWidget *pTableWidget, const QList<XF
} else if (pListRecWidget->at(nSubPosition).nVType & XFW_DEF::VAL_TYPE_ADDRESS) {
locType = XBinary::LT_ADDRESS;
}
} else if (pListRecWidget->at(i).nVType & XFW_DEF::VAL_TYPE_RELTOSTRUCT) {
locType = XBinary::LT_OFFSET;
}
}

if (pListRecWidget->at(i).nVType & XFW_DEF::VAL_TYPE_RELTOPARENT) {
(*pListRecWidget)[i].varDelta = var1.toULongLong();
} else if (pListRecWidget->at(i).nVType & XFW_DEF::VAL_TYPE_RELTOSTRUCT) {
(*pListRecWidget)[i].varDelta = nOffset;
}

if (locType != XBinary::LT_UNKNOWN) {
QToolButton *pButton = new QToolButton(0);
pButton->setProperty("LOCATIONTYPE", locType);
Expand Down
1 change: 0 additions & 1 deletion AbstractWidgets/xformatwidget.h
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,6 @@ class XFormatWidget : public XShortcutsWidget {
SV_RELOADDATA
};

virtual SV _setValue(QVariant vValue, qint32 nPosition) = 0;
void adjustGenericHeader(QTableWidget *pTableWidget, const QList<XFW_DEF::HEADER_RECORD> *pListHeaderRecords);
void adjustGenericTable(QTableView *pTableView, const QList<XFW_DEF::HEADER_RECORD> *pListHeaderRecords);
virtual void adjustListTable(qint32 nType, QTableWidget *pTableWidget);
Expand Down
6 changes: 4 additions & 2 deletions AbstractWidgets/xformatwidget_def.h
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ enum TYPE {
TYPE_segment_split_info_command,
TYPE_atom_info_command,
TYPE_function_starts_command,
TYPE_dyld_exports_trie_command,
TYPE_MACH_dyld_exports_trie_command,
TYPE_dyld_chained_fixups_command,
TYPE_encryption_info_command,
TYPE_encryption_info_command_64,
Expand All @@ -100,6 +100,7 @@ enum TYPE {
TYPE_MACH_CS_CodeDirectory,
TYPE_MACH_section,
TYPE_MACH_section_64,
TYPE_MACH_trie_export,
TYPE_MACH_END,
TYPE_NE_START,
TYPE_NE_IMAGE_DOS_HEADER,
Expand All @@ -122,7 +123,8 @@ enum WIDGETMODE {
WIDGETMODE_UNKNOWN = 0,
WIDGETMODE_HEADER,
WIDGETMODE_TABLE,
WIDGETMODE_DIALOG_HEADER
WIDGETMODE_DIALOG_HEADER,
WIDGETMODE_HEX
};

struct OPTIONS {
Expand Down
10 changes: 1 addition & 9 deletions AbstractWidgets/xgenericheaderwidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -41,14 +41,6 @@ XGenericHeaderWidget::~XGenericHeaderWidget()
delete ui;
}

XFormatWidget::SV XGenericHeaderWidget::_setValue(QVariant vValue, qint32 nPosition)
{
Q_UNUSED(vValue)
Q_UNUSED(nPosition)

return SV_NONE;
}

void XGenericHeaderWidget::reloadData(bool bSaveSelection)
{
qint32 nCurrentRow = 0;
Expand Down Expand Up @@ -104,7 +96,7 @@ void XGenericHeaderWidget::reloadData(bool bSaveSelection)
(getCwOptions()->_type == XFW_DEF::TYPE_sub_client_command) || (getCwOptions()->_type == XFW_DEF::TYPE_sub_library_command) ||
(getCwOptions()->_type == XFW_DEF::TYPE_symtab_command) || (getCwOptions()->_type == XFW_DEF::TYPE_dysymtab_command) ||
(getCwOptions()->_type == XFW_DEF::TYPE_segment_split_info_command) || (getCwOptions()->_type == XFW_DEF::TYPE_atom_info_command) ||
(getCwOptions()->_type == XFW_DEF::TYPE_function_starts_command) || (getCwOptions()->_type == XFW_DEF::TYPE_dyld_exports_trie_command) ||
(getCwOptions()->_type == XFW_DEF::TYPE_function_starts_command) || (getCwOptions()->_type == XFW_DEF::TYPE_MACH_dyld_exports_trie_command) ||
(getCwOptions()->_type == XFW_DEF::TYPE_dyld_chained_fixups_command) || (getCwOptions()->_type == XFW_DEF::TYPE_encryption_info_command) ||
(getCwOptions()->_type == XFW_DEF::TYPE_encryption_info_command_64) || (getCwOptions()->_type == XFW_DEF::TYPE_dyld_info_command) ||
(getCwOptions()->_type == XFW_DEF::TYPE_version_min_command) || (getCwOptions()->_type == XFW_DEF::TYPE_uuid_command) ||
Expand Down
3 changes: 0 additions & 3 deletions AbstractWidgets/xgenericheaderwidget.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,6 @@ class XGenericHeaderWidget : public XFormatWidget {
virtual void reloadData(bool bSaveSelection);
virtual void adjustView();

protected:
virtual SV _setValue(QVariant vValue, qint32 nPosition);

private slots:
void on_tableWidgetMain_currentCellChanged(int currentRow, int currentColumn, int previousRow, int previousColumn);
void on_tableWidgetMain_customContextMenuRequested(const QPoint &pos);
Expand Down
8 changes: 0 additions & 8 deletions AbstractWidgets/xgenerictablewidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -40,14 +40,6 @@ XGenericTableWidget::~XGenericTableWidget()
delete ui;
}

XFormatWidget::SV XGenericTableWidget::_setValue(QVariant vValue, qint32 nPosition)
{
Q_UNUSED(vValue)
Q_UNUSED(nPosition)

return SV_NONE;
}

void XGenericTableWidget::reloadData(bool bSaveSelection)
{
qint32 nRow = 0;
Expand Down
3 changes: 0 additions & 3 deletions AbstractWidgets/xgenerictablewidget.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,6 @@ class XGenericTableWidget : public XFormatWidget {
virtual void reloadData(bool bSaveSelection);
virtual void adjustView();

protected:
virtual SV _setValue(QVariant vValue, qint32 nPosition);

private slots:
void on_tableViewMain_customContextMenuRequested(const QPoint &pos);
void onTableView_currentRowChanged(const QModelIndex &current, const QModelIndex &previous);
Expand Down
16 changes: 6 additions & 10 deletions AbstractWidgets/xmainwidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -164,14 +164,6 @@ void XMainWidget::reload()
// setTreeItem(ui->treeWidgetNavi, getOptions().nStartType);
}

XFormatWidget::SV XMainWidget::_setValue(QVariant vValue, qint32 nPosition)
{
Q_UNUSED(vValue)
Q_UNUSED(nPosition)

return SV_NONE;
}

void XMainWidget::setReadonly(bool bState)
{
XFormatWidget::setReadonly(bState);
Expand Down Expand Up @@ -258,7 +250,7 @@ void XMainWidget::reloadData(bool bSaveSelection)
connect(pWidget, SIGNAL(dataChanged(qint64, qint64)), this, SLOT(dataChangedSlot(qint64, qint64)));
connect(pWidget, SIGNAL(followLocation(quint64, qint32, qint64, qint32)), this, SLOT(followLocationSlot(quint64, qint32, qint64, qint32)));

if ((cwOptions.widgetMode == XFW_DEF::WIDGETMODE_HEADER) || (cwOptions.widgetMode == XFW_DEF::WIDGETMODE_TABLE)) {
if ((cwOptions.widgetMode == XFW_DEF::WIDGETMODE_HEADER) || (cwOptions.widgetMode == XFW_DEF::WIDGETMODE_TABLE) || (cwOptions.widgetMode == XFW_DEF::WIDGETMODE_HEX)) {
XFormatWidget *_pXFormatWidget = dynamic_cast<XFormatWidget *>(pWidget);

if (_pXFormatWidget) {
Expand Down Expand Up @@ -318,6 +310,10 @@ XShortcutsWidget *XMainWidget::createWidget(const XFW_DEF::CWOPTIONS &cwOptions)
XGenericTableWidget *_pWidget = new XGenericTableWidget(cwOptions.pParent);
_pWidget->setCwOptions(cwOptions, false);
pResult = _pWidget;
} else if (cwOptions.widgetMode == XFW_DEF::WIDGETMODE_HEX) {
XGenericHexWidget *_pWidget = new XGenericHexWidget(cwOptions.pParent);
_pWidget->setCwOptions(cwOptions, false);
pResult = _pWidget;
}

return pResult;
Expand Down Expand Up @@ -473,7 +469,7 @@ void XMainWidget::showCwWidgetSlot(QString sInitString, bool bNewWindow)
connect(pWidget, SIGNAL(dataChanged(qint64, qint64)), this, SLOT(dataChangedSlot(qint64, qint64)));
connect(pWidget, SIGNAL(followLocation(quint64, qint32, qint64, qint32)), this, SLOT(followLocationSlot(quint64, qint32, qint64, qint32)));

if ((cwOptions.widgetMode == XFW_DEF::WIDGETMODE_HEADER) || (cwOptions.widgetMode == XFW_DEF::WIDGETMODE_TABLE)) {
if ((cwOptions.widgetMode == XFW_DEF::WIDGETMODE_HEADER) || (cwOptions.widgetMode == XFW_DEF::WIDGETMODE_TABLE) || (cwOptions.widgetMode == XFW_DEF::WIDGETMODE_HEX)) {
connect(pWidget, SIGNAL(showCwWidget(QString, bool)), this, SLOT(showCwWidgetSlot(QString, bool)));
}

Expand Down
2 changes: 1 addition & 1 deletion AbstractWidgets/xmainwidget.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@

#include "xgenericheaderwidget.h"
#include "xgenerictablewidget.h"
#include "xgenerichexwidget.h"
#include "xformatwidget.h"
#include "dialogdemangle.h"
#include "dialogwidget.h"
Expand All @@ -51,7 +52,6 @@ class XMainWidget : public XFormatWidget {
virtual void cleanup();
virtual void reload();

virtual SV _setValue(QVariant vValue, qint32 nPosition);
virtual void setReadonly(bool bState);
virtual void adjustView();
virtual void reloadData(bool bSaveSelection);
Expand Down

0 comments on commit 7e92e6e

Please sign in to comment.