author | harlekin <harlekin> | 2003-12-08 13:37:32 (UTC) |
---|---|---|
committer | harlekin <harlekin> | 2003-12-08 13:37:32 (UTC) |
commit | 3b37149813d940535b12ba3b1edd938c41804a1b (patch) (side-by-side diff) | |
tree | 0e35a3b28fb147514f22a6a6cb5aaf246e4c5670 /noncore/net/mail/addresspicker.cpp | |
parent | 3d49fc2f7bba9c9e8856e5f4f7ec6c15ef84c252 (diff) | |
download | opie-3b37149813d940535b12ba3b1edd938c41804a1b.zip opie-3b37149813d940535b12ba3b1edd938c41804a1b.tar.gz opie-3b37149813d940535b12ba3b1edd938c41804a1b.tar.bz2 |
beginning of the new mailer
Diffstat (limited to 'noncore/net/mail/addresspicker.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/net/mail/addresspicker.cpp | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/noncore/net/mail/addresspicker.cpp b/noncore/net/mail/addresspicker.cpp new file mode 100644 index 0000000..2c15bb4 --- a/dev/null +++ b/noncore/net/mail/addresspicker.cpp @@ -0,0 +1,130 @@ +#include <qpushbutton.h> +#include <qmessagebox.h> +#include <qtextstream.h> +#include <qlistbox.h> +#include <qfile.h> + +#include <qpe/resource.h> + +#include <stdlib.h> + +#include "composemail.h" + +AddressPicker::AddressPicker( QWidget *parent, const char *name, bool modal, WFlags flags ) + : AddressPickerUI( parent, name, modal, flags ) +{ + okButton->setIconSet( Resource::loadPixmap( "enter" ) ); + cancelButton->setIconSet( Resource::loadPixmap( "editdelete" ) ); + + connect(okButton, SIGNAL(clicked()), SLOT(accept())); + connect(cancelButton, SIGNAL(clicked()), SLOT(close())); + + QFile f((QString) getenv("HOME") + "/Applications/" + + "addressbook/addressbook.xml"); + + if ( f.open( IO_ReadOnly ) ) { + QTextStream stream( &f ); + stream.setEncoding( QTextStream::UnicodeUTF8 ); + QString content; + while ( !f.atEnd() ) { + content += stream.readLine() + "\n"; + } + QStringList lines = QStringList::split( QRegExp( "\\n" ), content ); + QStringList::Iterator it; + for ( it = lines.begin(); it != lines.end(); it++ ) { + if ( (*it).find( QRegExp( "^<Contact.*" ) ) != -1 ) { + int pos = (*it).find( "FirstName=\"" ); + QString fname; + if ( pos != -1 ) { + int i = 1; + QChar c; + while ( c != '"' ) { + c = (*it)[pos + 10 + i]; + if ( c != '"' ) fname += c; + i++; + } + } + pos = (*it).find( "LastName=\"" ); + QString lname; + if ( pos != -1 ) { + int i = 1; + QChar c; + while ( c != '"' ) { + c = (*it)[pos + 9 + i]; + if ( c != '"' ) lname += c; + i++; + } + } + pos = (*it).find( "DefaultEmail=\"" ); + QString email; + if ( pos != -1 ) { + int i = 1; + QChar c; + while ( c != '"' ) { + c = (*it)[pos + 13 + i]; + if ( c != '"' ) email += c; + i++; + } + } + QString tname, temail; + if ( !fname.isEmpty() ) { + tname += fname; + } + if ( !lname.isEmpty() ) { + tname += fname.isEmpty() ? lname : (" " + lname); + } + if ( !email.isEmpty() ) { + temail += tname.isEmpty() ? email : (" <" + email + ">"); + } + if ( !email.isEmpty() ) { + addressList->insertItem( tname + temail ); + } + } + } + } + if ( addressList->count() <= 0 ) { + addressList->insertItem( + tr( "There are no entries in the addressbook." ) ); + addressList->setEnabled( false ); + okButton->setEnabled( false ); + } +} + +void AddressPicker::accept() +{ + QListBoxItem *item = addressList->firstItem(); + QString names; + + while ( item ) { + if ( item->selected() ) + names += item->text() + ", "; + item = item->next(); + } + names.replace( names.length() - 2, 2, "" ); + + if ( names.isEmpty() ) { + QMessageBox::information(this, tr("Error"), tr("<p>You have to select" + " at least one address entry.</p>"), tr("Ok")); + return; + } + + selectedNames = names; + QDialog::accept(); +} + +QString AddressPicker::getNames() +{ + QString names = 0; + + AddressPicker picker(0, 0, true); + picker.showMaximized(); + picker.show(); + + int ret = picker.exec(); + if ( QDialog::Accepted == ret ) { + return picker.selectedNames; + } + + return 0; +} + |