00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "PluginIdentifier.h"
00022 #include <iostream>
00023 #include <QFileInfo>
00024
00025 QString
00026 PluginIdentifier::createIdentifier(QString type,
00027 QString soName,
00028 QString label)
00029 {
00030 QString identifier = type + ":" + QFileInfo(soName).baseName() + ":" + label;
00031 return identifier;
00032 }
00033
00034 QString
00035 PluginIdentifier::canonicalise(QString identifier)
00036 {
00037 QString type, soName, label;
00038 parseIdentifier(identifier, type, soName, label);
00039 return createIdentifier(type, soName, label);
00040 }
00041
00042 void
00043 PluginIdentifier::parseIdentifier(QString identifier,
00044 QString &type,
00045 QString &soName,
00046 QString &label)
00047 {
00048 type = identifier.section(':', 0, 0);
00049 soName = identifier.section(':', 1, 1);
00050 label = identifier.section(':', 2);
00051 }
00052
00053 bool
00054 PluginIdentifier::areIdentifiersSimilar(QString id1, QString id2)
00055 {
00056 QString type1, type2, soName1, soName2, label1, label2;
00057
00058 parseIdentifier(id1, type1, soName1, label1);
00059 parseIdentifier(id2, type2, soName2, label2);
00060
00061 if (type1 != type2 || label1 != label2) return false;
00062
00063 bool similar = (soName1.section('/', -1).section('.', 0, 0) ==
00064 soName2.section('/', -1).section('.', 0, 0));
00065
00066 return similar;
00067 }
00068
00069 QString
00070 PluginIdentifier::BUILTIN_PLUGIN_SONAME = "_builtin";
00071
00072 QString
00073 PluginIdentifier::RESERVED_PROJECT_DIRECTORY_KEY = "__QMUL__:__RESERVED__:ProjectDirectoryKey";
00074