int main(int argc, char **argv) { if (argc != 3) { fprintf(stderr, "Usage: %s <NE file> <output directory>\n", argv[0]); return 1; } outDir = argv[2]; readFile = fopen(argv[1], "rb"); // XXX: 0x250 offset is currently hardcoded, should be reading the real // windows header offset... fseek(readFile, 0x250 + 0x24, SEEK_SET); fread(&segmentOffset, 2, 1, readFile); segmentOffset += 0x250; fseek(readFile, segmentOffset, SEEK_SET); u16 alignShift; fread(&alignShift, 2, 1, readFile); sizeShift = 1 << alignShift; TYPEINFO *t; while (1) { t = readTypeInfo(); if (t->rtTypeID == 0) break; dumpTypeInfo(t); free(t->rtNameInfo); free(t); } free(t->rtNameInfo); free(t); }
CreatModel::CreatModel(QWidget* parent) : QDialog(parent), m_flag(0), m_infos(new QStandardItemModel),m_flagName("") { this->setFixedSize(572, 554); //this->resize(572, 580); QPixmap iconImg(QDir::currentPath() +"/image/model.png"); QIcon icon(iconImg); this->setWindowIcon(icon); this->setWindowTitle("模型管理封装工具"); menuBar = new QMenuBar(this); QMenu* menuStart = menuBar->addMenu("开始"); QAction* actionNew = menuStart->addAction("新建"); actionNew->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_N)); QAction* actionOpen = menuStart->addAction("打开"); actionOpen->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_O)); QAction* actionSave = menuStart->addAction("保存"); actionSave->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_S)); QAction* actionSaveAs = menuStart->addAction("另存为..."); QAction* actionExit = menuStart->addAction("退出(Exit)"); QMenu* menuHelp = menuBar->addMenu("帮助"); //connect(actionSave, SIGNAL(triggered()), this, SLOT(OnSave())); //connect(actionSaveAs, SIGNAL(triggered()), this, SLOT(OnSaveAs())); //connect(actionNew, SIGNAL(triggered()), this, SLOT(OnNew())); //connect(actionOpen, SIGNAL(triggered()), this, SLOT(OnOpen())); //connect(actionExit, SIGNAL(triggered()), this, SLOT(OnQuit())); //btn_new = new QPushButton(this); //btn_new->setGeometry(QRect(19, 10, 50, 20)); //btn_new->setIcon(QIcon("image/new.png")); //btn_new->setText("新建"); //btn_new->setFlat(true); //btn_open = new QPushButton(this); //btn_open->setGeometry(QRect(90, 10, 50, 20)); //btn_open->setIcon(QIcon("image/open.png")); //btn_open->setText("打开"); //btn_open->setFlat(true); //btn_save = new QPushButton(this); //btn_save->setGeometry(QRect(160, 10, 50, 20)); //btn_save->setIcon(QIcon("image/save.png")); //btn_save->setText("保存"); //btn_save->setFlat(true); //btn_saveAs = new QPushButton(this); //btn_saveAs->setGeometry(QRect(230, 10, 65, 20)); //btn_saveAs->setIcon(QIcon("image/saveAs.png")); //btn_saveAs->setText("另存为"); //btn_saveAs->setFlat(true); //lb_filePath = new QLabel(this); //lb_filePath->setGeometry(QRect(20, 29,520 , 36)); //connect(btn_save, SIGNAL(clicked()), this, SLOT(OnSave())); //connect(btn_saveAs, SIGNAL(clicked()), this, SLOT(OnSaveAs())); //connect(btn_new, SIGNAL(clicked()), this, SLOT(OnNew())); //connect(btn_open, SIGNAL(clicked()), this, SLOT(OnOpen())); gb_modelInfo = new QGroupBox(this); gb_modelInfo->setGeometry(QRect(9, 70, 551, 226)); lb_modelName = new QLabel(gb_modelInfo); lb_modelName->setGeometry(QRect(10, 22, 60, 16)); ledit_modelName = new QLineEdit(gb_modelInfo); ledit_modelName->setGeometry(QRect(76, 22, 161, 20)); lb_modelId = new QLabel(gb_modelInfo); lb_modelId->setGeometry(QRect(299, 22, 48, 16)); ledit_modelId = new QLineEdit(gb_modelInfo); ledit_modelId->setGeometry(QRect(365, 22, 161, 20)); ledit_modelId->setEnabled(false); lb_version = new QLabel(gb_modelInfo); lb_version->setGeometry(QRect(10, 48, 48, 16)); ledit_version = new QLineEdit(gb_modelInfo); ledit_version->setGeometry(QRect(76, 48, 161, 20)); ledit_version->setEnabled(false); lb_subject = new QLabel(gb_modelInfo); lb_subject->setGeometry(QRect(299, 48, 60, 16)); ledit_subject = new QLineEdit(gb_modelInfo); ledit_subject->setGeometry(QRect(365, 48, 161, 20)); lb_type = new QLabel(gb_modelInfo); lb_type->setGeometry(QRect(10, 74, 60, 16)); combox_type = new QComboBox(gb_modelInfo); combox_type->setGeometry(QRect(76, 74, 161, 20)); readTypeInfo(); combox_type->addItems(m_typeList); lb_property = new QLabel(gb_modelInfo); lb_property->setGeometry(QRect(299, 74, 60, 16)); combox_property = new QComboBox(gb_modelInfo); combox_property->setGeometry(QRect(365, 74, 161, 20)); combox_property->addItems(m_propertyList); lb_group = new QLabel(gb_modelInfo); lb_group->setGeometry(QRect(10, 100, 60, 16)); combox_group = new QComboBox(gb_modelInfo); combox_group->setGeometry(QRect(76, 100, 161, 20)); readGroupInfo(); combox_group->addItems(m_groupList); lb_descript = new QLabel(gb_modelInfo); lb_descript->setGeometry(QRect(10, 126, 60, 16)); ledit_descript = new QLineEdit(gb_modelInfo); ledit_descript->setGeometry(QRect(76, 126, 450, 20)); lb_log = new QLabel(gb_modelInfo); lb_log->setGeometry(QRect(10, 152, 60, 16)); tedit_log = new QTextEdit(gb_modelInfo); tedit_log->setGeometry(QRect(76, 152, 450, 40)); lb_author = new QLabel(gb_modelInfo); lb_author->setGeometry(QRect(299, 100, 60, 16)); ledit_author = new QLineEdit(gb_modelInfo); ledit_author->setGeometry(QRect(365, 100, 161, 20)); lb_update = new QLabel(gb_modelInfo); lb_update->setGeometry(QRect(10, 198, 60, 16)); date_update = new QDateTimeEdit(QDate::currentDate(), gb_modelInfo); date_update->setDisplayFormat("yyyy-M-d"); date_update->setGeometry(QRect(76, 198, 161, 20)); date_update->setCalendarPopup(true); gb_fileInfo = new QGroupBox(this); gb_fileInfo->setGeometry(QRect(9, 310, 552, 266)); gridLayout = new QGridLayout(gb_fileInfo); tv_fileInfo = new QTableView(gb_fileInfo); gridLayout->addWidget(tv_fileInfo, 0, 0, 1, 3); btn_add = new QPushButton(gb_fileInfo); gridLayout->addWidget(btn_add, 1, 1, 1, 1); btn_delete = new QPushButton(gb_fileInfo); btn_delete->setEnabled(false); gridLayout->addWidget(btn_delete, 1, 2, 1, 1); hSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); gridLayout->addItem(hSpacer, 1, 0, 1, 1); gb_modelInfo->setTitle("模型信息"); gb_fileInfo->setTitle("模型文件信息"); lb_modelName->setText("模型名称"); lb_modelId->setText("模型id"); lb_version->setText("版本号"); lb_subject->setText("学科信息"); lb_type->setText("型号"); lb_property->setText("模型属性"); lb_group->setText("模型分类"); lb_descript->setText("模型描述"); lb_log->setText("日志信息"); lb_author->setText("创建者"); lb_update->setText("更新日期"); btn_add->setText("添加文件"); btn_delete->setText("删除文件"); QStandardItemModel *fileInfo = new QStandardItemModel(); tbViewInit(fileInfo); tv_fileInfo->setModel(fileInfo); tv_fileInfo->horizontalHeader()->setStretchLastSection(true); tv_fileInfo->verticalHeader()->setHidden(true); tv_fileInfo->setSelectionBehavior(QAbstractItemView::SelectRows); //添加QTableView中的右键操作 tv_fileInfo->setContextMenuPolicy(Qt::CustomContextMenu); connect(tv_fileInfo, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(showContextMenu(const QPoint&))); menu_right = new QMenu(tv_fileInfo); QAction *actionDelete = menu_right->addAction("删除"); connect(actionDelete, SIGNAL(triggered()), this, SLOT(OnDelete())); connect(btn_add, SIGNAL(clicked()), this, SLOT(OnAppend())); connect(btn_delete, SIGNAL(clicked()) ,this, SLOT(OnDelete())); }