added some accessibility support

This commit is contained in:
Volker Fischer 2009-11-27 10:47:13 +00:00
parent a7b471cace
commit 7e0ae4b765
7 changed files with 74 additions and 24 deletions

View file

@ -224,6 +224,10 @@
</item> </item>
</layout> </layout>
</widget> </widget>
<tabstops>
<tabstop>buttonOk</tabstop>
<tabstop>TextViewCredits</tabstop>
</tabstops>
<resources> <resources>
<include location="resources.qrc" /> <include location="resources.qrc" />
</resources> </resources>

View file

@ -73,18 +73,23 @@ CChannelFader::CChannelFader ( QWidget* pNW,
pFader->setWhatsThis ( "<b>Mixer Fader:</b> Adjusts the audio level of " pFader->setWhatsThis ( "<b>Mixer Fader:</b> Adjusts the audio level of "
"this channel. All connected clients at the server will be assigned " "this channel. All connected clients at the server will be assigned "
"an audio fader at each client." ); "an audio fader at each client." );
pFader->setAccessibleName ( "Mixer level setting of the connected client "
"at the server" );
pcbMute->setWhatsThis ( "<b>Mute:</b> With the Mute checkbox, the current " pcbMute->setWhatsThis ( "<b>Mute:</b> With the Mute checkbox, the current "
"audio channel can be muted." ); "audio channel can be muted." );
pcbMute->setAccessibleName ( "Mute button" );
pcbSolo->setWhatsThis ( "<b>Solo:</b> With the Solo checkbox, the current " pcbSolo->setWhatsThis ( "<b>Solo:</b> With the Solo checkbox, the current "
"audio channel can be set to solo which means that all other channels " "audio channel can be set to solo which means that all other channels "
"except of the current channel are muted.<br/>" "except of the current channel are muted.<br/>"
"Only one channel at a time can be set to solo." ); "Only one channel at a time can be set to solo." );
pcbSolo->setAccessibleName ( "Solo button" );
pLabel->setWhatsThis ( "<b>Mixer Fader Label:</b> Label (fader tag) " pLabel->setWhatsThis ( "<b>Mixer Fader Label:</b> Label (fader tag) "
"identifying the connected client. The tag name can be set in the " "identifying the connected client. The tag name can be set in the "
"clients main window." ); "clients main window." );
pLabel->setAccessibleName ( "Mixer level label (fader tag)" );
// connections ------------------------------------------------------------- // connections -------------------------------------------------------------

View file

@ -31,7 +31,8 @@ CClientSettingsDlg::CClientSettingsDlg ( CClient* pNCliP, QWidget* parent,
{ {
setupUi ( this ); setupUi ( this );
// add help text to controls // add help text to controls -----------------------------------------------
// jitter buffer
QString strJitterBufferSize = tr ( "<b>Jitter Buffer Size:</b> The size of " QString strJitterBufferSize = tr ( "<b>Jitter Buffer Size:</b> The size of "
"the network buffer (jitter buffer). The jitter buffer compensates for " "the network buffer (jitter buffer). The jitter buffer compensates for "
"the network jitter. The larger this buffer is, the more robust the " "the network jitter. The larger this buffer is, the more robust the "
@ -39,9 +40,12 @@ CClientSettingsDlg::CClientSettingsDlg ( CClient* pNCliP, QWidget* parent,
"This setting is therefore a trade-off between audio drop outs and " "This setting is therefore a trade-off between audio drop outs and "
"overall audio delay.<br>By changing this setting, both, the client " "overall audio delay.<br>By changing this setting, both, the client "
"and the server jitter buffer is set to the same value." ); "and the server jitter buffer is set to the same value." );
SliderNetBuf->setWhatsThis ( strJitterBufferSize ); TextNetBuf->setWhatsThis ( strJitterBufferSize );
TextNetBuf->setWhatsThis ( strJitterBufferSize );
GroupBoxJitterBuffer->setWhatsThis ( strJitterBufferSize ); GroupBoxJitterBuffer->setWhatsThis ( strJitterBufferSize );
SliderNetBuf->setWhatsThis ( strJitterBufferSize );
SliderNetBuf->setAccessibleName ( "Jitter buffer slider control" );
cbAutoJitBuf->setAccessibleName ( "Auto jitter buffer switch" );
// init driver button // init driver button
#ifdef _WIN32 #ifdef _WIN32

View file

@ -49,45 +49,67 @@ CLlconClientDlg::CLlconClientDlg ( CClient* pNCliP,
{ {
setupUi ( this ); setupUi ( this );
// add help text to controls // add help text to controls -----------------------------------------------
QString strInpLevH = tr ( "<b>Input level meter:</b> The input level " // input level meter
QString strInpLevH = tr ( "<b>Input Level Meter:</b> The input level "
"indicators show the current input level of the two stereo channels " "indicators show the current input level of the two stereo channels "
"of the current selected audio input. The upper level display belongs " "of the current selected audio input. The upper level display belongs "
"to the left channel and the lower level display to the right channel " "to the left channel and the lower level display to the right channel "
"of the audio input.<br/>" "of the audio input.<br/>"
"Make sure not to clip the input signal to avoid distortions of the " "Make sure not to clip the input signal to avoid distortions of the "
"audio signal." ); "audio signal." );
TextLabelInputLevelL->setWhatsThis ( strInpLevH ); QString strInpLevHAccText = "Input level meter";
TextLabelInputLevelR->setWhatsThis ( strInpLevH ); QString strInpLevHAccDescr = "Simulates an analog LED level meter.";
MultiColorLEDBarInputLevelL->setWhatsThis ( strInpLevH ); TextLabelInputLevelL->setWhatsThis ( strInpLevH );
MultiColorLEDBarInputLevelR->setWhatsThis ( strInpLevH ); TextLabelInputLevelR->setWhatsThis ( strInpLevH );
MultiColorLEDBarInputLevelL->setWhatsThis ( strInpLevH );
MultiColorLEDBarInputLevelL->setAccessibleName ( strInpLevHAccText );
MultiColorLEDBarInputLevelL->setAccessibleDescription ( strInpLevHAccDescr );
MultiColorLEDBarInputLevelR->setWhatsThis ( strInpLevH );
MultiColorLEDBarInputLevelR->setAccessibleName ( strInpLevHAccText );
MultiColorLEDBarInputLevelR->setAccessibleDescription ( strInpLevHAccDescr );
// connect/disconnect button
PushButtonConnect->setWhatsThis ( tr ( "<b>Connect / Disconnect Button:" PushButtonConnect->setWhatsThis ( tr ( "<b>Connect / Disconnect Button:"
"</b> Push this button to connect the server. A valid IP address has " "</b> Push this button to connect the server. A valid IP address has "
"to be specified before. If the client is connected, pressing this " "to be specified before. If the client is connected, pressing this "
"button will disconnect the connection." ) ); "button will disconnect the connection." ) );
PushButtonConnect->setAccessibleName ( "Connect and disconnect toggle button" );
PushButtonConnect->setAccessibleDescription ( "Clicking on this button "
"changes the caption of the button from Connect to Disconnect, i.e., it "
"implements a toggle functionality for connecting and disconnecting "
"the llcon software." );
// status bar
TextLabelStatus->setWhatsThis ( tr ( "<b>Status Bar:</b> In the status bar " TextLabelStatus->setWhatsThis ( tr ( "<b>Status Bar:</b> In the status bar "
"different messages are displayed. E.g., if an error occurred or the " "different messages are displayed. E.g., if an error occurred or the "
"status of the connection is shown." ) ); "status of the connection is shown." ) );
TextLabelStatus->setAccessibleName ( "Status bar" );
// server address
QString strServAddrH = tr ( "<b>Server Address:</b> The IP address or URL " QString strServAddrH = tr ( "<b>Server Address:</b> The IP address or URL "
"of the server running the llcon server software must be set here. " "of the server running the llcon server software must be set here. "
"A list of the most recent used server URLs is available for " "A list of the most recent used server URLs is available for "
"selection. If an invalid address was chosen, an error message is " "selection. If an invalid address was chosen, an error message is "
"shown in the status bar." ); "shown in the status bar." );
TextLabelServerAddr->setWhatsThis ( strServAddrH ); TextLabelServerAddr->setWhatsThis ( strServAddrH );
LineEditServerAddr->setWhatsThis ( strServAddrH ); LineEditServerAddr->setWhatsThis ( strServAddrH );
LineEditServerAddr->setAccessibleName ( "Server address input" );
LineEditServerAddr->setAccessibleDescription ( "Holds the current server "
"URL. It also stores old URLs in the combo box list." );
// fader tag
QString strFaderTag = tr ( "<b>Fader Tag:</b> The fader tag of the local " QString strFaderTag = tr ( "<b>Fader Tag:</b> The fader tag of the local "
"client is set in the fader tag edit box. This tag will appear " "client is set in the fader tag edit box. This tag will appear "
"at your fader on the mixer board when you are connected to a llcon " "at your fader on the mixer board when you are connected to a llcon "
"server. This tag will also show up at each client which is connected " "server. This tag will also show up at each client which is connected "
"to the same server as the local client. If the fader tag is empty, " "to the same server as the local client. If the fader tag is empty, "
"the IP address of the client is displayed instead."); "the IP address of the client is displayed instead.");
TextLabelServerTag->setWhatsThis ( strFaderTag ); TextLabelServerTag->setWhatsThis ( strFaderTag );
LineEditFaderTag->setWhatsThis ( strFaderTag ); LineEditFaderTag->setWhatsThis ( strFaderTag );
LineEditFaderTag->setAccessibleName ( "Fader tag edit box" );
// local audio input fader
QString strAudFader = tr ( "<b>Local Audio Input Fader:</b> With the " QString strAudFader = tr ( "<b>Local Audio Input Fader:</b> With the "
"audio fader, the relative levels of the left and right local audio " "audio fader, the relative levels of the left and right local audio "
"channels can be changed. It acts like a panning between the two " "channels can be changed. It acts like a panning between the two "
@ -96,9 +118,11 @@ CLlconClientDlg::CLlconClientDlg ( CClient* pNCliP,
"which is much louder than the microphone, move the audio fader in " "which is much louder than the microphone, move the audio fader in "
"a direction where the label above the fader shows <i>L -x</i>, where " "a direction where the label above the fader shows <i>L -x</i>, where "
"<i>x</i> is the current attenuation indication. " ); "<i>x</i> is the current attenuation indication. " );
TextAudInFader->setWhatsThis ( strAudFader ); TextAudInFader->setWhatsThis ( strAudFader );
SliderAudInFader->setWhatsThis ( strAudFader ); SliderAudInFader->setWhatsThis ( strAudFader );
SliderAudInFader->setAccessibleName ( "Local audio input fader (left/right)" );
// reverberation level
QString strAudReverb = tr ( "<b>Reverberation Level:</b> A reverberation " QString strAudReverb = tr ( "<b>Reverberation Level:</b> A reverberation "
"effect can be applied to one local audio channel. The channel " "effect can be applied to one local audio channel. The channel "
"selection and the reverberation level can be modified. If, e.g., " "selection and the reverberation level can be modified. If, e.g., "
@ -110,16 +134,21 @@ CLlconClientDlg::CLlconClientDlg ( CClient* pNCliP,
"only be used on fast PCs. If the reverberation level fader is set to " "only be used on fast PCs. If the reverberation level fader is set to "
"minimum (which is the default setting), the reverberation effect is " "minimum (which is the default setting), the reverberation effect is "
"switched off and does not cause any additional CPU usage." ); "switched off and does not cause any additional CPU usage." );
TextLabelAudReverb->setWhatsThis ( strAudReverb ); TextLabelAudReverb->setWhatsThis ( strAudReverb );
SliderAudReverb->setWhatsThis ( strAudReverb ); SliderAudReverb->setWhatsThis ( strAudReverb );
SliderAudReverb->setAccessibleName ( "Reverberation effect level setting" );
// reverberation channel selection
QString strRevChanSel = tr ( "<b>Reverberation Channel Selection:</b> " QString strRevChanSel = tr ( "<b>Reverberation Channel Selection:</b> "
"With these radio buttons the audio input channel on which the " "With these radio buttons the audio input channel on which the "
"reverberation effect is applied can be chosen. Either the left " "reverberation effect is applied can be chosen. Either the left "
"or right input channel can be selected." ); "or right input channel can be selected." );
RadioButtonRevSelL->setWhatsThis ( strRevChanSel ); RadioButtonRevSelL->setWhatsThis ( strRevChanSel );
RadioButtonRevSelR->setWhatsThis ( strRevChanSel ); RadioButtonRevSelL->setAccessibleName ( "Left channel selection for reverberation" );
RadioButtonRevSelR->setWhatsThis ( strRevChanSel );
RadioButtonRevSelR->setAccessibleName ( "Right channel selection for reverberation" );
// overall status
LEDOverallStatus->setWhatsThis ( tr ( "<b>Overall Status:</b> " LEDOverallStatus->setWhatsThis ( tr ( "<b>Overall Status:</b> "
"The light next to the status bar shows the current audio/streaming " "The light next to the status bar shows the current audio/streaming "
"status. If the light is green, there are no buffer overruns/underruns " "status. If the light is green, there are no buffer overruns/underruns "
@ -134,6 +163,8 @@ CLlconClientDlg::CLlconClientDlg ( CClient* pNCliP,
"available internet bandwidth.</li>" "available internet bandwidth.</li>"
"<li>The CPU of the client or server is at 100%.</li>" "<li>The CPU of the client or server is at 100%.</li>"
"</ul>" ) ); "</ul>" ) );
LEDOverallStatus->setAccessibleName ( "Overall status LED indicator" );
// init GUI design // init GUI design
SetGUIDesign ( pClient->GetGUIDesign() ); SetGUIDesign ( pClient->GetGUIDesign() );
@ -219,7 +250,8 @@ CLlconClientDlg::CLlconClientDlg ( CClient* pNCliP,
// Settings menu ---------------------------------------------------------- // Settings menu ----------------------------------------------------------
pSettingsMenu = new QMenu ( "&View", this ); pSettingsMenu = new QMenu ( "&View", this );
pSettingsMenu->addAction ( tr ( "&Chat..." ), this, pSettingsMenu->setAccessibleName ( "View menu" );
QAction* test = pSettingsMenu->addAction ( tr ( "&Chat..." ), this,
SLOT ( OnOpenChatDialog() ) ); SLOT ( OnOpenChatDialog() ) );
pSettingsMenu->addAction ( tr ( "&General Settings..." ), this, pSettingsMenu->addAction ( tr ( "&General Settings..." ), this,
SLOT ( OnOpenGeneralSettings() ) ); SLOT ( OnOpenGeneralSettings() ) );
@ -231,6 +263,7 @@ CLlconClientDlg::CLlconClientDlg ( CClient* pNCliP,
// Main menu bar ----------------------------------------------------------- // Main menu bar -----------------------------------------------------------
pMenu = new QMenuBar ( this ); pMenu = new QMenuBar ( this );
pMenu->setAccessibleName ( "Main menu" );
pMenu->addMenu ( pSettingsMenu ); pMenu->addMenu ( pSettingsMenu );
pMenu->addMenu ( new CLlconHelpMenu ( this ) ); pMenu->addMenu ( new CLlconHelpMenu ( this ) );
@ -272,7 +305,7 @@ CLlconClientDlg::CLlconClientDlg ( CClient* pNCliP,
this, SLOT ( OnLineEditServerAddrTextChanged ( const QString ) ) ); this, SLOT ( OnLineEditServerAddrTextChanged ( const QString ) ) );
QObject::connect ( LineEditServerAddr, SIGNAL ( activated ( int ) ), QObject::connect ( LineEditServerAddr, SIGNAL ( activated ( int ) ),
this, SLOT ( OnLineEditServerAddrActivated ( int ) ) ); this, SLOT ( OnLineEditServerAddrActivated ( int ) ) );
// other // other
QObject::connect ( pClient, QObject::connect ( pClient,

View file

@ -500,12 +500,13 @@
</customwidget> </customwidget>
</customwidgets> </customwidgets>
<tabstops> <tabstops>
<tabstop>LineEditFaderTag</tabstop> <tabstop>LineEditServerAddr</tabstop>
<tabstop>PushButtonConnect</tabstop> <tabstop>PushButtonConnect</tabstop>
<tabstop>LineEditFaderTag</tabstop>
<tabstop>SliderAudInFader</tabstop>
<tabstop>SliderAudReverb</tabstop> <tabstop>SliderAudReverb</tabstop>
<tabstop>RadioButtonRevSelL</tabstop> <tabstop>RadioButtonRevSelL</tabstop>
<tabstop>RadioButtonRevSelR</tabstop> <tabstop>RadioButtonRevSelR</tabstop>
<tabstop>SliderAudInFader</tabstop>
</tabstops> </tabstops>
<resources> <resources>
<include location="resources.qrc" /> <include location="resources.qrc" />

View file

@ -403,6 +403,8 @@ QString CAboutDlg::GetVersionAndNameStr ( const bool bWithHtml )
// Help menu ------------------------------------------------------------------- // Help menu -------------------------------------------------------------------
CLlconHelpMenu::CLlconHelpMenu ( QWidget* parent ) : QMenu ( "&?", parent ) CLlconHelpMenu::CLlconHelpMenu ( QWidget* parent ) : QMenu ( "&?", parent )
{ {
setAccessibleName ( "Help menu" );
// standard help menu consists of about and what's this help // standard help menu consists of about and what's this help
addAction ( tr ( "What's &This" ), this, addAction ( tr ( "What's &This" ), this,
SLOT ( OnHelpWhatsThis() ), QKeySequence ( Qt::SHIFT + Qt::Key_F1 ) ); SLOT ( OnHelpWhatsThis() ), QKeySequence ( Qt::SHIFT + Qt::Key_F1 ) );

View file

@ -4,7 +4,8 @@
!define APP_EXE "llcon.exe" !define APP_EXE "llcon.exe"
!define UNINSTALL_EXE "Uninstall.exe" !define UNINSTALL_EXE "Uninstall.exe"
!define INSTALLER_NAME "llconinstaller.exe" !define INSTALLER_NAME "llconinstaller.exe"
!define VS_REDIST_PATH "C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\vcredist_x86\" ;!define VS_REDIST_PATH "C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\vcredist_x86\"
!define VS_REDIST_PATH "C:\Programme\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\vcredist_x86\"
!define VS_REDIST_EXE "vcredist_x86.exe" !define VS_REDIST_EXE "vcredist_x86.exe"
!define UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_NAME}" !define UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_NAME}"