From a6d58bb6052ac8cb01805a48c4ad2f129126116f Mon Sep 17 00:00:00 2001 From: tpearson Date: Wed, 24 Feb 2010 02:13:59 +0000 Subject: Added KDE3 version of kvirc git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/kvirc@1095341 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- src/modules/options/optw_sound.cpp | 310 +++++++++++++++++++++++++++++++++++++ 1 file changed, 310 insertions(+) create mode 100644 src/modules/options/optw_sound.cpp (limited to 'src/modules/options/optw_sound.cpp') diff --git a/src/modules/options/optw_sound.cpp b/src/modules/options/optw_sound.cpp new file mode 100644 index 00000000..9fec0a0c --- /dev/null +++ b/src/modules/options/optw_sound.cpp @@ -0,0 +1,310 @@ +//============================================================================= +// +// File : optw_sound.cpp +// Creation date : Fri Sep 6 02:18:23 2002 GMT by Szymon Stefanek +// +// This file is part of the KVsound sound client distribution +// Copyright (C) 2002-2006 Szymon Stefanek (pragma at kvsound dot net) +// +// This program is FREE software. You can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation; either version 2 +// of the License, or (at your opinion) any later version. +// +// This program is distributed in the HOPE that it will be USEFUL, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +// See the GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, write to the Free Software Foundation, +// Inc. ,51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +// +//============================================================================= + +#include "optw_sound.h" + +#include "kvi_settings.h" +#include "kvi_locale.h" +#include "kvi_options.h" +#include "kvi_modulemanager.h" +#include "kvi_pointerlist.h" +#include "kvi_string.h" + +#include +#include +#include "kvi_tal_hbox.h" + +#ifdef COMPILE_INFO_TIPS + #include "kvi_tal_tooltip.h" +#endif + +// FIXME: This module doesn't Cancel properly when auto-detection is performed! + + + +KviSoundOptionsWidget::KviSoundOptionsWidget(QWidget * pParent) +: KviOptionsWidget(pParent) +{ +} + +KviSoundOptionsWidget::~KviSoundOptionsWidget() +{ +} + + +KviSoundGeneralOptionsWidget::KviSoundGeneralOptionsWidget(QWidget * parent) +: KviOptionsWidget(parent,"sound_system_options_widget") +{ +#ifdef COMPILE_ON_WINDOWS + createLayout(4,1); +#else + createLayout(3,1); +#endif + KviTalGroupBox * g = addGroupBox(0,0,0,0,1,Qt::Horizontal,__tr2qs_ctx("Sound System","options"),true); + + KviTalToolTip::add(g,__tr2qs_ctx("This allows you to select the sound system to be used with KVIrc.","options")); + + KviTalHBox * h = new KviTalHBox(g); + + m_pSoundSystemBox = new QComboBox(false,h); + + m_pSoundAutoDetectButton = new QPushButton(__tr2qs_ctx("Auto-detect","options"),h); + connect(m_pSoundAutoDetectButton,SIGNAL(clicked()),this,SLOT(soundAutoDetect())); + + m_pSoundTestButton = new QPushButton(__tr2qs_ctx("Test","options"),h); + connect(m_pSoundTestButton,SIGNAL(clicked()),this,SLOT(soundTest())); + + + g = addGroupBox(0,1,0,1,1,Qt::Horizontal,__tr2qs_ctx("Media Player","options"),true); + + KviTalToolTip::add(g,__tr2qs_ctx("This allows you to select the preferred media player to be used with " \ + "the mediaplayer.* module commands and functions.","options")); + + h = new KviTalHBox(g); + + m_pMediaPlayerBox = new QComboBox(false,h); + + m_pMediaAutoDetectButton = new QPushButton(__tr2qs_ctx("Auto-detect","options"),h); + connect(m_pMediaAutoDetectButton,SIGNAL(clicked()),this,SLOT(mediaAutoDetect())); + + m_pMediaTestButton = new QPushButton(__tr2qs_ctx("Test","options"),h); + connect(m_pMediaTestButton,SIGNAL(clicked()),this,SLOT(mediaTest())); + + addRowSpacer(0,2,0,2); + + soundFillBox(); + mediaFillBox(); + // FIXME! + m_pSoundTestButton->setEnabled(false); + m_pMediaTestButton->setEnabled(false); + + g = addGroupBox(0,2,0,2,1,Qt::Horizontal,__tr2qs_ctx("ID3 tags' encoding","options"),true); + + KviTalToolTip::add(g,__tr2qs_ctx("This allows you to select encoding of mp3 tags.","options")); + + h = new KviTalHBox(g); + + m_pTagsEncodingCombo = new QComboBox(false,h); + m_pTagsEncodingCombo->insertItem(__tr2qs_ctx("Use Language Encoding","options")); + + int i = 0; + int iMatch = 0; + + KviLocale::EncodingDescription * d = KviLocale::encodingDescription(i); + while(d->szName) + { + if(KviQString::equalCI(d->szName,KVI_OPTION_STRING(KviOption_stringMp3TagsEncoding)))iMatch = i + 1; + m_pTagsEncodingCombo->insertItem(d->szName); + i++; + d = KviLocale::encodingDescription(i); + } + m_pTagsEncodingCombo->setCurrentItem(iMatch); + +#ifdef COMPILE_ON_WINDOWS + g = addGroupBox(0,3,0,3,1,Qt::Horizontal,__tr2qs_ctx("Winamp messages ecoding","options"),true); + + KviTalToolTip::add(g,__tr2qs_ctx("This allows you to select encoding of winamp messages.","options")); + + h = new KviTalHBox(g); + + m_pWinampEncodingCombo = new QComboBox(false,h); + + m_pWinampEncodingCombo->insertItem(__tr2qs_ctx("Use Language Encoding","options")); + i = 0; + iMatch = 0; + + d = KviLocale::encodingDescription(i); + while(d->szName) + { + if(KviQString::equalCI(d->szName,KVI_OPTION_STRING(KviOption_stringWinampTextEncoding)))iMatch = i + 1; + m_pWinampEncodingCombo->insertItem(d->szName); + i++; + d = KviLocale::encodingDescription(i); + } + m_pWinampEncodingCombo->setCurrentItem(iMatch); +#endif +} + + +KviSoundGeneralOptionsWidget::~KviSoundGeneralOptionsWidget() +{ +} + +void KviSoundGeneralOptionsWidget::soundTest() +{ +} + +void KviSoundGeneralOptionsWidget::mediaTest() +{ +} + + +void KviSoundGeneralOptionsWidget::soundAutoDetect() +{ + KviModule * m = g_pModuleManager->getModule("snd"); + if(!m)return; + m->ctrl("detectSoundSystem",0); + soundFillBox(); +} + +void KviSoundGeneralOptionsWidget::mediaAutoDetect() +{ + KviModule * m = g_pModuleManager->getModule("mediaplayer"); + if(!m)return; + m->ctrl("detectMediaPlayer",0); + mediaFillBox(); +} + + +void KviSoundGeneralOptionsWidget::soundFillBox() +{ + + QStringList l; + QStringList::Iterator it; + int cnt; + int i; + KviModule * m = g_pModuleManager->getModule("snd"); + + + if(!m)goto disable; + + + if(!m->ctrl("getAvailableSoundSystems",&l))goto disable; + + m_pSoundSystemBox->clear(); + + for ( it = l.begin(); it != l.end(); ++it ) + { + m_pSoundSystemBox->insertItem(*it); + } + + cnt = m_pSoundSystemBox->count(); + + for(i=0;itext(i); + if(KviQString::equalCI(t,KVI_OPTION_STRING(KviOption_stringSoundSystem))) + { + m_pSoundSystemBox->setCurrentItem(i); + break; + } + } + + return; +disable: + m_pSoundSystemBox->clear(); + m_pSoundSystemBox->setEnabled(false); + m_pSoundTestButton->setEnabled(false); + m_pSoundAutoDetectButton->setEnabled(false); +} + +void KviSoundGeneralOptionsWidget::mediaFillBox() +{ + QStringList l; + QStringList::Iterator it; + int cnt; + int i; + KviModule * m = g_pModuleManager->getModule("mediaplayer"); + + if(!m)goto disable; + if(!m->ctrl("getAvailableMediaPlayers",&l))goto disable; + m_pMediaPlayerBox->clear(); + for ( it = l.begin(); it != l.end(); ++it ) + { + m_pMediaPlayerBox->insertItem(*it); + } + cnt = m_pMediaPlayerBox->count(); + + for(i=0;itext(i); + if(KviQString::equalCI(t,KVI_OPTION_STRING(KviOption_stringPreferredMediaPlayer))) + { + m_pMediaPlayerBox->setCurrentItem(i); + break; + } + } + + return; +disable: + m_pMediaPlayerBox->clear(); + m_pMediaPlayerBox->setEnabled(false); + m_pMediaTestButton->setEnabled(false); + m_pMediaAutoDetectButton->setEnabled(false); +} + + +void KviSoundGeneralOptionsWidget::commit() +{ + KviOptionsWidget::commit(); + KVI_OPTION_STRING(KviOption_stringSoundSystem) = m_pSoundSystemBox->currentText(); + KVI_OPTION_STRING(KviOption_stringPreferredMediaPlayer) = m_pMediaPlayerBox->currentText(); + + int idx = m_pTagsEncodingCombo->currentItem(); + if(idx <= 0) + { + // guess from locale + KVI_OPTION_STRING(KviOption_stringMp3TagsEncoding) = ""; + } else { + KVI_OPTION_STRING(KviOption_stringMp3TagsEncoding) = m_pTagsEncodingCombo->text(idx); + } + + +#ifdef COMPILE_ON_WINDOWS + idx = m_pWinampEncodingCombo->currentItem(); + if(idx <= 0) + { + // guess from locale + KVI_OPTION_STRING(KviOption_stringWinampTextEncoding) = ""; + } else { + KVI_OPTION_STRING(KviOption_stringWinampTextEncoding) = m_pWinampEncodingCombo->text(idx); + } +#endif +} + +KviSoundsOptionsWidget::KviSoundsOptionsWidget(QWidget * parent) +: KviOptionsWidget(parent,"sound_options_widget") +{ + createLayout(5,2); + addLabel(0,0,0,0,__tr2qs_ctx("New Query opened","options")); + addSoundSelector(1,0,1,0,"",KviOption_stringOnNewQueryOpenedSound); + + addLabel(0,1,0,1,__tr2qs_ctx("New message in inactive query","options")); + addSoundSelector(1,1,1,1,"",KviOption_stringOnQueryMessageSound); + + addLabel(0,2,0,2,__tr2qs_ctx("Highlighted message in inactive window","options")); + addSoundSelector(1,2,1,2,"",KviOption_stringOnHighlightedMessageSound); + + addLabel(0,3,0,3,__tr2qs_ctx("Me have been kicked","options")); + addSoundSelector(1,3,1,3,"",KviOption_stringOnMeKickedSound); + + addRowSpacer(0,4,1,4); + +} + +KviSoundsOptionsWidget::~KviSoundsOptionsWidget() +{ +} + +#include "m_optw_sound.moc" -- cgit v1.2.1