File indexing completed on 2024-04-28 16:49:41

0001 /*
0002  *  SPDX-FileCopyrightText: 2012 Alejandro Fiestas Olivares <afiestas@kde.org>
0003  *  SPDX-FileCopyrightText: 2012, 2013 Daniel Vrátil <dvratil@redhat.com>
0004  *  SPDX-FileCopyrightText: 2014 Sebastian Kügler <sebas@kde.org>
0005  *
0006  *  SPDX-License-Identifier: LGPL-2.1-or-later
0007  */
0008 
0009 #include "qscreenbackend.h"
0010 #include "qscreenconfig.h"
0011 
0012 #include <config.h>
0013 
0014 using namespace KScreen;
0015 
0016 Q_LOGGING_CATEGORY(KSCREEN_QSCREEN, "kscreen.qscreen")
0017 
0018 QScreenConfig *QScreenBackend::s_internalConfig = nullptr;
0019 
0020 QScreenBackend::QScreenBackend()
0021     : KScreen::AbstractBackend()
0022     , m_isValid(true)
0023 {
0024     if (s_internalConfig == nullptr) {
0025         s_internalConfig = new QScreenConfig();
0026         connect(s_internalConfig, &QScreenConfig::configChanged, this, &QScreenBackend::configChanged);
0027     }
0028 }
0029 
0030 QScreenBackend::~QScreenBackend()
0031 {
0032 }
0033 
0034 QString QScreenBackend::name() const
0035 {
0036     return QStringLiteral("QScreen");
0037 }
0038 
0039 QString QScreenBackend::serviceName() const
0040 {
0041     return QStringLiteral("org.kde.KScreen.Backend.QScreen");
0042 }
0043 
0044 ConfigPtr QScreenBackend::config() const
0045 {
0046     return s_internalConfig->toKScreenConfig();
0047 }
0048 
0049 void QScreenBackend::setConfig(const ConfigPtr &config)
0050 {
0051     if (!config) {
0052         return;
0053     }
0054 
0055     qWarning() << "The QScreen backend for libkscreen is read-only,";
0056     qWarning() << "setting a configuration is not supported.";
0057     qWarning() << "You can force another backend using the KSCREEN_BACKEND env var.";
0058 }
0059 
0060 bool QScreenBackend::isValid() const
0061 {
0062     return m_isValid;
0063 }