LockedFile::LockedFile(QResource *const resource, const QString &outPath, const QByteArray &expectedHash, const bool bOwnsFile) : m_bOwnsFile(bOwnsFile), m_filePath(QFileInfo(outPath).absoluteFilePath()) { m_fileDescriptor = -1; HANDLE fileHandle = NULL; //Make sure the resource is valid if(!(resource->isValid() && resource->data())) { MUTILS_THROW_FMT("The resource at %p is invalid!", resource); } //Write data to output file QFile outFile(m_filePath); doWriteOutput(outFile, resource); //Now lock the file! doLockFile(fileHandle, m_filePath, &outFile); //Get file descriptor doInitFileDescriptor(fileHandle, m_fileDescriptor); //Validate file hash doValidateHash(fileHandle, m_fileDescriptor, expectedHash, m_filePath); }
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow), sourceLoader() { //QSqlDatabase p ui->setupUi(this); ui->timTreeWidget->header()->close(); this->document = ui->sourceTextEdit->document(); guiMacro = new UpdatedGuiMacroProcessor(false, ui->sourceTextEdit->document()); connect(guiMacro, SIGNAL(finished()), this, SLOT(processClearSelection())); connect(ui->timTreeWidget, SIGNAL(itemClicked(QTreeWidgetItem*,int)), this, SLOT(handleTimClick(QTreeWidgetItem*,int))); connect(guiMacro, SIGNAL(doSelectLineInOutput(int)), this, SLOT(processSelectLineInOutput(int))); connect(guiMacro, SIGNAL(doSelectLineInSource(int)), this, SLOT(processSelectLineInSource(int))); connect(guiMacro, SIGNAL(doWriteOutput(QList<QStringList>)), this, SLOT(processWriteOutput(QList<QStringList>))); connect(guiMacro, SIGNAL(doWriteError(QString)), this, SLOT(processWriteError(QString))); connect(guiMacro, SIGNAL(doPopulateTim(Macro)), this, SLOT(processPopulateTim(Macro))); }