/* KWin - the KDE window manager This file is part of the KDE project. SPDX-FileCopyrightText: 2012 Martin Gräßlin SPDX-License-Identifier: GPL-2.0-or-later */ #include "mock_tabboxhandler.h" #include "mock_tabboxclient.h" namespace KWin { MockTabBoxHandler::MockTabBoxHandler(QObject *parent) : TabBoxHandler(parent) { } MockTabBoxHandler::~MockTabBoxHandler() { } void MockTabBoxHandler::grabbedKeyEvent(QKeyEvent *event) const { Q_UNUSED(event) } QWeakPointer MockTabBoxHandler::activeClient() const { return m_activeClient; } void MockTabBoxHandler::setActiveClient(const QWeakPointer &client) { m_activeClient = client; } QWeakPointer MockTabBoxHandler::clientToAddToList(TabBox::TabBoxClient *client, int desktop) const { Q_UNUSED(desktop) QList>::const_iterator it = m_windows.constBegin(); for (; it != m_windows.constEnd(); ++it) { if ((*it).data() == client) { return QWeakPointer(*it); } } return QWeakPointer(); } QWeakPointer MockTabBoxHandler::nextClientFocusChain(TabBox::TabBoxClient *client) const { QList>::const_iterator it = m_windows.constBegin(); for (; it != m_windows.constEnd(); ++it) { if ((*it).data() == client) { ++it; if (it == m_windows.constEnd()) { return QWeakPointer(m_windows.first()); } else { return QWeakPointer(*it); } } } if (!m_windows.isEmpty()) { return QWeakPointer(m_windows.last()); } return QWeakPointer(); } QWeakPointer MockTabBoxHandler::firstClientFocusChain() const { if (m_windows.isEmpty()) { return QWeakPointer(); } return m_windows.first(); } bool MockTabBoxHandler::isInFocusChain(TabBox::TabBoxClient *client) const { if (!client) { return false; } QList>::const_iterator it = m_windows.constBegin(); for (; it != m_windows.constEnd(); ++it) { if ((*it).data() == client) { return true; } } return false; } QWeakPointer MockTabBoxHandler::createMockWindow(const QString &caption) { QSharedPointer client(new MockTabBoxClient(caption)); m_windows.append(client); m_activeClient = client; return QWeakPointer(client); } void MockTabBoxHandler::closeWindow(TabBox::TabBoxClient *client) { QList>::iterator it = m_windows.begin(); for (; it != m_windows.end(); ++it) { if ((*it).data() == client) { m_windows.erase(it); return; } } } } // namespace KWin