bool Qtilities::Core::VersionNumber::operator==(const VersionNumber& ref) const {
    if (d->version_major != ref.versionMajor())
        return false;
    if (d->is_version_minor_used) {
        if (d->version_minor != ref.versionMinor())
            return false;
    }
    if (d->is_version_revision_used) {
        if (d->version_revision != ref.versionRevision())
            return false;
    }

    return true;
}
Exemple #2
0
string
Utils::MakeProgramVersionString
(/*[in]*/ const char *		lpszProgramName,
 /*[in]*/ const VersionNumber &	programVersionNumber)
{
  string str = lpszProgramName;
  if (string(MIKTEX_BANNER_STR).find(programVersionNumber.ToString())
      == string::npos)
    {
      str += ' ';
      str += programVersionNumber.ToString();
    }
  str += " (" MIKTEX_BANNER_STR ")";
  return (str);
}
Qtilities::Core::VersionNumber::VersionNumber(const VersionNumber& ref)  {
    d = new VersionNumberPrivateData;
    d->version_major = ref.versionMajor();
    d->version_minor = ref.versionMinor();
    d->version_revision = ref.versionRevision();

    d->field_width_minor = ref.fieldWidthMinor();
    d->field_width_revision = ref.fieldWidthRevision();
    d->is_version_minor_used = ref.isVersionMinorUsed();
    d->is_version_revision_used = ref.isVersionRevisionUsed();

    d->development_stage = ref.developmentStage();
    d->development_stage_identifier = ref.developmentStageIdentifier();
    d->version_development_stage = ref.versionDevelopmentStage();
}
Exemple #4
0
/* Return the first file matching the pattern
 * "extensions/<id>/<id><extension-apiversion-mejor>.*". For the
 * "dummy" extension using API version 1.2, this means
 * "extensions/dummy/dummy1.*".  In other words: Extensions must
 * provide exactly one file matching this pattern, and that file must
 * contain root class/function of the extension.
 *
 * Scripted extensions with the root class inlined in the XML file are
 * not affected by this restriction.
 *
 * Returns QFileInfo() if no such file was found.
 */
QFileInfo
Configuration::extensionRootFile(const QString &id,
				 const VersionNumber &apiVersion) const
{
    QFileInfoList candidateFiles;
    QString pattern = id + QString::number(apiVersion.majorVersion()) + ".*";

    // Check the user extension repository first.
    QDir base = PlatformDependent::p()->extensionsDir(PlatformDependent::User);
    base.cd(id);
    candidateFiles = base.entryInfoList(QStringList(pattern),
                                        QDir::Files | QDir::Readable);

    // If there were no such files in the user extension repository,
    // check the system repository.
    if (candidateFiles.isEmpty())
    {
        base = PlatformDependent::p()->extensionsDir(PlatformDependent::System);
        base.cd(id);
        candidateFiles = base.entryInfoList(QStringList(pattern),
                                            QDir::Files | QDir::Readable);
    }

    if (candidateFiles.isEmpty())
        return QFileInfo();
    else
        return candidateFiles.first();
}
bool Qtilities::Core::VersionNumber::operator<(const VersionNumber& ref) {
    if (d->is_version_revision_used) {
        // Handle case: 2.5.3 < 1.5.3
        if (d->version_major < ref.versionMajor())
            return true;
        // Handle case: 1.4.3 < 1.5.3
        if (d->version_minor < ref.versionMinor())
            return true;
        // Handle case: 1.5.2 < 1.5.3
        if (d->version_revision < ref.versionRevision())
            return true;
        // All other cases
        return false;
    }

    if (d->is_version_minor_used) {
        // Handle case: 2.5.3 < 1.5.3
        if (d->version_major < ref.versionMajor())
            return true;
        // Handle case: 1.4.3 < 1.5.3
        if (d->version_minor < ref.versionMinor())
            return true;
        // All other cases
        return false;
    }

    if (d->version_major < ref.versionMajor())
        return true;

    return false;
}
bool Qtilities::Core::VersionNumber::operator==(const VersionNumber& ref) const {
    if (d->version_major != ref.versionMajor())
        return false;
    if (d->is_version_minor_used && ref.isVersionMinorUsed()) {
        if (d->version_minor != ref.versionMinor())
            return false;
    }
    if (d->is_version_revision_used && ref.isVersionRevisionUsed()) {
        if (d->version_revision != ref.versionRevision())
            return false;
    }
    if (developmentStage(true) != ref.developmentStage(true))
        return false;
    // We can just check developmentStage(true) since we already know ref has the same stage:
    if (developmentStage(true) != DevelopmentStageNone) {
        if (d->version_development_stage != ref.versionDevelopmentStage())
            return false;
    }

    return true;
}
Qtilities::Core::VersionNumber::VersionNumber(const VersionNumber& ref)  {
    d = new VersionNumberPrivateData;
    d->version_major = ref.versionMajor();
    d->version_minor = ref.versionMinor();
    d->version_revision = ref.versionRevision();
}
bool Qtilities::Core::VersionNumber::operator<(const VersionNumber& ref) {
    if (*this == ref)
        return false;

    if (developmentStage(true) != DevelopmentStageNone || ref.developmentStage(true) != DevelopmentStageNone) {
        // Handle case: 1.5.3 < 2.5.3
        if (d->version_major < ref.versionMajor())
            return true;
        // Handle case: 1.4.3 < 1.5.3 and 2.4.3 < 1.5.3
        if (d->version_minor < ref.versionMinor() && d->version_major == ref.versionMajor())
            return true;
        // Handle case: 1.5.2 < 1.5.3 and 2.5.2 < 1.5.3 and 2.6.2 < 1.5.3
        if (d->version_revision < ref.versionRevision() && d->version_minor == ref.versionMinor() && d->version_major == ref.versionMajor())
            return true;

        // If we get here, we know the major, minor and revision version is NOT smaller. Thus, we check if they are the same if and
        // they are we know we can check the development stage versions:
        if (d->version_revision == ref.versionRevision() && d->version_minor == ref.versionMinor() && d->version_major == ref.versionMajor()) {
            if (developmentStage(true) == ref.developmentStage(true)) {
                if (d->version_development_stage < ref.versionDevelopmentStage())
                    return true;
            } else {
                // In this case consider the development stage order:
                if ((int) developmentStage(true) < (int) ref.developmentStage(true))
                    return true;
            }
        }

        return false;
    }

    if (d->is_version_revision_used && ref.isVersionRevisionUsed()) {
        // Handle case: 1.5.3 < 2.5.3
        if (d->version_major < ref.versionMajor())
            return true;
        if (d->is_version_minor_used && ref.isVersionMinorUsed()) {
            // Handle case: 1.4.3 < 1.5.3 and 2.4.3 < 1.5.3
            if (d->version_minor < ref.versionMinor() && d->version_major == ref.versionMajor())
                return true;
        }
        // Handle case: 1.5.2 < 1.5.3 and 2.5.2 < 1.5.3 and 1.6.2 < 1.5.3
        if (d->version_revision < ref.versionRevision() && d->version_minor == ref.versionMinor() && d->version_major == ref.versionMajor())
            return true;
        // All other cases
        return false;
    }

    if (d->is_version_minor_used && ref.isVersionMinorUsed()) {
        // Handle case: 1.5 < 2.5
        if (d->version_major < ref.versionMajor())
            return true;
        // Handle case: 1.4 < 1.5 and 2.4 < 1.5
        if (d->version_minor < ref.versionMinor() && d->version_major == ref.versionMajor())
            return true;
        // All other cases
        return false;
    }

    if (d->version_major < ref.versionMajor())
        return true;

    return false;
}