1
0
Fork 0

BRIDGE+GUI: GuiSymbolRefreshCurrent

This commit is contained in:
Mr. eXoDia 2014-08-02 03:57:37 +02:00
parent d6ca7e08ba
commit 219908b4f8
6 changed files with 30 additions and 3 deletions

View File

@ -819,6 +819,11 @@ BRIDGE_IMPEXP void GuiReferenceAddColumn(int width, const char* title)
_gui_sendmessage(GUI_REF_ADDCOLUMN, (void*)(duint)width, (void*)title);
}
BRIDGE_IMPEXP void GuiSymbolRefreshCurrent()
{
_gui_sendmessage(GUI_SYMBOL_REFRESH_CURRENT, 0, 0);
}
BRIDGE_IMPEXP void GuiReferenceSetRowCount(int count)
{
_gui_sendmessage(GUI_REF_SETROWCOUNT, (void*)(duint)count, 0);

View File

@ -632,7 +632,8 @@ typedef enum
GUI_UPDATE_SIDEBAR, // param1=unused, param2=unused
GUI_REPAINT_TABLE_VIEW, // param1=unused, param2=unused
GUI_UPDATE_PATCHES, // param1=unused, param2=unused
GUI_UPDATE_CALLSTACK // param1=unused, param2=unused
GUI_UPDATE_CALLSTACK, // param1=unused, param2=unused
GUI_SYMBOL_REFRESH_CURRENT // param1=unused, param2=unused
} GUIMSG;
//GUI structures
@ -674,6 +675,7 @@ BRIDGE_IMPEXP void GuiSymbolLogAdd(const char* message);
BRIDGE_IMPEXP void GuiSymbolLogClear();
BRIDGE_IMPEXP void GuiSymbolSetProgress(int percent);
BRIDGE_IMPEXP void GuiSymbolUpdateModuleList(int count, SYMBOLMODULEINFO* modules);
BRIDGE_IMPEXP void GuiSymbolRefreshCurrent();
BRIDGE_IMPEXP void GuiReferenceAddColumn(int width, const char* title);
BRIDGE_IMPEXP void GuiReferenceSetRowCount(int count);
BRIDGE_IMPEXP int GuiReferenceGetRowCount();

View File

@ -374,6 +374,11 @@ void Bridge::emitUpdateCallStack()
emit updateCallStack();
}
void Bridge::emitSymbolRefreshCurrent()
{
emit symbolRefreshCurrent();
}
/************************************************************************************
Static Functions
************************************************************************************/
@ -738,13 +743,19 @@ __declspec(dllexport) void* _gui_sendmessage(GUIMSG type, void* param1, void* pa
case GUI_UPDATE_PATCHES:
{
emit Bridge::getBridge()->emitUpdatePatches();
Bridge::getBridge()->emitUpdatePatches();
}
break;
case GUI_UPDATE_CALLSTACK:
{
emit Bridge::getBridge()->emitUpdateCallStack();
Bridge::getBridge()->emitUpdateCallStack();
}
break;
case GUI_SYMBOL_REFRESH_CURRENT:
{
Bridge::getBridge()->emitSymbolRefreshCurrent();
}
break;

View File

@ -80,6 +80,7 @@ public:
void emitRepaintTableView();
void emitUpdatePatches();
void emitUpdateCallStack();
void emitSymbolRefreshCurrent();
//Public variables
void* winId;
@ -141,6 +142,7 @@ signals:
void repaintTableView();
void updatePatches();
void updateCallStack();
void symbolRefreshCurrent();
private:
QMutex* mBridgeMutex;

View File

@ -66,6 +66,7 @@ SymbolView::SymbolView(QWidget *parent) : QWidget(parent), ui(new Ui::SymbolView
connect(mModuleList, SIGNAL(selectionChangedSignal(int)), this, SLOT(moduleSelectionChanged(int)));
connect(Bridge::getBridge(), SIGNAL(updateSymbolList(int,SYMBOLMODULEINFO*)), this, SLOT(updateSymbolList(int,SYMBOLMODULEINFO*)));
connect(Bridge::getBridge(), SIGNAL(setSymbolProgress(int)), ui->symbolProgress, SLOT(setValue(int)));
connect(Bridge::getBridge(), SIGNAL(symbolRefreshCurrent()), this, SLOT(symbolRefreshCurrent()));
connect(mSearchListView, SIGNAL(listContextMenuSignal(QMenu*)), this, SLOT(symbolContextMenu(QMenu*)));
connect(mSearchListView, SIGNAL(enterPressedSignal()), this, SLOT(symbolFollow()));
}
@ -163,6 +164,11 @@ void SymbolView::symbolContextMenu(QMenu* wMenu)
wMenu->addAction(mFollowSymbolDumpAction);
}
void SymbolView::symbolRefreshCurrent()
{
mModuleList->setSingleSelection(mModuleList->getInitialSelection());
}
void SymbolView::symbolFollow()
{
DbgCmdExecDirect(QString("disasm " + mSearchListView->mCurList->getCellContent(mSearchListView->mCurList->getInitialSelection(), 0)).toUtf8().constData());

View File

@ -32,6 +32,7 @@ private slots:
void symbolFollow();
void symbolFollowDump();
void symbolContextMenu(QMenu* wMenu);
void symbolRefreshCurrent();
signals:
void showCpu();