mirror of
https://github.com/NohamR/Reclass.git
synced 2026-05-10 19:59:21 +00:00
Replace DIA SDK COM-based PDB importer with RawPDB (MolecularMatters) which reads PDB files directly via memory-mapped I/O. Adds File menu "Import PDB..." dialog with type filtering, selection, and progress. - Vendor raw_pdb into third_party/ - Two-phase API: enumeratePdbTypes() + importPdbSelected() - Full recursive import of structs/unions/arrays/pointers/bitfields - PDB import dialog with name filter, select-all, type count - Benchmark: 1654 types from ntkrnlmp.pdb in 16ms - Reorganize import/export files into src/imports/
54 lines
1.0 KiB
C++
54 lines
1.0 KiB
C++
#pragma once
|
|
|
|
#include <QDialog>
|
|
#include <QVector>
|
|
#include <cstdint>
|
|
|
|
class QLineEdit;
|
|
class QCheckBox;
|
|
class QListWidget;
|
|
class QLabel;
|
|
class QDialogButtonBox;
|
|
class QPushButton;
|
|
|
|
namespace rcx {
|
|
|
|
struct PdbTypeInfo;
|
|
|
|
class PdbImportDialog : public QDialog {
|
|
Q_OBJECT
|
|
public:
|
|
explicit PdbImportDialog(QWidget* parent = nullptr);
|
|
|
|
QString pdbPath() const;
|
|
QVector<uint32_t> selectedTypeIndices() const;
|
|
|
|
private slots:
|
|
void browsePdb();
|
|
void loadPdb();
|
|
void filterChanged(const QString& text);
|
|
void selectAllToggled(bool checked);
|
|
void updateSelectionCount();
|
|
|
|
private:
|
|
QLineEdit* m_pathEdit;
|
|
QPushButton* m_browseBtn;
|
|
QLineEdit* m_filterEdit;
|
|
QCheckBox* m_selectAll;
|
|
QListWidget* m_typeList;
|
|
QLabel* m_countLabel;
|
|
QDialogButtonBox* m_buttons;
|
|
|
|
struct TypeItem {
|
|
uint32_t typeIndex;
|
|
QString name;
|
|
int childCount;
|
|
bool isUnion;
|
|
};
|
|
QVector<TypeItem> m_allTypes;
|
|
|
|
void populateList();
|
|
};
|
|
|
|
} // namespace rcx
|