mirror of
https://github.com/altlinux/admc.git
synced 2024-10-26 17:25:38 +03:00
fix icons for "create" actions in toolbar
use get_object_icon() because it has fallback variants add get_object_icon() variant that takes object category as arg
This commit is contained in:
parent
edc16ca32d
commit
e5044093c3
@ -225,6 +225,10 @@ enum SystemFlagsBit {
|
||||
#define CLASS_dMD "dMD"
|
||||
#define CLASS_CONTROL_ACCESS_RIGHT "controlAccessRight"
|
||||
|
||||
#define OBJECT_CATEGORY_PERSON "Person"
|
||||
#define OBJECT_CATEGORY_GROUP "Group"
|
||||
#define OBJECT_CATEGORY_OU "Organizational-Unit"
|
||||
|
||||
#define LOCKOUT_UNLOCKED_VALUE "0"
|
||||
|
||||
#define AD_LARGE_INTEGER_DATETIME_NEVER_1 "0"
|
||||
|
@ -91,6 +91,18 @@ MainWindow::MainWindow(AdInterface &ad, QWidget *parent)
|
||||
|
||||
object_impl->set_toolbar_actions(ui->action_create_user, ui->action_create_group, ui->action_create_ou);
|
||||
|
||||
// NOTE: redefine icons for create actions because need
|
||||
// to try multiple variants because DE's sometimes don't
|
||||
// share icons
|
||||
const QIcon create_user_icon = get_object_icon(OBJECT_CATEGORY_PERSON);
|
||||
ui->action_create_user->setIcon(create_user_icon);
|
||||
|
||||
const QIcon create_group_icon = get_object_icon(OBJECT_CATEGORY_GROUP);
|
||||
ui->action_create_group->setIcon(create_group_icon);
|
||||
|
||||
const QIcon create_ou_icon = get_object_icon(OBJECT_CATEGORY_OU);
|
||||
ui->action_create_ou->setIcon(create_ou_icon);
|
||||
|
||||
// Setup console
|
||||
const ConsoleWidgetActions console_actions = [&]() {
|
||||
ConsoleWidgetActions out;
|
||||
|
@ -185,15 +185,28 @@ void limit_plain_text_edit(QPlainTextEdit *edit, const QString &attribute) {
|
||||
}
|
||||
|
||||
QIcon get_object_icon(const AdObject &object) {
|
||||
const QString object_category = [&]() {
|
||||
const QString category_dn = object.get_string(ATTRIBUTE_OBJECT_CATEGORY);
|
||||
const QString out = dn_get_name(category_dn);
|
||||
|
||||
return out;
|
||||
}();
|
||||
|
||||
const QIcon out = get_object_icon(object_category);
|
||||
|
||||
return out;
|
||||
}
|
||||
|
||||
QIcon get_object_icon(const QString &object_category) {
|
||||
// NOTE: use a list of possible icons because
|
||||
// default icon themes for different DE's don't
|
||||
// fully intersect
|
||||
static const QMap<QString, QList<QString>> category_to_icon_list = {
|
||||
{"Domain-DNS", {"network-server"}},
|
||||
{"Container", {"folder"}},
|
||||
{"Organizational-Unit", {"folder-documents"}},
|
||||
{"Group", {"system-users"}},
|
||||
{"Person", {"avatar-default", "avatar-default-symbolic"}},
|
||||
{OBJECT_CATEGORY_OU, {"folder-documents"}},
|
||||
{OBJECT_CATEGORY_GROUP, {"system-users"}},
|
||||
{OBJECT_CATEGORY_PERSON, {"avatar-default", "avatar-default-symbolic"}},
|
||||
{"Computer", {"computer"}},
|
||||
{"Group-Policy-Container", {"preferences-other"}},
|
||||
{"Volume", {"folder-templates"}},
|
||||
@ -211,13 +224,6 @@ QIcon get_object_icon(const AdObject &object) {
|
||||
const QString error_icon = "dialog-question";
|
||||
|
||||
const QString icon_name = [&]() -> QString {
|
||||
const QString object_category = [&]() {
|
||||
const QString category_dn = object.get_string(ATTRIBUTE_OBJECT_CATEGORY);
|
||||
const QString out = dn_get_name(category_dn);
|
||||
|
||||
return out;
|
||||
}();
|
||||
|
||||
const QList<QString> fallback_icon_list = {
|
||||
"emblem-system",
|
||||
"emblem-system-symbolic",
|
||||
|
@ -90,6 +90,7 @@ void limit_plain_text_edit(QPlainTextEdit *edit, const QString &attribute);
|
||||
|
||||
// NOTE: object must contain "objectCategory" attribute
|
||||
QIcon get_object_icon(const AdObject &object);
|
||||
QIcon get_object_icon(const QString &object_category);
|
||||
|
||||
QList<QPersistentModelIndex> persistent_index_list(const QList<QModelIndex> &indexes);
|
||||
QList<QModelIndex> normal_index_list(const QList<QPersistentModelIndex> &indexes);
|
||||
|
Loading…
Reference in New Issue
Block a user