diff --git a/ksmserver/screenlocker/kcm/kcm.h b/ksmserver/screenlocker/kcm/kcm.h new file mode 100644 index 000000000..e34acc8fc --- /dev/null +++ b/ksmserver/screenlocker/kcm/kcm.h @@ -0,0 +1,56 @@ +/******************************************************************** + KSld - the KDE Screenlocker Daemon + This file is part of the KDE project. + +Copyright (C) 2014 Martin Gräßlin +Copyright (C) 2014 Marco Martin + +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 . +*********************************************************************/ + +#include + +#include "../../../lookandfeelaccess/lookandfeelaccess.h" + +class QQuickWidget; +class LockerModel; + +class ScreenLockerKcm : public KCModule +{ + Q_OBJECT + Q_PROPERTY(LockerModel *lockerModel READ lockerModel CONSTANT) + Q_PROPERTY(QString selectedPlugin READ selectedPlugin WRITE setSelectedPlugin NOTIFY selectedPluginChanged) + +public: + explicit ScreenLockerKcm(QWidget *parent = nullptr, const QVariantList& args = QVariantList()); + + LockerModel *lockerModel(); + + QString selectedPlugin() const; + void setSelectedPlugin(const QString &plugin); + +public Q_SLOTS: + void load(); + void save() override; + void test(const QString &plugin); + +Q_SIGNALS: + void selectedPluginChanged(); + +private: + LockerModel *m_model; + QString m_selectedPlugin; + QQuickWidget *m_quickWidget; + LookAndFeelAccess m_access; +}; diff --git a/ksmserver/screenlocker/kcm/package/contents/ui/main.qml b/ksmserver/screenlocker/kcm/package/contents/ui/main.qml index 791e14592..b84b9bf01 100644 --- a/ksmserver/screenlocker/kcm/package/contents/ui/main.qml +++ b/ksmserver/screenlocker/kcm/package/contents/ui/main.qml @@ -125,6 +125,11 @@ Rectangle { } } } + /*list.setCurrentIndex doesn't work while the model is getting loaded, + * so list.currentIndex = index in a component.onCompleted of the delegate, + * doesn't work, restarting a timer when a delegate gets created, + * seems the only place where we can approximate "set the property when + * the view really is done loading"*/ Timer { id: makeCurrentTimer interval: 100