void test (void) { int i, j, *res = correct_results; for (i = 0; i < 8; i++) { float arg0 = args[i]; for (j = 0; j < 8; j++) { float arg1 = args[j]; if (feq (arg0, arg1) != *res++) abort (); if (fne (arg0, arg1) != *res++) abort (); if (flt (arg0, arg1) != *res++) abort (); if (fge (arg0, arg1) != *res++) abort (); if (fgt (arg0, arg1) != *res++) abort (); if (fle (arg0, arg1) != *res++) abort (); } } }
void md5Fix::on_buttonStart_clicked() { ui->buttonStart->setEnabled(false); // Check that directory exists QDir dir(ui->lineFolder->text()); if (!dir.exists()) { error(this, tr("This folder does not exist.")); ui->buttonStart->setEnabled(true); return; } // Make sure the input is valid if (!ui->radioForce->isChecked() && !ui->lineFilename->text().contains("%md5%")) { error(this, tr("If you want to get the MD5 from the filename, you have to include the %md5% token in it.")); ui->buttonStart->setEnabled(true); return; } // Suffixes QStringList suffixes = ui->lineSuffixes->text().split(','); for (QString &suffix : suffixes) suffix = suffix.trimmed(); // Get all files from the destination directory auto files = listFilesFromDirectory(dir, suffixes); int count = 0; if (files.count() > 0) { // Show progress bar ui->progressBar->setValue(0); ui->progressBar->setMaximum(files.size()); ui->progressBar->show(); // Parse all files for (const auto &file : files) { QString fileName = file.first; QString path = dir.absoluteFilePath(fileName); QString md5; if (ui->radioForce->isChecked()) { QFile fle(path); fle.open(QFile::ReadOnly); md5 = QCryptographicHash::hash(fle.readAll(), QCryptographicHash::Md5).toHex(); } else { QRegExp regx("%([^%]*)%"); QString reg = QRegExp::escape(ui->lineFilename->text()); int pos = 0, cur = 0, id = -1; while ((pos = regx.indexIn(reg, pos)) != -1) { pos += 4; reg.replace(regx.cap(0), "(.+)"); if (regx.cap(1) == QLatin1String("md5")) { id = cur; } cur++; } QRegExp rx(reg); rx.setMinimal(true); pos = 0; while ((pos = rx.indexIn(fileName, pos)) != -1) { pos += rx.matchedLength(); md5 = rx.cap(id + 1); } } if (!md5.isEmpty()) { m_profile->addMd5(md5, path); count++; } ui->progressBar->setValue(ui->progressBar->value() + 1); } } // Hide progress bar ui->progressBar->hide(); ui->progressBar->setValue(0); ui->progressBar->setMaximum(0); ui->buttonStart->setEnabled(true); QMessageBox::information(this, tr("Finished"), tr("%n MD5(s) loaded", "", count)); }
void md5Fix::on_buttonStart_clicked() { ui->buttonStart->setEnabled(false); QDir dir(ui->lineFolder->text()); if (dir.exists()) { if (ui->radioForce->isChecked() || ui->lineFilename->text().contains("%md5%")) { ui->progressBar->setValue(0); ui->progressBar->setMaximum(0); ui->progressBar->show(); typedef QPair<QString,QString> QStringPair; QVector<QStringPair> files = QVector<QStringPair>(); QDirIterator it(dir, QDirIterator::Subdirectories); while (it.hasNext()) { it.next(); if (!it.fileInfo().isDir()) { files.append(QPair<QString,QString>(it.fileName(), it.filePath())); } } ui->progressBar->setMaximum(files.size()); QFile f(savePath("md5s.txt")); f.open(QFile::WriteOnly | QFile::Truncate); for (QStringPair file : files) { QString md5 = "-"; if (ui->radioForce->isChecked()) { QFile fle(file.second); fle.open(QFile::ReadOnly); md5 = QCryptographicHash::hash(fle.readAll(), QCryptographicHash::Md5).toHex(); } else { QRegExp regx("%([^%]*)%"); QString reg = QRegExp::escape(ui->lineFilename->text()); int pos = 0, cur = 0, id = -1; while ((pos = regx.indexIn(ui->lineFilename->text(), pos)) != -1) { pos += regx.matchedLength(); reg.replace(regx.cap(0), "(.+)"); if (regx.cap(1) == "md5") { id = cur; } cur++; } QRegExp rx(reg); rx.setMinimal(true); pos = 0; while ((pos = rx.indexIn(file.first, pos)) != -1) { pos += rx.matchedLength(); md5 = rx.cap(id + 1); } } f.write(QString(md5 + file.second + "\r\n").toUtf8()); ui->progressBar->setValue(ui->progressBar->value() + 1); } f.close(); } else { error(this, tr("Ce dossier n'existe pas.")); } } else { error(this, tr("Ce dossier n'existe pas.")); } ui->buttonStart->setEnabled(true); }
void RenameExisting1::on_buttonContinue_clicked() { ui->buttonContinue->setEnabled(false); m_details.clear(); m_getTags.clear(); // Check that directory exists QDir dir(ui->lineFolder->text()); if (!dir.exists()) { error(this, tr("This folder does not exist.")); ui->buttonContinue->setEnabled(true); return; } // Make sure the input is valid if (!ui->radioForce->isChecked() && !ui->lineFilenameOrigin->text().contains("%md5%")) { error(this, tr("If you want to get the MD5 from the filename, you have to include the %md5% token in it.")); ui->buttonContinue->setEnabled(true); return; } // Get all files from the destination directory typedef QPair<QString,QString> QStringPair; QVector<QStringPair> files = QVector<QStringPair>(); QDirIterator it(dir, QDirIterator::Subdirectories); while (it.hasNext()) { it.next(); if (!it.fileInfo().isDir()) { int len = it.filePath().length() - dir.absolutePath().length() - 1; files.append(QPair<QString,QString>(it.filePath().right(len), it.filePath())); } } // Parse all files for (QStringPair file : files) { QString md5 = ""; if (ui->radioForce->isChecked()) { QFile fle(file.second); fle.open(QFile::ReadOnly); md5 = QCryptographicHash::hash(fle.readAll(), QCryptographicHash::Md5).toHex(); } else { QRegExp regx("%([^%]*)%"); QString reg = QRegExp::escape(ui->lineFilenameOrigin->text()); int pos = 0, cur = 0, id = -1; while ((pos = regx.indexIn(ui->lineFilenameOrigin->text(), pos)) != -1) { pos += regx.matchedLength(); reg.replace(regx.cap(0), "(.+)"); if (regx.cap(1) == "md5") { id = cur; } cur++; } QRegExp rx(reg); rx.setMinimal(true); pos = 0; while ((pos = rx.indexIn(file.first, pos)) != -1) { pos += rx.matchedLength(); md5 = rx.cap(id + 1); } } if (!md5.isEmpty()) { QMap<QString,QString> det; det.insert("md5", md5); det.insert("path", QDir::toNativeSeparators(file.first)); det.insert("path_full", QDir::toNativeSeparators(file.second)); m_details.append(det); } } // Check if filename requires details m_filename.setFormat(ui->lineFilenameDestination->text()); m_needDetails = m_filename.needExactTags(m_sites.value(ui->comboSource->currentText())); int reponse = QMessageBox::question(this, tr("Rename existing images"), tr("You are about to download information from %n image(s). Are you sure you want to continue?", "", m_details.size()), QMessageBox::Yes | QMessageBox::No); if (reponse == QMessageBox::Yes) { // Show progresss bar ui->progressBar->setValue(0); ui->progressBar->setMaximum(m_details.size()); ui->progressBar->show(); loadNext(); } else { ui->buttonContinue->setEnabled(true); } }
void BlacklistFix::on_buttonContinue_clicked() { ui->buttonContinue->setEnabled(false); m_details.clear(); // Check that directory exists QDir dir(ui->lineFolder->text()); if (!dir.exists()) { error(this, tr("Ce dossier n'existe pas.")); ui->buttonContinue->setEnabled(true); return; } // Make sure the input is valid if (!ui->radioForce->isChecked() && !ui->lineFilename->text().contains("%md5%")) { error(this, tr("Si vous voulez récupérer le MD5 depuis le nom de fichier, vous devez include le token %md5% dans celui-ci.")); ui->buttonContinue->setEnabled(true); return; } // Get all files from the destination directory typedef QPair<QString,QString> QStringPair; QVector<QStringPair> files = QVector<QStringPair>(); QDirIterator it(dir, QDirIterator::Subdirectories); while (it.hasNext()) { it.next(); if (!it.fileInfo().isDir()) { int len = it.filePath().length() - dir.absolutePath().length() - 1; files.append(QPair<QString,QString>(it.filePath().right(len), it.filePath())); } } // Parse all files for (QStringPair file : files) { QString md5 = ""; if (ui->radioForce->isChecked()) { QFile fle(file.second); fle.open(QFile::ReadOnly); md5 = QCryptographicHash::hash(fle.readAll(), QCryptographicHash::Md5).toHex(); } else { QRegExp regx("%([^%]*)%"); QString reg = QRegExp::escape(ui->lineFilename->text()); int pos = 0, cur = 0, id = -1; while ((pos = regx.indexIn(ui->lineFilename->text(), pos)) != -1) { pos += regx.matchedLength(); reg.replace(regx.cap(0), "(.+)"); if (regx.cap(1) == "md5") { id = cur; } cur++; } QRegExp rx(reg); rx.setMinimal(true); pos = 0; while ((pos = rx.indexIn(file.first, pos)) != -1) { pos += rx.matchedLength(); md5 = rx.cap(id + 1); } } QMap<QString,QString> det; det.insert("md5", md5); det.insert("path", file.first); det.insert("path_full", file.second); m_details.append(det); } int reponse = QMessageBox::question(this, tr("Réparateur de liste noire"), tr("Vous vous apprêtez à télécharger les informations de %n image(s). Êtes-vous sûr de vouloir continuer ?", "", m_details.size()), QMessageBox::Yes | QMessageBox::No); if (reponse == QMessageBox::Yes) { // Show progresss bar ui->progressBar->setValue(0); ui->progressBar->setMaximum(files.size()); ui->progressBar->show(); getAll(); } }