]> git.siccegge.de Git - frida/frida.git/blobdiff - src/gui/Mainwindow.hxx
Change from QListWidget to QTreeWidget
[frida/frida.git] / src / gui / Mainwindow.hxx
index 7f6d63e5c04d2d7e80f596eed4a26ca62d3aa025..a3bd4bdfa88ff354c0ee09a557ceb4d6d8c668c3 100644 (file)
@@ -3,43 +3,65 @@
 
 #include <memory>
 #include <map>
+
 #include <QTextEdit>
 #include <QPushButton>
 #include <QMainWindow>
-#include <QListWidget>
+#include <QTreeWidget>
 #include <QStackedWidget>
 
-#include "disassembler/Disassembler.hxx"
-#include "widgets/BasicBlockWidget.hxx"
-#include "widgets/ScriptingDock.hxx"
+#include <log4cxx/logger.h>
+
+class Disassembler;
+class Function;
+class InformationManager;
+class FunctionWidget;
+class BasicBlockWidget;
+class ScriptingDock;
 
 class Mainwindow : public QMainWindow {
-    Q_OBJECT
+       Q_OBJECT
 public:
-    Mainwindow(const std::string& filename = "");
-private:
-       void openBinary(const std::string& filename);
+       Mainwindow(InformationManager* mgr);
 
-    void populateSymbolInformation(Function * fun);
+public Q_SLOTS:
+       void switchMainPlaneToAddress(uint64_t);
+       void requestNewFunctionByAddress(uint64_t address);
 
-    QTextEdit *textEdit;
-    QPushButton *quitButton;
-    QMenu *fileMenu;
+private:
+       void addFunction(Function* fun);
+       void setGlobalHotkeys();
 
-    QTabWidget * tabwidget;
-    QListWidget * listWidget;
-    QStackedWidget * stackedWidget;
-    QDockWidget * dockWidget;
-    ScriptingDock * scripting;
+       QTextEdit *textEdit;
+       QPushButton *quitButton;
+       QMenu *fileMenu;
 
-    QAction *exitAction;
-    QAction *openAction;
+       QTabWidget * tabwidget;
+       QTreeWidget * listWidget;
+       QStackedWidget * stackedWidget;
+       QDockWidget * dockWidget;
+       ScriptingDock * scripting;
+
+       QAction *exitAction;
+       QAction *openAction;
+       QAction *saveAction;
 
-    std::shared_ptr<Disassembler> disassembler;
        std::map<uint64_t, BasicBlockWidget*> blocks;
+       std::map<uint64_t, Function*> functions;
+       std::map<QTreeWidgetItem*, FunctionWidget*> objects_list;
+       std::map<uint64_t, QTreeWidgetItem*> objects_list_by_address;
+
+       InformationManager* manager;
+       log4cxx::LoggerPtr logger;
+
 private Q_SLOTS:
-    void quit();
-    void open();
+       void quit();
+       void open();
+       void save();
+       void switchMainPlane(QTreeWidgetItem* item);
+       void showListContextMenu(const QPoint&);
+       void requestNewFunction();
+       void renameFunction(Function* function);
 };
 
 #endif /* INCLUDE__Mainwindow_hxx_ */