Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 212154 Details for
Bug 295600
sys-apps/hal-0.5.14 crashes kde plama-workspace in Solid::Control::PowerManager::brightness
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
patch from http://websvn.kde.org/trunk/KDE/kdebase/workspace/solid/hal/halpower.cpp?r1=1035622&r2=1057980&view=patch
solid-4.3.4-check-dbus-replies.patch (text/plain), 5.75 KB, created by
Magnus Kessler
on 2009-12-05 15:56:04 UTC
(
hide
)
Description:
patch from http://websvn.kde.org/trunk/KDE/kdebase/workspace/solid/hal/halpower.cpp?r1=1035622&r2=1057980&view=patch
Filename:
MIME Type:
Creator:
Magnus Kessler
Created:
2009-12-05 15:56:04 UTC
Size:
5.75 KB
patch
obsolete
>--- trunk/KDE/kdebase/workspace/solid/hal/halpower.cpp 2009/10/15 14:30:24 1035622 >+++ trunk/KDE/kdebase/workspace/solid/hal/halpower.cpp 2009/12/03 18:40:24 1057980 >@@ -361,13 +361,21 @@ > Solid::Control::PowerManager::BrightnessControlsList HalPower::brightnessControlsAvailable() > { > Solid::Control::PowerManager::BrightnessControlsList deviceList; >- foreach(const QString &name, m_halManager.call("FindDeviceByCapability", "laptop_panel").arguments().at(0).toStringList()) >+ QDBusReply<QStringList> reply = m_halManager.call("FindDeviceByCapability", "laptop_panel"); >+ if (reply.isValid()) > { >- deviceList.insert(name, Solid::Control::PowerManager::Screen); >+ foreach(const QString &name, reply.value()) >+ { >+ deviceList.insert(name, Solid::Control::PowerManager::Screen); >+ } > } >- foreach(const QString &name, m_halManager.call("FindDeviceByCapability", "keyboard_backlight").arguments().at(0).toStringList()) >+ reply = m_halManager.call("FindDeviceByCapability", "keyboard_backlight"); >+ if (reply.isValid()) > { >- deviceList.insert(name, Solid::Control::PowerManager::Keyboard); >+ foreach(const QString &name, reply.value()) >+ { >+ deviceList.insert(name, Solid::Control::PowerManager::Keyboard); >+ } > } > return deviceList; > } >@@ -375,46 +383,53 @@ > float HalPower::brightness(const QString &device) > { > float brightness; >- if(m_halManager.call("FindDeviceByCapability", "laptop_panel").arguments().at(0).toStringList().contains(device)) >+ QDBusReply<QStringList> reply = m_halManager.call("FindDeviceByCapability", "laptop_panel"); >+ if(reply.isValid() && reply.value().contains(device)) > { > QDBusInterface deviceInterface("org.freedesktop.Hal", device, "org.freedesktop.Hal.Device.LaptopPanel", QDBusConnection::systemBus()); >- brightness = deviceInterface.call("GetBrightness").arguments().at(0).toDouble(); >- if(deviceInterface.lastError().isValid()) >+ QDBusReply<double> brightnessReply = deviceInterface.call("GetBrightness"); >+ if(!brightnessReply.isValid()) > { >- return 0; >+ return 0.0; > } >- else >+ brightness = brightnessReply; >+ >+ QDBusInterface propertyInterface("org.freedesktop.Hal", device, "org.freedesktop.Hal.Device", QDBusConnection::systemBus()); >+ QDBusReply<int> levelsReply = propertyInterface.call("GetProperty", "laptop_panel.num_levels"); >+ if (levelsReply.isValid()) > { >- QDBusInterface propertyInterface("org.freedesktop.Hal", device, "org.freedesktop.Hal.Device", QDBusConnection::systemBus()); >- int levels = propertyInterface.call("GetProperty", "laptop_panel.num_levels").arguments().at(0).toInt(); >+ int levels = levelsReply; > return (float)(100*(brightness/(levels-1))); > } > } >- if(m_halManager.call("FindDeviceByCapability", "keyboard_backlight").arguments().at(0).toStringList().contains(device)) >+ >+ reply = m_halManager.call("FindDeviceByCapability", "keyboard_backlight"); >+ if(reply.isValid() && reply.value().contains(device)) > { > QDBusInterface deviceInterface("org.freedesktop.Hal", device, "org.freedesktop.Hal.Device.KeyboardBacklight", QDBusConnection::systemBus()); //TODO - I do not have a backlight enabled keyboard, so I'm guessing a bit here. Could someone please check this. > >- QDBusMessage getBrightnessDBusMessage = deviceInterface.call("GetBrightness"); >- if(!deviceInterface.lastError().isValid()) >- brightness = getBrightnessDBusMessage.arguments().at(0).toDouble(); >- >- if(deviceInterface.lastError().isValid()) >+ QDBusReply<double> brightnessReply = deviceInterface.call("GetBrightness"); >+ if(!brightnessReply.isValid()) > { >- return 0; >+ return 0.0; > } >- else >+ brightness = brightnessReply; >+ >+ QDBusInterface propertyInterface("org.freedesktop.Hal", device, "org.freedesktop.Hal.Device", QDBusConnection::systemBus()); >+ QDBusReply<int> levelsReply = propertyInterface.call("GetProperty", "keyboard_backlight.num_levels"); >+ if (levelsReply.isValid()) > { >- QDBusInterface propertyInterface("org.freedesktop.Hal", device, "org.freedesktop.Hal.Device", QDBusConnection::systemBus()); >- int levels = propertyInterface.call("GetProperty", "keyboard_backlight.num_levels").arguments().at(0).toInt(); >+ int levels = levelsReply; > return (float)(100*(brightness/(levels-1))); > } > } >- return 0; >+ return 0.0; > } > > bool HalPower::setBrightness(float brightness, const QString &device) > { >- if(m_halManager.call("FindDeviceByCapability", "laptop_panel").arguments().at(0).toStringList().contains(device)) >+ QDBusReply<QStringList> reply = m_halManager.call("FindDeviceByCapability", "laptop_panel"); >+ if(reply.isValid() && reply.value().contains(device)) > { > QDBusInterface propertyInterface("org.freedesktop.Hal", device, "org.freedesktop.Hal.Device", QDBusConnection::systemBus()); > int levels = propertyInterface.call("GetProperty", "laptop_panel.num_levels").arguments().at(0).toInt(); >@@ -426,7 +441,9 @@ > return true; > } > } >- if(m_halManager.call("FindDeviceByCapability", "keyboard_backlight").arguments().at(0).toStringList().contains(device)) >+ >+ reply = m_halManager.call("FindDeviceByCapability", "keyboard_backlight"); >+ if(reply.isValid() && reply.value().contains(device)) > { > QDBusInterface propertyInterface("org.freedesktop.Hal", device, "org.freedesktop.Hal.Device", QDBusConnection::systemBus()); > int levels = propertyInterface.call("GetProperty", "keyboard_backlight.num_levels").arguments().at(0).toInt();
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 295600
:
211935
|
212153
| 212154 |
212156