2019-12-10 12:31:00 +00:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <QMdiArea>
|
|
|
|
#include <QMdiSubWindow>
|
2019-12-20 16:02:35 +00:00
|
|
|
#include <QTreeWidget>
|
2019-12-10 12:31:00 +00:00
|
|
|
|
|
|
|
#include "signal/Signal.h"
|
|
|
|
#include <functional>
|
|
|
|
#include "MIPS.h"
|
|
|
|
#include "BiosDebugInfoProvider.h"
|
|
|
|
#include "ELF.h"
|
|
|
|
|
|
|
|
class CFunctionsView : public QMdiSubWindow
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
CFunctionsView(QMdiArea*);
|
|
|
|
virtual ~CFunctionsView() = default;
|
|
|
|
|
|
|
|
void SetContext(CMIPS*, CBiosDebugInfoProvider*);
|
|
|
|
void Refresh();
|
|
|
|
|
|
|
|
Framework::CSignal<void(uint32)> OnFunctionDblClick;
|
|
|
|
Framework::CSignal<void(void)> OnFunctionsStateChange;
|
|
|
|
|
2019-12-10 12:47:29 +00:00
|
|
|
public slots:
|
2019-12-20 16:02:35 +00:00
|
|
|
void OnListDblClick(QTreeWidgetItem*, int);
|
2019-12-10 12:47:29 +00:00
|
|
|
void OnNewClick();
|
|
|
|
void OnRenameClick();
|
|
|
|
void OnDeleteClick();
|
|
|
|
void OnImportClick();
|
|
|
|
|
2019-12-10 12:31:00 +00:00
|
|
|
private:
|
|
|
|
void RefreshList();
|
|
|
|
void InitializeModuleGrouper();
|
2019-12-20 16:02:35 +00:00
|
|
|
QTreeWidgetItem* GetFunctionGroup(uint32);
|
2019-12-10 12:31:00 +00:00
|
|
|
|
|
|
|
Framework::CSignal<void()>::Connection m_functionTagsChangeConnection;
|
|
|
|
|
|
|
|
CMIPS* m_context = nullptr;
|
|
|
|
BiosDebugModuleInfoArray m_modules;
|
|
|
|
CBiosDebugInfoProvider* m_biosDebugInfoProvider = nullptr;
|
2019-12-20 16:02:35 +00:00
|
|
|
QTreeWidget* m_treeWidget;
|
|
|
|
std::map<uint32, QTreeWidgetItem*> m_groupMap;
|
2019-12-10 12:31:00 +00:00
|
|
|
};
|