#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 "dialogs/NewFunctionDialog.hxx"
#include "dialogs/SimpleStringDialog.hxx"
: manager(mgr)
, logger(log4cxx::Logger::getLogger("Mainwindow")) {
openAction = new QAction(tr("&Open"), this);
- // saveAction = new QAction(tr("&Save"), this);
+ saveAction = new QAction(tr("&Save"), this);
exitAction = new QAction(tr("E&xit"), this);
connect(openAction, SIGNAL(triggered()),
this, SLOT(open()));
- // connect(saveAction, SIGNAL(triggered()), this, SLOT(save()));
+ connect(saveAction, SIGNAL(triggered()),
+ this, SLOT(save()));
connect(exitAction, SIGNAL(triggered()),
qApp, SLOT(quit()));
fileMenu = menuBar()->addMenu(tr("&File"));
fileMenu->addAction(openAction);
- // fileMenu->addAction(saveAction);
+ fileMenu->addAction(saveAction);
fileMenu->addSeparator();
fileMenu->addAction(exitAction);
manager->reset(fileName.toStdString());
}
+void Mainwindow::save() {
+ QString filename = QFileDialog::getSaveFileName(this, tr("Save File"), "", tr("Frida Archives (*.frida)"));
+ manager->save(filename);
+}
+
void Mainwindow::switchMainPlaneToAddress(uint64_t address) {
if (objects_list_by_address.find(address) != objects_list_by_address.end()) {
LOG4CXX_DEBUG(logger, "Switching to function " << std::hex << address);