kmail
kmfawidgets.cpp00001
00002
00003
00004
00005 #ifdef HAVE_CONFIG_H
00006 #include <config.h>
00007 #endif
00008
00009 #include "kmfawidgets.h"
00010
00011 #include <kabc/addresseedialog.h>
00012 #include <kiconloader.h>
00013 #include <klocale.h>
00014 #include <kaudioplayer.h>
00015 #include <kurlrequester.h>
00016 #include <kfiledialog.h>
00017 #include <kstandarddirs.h>
00018
00019 #include <tqlayout.h>
00020 #include <tqtooltip.h>
00021
00022
00023
00024
00025
00026
00027
00028 KMFilterActionWithAddressWidget::KMFilterActionWithAddressWidget( TQWidget* parent, const char* name )
00029 : TQWidget( parent, name )
00030 {
00031 TQHBoxLayout *hbl = new TQHBoxLayout(this);
00032 hbl->setSpacing(4);
00033 mLineEdit = new KLineEdit(this);
00034 mLineEdit->setName( "addressEdit" );
00035 hbl->addWidget( mLineEdit, 1 );
00036 mBtn = new TQPushButton( TQString() ,this );
00037 mBtn->setPixmap( BarIcon( "contents", KIcon::SizeSmall ) );
00038 mBtn->setFixedHeight( mLineEdit->sizeHint().height() );
00039 TQToolTip::add( mBtn, i18n( "Open Address Book" ) );
00040 hbl->addWidget( mBtn );
00041
00042 connect( mBtn, TQT_SIGNAL(clicked()),
00043 this, TQT_SLOT(slotAddrBook()) );
00044 connect( mLineEdit, TQT_SIGNAL( textChanged(const TQString&) ),
00045 this, TQT_SIGNAL( textChanged(const TQString&) ) );
00046 }
00047
00048 void KMFilterActionWithAddressWidget::slotAddrBook()
00049 {
00050 KABC::Addressee::List lst = KABC::AddresseeDialog::getAddressees( this );
00051
00052 if ( lst.empty() )
00053 return;
00054
00055 TQStringList addrList;
00056
00057 for( KABC::Addressee::List::const_iterator it = lst.begin(); it != lst.end(); ++it )
00058 addrList << (*it).fullEmail();
00059
00060 TQString txt = mLineEdit->text().stripWhiteSpace();
00061
00062 if ( !txt.isEmpty() ) {
00063 if ( !txt.endsWith( "," ) )
00064 txt += ", ";
00065 else
00066 txt += ' ';
00067 }
00068
00069 mLineEdit->setText( txt + addrList.join(",") );
00070 }
00071
00072 KMSoundTestWidget::KMSoundTestWidget(TQWidget *parent, const char *name)
00073 : TQWidget( parent, name)
00074 {
00075 TQHBoxLayout *lay1 = new TQHBoxLayout( this );
00076 m_playButton = new TQPushButton( this, "m_playButton" );
00077 m_playButton->setPixmap( SmallIcon( "1rightarrow" ) );
00078 connect( m_playButton, TQT_SIGNAL( clicked() ), TQT_SLOT( playSound() ));
00079 lay1->addWidget( m_playButton );
00080
00081 m_urlRequester = new KURLRequester( this );
00082 lay1->addWidget( m_urlRequester );
00083 connect( m_urlRequester, TQT_SIGNAL( openFileDialog( KURLRequester * )),
00084 TQT_SLOT( openSoundDialog( KURLRequester * )));
00085 connect( m_urlRequester->lineEdit(), TQT_SIGNAL( textChanged ( const TQString & )), TQT_SLOT( slotUrlChanged(const TQString & )));
00086 slotUrlChanged(m_urlRequester->lineEdit()->text() );
00087 }
00088
00089 KMSoundTestWidget::~KMSoundTestWidget()
00090 {
00091 }
00092
00093 void KMSoundTestWidget::slotUrlChanged(const TQString &_text )
00094 {
00095 m_playButton->setEnabled( !_text.isEmpty());
00096 }
00097
00098 void KMSoundTestWidget::openSoundDialog( KURLRequester * )
00099 {
00100 static bool init = true;
00101 if ( !init )
00102 return;
00103
00104 init = false;
00105
00106 KFileDialog *fileDialog = m_urlRequester->fileDialog();
00107 fileDialog->setCaption( i18n("Select Sound File") );
00108 TQStringList filters;
00109 filters << "audio/x-wav" << "audio/x-mp3" << "application/x-ogg"
00110 << "audio/x-adpcm";
00111 fileDialog->setMimeFilter( filters );
00112
00113 TQStringList soundDirs = KGlobal::dirs()->resourceDirs( "sound" );
00114
00115 if ( !soundDirs.isEmpty() ) {
00116 KURL soundURL;
00117 TQDir dir;
00118 dir.setFilter( TQDir::Files | TQDir::Readable );
00119 TQStringList::ConstIterator it = soundDirs.begin();
00120 while ( it != soundDirs.end() ) {
00121 dir = *it;
00122 if ( dir.isReadable() && dir.count() > 2 ) {
00123 soundURL.setPath( *it );
00124 fileDialog->setURL( soundURL );
00125 break;
00126 }
00127 ++it;
00128 }
00129 }
00130
00131 }
00132
00133 void KMSoundTestWidget::playSound()
00134 {
00135 TQString parameter= m_urlRequester->lineEdit()->text();
00136 if ( parameter.isEmpty() )
00137 return ;
00138 TQString play = parameter;
00139 TQString file = TQString::fromLatin1("file:");
00140 if (parameter.startsWith(file))
00141 play = parameter.mid(file.length());
00142 KAudioPlayer::play(TQFile::encodeName(play));
00143 }
00144
00145
00146 TQString KMSoundTestWidget::url() const
00147 {
00148 return m_urlRequester->lineEdit()->text();
00149 }
00150
00151 void KMSoundTestWidget::setUrl(const TQString & url)
00152 {
00153 m_urlRequester->lineEdit()->setText(url);
00154 }
00155
00156 void KMSoundTestWidget::clear()
00157 {
00158 m_urlRequester->lineEdit()->clear();
00159 }
00160
00161
00162 #include "kmfawidgets.moc"
|