mirror of
https://bitbucket.org/smil3y/kde-workspace.git
synced 2025-02-23 10:22:49 +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 <kapplication.h>
|
||||
#include <kconfig.h>
|
||||
#include <KLocalizedString>
|
||||
#include <klocalizedstring.h>
|
||||
#include <kstandarddirs.h>
|
||||
#include <kwindowsystem.h>
|
||||
#include <QtDBus/QtDBus>
|
||||
|
||||
#include <X11/Xlib.h>
|
||||
#include <fixx11h.h>
|
||||
|
||||
|
@ -35,15 +37,34 @@ namespace KWin
|
|||
|
||||
static void loadRules(QList< Rules* >& rules)
|
||||
{
|
||||
QList<QByteArray> ruleids;
|
||||
KConfig _cfg("kwinrulesrc");
|
||||
KConfigGroup cfg(&_cfg, "General");
|
||||
int count = cfg.readEntry("count", 0);
|
||||
for (int i = 1;
|
||||
i <= count;
|
||||
++i) {
|
||||
for (int i = 1; i <= count; ++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.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 "ruleswidget.h"
|
||||
|
||||
#include <klistwidget.h>
|
||||
#include <kpushbutton.h>
|
||||
#include <assert.h>
|
||||
#include <kdebug.h>
|
||||
#include <kconfig.h>
|
||||
#include <KFileDialog>
|
||||
#include <kfiledialog.h>
|
||||
#include <kstandarddirs.h>
|
||||
|
||||
#include "ruleswidget.h"
|
||||
#include <assert.h>
|
||||
|
||||
namespace KWin
|
||||
{
|
||||
|
@ -212,22 +213,40 @@ void KCMRulesList::importClicked()
|
|||
void KCMRulesList::load()
|
||||
{
|
||||
rules_listbox->clear();
|
||||
for (QVector< Rules* >::Iterator it = rules.begin();
|
||||
it != rules.end();
|
||||
++it)
|
||||
for (QVector< Rules* >::Iterator it = rules.begin(); it != rules.end(); ++it)
|
||||
delete *it;
|
||||
rules.clear();
|
||||
QList<QByteArray> ruleids;
|
||||
KConfig _cfg("kwinrulesrc");
|
||||
KConfigGroup cfg(&_cfg, "General");
|
||||
int count = cfg.readEntry("count", 0);
|
||||
rules.reserve(count);
|
||||
for (int i = 1;
|
||||
i <= count;
|
||||
++i) {
|
||||
for (int i = 1; i <= count; ++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.append(rule);
|
||||
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)
|
||||
rules_listbox->setCurrentItem(rules_listbox->item(0));
|
||||
|
|
Loading…
Add table
Reference in a new issue