diff --git a/kcmkwin/kwinrules/rulesmodel.cpp b/kcmkwin/kwinrules/rulesmodel.cpp index e4ba5087aa..0044837f1a 100644 --- a/kcmkwin/kwinrules/rulesmodel.cpp +++ b/kcmkwin/kwinrules/rulesmodel.cpp @@ -233,7 +233,6 @@ QString RulesModel::warningMessage() const return QString(); } - bool RulesModel::wmclassWarning() const { const bool no_wmclass = !m_rules["wmclass"]->isEnabled() @@ -625,11 +624,6 @@ void RulesModel::populateRuleList() const QHash RulesModel::x11PropertyHash() { static const auto propertyToRule = QHash { - /* The original detection dialog allows to choose depending on "Match complete window class": - * if Match Complete == false: wmclass = "resourceClass" - * if Match Complete == true: wmclass = "resourceName" + " " + "resourceClass" - */ - { "resourceName", "wmclass" }, { "caption", "title" }, { "role", "windowrole" }, { "clientMachine", "clientmachine" }, @@ -668,6 +662,13 @@ void RulesModel::setWindowProperties(const QVariantMap &info, bool forceValue) } m_rules["types"]->setSuggestedValue(1 << window_type, forceValue); + const QString wmsimpleclass = info.value("resourceClass").toString(); + const QString wmcompleteclass = QStringLiteral("%1 %2").arg(info.value("resourceName").toString(), + info.value("resourceClass").toString()); + const bool isComplete = m_rules.value("wmclasscomplete")->value().toBool(); + + m_rules["wmclass"]->setSuggestedValue(isComplete ? wmcompleteclass : wmsimpleclass, forceValue); + const auto ruleForProperty = x11PropertyHash(); for (QString &property : info.keys()) { if (!ruleForProperty.contains(property)) {