38
38
if (m_defaultSources->keys().contains(type.id()))
40
QString peer_id = m_defaultSources->get(type.id()).toString();
41
QStringList as(m_defaultSources->get(type.id()).toStringList());
44
std::string pkg = as[0].toStdString();
45
std::string app = as[1].toStdString();
46
std::string ver = as[2].toStdString();
48
if (app.empty() || ver.empty())
49
peer = QString::fromStdString(pkg);
51
peer = QString::fromLocal8Bit(upstart_app_launch_triplet_to_app_id(pkg.c_str(), app.c_str(), ver.c_str()));
52
install_source_for_type(type, cuc::Peer{peer.id(), true});
40
QVariant peer_v = m_defaultSources->get(type.id());
41
// If default isn't a StringList, attempt to reset
42
if (peer_v.type() != QVariant::StringList)
44
TRACE() << Q_FUNC_INFO << "Default type for" << type.id() << "is incorrect, resetting";
45
m_defaultSources->reset(type.id());
46
// After reset, lets get a new QVariant
47
peer_v = m_defaultSources->get(type.id());
50
/* Only assume the default is correct if the type is a StringList
51
* The reset above should have ensured it was reset, lets double
52
* check anyway to prevent crashes
54
if (peer_v.type() == QVariant::StringList)
56
QStringList as(peer_v.toStringList());
59
std::string pkg = as[0].toStdString();
60
std::string app = as[1].toStdString();
61
std::string ver = as[2].toStdString();
63
if (app.empty() || ver.empty())
64
peer = QString::fromStdString(pkg);
66
peer = QString::fromLocal8Bit(upstart_app_launch_triplet_to_app_id(pkg.c_str(), app.c_str(), ver.c_str()));
67
install_source_for_type(type, cuc::Peer{peer.id(), true});
62
78
TRACE() << Q_FUNC_INFO << type.id();
63
79
if (m_defaultSources->keys().contains(type.id()))
65
QStringList as(m_defaultSources->get(type.id()).toStringList());
81
QVariant peer_v = m_defaultSources->get(type.id());
82
if (peer_v.type() != QVariant::StringList)
83
return cuc::Peer(peer_v.toString());
84
QStringList as(peer_v.toStringList());
68
87
std::string pkg = as[0].toStdString();
69
88
std::string app = as[1].toStdString();
70
89
std::string ver = as[2].toStdString();
72
90
if (app.empty() || ver.empty())
73
91
return cuc::Peer(QString::fromStdString(pkg));
74
92
return cuc::Peer(QString::fromLocal8Bit(upstart_app_launch_triplet_to_app_id(pkg.c_str(), app.c_str(), ver.c_str())), true);
123
141
TRACE() << Q_FUNC_INFO << k;
124
142
bool defaultPeer = false;
125
QStringList as(m_defaultSources->get(type.id()).toStringList());
128
std::string pkg = as[0].toStdString();
129
std::string app = as[1].toStdString();
130
std::string ver = as[2].toStdString();
131
if (app.empty() || ver.empty())
132
defaultPeer = QString::fromStdString(pkg) == k;
134
defaultPeer = QString::fromLocal8Bit(upstart_app_launch_triplet_to_app_id(pkg.c_str(), app.c_str(), ver.c_str())) == k;
143
QVariant peer_v = m_defaultSources->get(type.id());
144
if (peer_v.type() == QVariant::StringList)
146
QStringList as(peer_v.toStringList());
149
std::string pkg = as[0].toStdString();
150
std::string app = as[1].toStdString();
151
std::string ver = as[2].toStdString();
152
if (app.empty() || ver.empty())
153
defaultPeer = QString::fromStdString(pkg) == k;
155
defaultPeer = QString::fromLocal8Bit(upstart_app_launch_triplet_to_app_id(pkg.c_str(), app.c_str(), ver.c_str())) == k;
136
158
for_each(cuc::Peer{k, defaultPeer});
140
162
void Registry::enumerate_known_destinations_for_type(cuc::Type type, const std::function<void(const cuc::Peer&)>&for_each)
142
164
TRACE() << Q_FUNC_INFO << type.id();
166
if (type == cuc::Type::unknown())
143
169
Q_FOREACH (QString k, m_dests->get(type.id()).toStringList())
145
171
TRACE() << Q_FUNC_INFO << k;
152
178
TRACE() << Q_FUNC_INFO << type.id();
180
if (type == cuc::Type::unknown())
154
183
Q_FOREACH (QString k, m_shares->get(type.id()).toStringList())
156
185
TRACE() << Q_FUNC_INFO << k;