Changeset View
Changeset View
Standalone View
Standalone View
common/control.cpp
Show First 20 Lines • Show All 338 Lines • ▼ Show 20 Line(s) | 316 | { | |||
---|---|---|---|---|---|
339 | auto outputInfo = createOutputInfo(outputId, outputName); | 339 | auto outputInfo = createOutputInfo(outputId, outputName); | ||
340 | outputInfo[QStringLiteral("autorotate")] = value; | 340 | outputInfo[QStringLiteral("autorotate")] = value; | ||
341 | 341 | | |||
342 | outputsInfo << outputInfo; | 342 | outputsInfo << outputInfo; | ||
343 | setOutputs(outputsInfo); | 343 | setOutputs(outputsInfo); | ||
344 | setOutputAutoRotate(); | 344 | setOutputAutoRotate(); | ||
345 | } | 345 | } | ||
346 | 346 | | |||
347 | KScreen::OutputPtr ControlConfig::getReplicationSource(const KScreen::OutputPtr &output) const | ||||
348 | { | ||||
349 | return getReplicationSource(output->hashMd5(), output->name()); | ||||
350 | } | ||||
351 | | ||||
352 | KScreen::OutputPtr ControlConfig::getReplicationSource(const QString &outputId, | ||||
353 | const QString &outputName) const | ||||
354 | { | ||||
355 | const QVariantList outputsInfo = getOutputs(); | ||||
356 | for (const auto variantInfo : outputsInfo) { | ||||
357 | const QVariantMap info = variantInfo.toMap(); | ||||
358 | if (!infoIsOutput(info, outputId, outputName)) { | ||||
359 | continue; | ||||
360 | } | ||||
361 | const QString sourceHash = info[QStringLiteral("replicate-hash")].toString(); | ||||
362 | const QString sourceName = info[QStringLiteral("replicate-name")].toString(); | ||||
363 | | ||||
364 | if (sourceHash.isEmpty() && sourceName.isEmpty()) { | ||||
365 | // Common case when the replication source has been unset. | ||||
366 | return nullptr; | ||||
367 | } | ||||
368 | | ||||
369 | for (auto output : m_config->outputs()) { | ||||
370 | if (output->hashMd5() == sourceHash && output->name() == sourceName) { | ||||
371 | return output; | ||||
372 | } | ||||
373 | } | ||||
374 | // No match. | ||||
375 | return nullptr; | ||||
376 | } | ||||
377 | // Info for output not found. | ||||
378 | return nullptr; | ||||
379 | } | ||||
380 | | ||||
381 | void ControlConfig::setReplicationSource(const KScreen::OutputPtr &output, | ||||
382 | const KScreen::OutputPtr &source) | ||||
383 | { | ||||
384 | setReplicationSource(output->hashMd5(), output->name(), source); | ||||
385 | } | ||||
386 | | ||||
387 | void ControlConfig::setReplicationSource(const QString &outputId, const QString &outputName, | ||||
388 | const KScreen::OutputPtr &source) | ||||
389 | { | ||||
390 | QList<QVariant>::iterator it; | ||||
391 | QVariantList outputsInfo = getOutputs(); | ||||
392 | const QString sourceHash = source->hashMd5(); | ||||
393 | const QString sourceName = source->name(); | ||||
394 | | ||||
395 | for (it = outputsInfo.begin(); it != outputsInfo.end(); ++it) { | ||||
396 | QVariantMap outputInfo = (*it).toMap(); | ||||
397 | if (!infoIsOutput(outputInfo, outputId, outputName)) { | ||||
398 | continue; | ||||
399 | } | ||||
400 | outputInfo[QStringLiteral("replicate-hash")] = sourceHash; | ||||
401 | outputInfo[QStringLiteral("replicate-name")] = sourceName; | ||||
402 | *it = outputInfo; | ||||
403 | setOutputs(outputsInfo); | ||||
404 | // TODO: shall we set this information also as new global value (like with auto-rotate)? | ||||
405 | return; | ||||
406 | } | ||||
407 | // no entry yet, create one | ||||
408 | auto outputInfo = createOutputInfo(outputId, outputName); | ||||
409 | outputInfo[QStringLiteral("replicate-hash")] = sourceHash; | ||||
410 | outputInfo[QStringLiteral("replicate-name")] = sourceName; | ||||
411 | | ||||
412 | outputsInfo << outputInfo; | ||||
413 | setOutputs(outputsInfo); | ||||
414 | // TODO: shall we set this information also as new global value (like with auto-rotate)? | ||||
415 | } | ||||
416 | | ||||
347 | QVariantList ControlConfig::getOutputs() const | 417 | QVariantList ControlConfig::getOutputs() const | ||
348 | { | 418 | { | ||
349 | return constInfo()[QStringLiteral("outputs")].toList(); | 419 | return constInfo()[QStringLiteral("outputs")].toList(); | ||
350 | } | 420 | } | ||
351 | 421 | | |||
352 | void ControlConfig::setOutputs(QVariantList outputsInfo) | 422 | void ControlConfig::setOutputs(QVariantList outputsInfo) | ||
353 | { | 423 | { | ||
354 | auto &infoMap = info(); | 424 | auto &infoMap = info(); | ||
▲ Show 20 Lines • Show All 57 Lines • Show Last 20 Lines |