[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: extragear/multimedia/k3b
From: Michal Malek <michalm () jabster ! pl>
Date: 2010-09-09 18:56:39
Message-ID: 20100909190106.87A98AC884 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1173575 by mmalek:
Don't assume optical Solid device has also Solid::Block interface. For some reason it \
can lack it (hardware issue or Solid bug)
BUG: 249371
M +1 -0 ChangeLog
M +10 -6 libk3bdevice/k3bdevicemanager.cpp
M +4 -1 src/k3bappdevicemanager.cpp
--- trunk/extragear/multimedia/k3b/ChangeLog #1173574:1173575
@@ -15,6 +15,7 @@
* Search paths on "Programs" options are not saved (248648)
* Crash on generation of DVD previews in DVD ripping list (249941)
* Crash on closing dialog after succesful audio CD ripping (241630)
+ * Crash on device detection (249371)
2.0.1
=====
--- trunk/extragear/multimedia/k3b/libk3bdevice/k3bdevicemanager.cpp #1173574:1173575
@@ -1,6 +1,7 @@
/*
*
* Copyright (C) 2003-2009 Sebastian Trueg <trueg@k3b.org>
+ * Copyright (C) 2010 Michal Malek <michalm@jabster.pl>
*
* This file is part of the K3b project.
* Copyright (C) 1998-2009 Sebastian Trueg <trueg@k3b.org>
@@ -354,15 +355,16 @@
K3b::Device::Device* K3b::Device::DeviceManager::addDevice( const Solid::Device& \
solidDevice ) {
- if ( findDevice( solidDevice.as<Solid::Block>()->device() ) ) {
- kDebug() << "(K3b::Device::DeviceManager) dev " << \
solidDevice.as<Solid::Block>()->device() << " already found"; + if( const \
Solid::Block* blockDevice = solidDevice.as<Solid::Block>() ) { + if( \
!findDevice( blockDevice->device() ) ) + return addDevice( new \
K3b::Device::Device( solidDevice ) ); + else
+ kDebug() << "(K3b::Device::DeviceManager) dev " << blockDevice->device() \
<< " already found"; + }
return 0;
}
- return addDevice( new K3b::Device::Device( solidDevice ) );
-}
-
K3b::Device::Device* K3b::Device::DeviceManager::addDevice( K3b::Device::Device* \
device ) {
const QString devicename = device->blockDeviceName();
@@ -409,7 +411,8 @@
void K3b::Device::DeviceManager::removeDevice( const Solid::Device& dev )
{
- if( Device* device = findDevice( dev.as<Solid::Block>()->device() ) ) {
+ if( const Solid::Block* blockDevice = dev.as<Solid::Block>() ) {
+ if( Device* device = findDevice( blockDevice->device() ) ) {
d->cdReader.removeAll( device );
d->dvdReader.removeAll( device );
d->bdReader.removeAll( device );
@@ -424,6 +427,7 @@
delete device;
}
}
+}
void K3b::Device::DeviceManager::slotSolidDeviceAdded( const QString& udi )
--- trunk/extragear/multimedia/k3b/src/k3bappdevicemanager.cpp #1173574:1173575
@@ -1,6 +1,7 @@
/*
*
* Copyright (C) 2005-2008 Sebastian Trueg <trueg@k3b.org>
+ * Copyright (C) 2010 Michal Malek <michalm@jabster.pl>
*
* This file is part of the K3b project.
* Copyright (C) 1998-2008 Sebastian Trueg <trueg@k3b.org>
@@ -125,7 +126,8 @@
void K3b::AppDeviceManager::removeDevice( const Solid::Device& solidDev )
{
- if( findDevice( solidDev.as<Solid::Block>()->device() ) == currentDevice() )
+ if( const Solid::Block* blockDevice = solidDev.as<Solid::Block>() ) {
+ if( findDevice( blockDevice->device() ) == currentDevice() )
setCurrentDevice( 0 );
K3b::Device::DeviceManager::removeDevice( solidDev );
@@ -133,6 +135,7 @@
if( currentDevice() == 0 && !allDevices().isEmpty() )
setCurrentDevice( allDevices().first() );
}
+}
void K3b::AppDeviceManager::slotMediumChanged( K3b::Device::Device* dev )
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic