[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdelibs/solid
From: Kevin Ottens <ervin () kde ! org>
Date: 2009-07-24 11:42:34
Message-ID: 1248435754.714357.24882.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 1001864 by ervin:
Handle correctly when we're provided an unknown enum value with the &
operator. We were previously trying to mask it against -1, and the
result was always true.
M +6 -1 solid/predicate.cpp
M +3 -0 tests/solidhwtest.cpp
--- trunk/KDE/kdelibs/solid/solid/predicate.cpp #1001863:1001864
@@ -212,7 +212,12 @@
if (metaProp.isEnumType() && expected.type()==QVariant::String) {
QMetaEnum metaEnum = metaProp.enumerator();
- expected = \
QVariant(metaEnum.keysToValue(d->value.toString().toLatin1())); + int \
value = metaEnum.keysToValue(d->value.toString().toLatin1()); + if \
(value>=0) { // No value found for these keys, resetting expected to invalid + \
expected = value; + } else {
+ expected = QVariant();
+ }
}
if (d->compOperator==Mask) {
--- trunk/KDE/kdelibs/solid/tests/solidhwtest.cpp #1001863:1001864
@@ -347,13 +347,16 @@
Solid::Predicate p8 = Solid::Predicate::fromString("AudioInterface.deviceType == \
'AudioInput|AudioOutput'");
Solid::Predicate p9 = Solid::Predicate::fromString("AudioInterface.deviceType == \
'AudioInput'");
Solid::Predicate p10 = Solid::Predicate::fromString("AudioInterface.deviceType \
& 'AudioInput'"); + Solid::Predicate p11 = \
Solid::Predicate::fromString("AudioInterface.deviceType & 'foobar'"); \
QVERIFY(!p8.matches(dev)); QVERIFY(!p9.matches(dev));
QVERIFY(!p10.matches(dev));
+ QVERIFY(!p11.matches(dev));
dev = Solid::Device("/org/kde/solid/fakehw/pci_8086_266e_oss_pcm_0");
QVERIFY(p8.matches(dev));
QVERIFY(!p9.matches(dev));
QVERIFY(p10.matches(dev));
+ QVERIFY(!p11.matches(dev));
QString str_pred = "[[Processor.maxSpeed == 3201 AND \
Processor.canChangeFrequency == false] OR StorageVolume.mountPoint == \
'/media/blup']";
// Since str_pred is canonicalized, fromString().toString() should be invariant
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic