示例#1
0
void ProvidersModel::reload()
{
	Registry *registry = Registry::registry();
	beginResetModel();
	_all_list.clear();
	_info_list.clear();
	_enabled.clear();

	qDebug() << "Reloading providers";

	_all_list = registry->allNotificationProviders();
	_info_list.reserve(_all_list.size());
	_all_list.sort();
	foreach (const QString& s, _all_list) {
		NotificationPluginInterface *plugin = registry->getNotificationPlugin(s);
		if (plugin) {
			_info_list.append(plugin->describeProvider(s));
		} else {
			NotificationPluginInterface::NotificationProviderInfo info;
			info.name = s;
			_info_list.append(info);
		}
	}
示例#2
0
void WatchesModel::addFoundWatch(const QVariantMap &info)
{
	QStringList existing = _config->dirs();
	QString base = "watch%1";
	QString name = base.arg("");
	int num = 1;

	// Create the setting keys in numerical order
	// e.g. if watch1 is already existing, use watch2, etc.
	while (existing.contains(name)) {
		num++;
		name = base.arg(num);
	}

	// Load the autodetected settings into the new key
	ConfigKey* newkey = _config->getSubkey(name);
	foreach (const QString& key, info.keys()) {
		newkey->set(key, info[key]);
	}

	// Set some defaults
	const QString watchModel = info["model"].toString();
	Registry *registry = Registry::registry();

	newkey->set("providers", registry->allNotificationProviders());

	QStringList allWatchlets = registry->allWatchlets();
	QStringList configuredWatchlets;
	foreach(const QString& watchletId, allWatchlets) {
		WatchletPluginInterface *plugin = registry->getWatchletPlugin(watchletId);
		if (plugin) {
			WatchletPluginInterface::WatchletInfo info = plugin->describeWatchlet(watchletId, watchModel);
			if (info.visible) {
				configuredWatchlets += watchletId;
			}
		}
	}