Add a 'visible' property/role to ConfigCategory/ConfigModel.
This gives users a bit to conditionally hide categories in combination with a filter model.
This commit is contained in:
parent
80c32e6d51
commit
6cc17ea25e
@ -1,5 +1,6 @@
|
||||
/*
|
||||
* Copyright 2013 Marco Martin <mart@kde.org>
|
||||
* Copyright 2015 Eike Hein <hein@kde.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Library General Public License as
|
||||
@ -151,6 +152,8 @@ QVariant ConfigModelPrivate::get(int row) const
|
||||
} else {
|
||||
value["source"] = categories.at(row)->source();
|
||||
}
|
||||
value["visible"] = categories.at(row)->visible();
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
@ -163,6 +166,7 @@ ConfigModel::ConfigModel(QObject *parent)
|
||||
roleNames[IconRole] = "icon";
|
||||
roleNames[SourceRole] = "source";
|
||||
roleNames[PluginNameRole] = "pluginName";
|
||||
roleNames[VisibleRole] = "visible";
|
||||
|
||||
setRoleNames(roleNames);
|
||||
}
|
||||
@ -198,6 +202,8 @@ QVariant ConfigModel::data(const QModelIndex &index, int role) const
|
||||
}
|
||||
case PluginNameRole:
|
||||
return d->categories.at(index.row())->pluginName();
|
||||
case VisibleRole:
|
||||
return d->categories.at(index.row())->visible();
|
||||
default:
|
||||
return QVariant();
|
||||
}
|
||||
@ -219,6 +225,18 @@ void ConfigModel::appendCategory(const QString &iconName, const QString &name,
|
||||
d->appendCategory(cat);
|
||||
}
|
||||
|
||||
void ConfigModel::appendCategory(const QString &iconName, const QString &name,
|
||||
const QString &path, const QString &pluginName, bool visible)
|
||||
{
|
||||
ConfigCategory *cat = new ConfigCategory(this);
|
||||
cat->setIcon(iconName);
|
||||
cat->setName(name);
|
||||
cat->setSource(path);
|
||||
cat->setPluginName(pluginName);
|
||||
cat->setVisible(visible);
|
||||
d->appendCategory(cat);
|
||||
}
|
||||
|
||||
void ConfigModel::clear()
|
||||
{
|
||||
d->clear();
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
* Copyright 2013 Marco Martin <mart@kde.org>
|
||||
* Copyright 2015 Eike Hein <hein@kde.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Library General Public License as
|
||||
@ -68,7 +69,8 @@ public:
|
||||
NameRole = Qt::UserRole + 1,
|
||||
IconRole,
|
||||
SourceRole,
|
||||
PluginNameRole
|
||||
PluginNameRole,
|
||||
VisibleRole
|
||||
};
|
||||
ConfigModel(QObject *parent = 0);
|
||||
~ConfigModel();
|
||||
@ -80,6 +82,9 @@ public:
|
||||
void appendCategory(const QString &iconName, const QString &name,
|
||||
const QString &path, const QString &pluginName);
|
||||
|
||||
void appendCategory(const QString &iconName, const QString &name,
|
||||
const QString &path, const QString &pluginName, bool visible);
|
||||
|
||||
/**
|
||||
* clears the model
|
||||
**/
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
* Copyright 2013 Marco Martin <mart@kde.org>
|
||||
* Copyright 2015 Eike Hein <hein@kde.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Library General Public License as
|
||||
@ -45,6 +46,7 @@ namespace PlasmaQuick
|
||||
|
||||
ConfigCategory::ConfigCategory(QObject *parent)
|
||||
: QObject(parent)
|
||||
, m_visible(true)
|
||||
{
|
||||
}
|
||||
|
||||
@ -111,6 +113,21 @@ void ConfigCategory::setPluginName(const QString &name)
|
||||
emit pluginNameChanged();
|
||||
}
|
||||
|
||||
bool ConfigCategory::visible() const
|
||||
{
|
||||
return m_visible;
|
||||
}
|
||||
|
||||
void ConfigCategory::setVisible(bool visible)
|
||||
{
|
||||
if (m_visible == visible) {
|
||||
return;
|
||||
}
|
||||
|
||||
m_visible = visible;
|
||||
emit visibleChanged();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#include "private/moc_configcategory_p.cpp"
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
* Copyright 2013 Marco Martin <mart@kde.org>
|
||||
* Copyright 2015 Eike Hein <hein@kde.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Library General Public License as
|
||||
@ -45,6 +46,7 @@ class ConfigCategory : public QObject
|
||||
Q_PROPERTY(QString icon READ icon WRITE setIcon NOTIFY iconChanged)
|
||||
Q_PROPERTY(QString source READ source WRITE setSource NOTIFY sourceChanged)
|
||||
Q_PROPERTY(QString pluginName READ pluginName WRITE setPluginName NOTIFY pluginNameChanged)
|
||||
Q_PROPERTY(bool visible READ visible WRITE setVisible NOTIFY visibleChanged)
|
||||
|
||||
public:
|
||||
ConfigCategory(QObject *parent = 0);
|
||||
@ -62,17 +64,22 @@ public:
|
||||
QString pluginName() const;
|
||||
void setPluginName(const QString &pluginName);
|
||||
|
||||
bool visible() const;
|
||||
void setVisible(bool visible);
|
||||
|
||||
Q_SIGNALS:
|
||||
void nameChanged();
|
||||
void iconChanged();
|
||||
void sourceChanged();
|
||||
void pluginNameChanged();
|
||||
void visibleChanged();
|
||||
|
||||
private:
|
||||
QString m_name;
|
||||
QString m_icon;
|
||||
QString m_source;
|
||||
QString m_pluginName;
|
||||
bool m_visible;
|
||||
};
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user