#include "Mainwindow.hxx"
#include "qt.hxx"
#include "disassembler/llvm/LLVMDisassembler.hxx"
-
+#include "core/Function.hxx"
+#include "core/BasicBlock.hxx"
+#include "core/InformationManager.hxx"
+#include "widgets/ScriptingDock.hxx"
#include "widgets/CFGScene.hxx"
+#include "widgets/FunctionWidget.hxx"
#include "dialogs/NewFunctionDialog.hxx"
#include "dialogs/SimpleStringDialog.hxx"
shortcut = new QShortcut(QKeySequence("r"), listWidget);
connect(shortcut, &QShortcut::activated, [=]() {
QListWidgetItem * item = listWidget->currentItem();
- if (item) renameFunction(item);
+ if (item) renameFunction(objects_list[item]->getFunction());
});
}
QMenu menu(this);
if (item) {
QAction * act = menu.addAction("Rename Function");
- connect(act, &QAction::triggered, [=]() {this->renameFunction(item);});
+ connect(act, &QAction::triggered, [=]() {this->renameFunction(objects_list[item]->getFunction());});
} else {
QAction * act = menu.addAction("AddFunction");
connect(act, SIGNAL(triggered()), this, SLOT(requestNewFunction()));
switchMainPlaneToAddress(address);
}
-void Mainwindow::renameFunction(QListWidgetItem * item) {
+void Mainwindow::renameFunction(Function* function) {
SimpleStringDialog dialog("New name");
int result = dialog.exec();
if (QDialog::Accepted == result) {
- LOG4CXX_DEBUG(logger, "renaming Function " << item->text().toStdString()
+ LOG4CXX_DEBUG(logger, "renaming Function " << function->getName()
<< " to " << dialog.result().toStdString());
- item->setText(dialog.result());
+ function->setName(dialog.result().toStdString());
+ objects_list_by_address[function->getStartAddress()]->setText(dialog.result());
} else {
LOG4CXX_DEBUG(logger, "renameFunction aborted");
}
}
void Mainwindow::addFunction(Function* fun) {
- if (functions.find(fun) != functions.end())
+ if (functions.find(fun->getStartAddress()) != functions.end())
return;
- functions.insert(fun);
+ functions.insert(std::make_pair(fun->getStartAddress(), fun));
- QTabWidget * w = new QTabWidget();
+ FunctionWidget * w = new FunctionWidget(fun);
// CFG
CFGScene * scene = new CFGScene;