kwin/kcmkwin/kwincompositing/main.cpp
Martin Gräßlin aa39bb192f Connect changed from QML to the C++ side
Connected in the view and further emited as a signal our KCM
connects to.
2014-04-03 07:23:15 +02:00

71 lines
2.7 KiB
C++

/**************************************************************************
* KWin - the KDE window manager *
* This file is part of the KDE project. *
* *
* Copyright (C) 2013 Antonis Tsiapaliokas <kok3rs@gmail.com> *
* Copyright (C) 2013 Martin Gräßlin <mgraesslin@kde.org> *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
**************************************************************************/
#include "model.h"
#include <QApplication>
#include <QLayout>
#include <kcmodule.h>
#include <kservice.h>
#include <kdeclarative/kdeclarative.h>
class KWinCompositingKCM : public KCModule
{
Q_OBJECT
public:
explicit KWinCompositingKCM(QWidget* parent = 0, const QVariantList& args = QVariantList());
virtual ~KWinCompositingKCM();
private:
QScopedPointer<KWin::Compositing::EffectView> m_view;
};
KWinCompositingKCM::KWinCompositingKCM(QWidget* parent, const QVariantList& args)
: KCModule(parent, args)
, m_view(new KWin::Compositing::EffectView)
{
KDeclarative kdeclarative;
kdeclarative.setDeclarativeEngine(m_view->engine());
kdeclarative.setupBindings();
QVBoxLayout *vl = new QVBoxLayout(this);
QWidget *w = QWidget::createWindowContainer(m_view.data(), this);
w->setMinimumSize(m_view->initialSize());
vl->addWidget(w);
setLayout(vl);
m_view->setWidth(width());
m_view->setHeight(height());
connect(m_view.data(), &KWin::Compositing::EffectView::changed, [this]{
emit changed(true);
});
}
KWinCompositingKCM::~KWinCompositingKCM()
{
}
K_PLUGIN_FACTORY(KWinCompositingConfigFactory,
registerPlugin<KWinCompositingKCM>();
)
#include "main.moc"