mirror of
https://bitbucket.org/smil3y/kde-workspace.git
synced 2025-02-23 18:32:50 +00:00
kwin: load additional rules from .kwinrules files everywhere
these bits are in 3 places now, have to do something about it but more importantly the .kwinrules files are now loaded and shown by the KCM Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
parent
8c8246d810
commit
3d78c01c4b
2 changed files with 53 additions and 13 deletions
|
@ -19,9 +19,11 @@
|
||||||
#include <kcmdlineargs.h>
|
#include <kcmdlineargs.h>
|
||||||
#include <kapplication.h>
|
#include <kapplication.h>
|
||||||
#include <kconfig.h>
|
#include <kconfig.h>
|
||||||
#include <KLocalizedString>
|
#include <klocalizedstring.h>
|
||||||
|
#include <kstandarddirs.h>
|
||||||
#include <kwindowsystem.h>
|
#include <kwindowsystem.h>
|
||||||
#include <QtDBus/QtDBus>
|
#include <QtDBus/QtDBus>
|
||||||
|
|
||||||
#include <X11/Xlib.h>
|
#include <X11/Xlib.h>
|
||||||
#include <fixx11h.h>
|
#include <fixx11h.h>
|
||||||
|
|
||||||
|
@ -35,15 +37,34 @@ namespace KWin
|
||||||
|
|
||||||
static void loadRules(QList< Rules* >& rules)
|
static void loadRules(QList< Rules* >& rules)
|
||||||
{
|
{
|
||||||
|
QList<QByteArray> ruleids;
|
||||||
KConfig _cfg("kwinrulesrc");
|
KConfig _cfg("kwinrulesrc");
|
||||||
KConfigGroup cfg(&_cfg, "General");
|
KConfigGroup cfg(&_cfg, "General");
|
||||||
int count = cfg.readEntry("count", 0);
|
int count = cfg.readEntry("count", 0);
|
||||||
for (int i = 1;
|
for (int i = 1; i <= count; ++i) {
|
||||||
i <= count;
|
|
||||||
++i) {
|
|
||||||
cfg = KConfigGroup(&_cfg, QString::number(i));
|
cfg = KConfigGroup(&_cfg, QString::number(i));
|
||||||
|
const QByteArray id = cfg.readEntry("id", QByteArray());
|
||||||
|
if (ruleids.contains(id)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
Rules* rule = new Rules(cfg);
|
Rules* rule = new Rules(cfg);
|
||||||
rules.append(rule);
|
rules.append(rule);
|
||||||
|
ruleids.append(id);
|
||||||
|
}
|
||||||
|
const QStringList kwinrules = KGlobal::dirs()->findAllResources("data", "kwin/default_rules/*.kwinrules");
|
||||||
|
foreach (const QString &kwinrule, kwinrules) {
|
||||||
|
KConfig cfg(kwinrule, KConfig::NoGlobals);
|
||||||
|
count = cfg.group("General").readEntry("count", 0);
|
||||||
|
for (int i = 1; i <= count; ++i) {
|
||||||
|
KConfigGroup cg(&cfg, QString::number(i));
|
||||||
|
const QByteArray id = cg.readEntry("id", QByteArray());
|
||||||
|
if (ruleids.contains(id)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
Rules* rule = new Rules(cg);
|
||||||
|
rules.append(rule);
|
||||||
|
ruleids.append(id);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,15 +17,16 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "ruleslist.h"
|
#include "ruleslist.h"
|
||||||
|
#include "ruleswidget.h"
|
||||||
|
|
||||||
#include <klistwidget.h>
|
#include <klistwidget.h>
|
||||||
#include <kpushbutton.h>
|
#include <kpushbutton.h>
|
||||||
#include <assert.h>
|
|
||||||
#include <kdebug.h>
|
#include <kdebug.h>
|
||||||
#include <kconfig.h>
|
#include <kconfig.h>
|
||||||
#include <KFileDialog>
|
#include <kfiledialog.h>
|
||||||
|
#include <kstandarddirs.h>
|
||||||
|
|
||||||
#include "ruleswidget.h"
|
#include <assert.h>
|
||||||
|
|
||||||
namespace KWin
|
namespace KWin
|
||||||
{
|
{
|
||||||
|
@ -212,22 +213,40 @@ void KCMRulesList::importClicked()
|
||||||
void KCMRulesList::load()
|
void KCMRulesList::load()
|
||||||
{
|
{
|
||||||
rules_listbox->clear();
|
rules_listbox->clear();
|
||||||
for (QVector< Rules* >::Iterator it = rules.begin();
|
for (QVector< Rules* >::Iterator it = rules.begin(); it != rules.end(); ++it)
|
||||||
it != rules.end();
|
|
||||||
++it)
|
|
||||||
delete *it;
|
delete *it;
|
||||||
rules.clear();
|
rules.clear();
|
||||||
|
QList<QByteArray> ruleids;
|
||||||
KConfig _cfg("kwinrulesrc");
|
KConfig _cfg("kwinrulesrc");
|
||||||
KConfigGroup cfg(&_cfg, "General");
|
KConfigGroup cfg(&_cfg, "General");
|
||||||
int count = cfg.readEntry("count", 0);
|
int count = cfg.readEntry("count", 0);
|
||||||
rules.reserve(count);
|
rules.reserve(count);
|
||||||
for (int i = 1;
|
for (int i = 1; i <= count; ++i) {
|
||||||
i <= count;
|
|
||||||
++i) {
|
|
||||||
cfg = KConfigGroup(&_cfg, QString::number(i));
|
cfg = KConfigGroup(&_cfg, QString::number(i));
|
||||||
|
const QByteArray id = cfg.readEntry("id", QByteArray());
|
||||||
|
if (ruleids.contains(id)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
Rules* rule = new Rules(cfg);
|
Rules* rule = new Rules(cfg);
|
||||||
rules.append(rule);
|
rules.append(rule);
|
||||||
rules_listbox->addItem(rule->description);
|
rules_listbox->addItem(rule->description);
|
||||||
|
ruleids.append(id);
|
||||||
|
}
|
||||||
|
const QStringList kwinrules = KGlobal::dirs()->findAllResources("data", "kwin/default_rules/*.kwinrules");
|
||||||
|
foreach (const QString &kwinrule, kwinrules) {
|
||||||
|
KConfig cfg(kwinrule, KConfig::NoGlobals);
|
||||||
|
count = cfg.group("General").readEntry("count", 0);
|
||||||
|
for (int i = 1; i <= count; ++i) {
|
||||||
|
KConfigGroup cg(&cfg, QString::number(i));
|
||||||
|
const QByteArray id = cg.readEntry("id", QByteArray());
|
||||||
|
if (ruleids.contains(id)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
Rules* rule = new Rules(cg);
|
||||||
|
rules.append(rule);
|
||||||
|
rules_listbox->addItem(rule->description);
|
||||||
|
ruleids.append(id);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (rules.count() > 0)
|
if (rules.count() > 0)
|
||||||
rules_listbox->setCurrentItem(rules_listbox->item(0));
|
rules_listbox->setCurrentItem(rules_listbox->item(0));
|
||||||
|
|
Loading…
Add table
Reference in a new issue