#pragma once #include #include #include #include #include #include #include #include "binaryninjaapi.h" #include "viewtype.h" #include "filecontext.h" #include #include #include class BINARYNINJAUIAPI OptionsDialog : public QDialog { Q_OBJECT QString m_fileName; QLabel* m_fileLabel; QLabel* m_objectLabel; QComboBox* m_objectCombo; QTabWidget* m_tab; std::map m_containerPath; QLabel* m_notification; std::map m_notificationMesssage; QPushButton* m_defaultsButton; bool m_isDatabase; FileContext* m_file = nullptr; FileMetadataRef m_fileMetadata = nullptr; BinaryViewRef m_rawData = nullptr; std::vector> m_objects; const std::string m_oldFlag = "old:"; public: OptionsDialog(QWidget* parent, const QString& name); virtual ~OptionsDialog(); bool loadViews(); Q_SIGNALS: void openFile(FileContext* file); private Q_SLOTS: void defaults(int index); void cancel(); void open(); void addSettingsViewForType(const std::string& bvtName); void viewTabChanged(int index); void viewTabCloseRequested(int index); };