author | sandman <sandman> | 2002-06-30 00:24:42 (UTC) |
---|---|---|
committer | sandman <sandman> | 2002-06-30 00:24:42 (UTC) |
commit | 2e3c599f9b2498ecd9c2332d38a0ae293954b570 (patch) (side-by-side diff) | |
tree | 1a5f95206bba7ca896b09558cf1b46ac6e03f205 | |
parent | 0235faab30f436ae3fbfed21e9f07486181bb0dd (diff) | |
download | opie-2e3c599f9b2498ecd9c2332d38a0ae293954b570.zip opie-2e3c599f9b2498ecd9c2332d38a0ae293954b570.tar.gz opie-2e3c599f9b2498ecd9c2332d38a0ae293954b570.tar.bz2 |
Some fixes (keeping vol/mute in sync with other apps)
-rw-r--r-- | core/applets/volumeapplet/volume.cpp | 43 | ||||
-rw-r--r-- | core/applets/volumeapplet/volume.h | 2 |
2 files changed, 19 insertions, 26 deletions
diff --git a/core/applets/volumeapplet/volume.cpp b/core/applets/volumeapplet/volume.cpp index b047877..eedc749 100644 --- a/core/applets/volumeapplet/volume.cpp +++ b/core/applets/volumeapplet/volume.cpp @@ -182,23 +182,14 @@ VolumeControl::VolumeControl ( VolumeApplet *icon, bool /*showMic*/, QWidget *pa : QFrame ( parent, name, WStyle_StaysOnTop | WType_Popup ) { m_icon = icon; - bool has_wav_alarm = false; + bool has_wav_alarm = true; switch ( ODevice::inst ( )-> model ( )) { // we need to add other devices eventually - case OMODEL_iPAQ_H31xx: - case OMODEL_iPAQ_H36xx: - case OMODEL_iPAQ_H37xx: - case OMODEL_iPAQ_H38xx: - has_wav_alarm = true; - break; case OMODEL_Zaurus_SL5000: has_wav_alarm = false; //poor guys probably feeling left out... break; - default: - has_wav_alarm = true; //lets just presume - break; } setFrameStyle ( QFrame::PopupPanel | QFrame::Raised ); @@ -407,18 +398,15 @@ void VolumeControl::show ( bool /*showMic*/ ) { readConfig ( ); QPoint curPos = m_icon-> mapToGlobal ( QPoint ( 0, 0 )); - printf ( "SHOW AT : %d/%d\n", curPos.x(), curPos.y()); - printf ( "SIZEHINT: %d/%d\n", sizeHint().width(),sizeHint().height()); int w = sizeHint ( ). width ( ); int x = curPos.x ( ) - ( w / 2 ); if (( x + w ) > QPEApplication::desktop ( )-> width ( )) x = QPEApplication::desktop ( )-> width ( ) - w; - move ( x, curPos. y ( ) - sizeHint ( ). height ( )); QFrame::show ( ); } @@ -470,23 +458,18 @@ void VolumeControl::readConfig ( bool force ) void VolumeControl::volumeChanged ( bool nowMuted ) { - int previousVolume = m_vol_percent; + int prevVol = m_vol_percent; + bool prevMute = m_vol_muted; - if ( !nowMuted ) readConfig ( ); // Handle case where muting it toggled - if ( m_vol_muted != nowMuted ) { - m_vol_muted = nowMuted; - m_icon-> repaint ( true ); - } - else if ( previousVolume != m_vol_percent ) { - // Avoid over repainting - m_icon-> repaint( 2, height ( ) - 3, width ( ) - 4, 2, false ); - } - + if ( m_vol_muted != prevMute ) + m_icon-> redraw ( true ); + else if ( prevVol != m_vol_percent ) // Avoid over repainting + m_icon-> redraw ( false ); } void VolumeControl::micChanged ( bool nowMuted ) { @@ -516,9 +499,9 @@ void VolumeControl::alarmSoundToggled ( bool b ) void VolumeControl::volMuteToggled ( bool b ) { m_vol_muted = !b; - m_icon-> repaint ( !m_vol_muted ); // clear if removing mute + m_icon-> redraw ( true ); writeConfigEntry ( "Mute", m_vol_muted, UPD_Vol ); } @@ -535,9 +518,9 @@ void VolumeControl::volMoved ( int percent ) // clamp volume percent to be between 0 and 100 m_vol_percent = ( m_vol_percent < 0 ) ? 0 : (( m_vol_percent > 100 ) ? 100 : m_vol_percent ); // repaint just the little volume rectangle - repaint ( 2, height ( ) - 3, width ( ) - 4, 2, false ); + m_icon-> redraw ( false ); writeConfigEntry ( "VolumePercent", m_vol_percent, UPD_Vol ); } @@ -613,8 +596,16 @@ void VolumeApplet::mousePressEvent ( QMouseEvent * ) else m_dialog-> show ( true ); } +void VolumeApplet::redraw ( bool all ) +{ + if ( all ) + repaint ( true ); + else + repaint ( 2, height ( ) - 3, width ( ) - 4, 2, false ); +} + void VolumeApplet::paintEvent ( QPaintEvent * ) { QPainter p ( this ); diff --git a/core/applets/volumeapplet/volume.h b/core/applets/volumeapplet/volume.h index ff5c64a..4d988ac 100644 --- a/core/applets/volumeapplet/volume.h +++ b/core/applets/volumeapplet/volume.h @@ -109,8 +109,10 @@ class VolumeApplet : public QWidget { public: VolumeApplet ( QWidget *parent = 0, const char *name=0 ); ~VolumeApplet ( ); + void redraw ( bool all = true ); + protected: virtual void mousePressEvent ( QMouseEvent * ); virtual void paintEvent ( QPaintEvent* ); |