23 "kcm_kwin_virtualdesktops.json",
24 registerPlugin<KWin::VirtualDesktops>();
25 registerPlugin<KWin::VirtualDesktopsData>();)
30VirtualDesktops::VirtualDesktops(QObject *parent,
const KPluginMetaData &metaData)
31 : KQuickManagedConfigModule(parent, metaData)
32 , m_data(new VirtualDesktopsData(this))
34 qmlRegisterAnonymousType<VirtualDesktopsSettings>(
"org.kde.kwin.kcm.desktop", 0);
36 setButtons(Apply | Default | Help);
39 this, &VirtualDesktops::settingsChanged);
40 connect(m_data->animationsModel(), &AnimationsModel::animationEnabledChanged,
41 this, &VirtualDesktops::settingsChanged);
42 connect(m_data->animationsModel(), &AnimationsModel::animationIndexChanged,
43 this, &VirtualDesktops::settingsChanged);
46VirtualDesktops::~VirtualDesktops()
50QAbstractItemModel *VirtualDesktops::desktopsModel()
const
52 return m_data->desktopsModel();
55QAbstractItemModel *VirtualDesktops::animationsModel()
const
57 return m_data->animationsModel();
60VirtualDesktopsSettings *VirtualDesktops::virtualDesktopsSettings()
const
62 return m_data->settings();
65void VirtualDesktops::load()
67 KQuickManagedConfigModule::load();
69 m_data->desktopsModel()->load();
70 m_data->animationsModel()->load();
73void VirtualDesktops::save()
75 KQuickManagedConfigModule::save();
77 m_data->desktopsModel()->syncWithServer();
78 m_data->animationsModel()->save();
80 QDBusMessage message = QDBusMessage::createSignal(QStringLiteral(
"/KWin"),
81 QStringLiteral(
"org.kde.KWin"), QStringLiteral(
"reloadConfig"));
82 QDBusConnection::sessionBus().send(message);
85void VirtualDesktops::defaults()
87 KQuickManagedConfigModule::defaults();
89 m_data->desktopsModel()->defaults();
90 m_data->animationsModel()->defaults();
93bool VirtualDesktops::isDefaults()
const
95 return m_data->isDefaults();
98void VirtualDesktops::configureAnimation()
100 const QModelIndex index = m_data->animationsModel()->index(m_data->animationsModel()->animationIndex(), 0);
101 if (!index.isValid()) {
105 m_data->animationsModel()->requestConfigure(index,
nullptr);
108void VirtualDesktops::showAboutAnimation()
110 const QModelIndex index = m_data->animationsModel()->index(m_data->animationsModel()->animationIndex(), 0);
111 if (!index.isValid()) {
115 const QString name = index.data(AnimationsModel::NameRole).toString();
116 const QString comment = index.data(AnimationsModel::DescriptionRole).toString();
117 const QString author = index.data(AnimationsModel::AuthorNameRole).toString();
118 const QString email = index.data(AnimationsModel::AuthorEmailRole).toString();
119 const QString website = index.data(AnimationsModel::WebsiteRole).toString();
120 const QString
version = index.data(AnimationsModel::VersionRole).toString();
121 const QString license = index.data(AnimationsModel::LicenseRole).toString();
122 const QString icon = index.data(AnimationsModel::IconNameRole).toString();
124 const KAboutLicense::LicenseKey licenseType = KAboutLicense::byKeyword(license).key();
126 KAboutData aboutData(
136 aboutData.setProgramLogo(icon);
138 const QStringList authors = author.split(
',');
139 const QStringList emails = email.split(
',');
141 if (authors.count() == emails.count()) {
143 for (
const QString &author : authors) {
144 if (!author.isEmpty()) {
145 aboutData.addAuthor(i18n(author.toUtf8()), QString(), emails[i]);
151 QPointer<KAboutApplicationDialog> aboutPlugin =
new KAboutApplicationDialog(aboutData);
157bool VirtualDesktops::isSaveNeeded()
const
159 return m_data->animationsModel()->needsSave() || m_data->desktopsModel()->needsSave();