|
Lines 64-77
GVBusyLevelManager* GVBusyLevelManager::
Link Here
|
| 64 |
void GVBusyLevelManager::setBusyLevel( QObject* obj, GVBusyLevel level ) { |
64 |
void GVBusyLevelManager::setBusyLevel( QObject* obj, GVBusyLevel level ) { |
| 65 |
LOG("BUSY:" << level << ":" << obj << ":" << obj->className() ); |
65 |
LOG("BUSY:" << level << ":" << obj << ":" << obj->className() ); |
| 66 |
if( level > BUSY_NONE ) { |
66 |
if( level > BUSY_NONE ) { |
| 67 |
if( mBusyLevels[ obj ] == level ) return; |
67 |
if( mBusyLevels.contains( obj ) && mBusyLevels[ obj ] == level ) return; |
|
|
68 |
if( !mBusyLevels.contains( obj )) { |
| 69 |
connect( obj, SIGNAL( destroyed( QObject* )), this, SLOT( objectDestroyed( QObject* ))); |
| 70 |
} |
| 68 |
mBusyLevels[ obj ] = level; |
71 |
mBusyLevels[ obj ] = level; |
| 69 |
} else { |
72 |
} else { |
| 70 |
mBusyLevels.remove( obj ); |
73 |
mBusyLevels.remove( obj ); |
|
|
74 |
disconnect( obj, SIGNAL( destroyed( QObject* )), this, SLOT( objectDestroyed( QObject* ))); |
| 71 |
} |
75 |
} |
| 72 |
mDelayedBusyLevelTimer.start( 0, true ); |
76 |
mDelayedBusyLevelTimer.start( 0, true ); |
| 73 |
} |
77 |
} |
| 74 |
|
78 |
|
|
|
79 |
void GVBusyLevelManager::objectDestroyed( QObject* obj ) { |
| 80 |
LOG("DESTROYED:" << obj ); |
| 81 |
mBusyLevels.remove( obj ); |
| 82 |
mDelayedBusyLevelTimer.start( 0, true ); |
| 83 |
} |
| 84 |
|
| 75 |
void GVBusyLevelManager::delayedBusyLevelChanged() { |
85 |
void GVBusyLevelManager::delayedBusyLevelChanged() { |
| 76 |
GVBusyLevel newLevel = BUSY_NONE; |
86 |
GVBusyLevel newLevel = BUSY_NONE; |
| 77 |
for( QMap< QObject*, GVBusyLevel >::ConstIterator it = mBusyLevels.begin(); |
87 |
for( QMap< QObject*, GVBusyLevel >::ConstIterator it = mBusyLevels.begin(); |