Changeset View
Changeset View
Standalone View
Standalone View
abstract_output.cpp
Show First 20 Lines • Show All 146 Lines • ▼ Show 20 Line(s) | |||||
147 | void AbstractOutput::createXdgOutput() | 147 | void AbstractOutput::createXdgOutput() | ||
148 | { | 148 | { | ||
149 | if (!m_waylandOutput || m_xdgOutput) { | 149 | if (!m_waylandOutput || m_xdgOutput) { | ||
150 | return; | 150 | return; | ||
151 | } | 151 | } | ||
152 | m_xdgOutput = waylandServer()->xdgOutputManager()->createXdgOutput(m_waylandOutput, m_waylandOutput); | 152 | m_xdgOutput = waylandServer()->xdgOutputManager()->createXdgOutput(m_waylandOutput, m_waylandOutput); | ||
153 | } | 153 | } | ||
154 | 154 | | |||
155 | void AbstractOutput::setWaylandOutputDevice(KWayland::Server::OutputDeviceInterface *set) | | |||
156 | { | | |||
157 | m_waylandOutputDevice = set; | | |||
158 | } | | |||
159 | | ||||
160 | void AbstractOutput::initWaylandOutput() | 155 | void AbstractOutput::initWaylandOutput() | ||
161 | { | 156 | { | ||
162 | Q_ASSERT(m_waylandOutputDevice); | 157 | Q_ASSERT(m_waylandOutputDevice); | ||
163 | 158 | | |||
164 | if (!m_waylandOutput.isNull()) { | 159 | if (!m_waylandOutput.isNull()) { | ||
165 | delete m_waylandOutput.data(); | 160 | delete m_waylandOutput.data(); | ||
166 | m_waylandOutput.clear(); | 161 | m_waylandOutput.clear(); | ||
167 | } | 162 | } | ||
Show All 30 Lines | |||||
198 | m_waylandOutput->setDpmsMode(m_dpms); | 193 | m_waylandOutput->setDpmsMode(m_dpms); | ||
199 | connect(m_waylandOutput.data(), &KWayland::Server::OutputInterface::dpmsModeRequested, this, | 194 | connect(m_waylandOutput.data(), &KWayland::Server::OutputInterface::dpmsModeRequested, this, | ||
200 | [this] (KWayland::Server::OutputInterface::DpmsMode mode) { | 195 | [this] (KWayland::Server::OutputInterface::DpmsMode mode) { | ||
201 | updateDpms(mode); | 196 | updateDpms(mode); | ||
202 | }, Qt::QueuedConnection | 197 | }, Qt::QueuedConnection | ||
203 | ); | 198 | ); | ||
204 | } | 199 | } | ||
205 | 200 | | |||
201 | void AbstractOutput::initWaylandOutputDevice(const QString &model, | ||||
202 | const QString &manufacturer, | ||||
203 | const QByteArray &uuid, | ||||
204 | const QVector<KWayland::Server::OutputDeviceInterface::Mode> &modes) | ||||
205 | { | ||||
206 | if (!m_waylandOutputDevice.isNull()) { | ||||
207 | delete m_waylandOutputDevice.data(); | ||||
208 | m_waylandOutputDevice.clear(); | ||||
209 | } | ||||
210 | m_waylandOutputDevice = waylandServer()->display()->createOutputDevice(); | ||||
211 | m_waylandOutputDevice->setUuid(uuid); | ||||
212 | | ||||
213 | if (!manufacturer.isEmpty()) { | ||||
214 | m_waylandOutputDevice->setManufacturer(manufacturer); | ||||
215 | } else { | ||||
216 | m_waylandOutputDevice->setManufacturer(i18n("unknown")); | ||||
217 | } | ||||
218 | | ||||
219 | m_waylandOutputDevice->setModel(model); | ||||
220 | m_waylandOutputDevice->setPhysicalSize(m_physicalSize); | ||||
221 | | ||||
222 | int i = 0; | ||||
223 | for (auto mode : modes) { | ||||
224 | qCDebug(KWIN_CORE).nospace() << "Adding mode " << ++i << ": " << mode.size << " [" << mode.refreshRate << "]"; | ||||
225 | m_waylandOutputDevice->addMode(mode); | ||||
226 | } | ||||
227 | m_waylandOutputDevice->create(); | ||||
228 | } | ||||
229 | | ||||
206 | } | 230 | } |