Skip to content

Commit 97bb1c8

Browse files
committed
Add tooltip event filters controlled by setting
1 parent 21d11da commit 97bb1c8

File tree

4 files changed

+42
-0
lines changed

4 files changed

+42
-0
lines changed

src/clientdlg.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,11 +84,13 @@ CClientDlg::CClientDlg ( CClient* pNCliP,
8484
lbrInputLevelL->setAccessibleName ( strInpLevHAccText );
8585
lbrInputLevelL->setAccessibleDescription ( strInpLevHAccDescr );
8686
lbrInputLevelL->setToolTip ( strInpLevHTT );
87+
lbrInputLevelL->installEventFilter ( this ); // install event filter for tooltips
8788
lbrInputLevelL->setEnabled ( false );
8889
lbrInputLevelR->setWhatsThis ( strInpLevH );
8990
lbrInputLevelR->setAccessibleName ( strInpLevHAccText );
9091
lbrInputLevelR->setAccessibleDescription ( strInpLevHAccDescr );
9192
lbrInputLevelR->setToolTip ( strInpLevHTT );
93+
lbrInputLevelR->installEventFilter ( this ); // install event filter for tooltips
9294
lbrInputLevelR->setEnabled ( false );
9395

9496
// connect/disconnect button
@@ -153,6 +155,7 @@ CClientDlg::CClientDlg ( CClient* pNCliP,
153155
"you will not have much fun using %1." )
154156
.arg ( APP_NAME ) +
155157
TOOLTIP_COM_END_TEXT );
158+
ledDelay->installEventFilter ( this ); // install event filter for tooltips
156159

157160
ledDelay->setAccessibleName ( tr ( "Delay status LED indicator" ) );
158161

@@ -184,6 +187,7 @@ CClientDlg::CClientDlg ( CClient* pNCliP,
184187
ledBuffers->setToolTip ( tr ( "If this LED indicator turns red, "
185188
"the audio stream is interrupted." ) +
186189
TOOLTIP_COM_END_TEXT );
190+
ledBuffers->installEventFilter ( this ); // install event filter for tooltips
187191

188192
ledBuffers->setAccessibleName ( tr ( "Local Jitter Buffer status LED indicator" ) );
189193

@@ -1516,3 +1520,15 @@ void CClientDlg::SetPingTime ( const int iPingTime, const int iOverallDelayMs, c
15161520
// set current LED status
15171521
ledDelay->SetLight ( eOverallDelayLEDColor );
15181522
}
1523+
1524+
bool CClientDlg::eventFilter ( QObject* obj, QEvent* event )
1525+
{
1526+
if ( event->type() == QEvent::ToolTip )
1527+
{
1528+
// return true to suppress tooltip, false to allow it
1529+
return !pSettings->bShowToolTips;
1530+
}
1531+
1532+
// continue with normal processing for other events
1533+
return QObject::eventFilter ( obj, event );
1534+
}

src/clientdlg.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,8 @@ class CClientDlg : public CBaseDlg, private Ui_CClientDlgBase
121121
virtual void dropEvent ( QDropEvent* Event ) { ManageDragNDrop ( Event, false ); }
122122
void UpdateDisplay();
123123

124+
bool eventFilter ( QObject* obj, QEvent* event );
125+
124126
CClientSettingsDlg ClientSettingsDlg;
125127
CChatDlg ChatDlg;
126128
CConnectDlg ConnectDlg;

src/clientsettingsdlg.cpp

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,16 +106,21 @@ CClientSettingsDlg::CClientSettingsDlg ( CClient* pNCliP, CClientSettings* pNSet
106106

107107
lblNetBuf->setWhatsThis ( strJitterBufferSize );
108108
lblNetBuf->setToolTip ( strJitterBufferSizeTT );
109+
lblNetBuf->installEventFilter ( this ); // install event filter for tooltips
109110
grbJitterBuffer->setWhatsThis ( strJitterBufferSize );
110111
grbJitterBuffer->setToolTip ( strJitterBufferSizeTT );
112+
grbJitterBuffer->installEventFilter ( this ); // install event filter for tooltips
111113
sldNetBuf->setWhatsThis ( strJitterBufferSize );
112114
sldNetBuf->setAccessibleName ( tr ( "Local jitter buffer slider control" ) );
113115
sldNetBuf->setToolTip ( strJitterBufferSizeTT );
116+
sldNetBuf->installEventFilter ( this ); // install event filter for tooltips
114117
sldNetBufServer->setWhatsThis ( strJitterBufferSize );
115118
sldNetBufServer->setAccessibleName ( tr ( "Server jitter buffer slider control" ) );
116119
sldNetBufServer->setToolTip ( strJitterBufferSizeTT );
120+
sldNetBufServer->installEventFilter ( this ); // install event filter for tooltips
117121
chbAutoJitBuf->setAccessibleName ( tr ( "Auto jitter buffer check box" ) );
118122
chbAutoJitBuf->setToolTip ( strJitterBufferSizeTT );
123+
chbAutoJitBuf->installEventFilter ( this ); // install event filter for tooltips
119124

120125
#if !defined( WITH_JACK )
121126
// sound card device
@@ -143,6 +148,7 @@ CClientSettingsDlg::CClientSettingsDlg ( CClient* pNCliP, CClientSettings* pNSet
143148
"driver, make sure to connect the ASIO inputs in the kX DSP settings "
144149
"panel." ) +
145150
TOOLTIP_COM_END_TEXT );
151+
cbxSoundcard->installEventFilter ( this ); // install event filter for tooltips
146152
# endif
147153

148154
// sound card input/output channel mapping
@@ -249,17 +255,21 @@ CClientSettingsDlg::CClientSettingsDlg ( CClient* pNCliP, CClientSettings* pNSet
249255
rbtBufferDelayPreferred->setWhatsThis ( strSndCrdBufDelay );
250256
rbtBufferDelayPreferred->setAccessibleName ( tr ( "64 samples setting radio button" ) );
251257
rbtBufferDelayPreferred->setToolTip ( strSndCrdBufDelayTT );
258+
rbtBufferDelayPreferred->installEventFilter ( this ); // install event filter for tooltips
252259
rbtBufferDelayDefault->setWhatsThis ( strSndCrdBufDelay );
253260
rbtBufferDelayDefault->setAccessibleName ( tr ( "128 samples setting radio button" ) );
254261
rbtBufferDelayDefault->setToolTip ( strSndCrdBufDelayTT );
262+
rbtBufferDelayDefault->installEventFilter ( this ); // install event filter for tooltips
255263
rbtBufferDelaySafe->setWhatsThis ( strSndCrdBufDelay );
256264
rbtBufferDelaySafe->setAccessibleName ( tr ( "256 samples setting radio button" ) );
257265
rbtBufferDelaySafe->setToolTip ( strSndCrdBufDelayTT );
266+
rbtBufferDelaySafe->installEventFilter ( this ); // install event filter for tooltips
258267

259268
#if defined( _WIN32 ) && !defined( WITH_JACK )
260269
butDriverSetup->setWhatsThis ( strSndCardDriverSetup );
261270
butDriverSetup->setAccessibleName ( tr ( "ASIO Device Settings push button" ) );
262271
butDriverSetup->setToolTip ( strSndCardDriverSetupTT );
272+
butDriverSetup->installEventFilter ( this ); // install event filter for tooltips
263273
#endif
264274

265275
// fancy skin
@@ -1228,3 +1238,15 @@ void CClientSettingsDlg::OnAudioPanValueChanged ( int value )
12281238
pClient->SetAudioInFader ( value );
12291239
UpdateAudioFaderSlider();
12301240
}
1241+
1242+
bool CClientSettingsDlg::eventFilter ( QObject* obj, QEvent* event )
1243+
{
1244+
if ( event->type() == QEvent::ToolTip )
1245+
{
1246+
// return true to suppress tooltip, false to allow it
1247+
return !pSettings->bShowToolTips;
1248+
}
1249+
1250+
// continue with normal processing for other events
1251+
return QObject::eventFilter ( obj, event );
1252+
}

src/clientsettingsdlg.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,8 @@ class CClientSettingsDlg : public CBaseDlg, private Ui_CClientSettingsDlgBase
7171

7272
virtual void showEvent ( QShowEvent* );
7373

74+
bool eventFilter ( QObject* obj, QEvent* event );
75+
7476
CClient* pClient;
7577
CClientSettings* pSettings;
7678
QTimer TimerStatus;

0 commit comments

Comments
 (0)