summaryrefslogtreecommitdiff
authorar <ar>2004-02-21 15:27:41 (UTC)
committer ar <ar>2004-02-21 15:27:41 (UTC)
commit460258f203be746ff79e14f32a823f381b8ea513 (patch) (side-by-side diff)
tree87dddbacda3050027d343730cf021b53045e80cb
parent76b70b355d2c1c32c0f74e844e0654e39db2a175 (diff)
downloadopie-460258f203be746ff79e14f32a823f381b8ea513.zip
opie-460258f203be746ff79e14f32a823f381b8ea513.tar.gz
opie-460258f203be746ff79e14f32a823f381b8ea513.tar.bz2
improve support for BigScreen
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/accountitem.cpp309
-rw-r--r--noncore/net/mail/accountview.cpp48
-rw-r--r--noncore/net/mail/addresspicker.cpp120
-rw-r--r--noncore/net/mail/editaccounts.cpp183
-rw-r--r--noncore/net/mail/opiemail.cpp113
-rw-r--r--noncore/net/mail/viewmail.cpp513
-rw-r--r--noncore/net/opieirc/ircservereditor.cpp10
-rw-r--r--noncore/net/opieirc/ircserverlist.cpp76
-rw-r--r--noncore/net/opieirc/ircsettings.cpp22
-rw-r--r--noncore/net/opietooth/blue-pin/pindlg.cc41
-rw-r--r--noncore/net/opietooth/manager/bluebase.cpp261
-rw-r--r--noncore/net/opietooth/manager/obexpopup.cpp22
-rw-r--r--noncore/net/opietooth/manager/rfcommassigndialogimpl.cpp51
-rw-r--r--noncore/net/opietooth/manager/rfcpopup.cpp49
-rw-r--r--noncore/net/wellenreiter/gui/mainwindow.cpp5
15 files changed, 1100 insertions, 723 deletions
diff --git a/noncore/net/mail/accountitem.cpp b/noncore/net/mail/accountitem.cpp
index 2d3cd4b..c8f6ec4 100644
--- a/noncore/net/mail/accountitem.cpp
+++ b/noncore/net/mail/accountitem.cpp
@@ -1,842 +1,927 @@
+
#include "accountitem.h"
#include "accountview.h"
-#include <qpopupmenu.h>
-#include <qmessagebox.h>
#include "selectstore.h"
#include "newmaildir.h"
+#include "defines.h"
+
+/* OPIE */
#include <libmailwrapper/mailtypes.h>
#include <libmailwrapper/abstractmail.h>
#include <libmailwrapper/mailwrapper.h>
-#include "defines.h"
+#include <qpe/qpeapplication.h>
+
+/* QT */
+#include <qpopupmenu.h>
+#include <qmessagebox.h>
#define SETPIX(x) if (!account->getOffline()) {setPixmap( 0,x);} else {setPixmap( 0, PIXMAP_OFFLINE );}
/**
* POP3 Account stuff
*/
POP3viewItem::POP3viewItem( POP3account *a, AccountView *parent )
- : AccountViewItem( parent )
+ : AccountViewItem( parent )
{
account = a;
wrapper = AbstractMail::getWrapper( account );
SETPIX(PIXMAP_POP3FOLDER);
#if 0
- if (!account->getOffline()) {
+ if (!account->getOffline())
+ {
setPixmap( 0, );
- } else {
+ }
+ else
+ {
setPixmap( 0, PIXMAP_OFFLINE );
}
#endif
setText( 0, account->getAccountName() );
setOpen( true );
}
POP3viewItem::~POP3viewItem()
{
delete wrapper;
}
AbstractMail *POP3viewItem::getWrapper()
{
return wrapper;
}
void POP3viewItem::refresh( QList<RecMail> & )
{
refresh();
}
void POP3viewItem::refresh()
{
if (account->getOffline()) return;
QList<Folder> *folders = wrapper->listFolders();
QListViewItem *child = firstChild();
- while ( child ) {
+ while ( child )
+ {
QListViewItem *tmp = child;
child = child->nextSibling();
delete tmp;
}
Folder *it;
QListViewItem*item = 0;
- for ( it = folders->first(); it; it = folders->next() ) {
+ for ( it = folders->first(); it; it = folders->next() )
+ {
item = new POP3folderItem( it, this , item );
item->setSelectable(it->may_select());
}
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
folders->setAutoDelete(false);
delete folders;
}
RecBody POP3viewItem::fetchBody( const RecMail &mail )
{
qDebug( "POP3 fetchBody" );
return wrapper->fetchBody( mail );
}
QPopupMenu * POP3viewItem::getContextMenu()
{
QPopupMenu *m = new QPopupMenu(0);
- if (m) {
- if (!account->getOffline()) {
+ if (m)
+ {
+ if (!account->getOffline())
+ {
m->insertItem(QObject::tr("Disconnect",contextName),0);
m->insertItem(QObject::tr("Set offline",contextName),1);
- } else {
+ }
+ else
+ {
m->insertItem(QObject::tr("Set online",contextName),1);
}
}
return m;
}
void POP3viewItem::disconnect()
{
QListViewItem *child = firstChild();
- while ( child ) {
+ while ( child )
+ {
QListViewItem *tmp = child;
child = child->nextSibling();
delete tmp;
}
wrapper->logout();
}
void POP3viewItem::setOnOffline()
{
- if (!account->getOffline()) {
+ if (!account->getOffline())
+ {
disconnect();
}
account->setOffline(!account->getOffline());
account->save();
SETPIX(PIXMAP_POP3FOLDER);
refresh();
}
void POP3viewItem::contextMenuSelected(int which)
{
- switch (which) {
+ switch (which)
+ {
case 0:
disconnect();
break;
case 1:
setOnOffline();
break;
}
}
POP3folderItem::~POP3folderItem()
-{
-}
+{}
POP3folderItem::POP3folderItem( Folder *folderInit, POP3viewItem *parent , QListViewItem*after )
- : AccountViewItem( parent,after )
+ : AccountViewItem( parent,after )
{
folder = folderInit;
pop3 = parent;
- if (folder->getDisplayName().lower()!="inbox") {
+ if (folder->getDisplayName().lower()!="inbox")
+ {
setPixmap( 0, PIXMAP_POP3FOLDER );
- } else {
+ }
+ else
+ {
setPixmap( 0, PIXMAP_INBOXFOLDER);
}
setText( 0, folder->getDisplayName() );
}
void POP3folderItem::refresh(QList<RecMail>&target)
{
if (folder->may_select())
pop3->getWrapper()->listMessages( folder->getName(),target );
}
RecBody POP3folderItem::fetchBody(const RecMail&aMail)
{
return pop3->getWrapper()->fetchBody(aMail);
}
QPopupMenu * POP3folderItem::getContextMenu()
{
QPopupMenu *m = new QPopupMenu(0);
- if (m) {
+ if (m)
+ {
m->insertItem(QObject::tr("Refresh header list",contextName),0);
m->insertItem(QObject::tr("Delete all mails",contextName),1);
m->insertItem(QObject::tr("Move/Copie all mails",contextName),2);
}
return m;
}
void POP3folderItem::downloadMails()
{
AccountView*bl = pop3->accountView();
if (!bl) return;
bl->downloadMails(folder,pop3->getWrapper());
}
void POP3folderItem::contextMenuSelected(int which)
{
AccountView * view = (AccountView*)listView();
- switch (which) {
+ switch (which)
+ {
case 0:
/* must be 'cause pop3 lists are cached */
pop3->getWrapper()->logout();
view->refreshCurrent();
break;
case 1:
deleteAllMail(pop3->getWrapper(),folder);
break;
case 2:
downloadMails();
break;
default:
break;
}
}
/**
* IMAP Account stuff
*/
IMAPviewItem::IMAPviewItem( IMAPaccount *a, AccountView *parent )
- : AccountViewItem( parent )
+ : AccountViewItem( parent )
{
account = a;
wrapper = AbstractMail::getWrapper( account );
SETPIX(PIXMAP_IMAPFOLDER);
setText( 0, account->getAccountName() );
setOpen( true );
}
IMAPviewItem::~IMAPviewItem()
{
delete wrapper;
}
AbstractMail *IMAPviewItem::getWrapper()
{
return wrapper;
}
void IMAPviewItem::refresh(QList<RecMail>&)
{
refreshFolders(false);
}
const QStringList&IMAPviewItem::subFolders()
{
return currentFolders;
}
void IMAPviewItem::refreshFolders(bool force)
{
if (childCount()>0 && force==false) return;
- if (account->getOffline()) return;
+ if (account->getOffline()) return;
removeChilds();
currentFolders.clear();
QList<Folder> *folders = wrapper->listFolders();
Folder *it;
QListViewItem*item = 0;
QListViewItem*titem = 0;
QString fname,del,search;
int pos;
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
folders->setAutoDelete(false);
- for ( it = folders->first(); it; it = folders->next() ) {
- if (it->getDisplayName().lower()=="inbox") {
+ for ( it = folders->first(); it; it = folders->next() )
+ {
+ if (it->getDisplayName().lower()=="inbox")
+ {
item = new IMAPfolderItem( it, this , item );
folders->remove(it);
qDebug("inbox found");
break;
}
}
- for ( it = folders->first(); it; it = folders->next() ) {
+ for ( it = folders->first(); it; it = folders->next() )
+ {
fname = it->getDisplayName();
currentFolders.append(it->getName());
pos = fname.findRev(it->Separator());
- if (pos != -1) {
+ if (pos != -1)
+ {
fname = fname.left(pos);
}
IMAPfolderItem*pitem = (IMAPfolderItem*)findSubItem(fname);
- if (pitem) {
+ if (pitem)
+ {
titem = item;
item = new IMAPfolderItem(it,pitem,pitem->firstChild(),this);
/* setup the short name */
item->setText(0,it->getDisplayName().right(it->getDisplayName().length()-pos-1));
item = titem;
- } else {
+ }
+ else
+ {
item = new IMAPfolderItem( it, this , item );
}
}
delete folders;
}
QPopupMenu * IMAPviewItem::getContextMenu()
{
QPopupMenu *m = new QPopupMenu(0);
- if (m) {
- if (!account->getOffline()) {
+ if (m)
+ {
+ if (!account->getOffline())
+ {
m->insertItem(QObject::tr("Refresh folder list",contextName),0);
m->insertItem(QObject::tr("Create new folder",contextName),1);
m->insertSeparator();
m->insertItem(QObject::tr("Disconnect",contextName),2);
m->insertItem(QObject::tr("Set offline",contextName),3);
- } else {
+ }
+ else
+ {
m->insertItem(QObject::tr("Set online",contextName),3);
}
}
return m;
}
void IMAPviewItem::createNewFolder()
{
Newmdirdlg ndirdlg;
- ndirdlg.showMaximized();
- if (ndirdlg.exec()) {
+ if ( QPEApplication::execDialog( &ndirdlg ))
+ {
QString ndir = ndirdlg.Newdir();
bool makesubs = ndirdlg.subpossible();
QString delemiter = "/";
IMAPfolderItem*item = (IMAPfolderItem*)firstChild();
- if (item) {
+ if (item)
+ {
delemiter = item->Delemiter();
}
- if (wrapper->createMbox(ndir,0,delemiter,makesubs)) {
+ if (wrapper->createMbox(ndir,0,delemiter,makesubs))
+ {
refreshFolders(true);
}
}
}
void IMAPviewItem::contextMenuSelected(int id)
{
qDebug("Id selected: %i",id);
- switch (id) {
+ switch (id)
+ {
case 0:
refreshFolders(true);
break;
case 1:
createNewFolder();
break;
case 2:
removeChilds();
wrapper->logout();
break;
case 3:
- if (account->getOffline()==false) {
+ if (account->getOffline()==false)
+ {
removeChilds();
wrapper->logout();
}
account->setOffline(!account->getOffline());
account->save();
SETPIX(PIXMAP_IMAPFOLDER);
refreshFolders(false);
- break;
+ break;
default:
break;
}
}
RecBody IMAPviewItem::fetchBody(const RecMail&)
{
return RecBody();
}
bool IMAPviewItem::offline()
{
return account->getOffline();
}
IMAPfolderItem::IMAPfolderItem( Folder *folderInit, IMAPviewItem *parent , QListViewItem*after )
- : AccountViewItem( parent , after )
+ : AccountViewItem( parent , after )
{
folder = folderInit;
imap = parent;
- if (folder->getDisplayName().lower()!="inbox") {
+ if (folder->getDisplayName().lower()!="inbox")
+ {
setPixmap( 0, PIXMAP_IMAPFOLDER );
- } else {
+ }
+ else
+ {
setPixmap( 0, PIXMAP_INBOXFOLDER);
}
setText( 0, folder->getDisplayName() );
}
IMAPfolderItem::IMAPfolderItem( Folder *folderInit, IMAPfolderItem *parent , QListViewItem*after, IMAPviewItem *master )
- : AccountViewItem( parent,after )
+ : AccountViewItem( parent,after )
{
folder = folderInit;
imap = master;
- if (folder->getDisplayName().lower()!="inbox") {
+ if (folder->getDisplayName().lower()!="inbox")
+ {
setPixmap( 0, PIXMAP_IMAPFOLDER );
- } else {
+ }
+ else
+ {
setPixmap( 0, PIXMAP_INBOXFOLDER);
}
setText( 0, folder->getDisplayName() );
}
IMAPfolderItem::~IMAPfolderItem()
-{
-}
+{}
const QString& IMAPfolderItem::Delemiter()const
{
return folder->Separator();
}
void IMAPfolderItem::refresh(QList<RecMail>&target)
{
- if (folder->may_select()) {
+ if (folder->may_select())
+ {
imap->getWrapper()->listMessages( folder->getName(),target );
- } else {
+ }
+ else
+ {
target.clear();
}
}
RecBody IMAPfolderItem::fetchBody(const RecMail&aMail)
{
return imap->getWrapper()->fetchBody(aMail);
}
QPopupMenu * IMAPfolderItem::getContextMenu()
{
QPopupMenu *m = new QPopupMenu(0);
- if (m) {
- if (folder->may_select()) {
+ if (m)
+ {
+ if (folder->may_select())
+ {
m->insertItem(QObject::tr("Refresh header list",contextName),0);
m->insertItem(QObject::tr("Move/Copie all mails",contextName),4);
m->insertItem(QObject::tr("Delete all mails",contextName),1);
}
- if (folder->no_inferior()==false) {
+ if (folder->no_inferior()==false)
+ {
m->insertItem(QObject::tr("Create new subfolder",contextName),2);
}
- if (folder->getDisplayName().lower()!="inbox") {
+ if (folder->getDisplayName().lower()!="inbox")
+ {
m->insertItem(QObject::tr("Delete folder",contextName),3);
}
}
return m;
}
void IMAPfolderItem::createNewFolder()
{
Newmdirdlg ndirdlg;
- ndirdlg.showMaximized();
- if (ndirdlg.exec()) {
+ if ( QPEApplication::execDialog( &ndirdlg ) )
+ {
QString ndir = ndirdlg.Newdir();
bool makesubs = ndirdlg.subpossible();
QString delemiter = Delemiter();
- if (imap->wrapper->createMbox(ndir,folder,delemiter,makesubs)) {
+ if (imap->wrapper->createMbox(ndir,folder,delemiter,makesubs))
+ {
imap->refreshFolders(true);
}
}
}
void IMAPfolderItem::deleteFolder()
{
int yesno = QMessageBox::warning(0,QObject::tr("Delete folder",contextName),
- QObject::tr("<center>Realy delete folder <br><b>%1</b><br>and all if it content?</center>",contextName).arg(folder->getDisplayName()),
- QObject::tr("Yes",contextName),
- QObject::tr("No",contextName),QString::null,1,1);
+ QObject::tr("<center>Realy delete folder <br><b>%1</b><br>and all if it content?</center>",contextName).arg(folder->getDisplayName()),
+ QObject::tr("Yes",contextName),
+ QObject::tr("No",contextName),QString::null,1,1);
qDebug("Auswahl: %i",yesno);
- if (yesno == 0) {
- if (imap->getWrapper()->deleteMbox(folder)) {
+ if (yesno == 0)
+ {
+ if (imap->getWrapper()->deleteMbox(folder))
+ {
QListView*v=listView();
IMAPviewItem * box = imap;
/* be carefull - after that this object is destroyd so don't use
* any member of it after that call!!*/
imap->refreshFolders(true);
- if (v) {
+ if (v)
+ {
v->setSelected(box,true);
}
}
}
}
void IMAPfolderItem::downloadMails()
{
AccountView*bl = imap->accountView();
if (!bl) return;
bl->downloadMails(folder,imap->getWrapper());
}
void IMAPfolderItem::contextMenuSelected(int id)
{
qDebug("Selected id: %i",id);
AccountView * view = (AccountView*)listView();
- switch(id) {
+ switch(id)
+ {
case 0:
view->refreshCurrent();
break;
case 1:
deleteAllMail(imap->getWrapper(),folder);
break;
case 2:
createNewFolder();
break;
case 3:
deleteFolder();
break;
case 4:
downloadMails();
break;
default:
break;
}
}
/**
* MH Account stuff
*/
/* MH is a little bit different - the top folder can contains messages other than in IMAP and
POP3 and MBOX */
MHviewItem::MHviewItem( const QString&aPath, AccountView *parent )
- : AccountViewItem( parent )
+ : AccountViewItem( parent )
{
m_Path = aPath;
/* be carefull - the space within settext is wanted - thats why the string twice */
wrapper = AbstractMail::getWrapper( m_Path,"Local Folders");
setPixmap( 0, PIXMAP_LOCALFOLDER );
setText( 0, " Local Folders" );
setOpen( true );
folder = 0;
}
MHviewItem::~MHviewItem()
{
delete wrapper;
}
AbstractMail *MHviewItem::getWrapper()
{
return wrapper;
}
void MHviewItem::refresh( QList<RecMail> & target)
{
refresh(false);
getWrapper()->listMessages( "",target );
}
void MHviewItem::refresh(bool force)
{
if (childCount()>0 && force==false) return;
removeChilds();
currentFolders.clear();
QList<Folder> *folders = wrapper->listFolders();
Folder *it;
MHfolderItem*item = 0;
MHfolderItem*pmaster = 0;
QString fname = "";
int pos;
- for ( it = folders->first(); it; it = folders->next() ) {
+ for ( it = folders->first(); it; it = folders->next() )
+ {
fname = it->getDisplayName();
/* this folder itself */
- if (fname=="/") {
+ if (fname=="/")
+ {
currentFolders.append(fname);
folder = it;
continue;
}
currentFolders.append(fname);
pos = fname.findRev("/");
- if (pos > 0) {
+ if (pos > 0)
+ {
fname = fname.left(pos);
pmaster = (MHfolderItem*)findSubItem(fname);
- } else {
+ }
+ else
+ {
pmaster = 0;
}
- if (pmaster) {
+ if (pmaster)
+ {
item = new MHfolderItem( it, pmaster, item, this );
- } else {
+ }
+ else
+ {
item = new MHfolderItem( it, this , item );
}
item->setSelectable(it->may_select());
}
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
folders->setAutoDelete(false);
delete folders;
}
RecBody MHviewItem::fetchBody( const RecMail &mail )
{
qDebug( "MH fetchBody" );
return wrapper->fetchBody( mail );
}
QPopupMenu * MHviewItem::getContextMenu()
{
QPopupMenu *m = new QPopupMenu(0);
- if (m) {
+ if (m)
+ {
m->insertItem(QObject::tr("Refresh folder list",contextName),0);
m->insertItem(QObject::tr("Create new folder",contextName),1);
m->insertItem(QObject::tr("Delete all mails",contextName),2);
m->insertItem(QObject::tr("Move/Copie all mails",contextName),3);
}
return m;
}
void MHviewItem::createFolder()
{
Newmdirdlg ndirdlg(0,0,true);
- ndirdlg.showMaximized();
- if (ndirdlg.exec()) {
+ if ( QPEApplication::execDialog( &ndirdlg ) )
+ {
QString ndir = ndirdlg.Newdir();
- if (wrapper->createMbox(ndir)) {
+ if (wrapper->createMbox(ndir))
+ {
refresh(true);
}
}
}
void MHviewItem::downloadMails()
{
AccountView*bl = accountView();
if (!bl) return;
bl->downloadMails(folder,getWrapper());
}
QStringList MHviewItem::subFolders()
{
return currentFolders;
}
void MHviewItem::contextMenuSelected(int which)
{
- switch (which) {
+ switch (which)
+ {
case 0:
refresh(true);
break;
case 1:
createFolder();
break;
case 2:
deleteAllMail(getWrapper(),folder);
break;
case 3:
downloadMails();
break;
default:
break;
}
}
MHfolderItem::~MHfolderItem()
-{
-}
+{}
MHfolderItem::MHfolderItem( Folder *folderInit, MHviewItem *parent , QListViewItem*after )
- : AccountViewItem( parent,after )
+ : AccountViewItem( parent,after )
{
folder = folderInit;
mbox = parent;
initName();
}
MHfolderItem::MHfolderItem( Folder *folderInit, MHfolderItem *parent, QListViewItem*after, MHviewItem*master)
- : AccountViewItem( parent,after )
+ : AccountViewItem( parent,after )
{
folder = folderInit;
mbox = master;
initName();
}
void MHfolderItem::initName()
{
QString bName = folder->getDisplayName();
- if (bName.startsWith("/")&&bName.length()>1) {
+ if (bName.startsWith("/")&&bName.length()>1)
+ {
bName.replace(0,1,"");
}
int pos = bName.findRev("/");
- if (pos > 0) {
+ if (pos > 0)
+ {
bName.replace(0,pos+1,"");
}
- if (bName.lower() == "outgoing") {
+ if (bName.lower() == "outgoing")
+ {
setPixmap( 0, PIXMAP_OUTBOXFOLDER );
- } else if (bName.lower() == "inbox") {
+ }
+ else if (bName.lower() == "inbox")
+ {
setPixmap( 0, PIXMAP_INBOXFOLDER);
- } else {
+ }
+ else
+ {
setPixmap( 0, PIXMAP_MBOXFOLDER );
- }
+ }
setText( 0, bName );
}
Folder*MHfolderItem::getFolder()
{
return folder;
}
void MHfolderItem::refresh(QList<RecMail>&target)
{
if (folder->may_select())
mbox->getWrapper()->listMessages( folder->getName(),target );
}
RecBody MHfolderItem::fetchBody(const RecMail&aMail)
{
return mbox->getWrapper()->fetchBody(aMail);
}
void MHfolderItem::deleteFolder()
{
int yesno = QMessageBox::warning(0,QObject::tr("Delete folder",contextName),
- QObject::tr("<center>Realy delete folder <br><b>%1</b><br>and all if it content?</center>",contextName).arg(folder->getDisplayName()),
- QObject::tr("Yes",contextName),
- QObject::tr("No",contextName),QString::null,1,1);
+ QObject::tr("<center>Realy delete folder <br><b>%1</b><br>and all if it content?</center>",contextName).arg(folder->getDisplayName()),
+ QObject::tr("Yes",contextName),
+ QObject::tr("No",contextName),QString::null,1,1);
qDebug("Auswahl: %i",yesno);
- if (yesno == 0) {
- if (mbox->getWrapper()->deleteMbox(folder)) {
+ if (yesno == 0)
+ {
+ if (mbox->getWrapper()->deleteMbox(folder))
+ {
QListView*v=listView();
MHviewItem * box = mbox;
/* be carefull - after that this object is destroyd so don't use
* any member of it after that call!!*/
mbox->refresh(true);
- if (v) {
+ if (v)
+ {
v->setSelected(box,true);
}
}
}
}
QPopupMenu * MHfolderItem::getContextMenu()
{
QPopupMenu *m = new QPopupMenu(0);
- if (m) {
+ if (m)
+ {
m->insertItem(QObject::tr("Move/Copie all mails",contextName),2);
m->insertItem(QObject::tr("Delete all mails",contextName),0);
m->insertItem(QObject::tr("Create new subfolder",contextName),3);
m->insertItem(QObject::tr("Delete folder",contextName),1);
}
return m;
}
void MHfolderItem::downloadMails()
{
AccountView*bl = mbox->accountView();
if (!bl) return;
bl->downloadMails(folder,mbox->getWrapper());
}
void MHfolderItem::createFolder()
{
Newmdirdlg ndirdlg(0,0,true);
- ndirdlg.showMaximized();
- if (ndirdlg.exec()) {
+ if ( QPEApplication::execDialog( &ndirdlg ) )
+ {
QString ndir = ndirdlg.Newdir();
- if (mbox->getWrapper()->createMbox(ndir,folder)) {
+ if (mbox->getWrapper()->createMbox(ndir,folder))
+ {
QListView*v=listView();
MHviewItem * box = mbox;
/* be carefull - after that this object is destroyd so don't use
* any member of it after that call!!*/
mbox->refresh(true);
- if (v) {
+ if (v)
+ {
v->setSelected(box,true);
}
}
}
}
void MHfolderItem::contextMenuSelected(int which)
{
- switch(which) {
+ switch(which)
+ {
case 0:
deleteAllMail(mbox->getWrapper(),folder);
break;
case 1:
deleteFolder();
break;
case 2:
downloadMails();
break;
case 3:
createFolder();
break;
default:
break;
}
}
/**
* Generic stuff
*/
const QString AccountViewItem::contextName="AccountViewItem";
-AccountViewItem::AccountViewItem( AccountView *parent )
- : QListViewItem( parent )
+AccountViewItem::AccountViewItem( AccountView *parent )
+ : QListViewItem( parent )
{
init();
m_Backlink = parent;
}
AccountViewItem::AccountViewItem( QListViewItem *parent)
- : QListViewItem( parent)
+ : QListViewItem( parent)
{
init();
}
AccountViewItem::AccountViewItem( QListViewItem *parent , QListViewItem*after )
- :QListViewItem( parent,after )
+ :QListViewItem( parent,after )
{
init();
}
void AccountViewItem::init()
{
m_Backlink = 0;
folder = 0;
}
AccountViewItem::~AccountViewItem()
{
if (folder) delete folder;
}
AccountView*AccountViewItem::accountView()
{
return m_Backlink;
}
void AccountViewItem::deleteAllMail(AbstractMail*wrapper,Folder*folder)
{
if (!wrapper) return;
QString fname="";
if (folder) fname = folder->getDisplayName();
int yesno = QMessageBox::warning(0,QObject::tr("Delete all mails",contextName),
- QObject::tr("<center>Realy delete all mails in box <br>%1</center>",contextName).
- arg(fname),
- QObject::tr("Yes",contextName),
- QObject::tr("No",contextName),QString::null,1,1);
+ QObject::tr("<center>Realy delete all mails in box <br>%1</center>",contextName).
+ arg(fname),
+ QObject::tr("Yes",contextName),
+ QObject::tr("No",contextName),QString::null,1,1);
qDebug("Auswahl: %i",yesno);
- if (yesno == 0) {
- if (wrapper->deleteAllMail(folder)) {
+ if (yesno == 0)
+ {
+ if (wrapper->deleteAllMail(folder))
+ {
AccountView * view = (AccountView*)listView();
if (view) view->refreshCurrent();
}
}
}
void AccountViewItem::removeChilds()
{
QListViewItem *child = firstChild();
- while ( child ) {
+ while ( child )
+ {
QListViewItem *tmp = child;
child = child->nextSibling();
delete tmp;
}
}
bool AccountViewItem::matchName(const QString&name)const
{
if (!folder) return false;
return folder->getDisplayName()==name;
}
AccountViewItem*AccountViewItem::findSubItem(const QString&path,AccountViewItem*start)
{
AccountViewItem*pitem,*sitem;
if (!start) pitem = (AccountViewItem*)firstChild();
else pitem = (AccountViewItem*)start->firstChild();
- while (pitem) {
- if (pitem->matchName(path)) {
+ while (pitem)
+ {
+ if (pitem->matchName(path))
+ {
break;
}
- if (pitem->childCount()>0) {
+ if (pitem->childCount()>0)
+ {
sitem = findSubItem(path,pitem);
- if (sitem) {
+ if (sitem)
+ {
pitem = sitem;
break;
}
}
pitem=(AccountViewItem*)pitem->nextSibling();
}
return pitem;
}
diff --git a/noncore/net/mail/accountview.cpp b/noncore/net/mail/accountview.cpp
index d9792d4..2ddf834 100644
--- a/noncore/net/mail/accountview.cpp
+++ b/noncore/net/mail/accountview.cpp
@@ -1,149 +1,163 @@
+
#include "accountview.h"
#include "accountitem.h"
#include "selectstore.h"
-#include <qmessagebox.h>
-#include <qpopupmenu.h>
+
+/* OPIE */
#include <libmailwrapper/settings.h>
#include <libmailwrapper/mailwrapper.h>
#include <libmailwrapper/mailtypes.h>
#include <libmailwrapper/abstractmail.h>
+#include <qpe/qpeapplication.h>
+/* QT */
+#include <qmessagebox.h>
+#include <qpopupmenu.h>
AccountView::AccountView( QWidget *parent, const char *name, WFlags flags )
- : QListView( parent, name, flags )
+ : QListView( parent, name, flags )
{
connect( this, SIGNAL( selectionChanged( QListViewItem * ) ),
- SLOT( refresh( QListViewItem * ) ) );
+ SLOT( refresh( QListViewItem * ) ) );
connect( this, SIGNAL( mouseButtonPressed(int, QListViewItem *,const QPoint&,int ) ),this,
- SLOT( slotHold( int, QListViewItem *,const QPoint&,int ) ) );
+ SLOT( slotHold( int, QListViewItem *,const QPoint&,int ) ) );
setSorting(0);
}
AccountView::~AccountView()
{
imapAccounts.clear();
mhAccounts.clear();
}
void AccountView::slotContextMenu(int id)
{
AccountViewItem *view = static_cast<AccountViewItem *>(currentItem());
if (!view) return;
view->contextMenuSelected(id);
}
void AccountView::slotHold(int button, QListViewItem * item,const QPoint&,int)
{
if (button==1) {return;}
if (!item) return;
AccountViewItem *view = static_cast<AccountViewItem *>(item);
QPopupMenu*m = view->getContextMenu();
if (!m) return;
connect(m,SIGNAL(activated(int)),this,SLOT(slotContextMenu(int)));
m->setFocus();
m->exec( QPoint( QCursor::pos().x(), QCursor::pos().y()) );
delete m;
}
void AccountView::populate( QList<Account> list )
{
clear();
imapAccounts.clear();
mhAccounts.clear();
mhAccounts.append(new MHviewItem(AbstractMail::defaultLocalfolder(),this));
Account *it;
- for ( it = list.first(); it; it = list.next() ) {
- if ( it->getType().compare( "IMAP" ) == 0 ) {
+ for ( it = list.first(); it; it = list.next() )
+ {
+ if ( it->getType().compare( "IMAP" ) == 0 )
+ {
IMAPaccount *imap = static_cast<IMAPaccount *>(it);
qDebug( "added IMAP " + imap->getAccountName() );
imapAccounts.append(new IMAPviewItem( imap, this ));
- } else if ( it->getType().compare( "POP3" ) == 0 ) {
+ }
+ else if ( it->getType().compare( "POP3" ) == 0 )
+ {
POP3account *pop3 = static_cast<POP3account *>(it);
qDebug( "added POP3 " + pop3->getAccountName() );
/* must not be hold 'cause it isn't required */
(void) new POP3viewItem( pop3, this );
}
}
}
-void AccountView::refresh(QListViewItem *item) {
+void AccountView::refresh(QListViewItem *item)
+{
qDebug("AccountView refresh...");
- if ( item ) {
+ if ( item )
+ {
m_currentItem = item;
QList<RecMail> headerlist;
headerlist.setAutoDelete(true);
AccountViewItem *view = static_cast<AccountViewItem *>(item);
view->refresh(headerlist);
emit refreshMailview(&headerlist);
}
}
void AccountView::refreshCurrent()
{
m_currentItem = currentItem();
if ( !m_currentItem ) return;
QList<RecMail> headerlist;
headerlist.setAutoDelete(true);
AccountViewItem *view = static_cast<AccountViewItem *>(m_currentItem);
view->refresh(headerlist);
emit refreshMailview(&headerlist);
}
void AccountView::refreshAll()
{
-
}
RecBody AccountView::fetchBody(const RecMail&aMail)
{
QListViewItem*item = selectedItem ();
if (!item) return RecBody();
AccountViewItem *view = static_cast<AccountViewItem *>(item);
return view->fetchBody(aMail);
}
void AccountView::setupFolderselect(Selectstore*sels)
{
- sels->showMaximized();
+ QPEApplication::showDialog( sels );
QStringList sFolders;
unsigned int i = 0;
- for (i=0; i < mhAccounts.count();++i) {
+ for (i=0; i < mhAccounts.count();++i)
+ {
mhAccounts[i]->refresh(false);
sFolders = mhAccounts[i]->subFolders();
sels->addAccounts(mhAccounts[i]->getWrapper(),sFolders);
}
- for (i=0; i < imapAccounts.count();++i) {
+ for (i=0; i < imapAccounts.count();++i)
+ {
if (imapAccounts[i]->offline())
continue;
imapAccounts[i]->refreshFolders(false);
sels->addAccounts(imapAccounts[i]->getWrapper(),imapAccounts[i]->subFolders());
}
}
void AccountView::downloadMails(Folder*fromFolder,AbstractMail*fromWrapper)
{
AbstractMail*targetMail = 0;
QString targetFolder = "";
Selectstore sels;
setupFolderselect(&sels);
if (!sels.exec()) return;
targetMail = sels.currentMail();
targetFolder = sels.currentFolder();
if ( (fromWrapper==targetMail && fromFolder->getName()==targetFolder) ||
- targetFolder.isEmpty()) {
+ targetFolder.isEmpty())
+ {
return;
}
- if (sels.newFolder() && !targetMail->createMbox(targetFolder)) {
+ if (sels.newFolder() && !targetMail->createMbox(targetFolder))
+ {
QMessageBox::critical(0,tr("Error creating new Folder"),
- tr("<center>Error while creating<br>new folder - breaking.</center>"));
+ tr("<center>Error while creating<br>new folder - breaking.</center>"));
return;
}
qDebug("Targetfolder: %s",targetFolder.latin1());
qDebug("Fromfolder: %s",fromFolder->getName().latin1());
fromWrapper->mvcpAllMails(fromFolder,targetFolder,targetMail,sels.moveMails());
refreshCurrent();
}
diff --git a/noncore/net/mail/addresspicker.cpp b/noncore/net/mail/addresspicker.cpp
index f4f4cea..8cdabde 100644
--- a/noncore/net/mail/addresspicker.cpp
+++ b/noncore/net/mail/addresspicker.cpp
@@ -1,100 +1,114 @@
+
+#include "composemail.h"
+
+/* OPIE */
+#include <opie2/ocontactaccess.h>
+#include <opie2/ocontact.h>
+#include <qpe/resource.h>
+#include <qpe/qpeapplication.h>
+
+/* QT */
#include <qpushbutton.h>
#include <qmessagebox.h>
#include <qtextstream.h>
#include <qlistbox.h>
#include <qfile.h>
-#include <qpe/resource.h>
-#include <opie2/ocontactaccess.h>
-#include <opie2/ocontact.h>
-
-
+/* STD */
#include <stdlib.h>
-#include "composemail.h"
-
-AddressPicker::AddressPicker( QWidget *parent, const char *name, bool modal, WFlags flags )
- : AddressPickerUI( parent, name, modal, flags )
+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()));
Opie::OContactAccess::List::Iterator it;
QString lineEmail, lineName, contactLine;
/* what name has to set here???? */
Opie::OContactAccess m_contactdb("opiemail");
-
+
QStringList mails;
QString pre,suf;
Opie::OContactAccess::List m_list = m_contactdb.sorted( true, 0, 0, 0 );
- for ( it = m_list.begin(); it != m_list.end(); ++it ) {
- if ((*it).defaultEmail().length()!=0) {
+ for ( it = m_list.begin(); it != m_list.end(); ++it )
+ {
+ if ((*it).defaultEmail().length()!=0)
+ {
mails = (*it).emailList();
- if ((*it).fileAs().length()>0) {
+ if ((*it).fileAs().length()>0)
+ {
pre = "\""+(*it).firstName()+" "+(*it).lastName()+"\" <";
suf = ">";
- } else {
+ }
+ else
+ {
pre = "";
suf = "";
}
QStringList::ConstIterator sit = mails.begin();
- for (;sit!=mails.end();++sit) {
+ for (;sit!=mails.end();++sit)
+ {
contactLine=pre+(*sit)+suf;
addressList->insertItem(contactLine);
- }
+ }
}
}
- if ( addressList->count() <= 0 ) {
+ if ( addressList->count() <= 0 )
+ {
#if 0
- // makes this realy sense??
- addressList->insertItem(
+ // makes this realy sense??
+ addressList->insertItem(
tr( "There are no entries in the addressbook." ) );
#endif
- addressList->setEnabled( false );
- okButton->setEnabled( false );
- } else {
-// addressList->sort();
+ addressList->setEnabled( false );
+ okButton->setEnabled( false );
+ }
+ else
+ {
+ // addressList->sort();
}
}
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();
+ 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;
+ QString names = 0;
+
+ AddressPicker picker(0, 0, true);
+
+ int ret = QPEApplication::execDialog( &picker );
+ if ( QDialog::Accepted == ret )
+ {
+ return picker.selectedNames;
+ }
+
+ return 0;
}
diff --git a/noncore/net/mail/editaccounts.cpp b/noncore/net/mail/editaccounts.cpp
index 1cb202e..60bffa5 100644
--- a/noncore/net/mail/editaccounts.cpp
+++ b/noncore/net/mail/editaccounts.cpp
@@ -1,477 +1,532 @@
-#include <qt.h>
#include "defines.h"
#include "editaccounts.h"
+/* OPIE */
+#include <qpe/qpeapplication.h>
+
+/* QT */
+#include <qt.h>
+
AccountListItem::AccountListItem( QListView *parent, Account *a)
- : QListViewItem( parent )
+ : QListViewItem( parent )
{
account = a;
setText( 0, account->getAccountName() );
setText( 1, account->getType() );
}
EditAccounts::EditAccounts( Settings *s, QWidget *parent, const char *name, bool modal, WFlags flags )
- : EditAccountsUI( parent, name, modal, flags )
+ : EditAccountsUI( parent, name, modal, flags )
{
qDebug( "New Account Configuration Widget" );
settings = s;
mailList->addColumn( tr( "Account" ) );
mailList->addColumn( tr( "Type" ) );
newsList->addColumn( tr( "Account" ) );
connect( newMail, SIGNAL( clicked() ), SLOT( slotNewMail() ) );
connect( editMail, SIGNAL( clicked() ), SLOT( slotEditMail() ) );
connect( deleteMail, SIGNAL( clicked() ), SLOT( slotDeleteMail() ) );
connect( newNews, SIGNAL( clicked() ), SLOT( slotNewNews() ) );
connect( editNews, SIGNAL( clicked() ), SLOT( slotEditNews() ) );
connect( deleteNews, SIGNAL( clicked() ), SLOT( slotDeleteNews() ) );
slotFillLists();
}
void EditAccounts::slotFillLists()
{
mailList->clear();
newsList->clear();
QList<Account> accounts = settings->getAccounts();
Account *it;
- for ( it = accounts.first(); it; it = accounts.next() ) {
- if ( it->getType().compare( "NNTP" ) == 0 ) {
+ for ( it = accounts.first(); it; it = accounts.next() )
+ {
+ if ( it->getType().compare( "NNTP" ) == 0 )
+ {
(void) new AccountListItem( newsList, it );
- } else {
+ }
+ else
+ {
(void) new AccountListItem( mailList, it );
}
}
}
void EditAccounts::slotNewMail()
{
qDebug( "New Mail Account" );
QString *selection = new QString();
SelectMailType selType( selection, this, 0, true );
selType.show();
- if ( QDialog::Accepted == selType.exec() ) {
+ if ( QDialog::Accepted == selType.exec() )
+ {
slotNewAccount( *selection );
}
}
void EditAccounts::slotNewAccount( const QString &type )
{
- if ( type.compare( "IMAP" ) == 0 ) {
+ if ( type.compare( "IMAP" ) == 0 )
+ {
qDebug( "-> config IMAP" );
IMAPaccount *account = new IMAPaccount();
IMAPconfig imap( account, this, 0, true );
- imap.showMaximized();
- if ( QDialog::Accepted == imap.exec() ) {
+ if ( QDialog::Accepted == QPEApplication::execDialog( &imap ) )
+ {
settings->addAccount( account );
account->save();
slotFillLists();
- } else {
+ }
+ else
+ {
account->remove();
}
- } else if ( type.compare( "POP3" ) == 0 ) {
+ }
+ else if ( type.compare( "POP3" ) == 0 )
+ {
qDebug( "-> config POP3" );
POP3account *account = new POP3account();
POP3config pop3( account, this, 0, true, WStyle_ContextHelp );
- pop3.showMaximized();
- if ( QDialog::Accepted == pop3.exec() ) {
+ if ( QDialog::Accepted == QPEApplication::execDialog( &pop3 ) )
+ {
settings->addAccount( account );
account->save();
slotFillLists();
- } else {
+ }
+ else
+ {
account->remove();
}
- } else if ( type.compare( "SMTP" ) == 0 ) {
+ }
+ else if ( type.compare( "SMTP" ) == 0 )
+ {
qDebug( "-> config SMTP" );
SMTPaccount *account = new SMTPaccount();
SMTPconfig smtp( account, this, 0, true, WStyle_ContextHelp );
- smtp.showMaximized();
- if ( QDialog::Accepted == smtp.exec() ) {
+ if ( QDialog::Accepted == QPEApplication::execDialog( &smtp ) )
+ {
settings->addAccount( account );
account->save();
slotFillLists();
- } else {
+ }
+ else
+ {
account->remove();
}
- } else if ( type.compare( "NNTP" ) == 0 ) {
+ }
+ else if ( type.compare( "NNTP" ) == 0 )
+ {
qDebug( "-> config NNTP" );
NNTPaccount *account = new NNTPaccount();
NNTPconfig nntp( account, this, 0, true, WStyle_ContextHelp );
- nntp.showMaximized();
- if ( QDialog::Accepted == nntp.exec() ) {
+ if ( QDialog::Accepted == QPEApplication::execDialog( &nntp ) )
+ {
settings->addAccount( account );
account->save();
slotFillLists();
- } else {
+ }
+ else
+ {
account->remove();
}
}
}
void EditAccounts::slotEditAccount( Account *account )
{
- if ( account->getType().compare( "IMAP" ) == 0 ) {
+ if ( account->getType().compare( "IMAP" ) == 0 )
+ {
IMAPaccount *imapAcc = static_cast<IMAPaccount *>(account);
IMAPconfig imap( imapAcc, this, 0, true, WStyle_ContextHelp );
- imap.showMaximized();
- if ( QDialog::Accepted == imap.exec() ) {
- slotFillLists();
+ if ( QDialog::Accepted == QPEApplication::execDialog( &imap ) )
+ {
+ slotFillLists();
}
- } else if ( account->getType().compare( "POP3" ) == 0 ) {
+ }
+ else if ( account->getType().compare( "POP3" ) == 0 )
+ {
POP3account *pop3Acc = static_cast<POP3account *>(account);
POP3config pop3( pop3Acc, this, 0, true, WStyle_ContextHelp );
- pop3.showMaximized();
- if ( QDialog::Accepted == pop3.exec() ) {
- slotFillLists();
+ if ( QDialog::Accepted == QPEApplication::execDialog( &pop3 ) )
+ {
+ slotFillLists();
}
- } else if ( account->getType().compare( "SMTP" ) == 0 ) {
+ }
+ else if ( account->getType().compare( "SMTP" ) == 0 )
+ {
SMTPaccount *smtpAcc = static_cast<SMTPaccount *>(account);
SMTPconfig smtp( smtpAcc, this, 0, true, WStyle_ContextHelp );
- smtp.showMaximized();
- if ( QDialog::Accepted == smtp.exec() ) {
- slotFillLists();
+ if ( QDialog::Accepted == QPEApplication::execDialog( &smtp ) )
+ {
+ slotFillLists();
}
- } else if ( account->getType().compare( "NNTP" ) == 0 ) {
+ }
+ else if ( account->getType().compare( "NNTP" ) == 0 )
+ {
NNTPaccount *nntpAcc = static_cast<NNTPaccount *>(account);
NNTPconfig nntp( nntpAcc, this, 0, true, WStyle_ContextHelp );
- nntp.showMaximized();
- if ( QDialog::Accepted == nntp.exec() ) {
- slotFillLists();
+ if ( QDialog::Accepted == QPEApplication::execDialog( &nntp ) )
+ {
+ slotFillLists();
}
}
}
void EditAccounts::slotDeleteAccount( Account *account )
{
if ( QMessageBox::information( this, tr( "Question" ),
- tr( "<p>Do you really want to delete the selected Account?</p>" ),
- tr( "Yes" ), tr( "No" ) ) == 0 ) {
+ tr( "<p>Do you really want to delete the selected Account?</p>" ),
+ tr( "Yes" ), tr( "No" ) ) == 0 )
+ {
settings->delAccount( account );
slotFillLists();
}
}
void EditAccounts::slotEditMail()
{
qDebug( "Edit Mail Account" );
- if ( !mailList->currentItem() ) {
+ if ( !mailList->currentItem() )
+ {
QMessageBox::information( this, tr( "Error" ),
tr( "<p>Please select an account.</p>" ),
tr( "Ok" ) );
return;
}
Account *a = ((AccountListItem *) mailList->currentItem())->getAccount();
slotEditAccount( a );
}
void EditAccounts::slotDeleteMail()
{
- if ( !mailList->currentItem() ) {
+ if ( !mailList->currentItem() )
+ {
QMessageBox::information( this, tr( "Error" ),
tr( "<p>Please select an account.</p>" ),
tr( "Ok" ) );
return;
}
Account *a = ((AccountListItem *) mailList->currentItem())->getAccount();
slotDeleteAccount( a );
}
void EditAccounts::slotNewNews()
{
qDebug( "New News Account" );
slotNewAccount( "NNTP" );
}
void EditAccounts::slotEditNews()
{
qDebug( "Edit News Account" );
- if ( !newsList->currentItem() ) {
+ if ( !newsList->currentItem() )
+ {
QMessageBox::information( this, tr( "Error" ),
tr( "<p>Please select an account.</p>" ),
tr( "Ok" ) );
return;
}
Account *a = ((AccountListItem *) newsList->currentItem())->getAccount();
slotEditAccount( a );
}
void EditAccounts::slotDeleteNews()
{
qDebug( "Delete News Account" );
- if ( !newsList->currentItem() ) {
+ if ( !newsList->currentItem() )
+ {
QMessageBox::information( this, tr( "Error" ),
tr( "<p>Please select an account.</p>" ),
tr( "Ok" ) );
return;
}
Account *a = ((AccountListItem *) newsList->currentItem())->getAccount();
slotDeleteAccount( a );
}
void EditAccounts::slotAdjustColumns()
{
int currPage = configTab->currentPageIndex();
configTab->showPage( mailTab );
mailList->setColumnWidth( 0, mailList->visibleWidth() - 50 );
mailList->setColumnWidth( 1, 50 );
configTab->showPage( newsTab );
newsList->setColumnWidth( 0, newsList->visibleWidth() );
configTab->setCurrentPage( currPage );
}
void EditAccounts::accept()
{
settings->saveAccounts();
QDialog::accept();
}
/**
* SelectMailType
*/
SelectMailType::SelectMailType( QString *selection, QWidget *parent, const char *name, bool modal, WFlags flags )
- : SelectMailTypeUI( parent, name, modal, flags )
+ : SelectMailTypeUI( parent, name, modal, flags )
{
selected = selection;
selected->replace( 0, selected->length(), typeBox->currentText() );
connect( typeBox, SIGNAL( activated( const QString & ) ), SLOT( slotSelection( const QString & ) ) );
}
void SelectMailType::slotSelection( const QString &sel )
{
selected->replace( 0, selected->length(), sel );
}
/**
* IMAPconfig
*/
IMAPconfig::IMAPconfig( IMAPaccount *account, QWidget *parent, const char *name, bool modal, WFlags flags )
- : IMAPconfigUI( parent, name, modal, flags )
+ : IMAPconfigUI( parent, name, modal, flags )
{
data = account;
fillValues();
connect( ComboBox1, SIGNAL( activated( int ) ), SLOT( slotConnectionToggle( int ) ) );
ComboBox1->insertItem( "Only if available", 0 );
ComboBox1->insertItem( "Always, Negotiated", 1 );
ComboBox1->insertItem( "Connect on secure port", 2 );
ComboBox1->insertItem( "Run command instead", 3 );
CommandEdit->hide();
ComboBox1->setCurrentItem( data->ConnectionType() );
}
void IMAPconfig::slotConnectionToggle( int index )
{
- if ( index == 2 ) {
- portLine->setText( IMAP_SSL_PORT );
- } else if ( index == 3 ) {
+ if ( index == 2 )
+ {
+ portLine->setText( IMAP_SSL_PORT );
+ }
+ else if ( index == 3 )
+ {
portLine->setText( IMAP_PORT );
CommandEdit->show();
- } else {
+ }
+ else
+ {
portLine->setText( IMAP_PORT );
}
}
void IMAPconfig::fillValues()
{
accountLine->setText( data->getAccountName() );
serverLine->setText( data->getServer() );
portLine->setText( data->getPort() );
ComboBox1->setCurrentItem( data->ConnectionType() );
userLine->setText( data->getUser() );
passLine->setText( data->getPassword() );
prefixLine->setText(data->getPrefix());
}
void IMAPconfig::accept()
{
data->setAccountName( accountLine->text() );
data->setServer( serverLine->text() );
data->setPort( portLine->text() );
data->setConnectionType( ComboBox1->currentItem() );
data->setUser( userLine->text() );
data->setPassword( passLine->text() );
data->setPrefix(prefixLine->text());
QDialog::accept();
}
/**
* POP3config
*/
POP3config::POP3config( POP3account *account, QWidget *parent, const char *name, bool modal, WFlags flags )
- : POP3configUI( parent, name, modal, flags )
+ : POP3configUI( parent, name, modal, flags )
{
data = account;
fillValues();
connect( ComboBox1, SIGNAL( activated( int ) ), SLOT( slotConnectionToggle( int ) ) );
ComboBox1->insertItem( "Only if available", 0 );
ComboBox1->insertItem( "Always, Negotiated", 1 );
ComboBox1->insertItem( "Connect on secure port", 2 );
ComboBox1->insertItem( "Run command instead", 3 );
CommandEdit->hide();
ComboBox1->setCurrentItem( data->ConnectionType() );
}
void POP3config::slotConnectionToggle( int index )
{
// 2 is ssl connection
- if ( index == 2 ) {
- portLine->setText( POP3_SSL_PORT );
- } else if ( index == 3 ) {
+ if ( index == 2 )
+ {
+ portLine->setText( POP3_SSL_PORT );
+ }
+ else if ( index == 3 )
+ {
portLine->setText( POP3_PORT );
CommandEdit->show();
- } else {
+ }
+ else
+ {
portLine->setText( POP3_PORT );
}
}
void POP3config::fillValues()
{
accountLine->setText( data->getAccountName() );
serverLine->setText( data->getServer() );
portLine->setText( data->getPort() );
ComboBox1->setCurrentItem( data->ConnectionType() );
userLine->setText( data->getUser() );
passLine->setText( data->getPassword() );
}
void POP3config::accept()
{
data->setAccountName( accountLine->text() );
data->setServer( serverLine->text() );
data->setPort( portLine->text() );
data->setConnectionType( ComboBox1->currentItem() );
data->setUser( userLine->text() );
data->setPassword( passLine->text() );
QDialog::accept();
}
/**
* SMTPconfig
*/
SMTPconfig::SMTPconfig( SMTPaccount *account, QWidget *parent, const char *name, bool modal, WFlags flags )
- : SMTPconfigUI( parent, name, modal, flags )
+ : SMTPconfigUI( parent, name, modal, flags )
{
data = account;
connect( loginBox, SIGNAL( toggled( bool ) ), userLine, SLOT( setEnabled( bool ) ) );
connect( loginBox, SIGNAL( toggled( bool ) ), passLine, SLOT( setEnabled( bool ) ) );
fillValues();
connect( ComboBox1, SIGNAL( activated( int ) ), SLOT( slotConnectionToggle( int ) ) );
ComboBox1->insertItem( "Only if available", 0 );
ComboBox1->insertItem( "Always, Negotiated", 1 );
ComboBox1->insertItem( "Connect on secure port", 2 );
ComboBox1->insertItem( "Run command instead", 3 );
CommandEdit->hide();
ComboBox1->setCurrentItem( data->ConnectionType() );
}
void SMTPconfig::slotConnectionToggle( int index )
{
// 2 is ssl connection
- if ( index == 2 ) {
- portLine->setText( SMTP_SSL_PORT );
- } else if ( index == 3 ) {
+ if ( index == 2 )
+ {
+ portLine->setText( SMTP_SSL_PORT );
+ }
+ else if ( index == 3 )
+ {
portLine->setText( SMTP_PORT );
CommandEdit->show();
- } else {
+ }
+ else
+ {
portLine->setText( SMTP_PORT );
}
}
void SMTPconfig::fillValues()
{
accountLine->setText( data->getAccountName() );
serverLine->setText( data->getServer() );
portLine->setText( data->getPort() );
ComboBox1->setCurrentItem( data->ConnectionType() );
loginBox->setChecked( data->getLogin() );
userLine->setText( data->getUser() );
passLine->setText( data->getPassword() );
}
void SMTPconfig::accept()
{
data->setAccountName( accountLine->text() );
data->setServer( serverLine->text() );
data->setPort( portLine->text() );
data->setConnectionType( ComboBox1->currentItem() );
data->setLogin( loginBox->isChecked() );
data->setUser( userLine->text() );
data->setPassword( passLine->text() );
QDialog::accept();
}
/**
* NNTPconfig
*/
NNTPconfig::NNTPconfig( NNTPaccount *account, QWidget *parent, const char *name, bool modal, WFlags flags )
- : NNTPconfigUI( parent, name, modal, flags )
+ : NNTPconfigUI( parent, name, modal, flags )
{
data = account;
connect( loginBox, SIGNAL( toggled( bool ) ), userLine, SLOT( setEnabled( bool ) ) );
connect( loginBox, SIGNAL( toggled( bool ) ), passLine, SLOT( setEnabled( bool ) ) );
fillValues();
connect( sslBox, SIGNAL( toggled( bool ) ), SLOT( slotSSL( bool ) ) );
}
void NNTPconfig::slotSSL( bool enabled )
{
- if ( enabled ) {
+ if ( enabled )
+ {
portLine->setText( NNTP_SSL_PORT );
- } else {
+ }
+ else
+ {
portLine->setText( NNTP_PORT );
}
}
void NNTPconfig::fillValues()
{
accountLine->setText( data->getAccountName() );
serverLine->setText( data->getServer() );
portLine->setText( data->getPort() );
sslBox->setChecked( data->getSSL() );
loginBox->setChecked( data->getLogin() );
userLine->setText( data->getUser() );
passLine->setText( data->getPassword() );
}
void NNTPconfig::accept()
{
data->setAccountName( accountLine->text() );
data->setServer( serverLine->text() );
data->setPort( portLine->text() );
data->setSSL( sslBox->isChecked() );
data->setLogin( loginBox->isChecked() );
data->setUser( userLine->text() );
data->setPassword( passLine->text() );
QDialog::accept();
}
diff --git a/noncore/net/mail/opiemail.cpp b/noncore/net/mail/opiemail.cpp
index 0795436..abf93dc 100644
--- a/noncore/net/mail/opiemail.cpp
+++ b/noncore/net/mail/opiemail.cpp
@@ -1,229 +1,258 @@
-#include <qmessagebox.h>
+
#include "settingsdialog.h"
#include "opiemail.h"
#include "editaccounts.h"
#include "composemail.h"
+#include "mailistviewitem.h"
+#include "viewmail.h"
+#include "selectstore.h"
+#include "selectsmtp.h"
+
+/* OPIE */
#include <libmailwrapper/smtpwrapper.h>
+#include <libmailwrapper/mailtypes.h>
+#include <libmailwrapper/abstractmail.h>
#include <qpe/qcopenvelope_qws.h>
#include <qpe/resource.h>
+#include <qpe/qpeapplication.h>
+
+/* QT */
+#include <qmessagebox.h>
#include <qaction.h>
#include <qapplication.h>
-#include <libmailwrapper/mailtypes.h>
-#include <libmailwrapper/abstractmail.h>
-#include "mailistviewitem.h"
-#include "viewmail.h"
-#include "selectstore.h"
-#include "selectsmtp.h"
OpieMail::OpieMail( QWidget *parent, const char *name, WFlags flags )
- : MainWindow( parent, name, WStyle_ContextHelp )
+ : MainWindow( parent, name, WStyle_ContextHelp )
{
settings = new Settings();
folderView->populate( settings->getAccounts() );
}
OpieMail::~OpieMail()
{
if (settings) delete settings;
}
void OpieMail::appMessage(const QCString &msg, const QByteArray &data)
{
// copied from old mail2
- if (msg == "writeMail(QString,QString)") {
+ if (msg == "writeMail(QString,QString)")
+ {
QDataStream stream(data,IO_ReadOnly);
QString name, email;
stream >> name >> email;
// removing the whitespaces at beginning and end is needed!
slotwriteMail(name.stripWhiteSpace(),email.stripWhiteSpace());
- } else if (msg == "newMail()") {
+ }
+ else if (msg == "newMail()")
+ {
slotComposeMail();
}
}
void OpieMail::slotwriteMail(const QString&name,const QString&email)
{
ComposeMail compose( settings, this, 0, true , WStyle_ContextHelp );
- if (!email.isEmpty()) {
- if (!name.isEmpty()) {
+ if (!email.isEmpty())
+ {
+ if (!name.isEmpty())
+ {
compose.setTo("\"" + name + "\"" + " " + "<"+ email + ">");
- } else {
+ }
+ else
+ {
compose.setTo(email);
}
}
- compose.showMaximized();
compose.slotAdjustColumns();
- compose.exec();
+ QPEApplication::execDialog( &compose );
}
void OpieMail::slotComposeMail()
{
qDebug( "Compose Mail" );
slotwriteMail(0l,0l);
}
void OpieMail::slotSendQueued()
{
qDebug( "Send Queued" );
SMTPaccount *smtp = 0;
QList<Account> list = settings->getAccounts();
QList<SMTPaccount> smtpList;
smtpList.setAutoDelete(false);
Account *it;
- for ( it = list.first(); it; it = list.next() ) {
- if ( it->getType().compare( "SMTP" ) == 0 ) {
+ for ( it = list.first(); it; it = list.next() )
+ {
+ if ( it->getType().compare( "SMTP" ) == 0 )
+ {
smtp = static_cast<SMTPaccount *>(it);
smtpList.append(smtp);
}
}
- if (smtpList.count()==0) {
+ if (smtpList.count()==0)
+ {
QMessageBox::information(0,tr("Info"),tr("Define a smtp account first"));
return;
}
- if (smtpList.count()==1) {
+ if (smtpList.count()==1)
+ {
smtp = smtpList.at(0);
- } else {
+ }
+ else
+ {
smtp = 0;
selectsmtp selsmtp;
selsmtp.setSelectionlist(&smtpList);
- selsmtp.showMaximized();
- if (selsmtp.exec()==QDialog::Accepted) {
+ if ( QPEApplication::execDialog( &selsmtp ) == QDialog::Accepted )
+ {
smtp = selsmtp.selected_smtp();
}
}
- if (smtp) {
+ if (smtp)
+ {
SMTPwrapper * wrap = new SMTPwrapper(smtp);
- if ( wrap->flushOutbox() ) {
+ if ( wrap->flushOutbox() )
+ {
QMessageBox::information(0,tr("Info"),tr("Mail queue flushed"));
}
delete wrap;
}
}
void OpieMail::slotSearchMails()
{
qDebug( "Search Mails" );
}
void OpieMail::slotEditSettings()
{
SettingsDialog settingsDialog( this, 0, true, WStyle_ContextHelp );
- settingsDialog.showMaximized();
- settingsDialog.exec();
+ QPEApplication::execDialog( &settingsDialog );
}
void OpieMail::slotEditAccounts()
{
qDebug( "Edit Accounts" );
EditAccounts eaDialog( settings, this, 0, true, WStyle_ContextHelp );
- eaDialog.showMaximized();
eaDialog.slotAdjustColumns();
- eaDialog.exec();
+ QPEApplication::execDialog( &eaDialog );
if ( settings ) delete settings;
settings = new Settings();
folderView->populate( settings->getAccounts() );
}
void OpieMail::displayMail()
{
QListViewItem*item = mailView->currentItem();
if (!item) return;
RecMail mail = ((MailListViewItem*)item)->data();
RecBody body = folderView->fetchBody(mail);
ViewMail readMail( this,"", Qt::WType_Modal | WStyle_ContextHelp );
readMail.setBody( body );
readMail.setMail( mail );
readMail.showMaximized();
readMail.exec();
- if ( readMail.deleted ) {
- folderView->refreshCurrent();
- } else {
+ if ( readMail.deleted )
+ {
+ folderView->refreshCurrent();
+ }
+ else
+ {
( (MailListViewItem*)item )->setPixmap( 0, Resource::loadPixmap( "" ) );
}
}
void OpieMail::slotDeleteMail()
{
if (!mailView->currentItem()) return;
RecMail mail = ((MailListViewItem*)mailView->currentItem() )->data();
- if ( QMessageBox::warning(this, tr("Delete Mail"), QString( tr("<p>Do you really want to delete this mail? <br><br>" ) + mail.getFrom() + " - " + mail.getSubject() ) , QMessageBox::Yes, QMessageBox::No ) == QMessageBox::Yes ) {
- mail.Wrapper()->deleteMail( mail );
- folderView->refreshCurrent();
+ if ( QMessageBox::warning(this, tr("Delete Mail"), QString( tr("<p>Do you really want to delete this mail? <br><br>" ) + mail.getFrom() + " - " + mail.getSubject() ) , QMessageBox::Yes, QMessageBox::No ) == QMessageBox::Yes )
+ {
+ mail.Wrapper()->deleteMail( mail );
+ folderView->refreshCurrent();
}
}
void OpieMail::mailHold(int button, QListViewItem *item,const QPoint&,int )
{
/* just the RIGHT button - or hold on pda */
if (button!=2) {return;}
qDebug("Event right/hold");
if (!item) return;
QPopupMenu *m = new QPopupMenu(0);
- if (m) {
+ if (m)
+ {
m->insertItem(tr("Read this mail"),this,SLOT(displayMail()));
m->insertItem(tr("Delete this mail"),this,SLOT(slotDeleteMail()));
m->insertItem(tr("Copy/Move this mail"),this,SLOT(slotMoveCopyMail()));
m->setFocus();
m->exec( QPoint( QCursor::pos().x(), QCursor::pos().y()) );
delete m;
}
}
void OpieMail::slotShowFolders( bool show )
{
- qDebug( "Show Folders" );
- if ( show && folderView->isHidden() ) {
+ qDebug( "Show Folders" );
+ if ( show && folderView->isHidden() )
+ {
qDebug( "-> showing" );
folderView->show();
- } else if ( !show && !folderView->isHidden() ) {
+ }
+ else if ( !show && !folderView->isHidden() )
+ {
qDebug( "-> hiding" );
folderView->hide();
}
}
void OpieMail::refreshMailView(QList<RecMail>*list)
{
MailListViewItem*item = 0;
mailView->clear();
- for (unsigned int i = 0; i < list->count();++i) {
+ for (unsigned int i = 0; i < list->count();++i)
+ {
item = new MailListViewItem(mailView,item);
item->storeData(*(list->at(i)));
item->showEntry();
}
}
void OpieMail::mailLeftClicked(int button, QListViewItem *item,const QPoint&,int )
{
/* just LEFT button - or tap with stylus on pda */
if (button!=1) return;
if (!item) return;
displayMail();
}
void OpieMail::slotMoveCopyMail()
{
if (!mailView->currentItem()) return;
RecMail mail = ((MailListViewItem*)mailView->currentItem() )->data();
AbstractMail*targetMail = 0;
QString targetFolder = "";
Selectstore sels;
folderView->setupFolderselect(&sels);
if (!sels.exec()) return;
targetMail = sels.currentMail();
targetFolder = sels.currentFolder();
if ( (mail.Wrapper()==targetMail && mail.getMbox()==targetFolder) ||
- targetFolder.isEmpty()) {
+ targetFolder.isEmpty())
+ {
return;
}
- if (sels.newFolder() && !targetMail->createMbox(targetFolder)) {
+ if (sels.newFolder() && !targetMail->createMbox(targetFolder))
+ {
QMessageBox::critical(0,tr("Error creating new Folder"),
- tr("<center>Error while creating<br>new folder - breaking.</center>"));
+ tr("<center>Error while creating<br>new folder - breaking.</center>"));
return;
}
mail.Wrapper()->mvcpMail(mail,targetFolder,targetMail,sels.moveMails());
folderView->refreshCurrent();
}
diff --git a/noncore/net/mail/viewmail.cpp b/noncore/net/mail/viewmail.cpp
index 99965d4..f015228 100644
--- a/noncore/net/mail/viewmail.cpp
+++ b/noncore/net/mail/viewmail.cpp
@@ -1,429 +1,472 @@
+#include "composemail.h"
+#include "viewmail.h"
+#include "accountview.h"
+
+/* OPIE */
+#include <libmailwrapper/settings.h>
+#include <libmailwrapper/abstractmail.h>
+#include <libmailwrapper/mailtypes.h>
+
+#include <opie2/ofiledialog.h>
+#include <qpe/config.h>
+#include <qpe/qpeapplication.h>
+
+/* QT */
#include <qtextbrowser.h>
#include <qmessagebox.h>
#include <qtextstream.h>
#include <qaction.h>
#include <qpopupmenu.h>
#include <qfile.h>
#include <qapplication.h>
#include <qvaluelist.h>
-#include <qpe/config.h>
-
-#include <opie2/ofiledialog.h>
-
-#include <libmailwrapper/settings.h>
-#include "composemail.h"
-#include "viewmail.h"
-#include <libmailwrapper/abstractmail.h>
-#include "accountview.h"
-#include <libmailwrapper/mailtypes.h>
-
AttachItem::AttachItem(QListView * parent,QListViewItem *after, const QString&mime,const QString&desc,const QString&file,
- const QString&fsize,int num,const QValueList<int>&path)
- : QListViewItem(parent,after),_partNum(num)
+ const QString&fsize,int num,const QValueList<int>&path)
+ : QListViewItem(parent,after),_partNum(num)
{
_path=path;
- setText(0, mime);
- setText(1, desc);
- setText(2, file);
+ setText(0, mime);
+ setText(1, desc);
+ setText(2, file);
setText(3, fsize);
}
AttachItem::AttachItem(QListViewItem * parent,QListViewItem *after, const QString&mime,const QString&desc,const QString&file,
- const QString&fsize,int num,const QValueList<int>&path)
- : QListViewItem(parent,after),_partNum(num)
+ const QString&fsize,int num,const QValueList<int>&path)
+ : QListViewItem(parent,after),_partNum(num)
{
_path=path;
- setText(0, mime);
- setText(1, desc);
- setText(2, file);
+ setText(0, mime);
+ setText(1, desc);
+ setText(2, file);
setText(3, fsize);
}
bool AttachItem::isParentof(const QValueList<int>&path)
{
/* if not set, then no parent */
if (path.count()==0||_path.count()==0) return false;
/* the parent must have one digit less then a child */
if (path.count()!=_path.count()+1) return false;
- for (unsigned int i=0; i < _path.count();++i) {
+ for (unsigned int i=0; i < _path.count();++i)
+ {
if (_path[i]!=path[i]) return false;
}
return true;
}
AttachItem* ViewMail::searchParent(const QValueList<int>&path)
{
QListViewItemIterator it( attachments );
- for ( ; it.current(); ++it ) {
+ for ( ; it.current(); ++it )
+ {
AttachItem*ati = (AttachItem*)it.current();
if (ati->isParentof(path)) return ati;
}
return 0;
}
AttachItem* ViewMail::lastChild(AttachItem*parent)
{
if (!parent) return 0;
AttachItem* item = (AttachItem*)parent->firstChild();
if (!item) return item;
AttachItem*temp=0;
- while( (temp=(AttachItem*)item->nextSibling())) {
+ while( (temp=(AttachItem*)item->nextSibling()))
+ {
item = temp;
}
return item;
}
-void ViewMail::setBody( RecBody body ) {
-
-m_body = body;
-m_mail[2] = body.Bodytext();
-attachbutton->setEnabled(body.Parts().count()>0);
-attachments->setEnabled(body.Parts().count()>0);
-if (body.Parts().count()==0) {
- return;
-}
-AttachItem * curItem=0;
-AttachItem * parentItem = 0;
-QString type=body.Description().Type()+"/"+body.Description().Subtype();
-QString desc,fsize;
-double s = body.Description().Size();
-int w;
-w=0;
-
-while (s>1024) {
- s/=1024;
- ++w;
- if (w>=2) break;
-}
-
-QString q="";
-switch(w) {
-case 1:
- q="k";
- break;
-case 2:
- q="M";
- break;
-default:
- break;
-}
-
+void ViewMail::setBody( RecBody body )
{
- /* I did not found a method to make a CONTENT reset on a QTextStream
- so I use this construct that the stream will re-constructed in each
- loop. To let it work, the textstream is packed into a own area of
- code is it will be destructed after finishing its small job.
- */
- QTextOStream o(&fsize);
- if (w>0) o.precision(2); else o.precision(0);
- o.setf(QTextStream::fixed);
- o << s << " " << q << "Byte";
-}
-
-curItem=new AttachItem(attachments,curItem,type,"Mailbody","",fsize,-1,body.Description().Positionlist());
-QString filename = "";
-for (unsigned int i = 0; i < body.Parts().count();++i) {
- type = body.Parts()[i].Type()+"/"+body.Parts()[i].Subtype();
- part_plist_t::ConstIterator it = body.Parts()[i].Parameters().begin();
- for (;it!=body.Parts()[i].Parameters().end();++it) {
- qDebug(it.key());
- if (it.key().lower()=="name") {
- filename=it.data();
- }
+ m_body = body;
+ m_mail[2] = body.Bodytext();
+ attachbutton->setEnabled(body.Parts().count()>0);
+ attachments->setEnabled(body.Parts().count()>0);
+ if (body.Parts().count()==0)
+ {
+ return;
}
- s = body.Parts()[i].Size();
- w = 0;
- while (s>1024) {
+ AttachItem * curItem=0;
+ AttachItem * parentItem = 0;
+ QString type=body.Description().Type()+"/"+body.Description().Subtype();
+ QString desc,fsize;
+ double s = body.Description().Size();
+ int w;
+ w=0;
+
+ while (s>1024)
+ {
s/=1024;
++w;
if (w>=2) break;
}
- switch(w) {
+
+ QString q="";
+ switch(w)
+ {
case 1:
q="k";
break;
case 2:
q="M";
break;
default:
- q="";
break;
}
- QTextOStream o(&fsize);
- if (w>0) o.precision(2); else o.precision(0);
- o.setf(QTextStream::fixed);
- o << s << " " << q << "Byte";
- desc = body.Parts()[i].Description();
- parentItem = searchParent(body.Parts()[i].Positionlist());
- if (parentItem) {
- AttachItem*temp = lastChild(parentItem);
- if (temp) curItem = temp;
- curItem=new AttachItem(parentItem,curItem,type,desc,filename,fsize,i,body.Parts()[i].Positionlist());
- attachments->setRootIsDecorated(true);
- curItem = parentItem;
- } else {
- curItem=new AttachItem(attachments,curItem,type,desc,filename,fsize,i,body.Parts()[i].Positionlist());
+
+ {
+ /* I did not found a method to make a CONTENT reset on a QTextStream
+ so I use this construct that the stream will re-constructed in each
+ loop. To let it work, the textstream is packed into a own area of
+ code is it will be destructed after finishing its small job.
+ */
+ QTextOStream o(&fsize);
+ if (w>0) o.precision(2); else o.precision(0);
+ o.setf(QTextStream::fixed);
+ o << s << " " << q << "Byte";
+ }
+
+ curItem=new AttachItem(attachments,curItem,type,"Mailbody","",fsize,-1,body.Description().Positionlist());
+ QString filename = "";
+
+ for (unsigned int i = 0; i < body.Parts().count();++i)
+ {
+ type = body.Parts()[i].Type()+"/"+body.Parts()[i].Subtype();
+ part_plist_t::ConstIterator it = body.Parts()[i].Parameters().begin();
+ for (;it!=body.Parts()[i].Parameters().end();++it)
+ {
+ qDebug(it.key());
+ if (it.key().lower()=="name")
+ {
+ filename=it.data();
+ }
+ }
+ s = body.Parts()[i].Size();
+ w = 0;
+ while (s>1024)
+ {
+ s/=1024;
+ ++w;
+ if (w>=2) break;
+ }
+ switch(w)
+ {
+ case 1:
+ q="k";
+ break;
+ case 2:
+ q="M";
+ break;
+ default:
+ q="";
+ break;
+ }
+ QTextOStream o(&fsize);
+ if (w>0) o.precision(2); else o.precision(0);
+ o.setf(QTextStream::fixed);
+ o << s << " " << q << "Byte";
+ desc = body.Parts()[i].Description();
+ parentItem = searchParent(body.Parts()[i].Positionlist());
+ if (parentItem)
+ {
+ AttachItem*temp = lastChild(parentItem);
+ if (temp) curItem = temp;
+ curItem=new AttachItem(parentItem,curItem,type,desc,filename,fsize,i,body.Parts()[i].Positionlist());
+ attachments->setRootIsDecorated(true);
+ curItem = parentItem;
+ }
+ else
+ {
+ curItem=new AttachItem(attachments,curItem,type,desc,filename,fsize,i,body.Parts()[i].Positionlist());
+ }
}
-}
}
-void ViewMail::slotShowHtml( bool state ) {
+void ViewMail::slotShowHtml( bool state )
+{
m_showHtml = state;
setText();
}
-void ViewMail::slotItemClicked( QListViewItem * item , const QPoint & point, int ) {
+void ViewMail::slotItemClicked( QListViewItem * item , const QPoint & point, int )
+{
if (!item )
return;
- if ( ( ( AttachItem* )item )->Partnumber() == -1 ) {
+ if ( ( ( AttachItem* )item )->Partnumber() == -1 )
+ {
setText();
return;
}
QPopupMenu *menu = new QPopupMenu();
- int ret=0;
-
- if ( item->text( 0 ).left( 5 ) == "text/" || item->text(0)=="message/rfc822" ) {
- menu->insertItem( tr( "Show Text" ), 1 );
- }
- menu->insertItem( tr( "Save Attachment" ), 0 );
- menu->insertSeparator(1);
-
- ret = menu->exec( point, 0 );
-
- switch(ret) {
- case 0:
- { MimeTypes types;
- types.insert( "all", "*" );
- QString str = Opie::OFileDialog::getSaveFileName( 1,
- "/", item->text( 2 ) , types, 0 );
-
- if( !str.isEmpty() ) {
- encodedString*content = m_recMail.Wrapper()->fetchDecodedPart( m_recMail, m_body.Parts()[ ( ( AttachItem* )item )->Partnumber() ] );
- if (content) {
- QFile output(str);
- output.open(IO_WriteOnly);
- output.writeBlock(content->Content(),content->Length());
- output.close();
- delete content;
- }
- }
- }
+ int ret=0;
+
+ if ( item->text( 0 ).left( 5 ) == "text/" || item->text(0)=="message/rfc822" )
+ {
+ menu->insertItem( tr( "Show Text" ), 1 );
+ }
+ menu->insertItem( tr( "Save Attachment" ), 0 );
+ menu->insertSeparator(1);
+
+ ret = menu->exec( point, 0 );
+
+ switch(ret)
+ {
+ case 0:
+ {
+ MimeTypes types;
+ types.insert( "all", "*" );
+ QString str = Opie::OFileDialog::getSaveFileName( 1,
+ "/", item->text( 2 ) , types, 0 );
+
+ if( !str.isEmpty() )
+ {
+ encodedString*content = m_recMail.Wrapper()->fetchDecodedPart( m_recMail, m_body.Parts()[ ( ( AttachItem* )item )->Partnumber() ] );
+ if (content)
+ {
+ QFile output(str);
+ output.open(IO_WriteOnly);
+ output.writeBlock(content->Content(),content->Length());
+ output.close();
+ delete content;
+ }
+ }
+ }
break ;
- case 1:
- if ( ( ( AttachItem* )item )->Partnumber() == -1 ) {
- setText();
- } else {
- if ( m_recMail.Wrapper() != 0l ) { // make sure that there is a wrapper , even after delete or simular actions
+ case 1:
+ if ( ( ( AttachItem* )item )->Partnumber() == -1 )
+ {
+ setText();
+ }
+ else
+ {
+ if ( m_recMail.Wrapper() != 0l )
+ { // make sure that there is a wrapper , even after delete or simular actions
browser->setText( m_recMail.Wrapper()->fetchTextPart( m_recMail, m_body.Parts()[ ( ( AttachItem* )item )->Partnumber() ] ) );
- }
- }
+ }
+ }
break;
- }
- delete menu;
+ }
+ delete menu;
}
-void ViewMail::setMail( RecMail mail ) {
+void ViewMail::setMail( RecMail mail )
+{
m_recMail = mail;
m_mail[0] = mail.getFrom();
m_mail[1] = mail.getSubject();
m_mail[3] = mail.getDate();
m_mail[4] = mail.Msgid();
m_mail2[0] = mail.To();
m_mail2[1] = mail.CC();
m_mail2[2] = mail.Bcc();
setText();
}
ViewMail::ViewMail( QWidget *parent, const char *name, WFlags fl)
- : ViewMailBase(parent, name, fl), _inLoop(false)
+ : ViewMailBase(parent, name, fl), _inLoop(false)
{
- m_gotBody = false;
- deleted = false;
+ m_gotBody = false;
+ deleted = false;
- connect( reply, SIGNAL(activated()), SLOT(slotReply()));
- connect( forward, SIGNAL(activated()), SLOT(slotForward()));
- connect( deleteMail, SIGNAL( activated() ), SLOT( slotDeleteMail( ) ) );
- connect( showHtml, SIGNAL( toggled( bool ) ), SLOT( slotShowHtml( bool ) ) );
+ connect( reply, SIGNAL(activated()), SLOT(slotReply()));
+ connect( forward, SIGNAL(activated()), SLOT(slotForward()));
+ connect( deleteMail, SIGNAL( activated() ), SLOT( slotDeleteMail( ) ) );
+ connect( showHtml, SIGNAL( toggled( bool ) ), SLOT( slotShowHtml( bool ) ) );
- attachments->setEnabled(m_gotBody);
- connect( attachments, SIGNAL( clicked ( QListViewItem *, const QPoint & , int ) ), SLOT( slotItemClicked( QListViewItem *, const QPoint & , int ) ) );
+ attachments->setEnabled(m_gotBody);
+ connect( attachments, SIGNAL( clicked ( QListViewItem *, const QPoint & , int ) ), SLOT( slotItemClicked( QListViewItem *, const QPoint & , int ) ) );
- readConfig();
+ readConfig();
attachments->setSorting(-1);
}
-void ViewMail::readConfig() {
+void ViewMail::readConfig()
+{
Config cfg( "mail" );
cfg.setGroup( "Settings" );
m_showHtml = cfg.readBoolEntry( "showHtml", false );
showHtml->setOn( m_showHtml );
}
void ViewMail::setText()
{
QString toString;
QString ccString;
QString bccString;
- for ( QStringList::Iterator it = ( m_mail2[0] ).begin(); it != ( m_mail2[0] ).end(); ++it ) {
+ for ( QStringList::Iterator it = ( m_mail2[0] ).begin(); it != ( m_mail2[0] ).end(); ++it )
+ {
toString += (*it);
}
- for ( QStringList::Iterator it = ( m_mail2[1] ).begin(); it != ( m_mail2[1] ).end(); ++it ) {
+ for ( QStringList::Iterator it = ( m_mail2[1] ).begin(); it != ( m_mail2[1] ).end(); ++it )
+ {
ccString += (*it);
}
- for ( QStringList::Iterator it = ( m_mail2[2] ).begin(); it != ( m_mail2[2] ).end(); ++it ) {
+ for ( QStringList::Iterator it = ( m_mail2[2] ).begin(); it != ( m_mail2[2] ).end(); ++it )
+ {
bccString += (*it);
}
setCaption( caption().arg( m_mail[0] ) );
m_mailHtml = "<html><body>"
"<table width=\"100%\" border=\"0\"><tr bgcolor=\"#FFDD76\"><td>"
"<div align=left><b>" + deHtml( m_mail[1] ) + "</b></div>"
"</td></tr><tr bgcolor=\"#EEEEE6\"><td>"
"<b>" + tr( "From" ) + ": </b><font color=#6C86C0>" + deHtml( m_mail[0] ) + "</font><br>"
"<b>" + tr( "To" ) + ": </b><font color=#6C86C0>" + deHtml( toString ) + "</font><br><b>" +
tr( "Cc" ) + ": </b>" + deHtml( ccString ) + "<br>"
"<b>" + tr( "Date" ) + ": </b> " + m_mail[3] +
"</td></tr></table><font face=fixed>";
- if ( !m_showHtml ) {
- browser->setText( QString( m_mailHtml) + deHtml( m_mail[2] ) + "</font></html>" );
- } else {
- browser->setText( QString( m_mailHtml) + m_mail[2] + "</font></html>" );
+ if ( !m_showHtml )
+ {
+ browser->setText( QString( m_mailHtml) + deHtml( m_mail[2] ) + "</font></html>" );
+ }
+ else
+ {
+ browser->setText( QString( m_mailHtml) + m_mail[2] + "</font></html>" );
}
// remove later in favor of a real handling
m_gotBody = true;
}
ViewMail::~ViewMail()
{
m_recMail.Wrapper()->cleanMimeCache();
- hide();
+ hide();
}
void ViewMail::hide()
{
- QWidget::hide();
+ QWidget::hide();
- if (_inLoop) {
- _inLoop = false;
- qApp->exit_loop();
+ if (_inLoop)
+ {
+ _inLoop = false;
+ qApp->exit_loop();
- }
+ }
}
void ViewMail::exec()
{
- show();
+ show();
- if (!_inLoop) {
- _inLoop = true;
- qApp->enter_loop();
- }
+ if (!_inLoop)
+ {
+ _inLoop = true;
+ qApp->enter_loop();
+ }
}
QString ViewMail::deHtml(const QString &string)
{
- QString string_ = string;
- string_.replace(QRegExp("&"), "&amp;");
- string_.replace(QRegExp("<"), "&lt;");
- string_.replace(QRegExp(">"), "&gt;");
- string_.replace(QRegExp("\\n"), "<br>");
- return string_;
+ QString string_ = string;
+ string_.replace(QRegExp("&"), "&amp;");
+ string_.replace(QRegExp("<"), "&lt;");
+ string_.replace(QRegExp(">"), "&gt;");
+ string_.replace(QRegExp("\\n"), "<br>");
+ return string_;
}
void ViewMail::slotReply()
{
- if (!m_gotBody) {
- QMessageBox::information(this, tr("Error"), tr("<p>The mail body is not yet downloaded, so you cannot reply yet."), tr("Ok"));
- return;
- }
-
- QString rtext;
- rtext += QString("* %1 wrote on %2:\n") // no i18n on purpose
- .arg( m_mail[0] )
- .arg( m_mail[3] );
-
- QString text = m_mail[2];
- QStringList lines = QStringList::split(QRegExp("\\n"), text);
- QStringList::Iterator it;
- for (it = lines.begin(); it != lines.end(); it++) {
- rtext += "> " + *it + "\n";
- }
- rtext += "\n";
-
- QString prefix;
- if ( m_mail[1].find(QRegExp("^Re: *$")) != -1) prefix = "";
- else prefix = "Re: "; // no i18n on purpose
-
- Settings *settings = new Settings();
- ComposeMail composer( settings ,this, 0, true);
- composer.setTo( m_mail[0] );
- composer.setSubject( "Re: " + m_mail[1] );
- composer.setMessage( rtext );
- composer.showMaximized();
- if ( QDialog::Accepted==composer.exec()) {
+ if (!m_gotBody)
+ {
+ QMessageBox::information(this, tr("Error"), tr("<p>The mail body is not yet downloaded, so you cannot reply yet."), tr("Ok"));
+ return;
+ }
+
+ QString rtext;
+ rtext += QString("* %1 wrote on %2:\n") // no i18n on purpose
+ .arg( m_mail[0] )
+ .arg( m_mail[3] );
+
+ QString text = m_mail[2];
+ QStringList lines = QStringList::split(QRegExp("\\n"), text);
+ QStringList::Iterator it;
+ for (it = lines.begin(); it != lines.end(); it++)
+ {
+ rtext += "> " + *it + "\n";
+ }
+ rtext += "\n";
+
+ QString prefix;
+ if ( m_mail[1].find(QRegExp("^Re: *$")) != -1) prefix = "";
+ else prefix = "Re: "; // no i18n on purpose
+
+ Settings *settings = new Settings();
+ ComposeMail composer( settings ,this, 0, true);
+ composer.setTo( m_mail[0] );
+ composer.setSubject( "Re: " + m_mail[1] );
+ composer.setMessage( rtext );
+ if ( QDialog::Accepted == QPEApplication::execDialog( &composer ) )
+ {
m_recMail.Wrapper()->answeredMail(m_recMail);
}
}
void ViewMail::slotForward()
{
- if (!m_gotBody) {
- QMessageBox::information(this, tr("Error"), tr("<p>The mail body is not yet downloaded, so you cannot forward yet."), tr("Ok"));
- return;
- }
-
- QString ftext;
- ftext += QString("\n----- Forwarded message from %1 -----\n\n")
- .arg( m_mail[0] );
- if (!m_mail[3].isNull())
- ftext += QString("Date: %1\n")
- .arg( m_mail[3] );
- if (!m_mail[0].isNull())
- ftext += QString("From: %1\n")
- .arg( m_mail[0] );
- if (!m_mail[1].isNull())
- ftext += QString("Subject: %1\n")
- .arg( m_mail[1] );
-
- ftext += QString("\n%1\n")
- .arg( m_mail[2]);
-
- ftext += QString("----- End forwarded message -----\n");
-
- Settings *settings = new Settings();
- ComposeMail composer( settings ,this, 0, true);
- composer.setSubject( "Fwd: " + m_mail[1] );
- composer.setMessage( ftext );
- composer.showMaximized();
- if ( QDialog::Accepted==composer.exec()) {
+ if (!m_gotBody)
+ {
+ QMessageBox::information(this, tr("Error"), tr("<p>The mail body is not yet downloaded, so you cannot forward yet."), tr("Ok"));
+ return;
+ }
+ QString ftext;
+ ftext += QString("\n----- Forwarded message from %1 -----\n\n")
+ .arg( m_mail[0] );
+ if (!m_mail[3].isNull())
+ ftext += QString("Date: %1\n")
+ .arg( m_mail[3] );
+ if (!m_mail[0].isNull())
+ ftext += QString("From: %1\n")
+ .arg( m_mail[0] );
+ if (!m_mail[1].isNull())
+ ftext += QString("Subject: %1\n")
+ .arg( m_mail[1] );
+
+ ftext += QString("\n%1\n")
+ .arg( m_mail[2]);
+
+ ftext += QString("----- End forwarded message -----\n");
+
+ Settings *settings = new Settings();
+ ComposeMail composer( settings ,this, 0, true);
+ composer.setSubject( "Fwd: " + m_mail[1] );
+ composer.setMessage( ftext );
+ if ( QDialog::Accepted == QPEApplication::execDialog( &composer ))
+ {
}
}
void ViewMail::slotDeleteMail( )
{
- if ( QMessageBox::warning(this, tr("Delete Mail"), QString( tr("<p>Do you really want to delete this mail? <br><br>" ) + m_mail[0] + " - " + m_mail[1] ) , QMessageBox::Yes, QMessageBox::No ) == QMessageBox::Yes ) {
+ if ( QMessageBox::warning(this, tr("Delete Mail"), QString( tr("<p>Do you really want to delete this mail? <br><br>" ) + m_mail[0] + " - " + m_mail[1] ) , QMessageBox::Yes, QMessageBox::No ) == QMessageBox::Yes )
+ {
m_recMail.Wrapper()->deleteMail( m_recMail );
hide();
deleted = true;
}
}
diff --git a/noncore/net/opieirc/ircservereditor.cpp b/noncore/net/opieirc/ircservereditor.cpp
index 60274d1..2d11bf0 100644
--- a/noncore/net/opieirc/ircservereditor.cpp
+++ b/noncore/net/opieirc/ircservereditor.cpp
@@ -1,86 +1,92 @@
+#include "ircservereditor.h"
+
+/* OPIE */
+#include <qpe/qpeapplication.h>
+
+/* QT */
#include <qmessagebox.h>
#include <qlayout.h>
#include <qlabel.h>
#include <qwhatsthis.h>
-#include "ircservereditor.h"
IRCServerEditor::IRCServerEditor(IRCServer server, QWidget* parent, const char* name, bool modal, WFlags) : QDialog(parent, name, modal, WStyle_ContextHelp) {
QGridLayout *layout = new QGridLayout(this, 7, 2, 5, 5);
QLabel *label = new QLabel(tr("Profile name :"), this);
m_name = new QLineEdit(server.name(), this);
QWhatsThis::add(m_name, tr("The name of this server profile in the overview"));
layout->addWidget(label, 0, 0);
layout->addWidget(m_name, 0, 1);
label = new QLabel(tr("Hostname :"), this);
m_hostname = new QLineEdit(server.hostname(), this);
QWhatsThis::add(m_hostname, tr("The server to connect to - can be any valid host name or IP address"));
layout->addWidget(label, 1, 0);
layout->addWidget(m_hostname, 1, 1);
label = new QLabel(tr("Port :"), this);
m_port = new QLineEdit(QString::number(server.port()), this);
QWhatsThis::add(m_port, tr("The server port to connect to. Usually 6667"));
layout->addWidget(label, 2, 0);
layout->addWidget(m_port, 2, 1);
label = new QLabel(tr("Nickname :"), this);
m_nickname = new QLineEdit(server.nick(), this);
QWhatsThis::add(m_nickname, tr("Your nick name on the IRC network"));
layout->addWidget(label, 3, 0);
layout->addWidget(m_nickname, 3, 1);
label = new QLabel(tr("Realname :"), this);
m_realname = new QLineEdit(server.realname(), this);
QWhatsThis::add(m_realname, tr("Your real name"));
layout->addWidget(label, 4, 0);
layout->addWidget(m_realname, 4, 1);
label = new QLabel(tr("Password :"), this);
m_password = new QLineEdit(server.password(), this);
m_password->setEchoMode( QLineEdit::Password );
QWhatsThis::add(m_password, tr("Password to connect to the server (if required)"));
layout->addWidget(label, 5, 0);
layout->addWidget(m_password, 5, 1);
label = new QLabel(tr("Channels :"), this);
m_channels = new QLineEdit(server.channels(), this);
QWhatsThis::add(m_channels, tr("Comma-Separated list of all channels you would like to join automatically"));
layout->addWidget(label, 6, 0);
layout->addWidget(m_channels, 6, 1);
setCaption(tr("Edit server information"));
- showMaximized();
+
+ QPEApplication::showDialog( this );
}
void IRCServerEditor::accept() {
if (m_name->text().length()==0)
QMessageBox::critical(this, tr("Error"), tr("Profile name required"));
else if (m_hostname->text().length()==0)
QMessageBox::critical(this, tr("Error"), tr("Host name required"));
else if (m_port->text().toInt()<=0)
QMessageBox::critical(this, tr("Error"), tr("Port required"));
else if (m_nickname->text().length()==0)
QMessageBox::critical(this, tr("Error"), tr("Nickname required"));
else if (m_realname->text().length()==0)
QMessageBox::critical(this, tr("Error"), tr("Realname required"));
else {
/* Now verify whether the channel list has a valid format */
QStringList channels = QStringList::split(QChar(','), m_channels->text());
for (QStringList::Iterator it = channels.begin(); it != channels.end(); ++it) {
QString channelName = (*it).stripWhiteSpace();
if (!channelName.startsWith("#") && !channelName.startsWith("+")) {
QMessageBox::critical(this, tr("Error"), tr("The channel list needs to contain a\ncomma separated list of channel\n names which start with either '#' or '+'"));
return;
}
}
QDialog::accept();
}
}
IRCServer IRCServerEditor::getServer() {
IRCServer server;
server.setName(m_name->text());
server.setHostname(m_hostname->text());
server.setPort(m_port->text().toInt());
server.setNick(m_nickname->text());
server.setRealname(m_realname->text());
server.setUsername(m_nickname->text());
server.setPassword(m_password->text());
server.setChannels(m_channels->text());
return server;
}
diff --git a/noncore/net/opieirc/ircserverlist.cpp b/noncore/net/opieirc/ircserverlist.cpp
index 595ae3e..62bfc17 100644
--- a/noncore/net/opieirc/ircserverlist.cpp
+++ b/noncore/net/opieirc/ircserverlist.cpp
@@ -1,135 +1,161 @@
+
+#include "ircserverlist.h"
+#include "ircservereditor.h"
+
+/* OPIE */
+#include <qpe/qpeapplication.h>
+
+/* QT */
#include <qlayout.h>
#include <qlabel.h>
#include <qhbox.h>
#include <qpushbutton.h>
#include <qwhatsthis.h>
-#include "ircserverlist.h"
-#include "ircservereditor.h"
-class IRCListBoxServer : public QListBoxText {
+class IRCListBoxServer : public QListBoxText
+{
public:
- IRCListBoxServer(IRCServer server) : QListBoxText(server.name()) {
+ IRCListBoxServer(IRCServer server) : QListBoxText(server.name())
+ {
m_server = server;
}
- IRCServer server() {
+ IRCServer server()
+ {
return m_server;
}
-
- void setServer(IRCServer server) {
+
+ void setServer(IRCServer server)
+ {
m_server = server;
setText(m_server.name());
}
protected:
IRCServer m_server;
};
-IRCServerList::IRCServerList(QWidget* parent, const char *name, bool modal, WFlags) : QDialog(parent, name, modal, WStyle_ContextHelp) {
+IRCServerList::IRCServerList(QWidget* parent, const char *name, bool modal, WFlags) : QDialog(parent, name, modal, WStyle_ContextHelp)
+{
QVBoxLayout *layout = new QVBoxLayout(this, 5, 5);
setCaption(tr("Serverlist Browser"));
QLabel *label = new QLabel(tr("Please choose a server profile"), this);
label->setAlignment(AlignHCenter);
layout->addWidget(label);
m_list = new QListBox(this);
QWhatsThis::add(m_list, tr("Select a server profile from this list and then tap on OK in the upper-right corner"));
layout->addWidget(m_list);
QHBox *buttons = new QHBox(this);
QPushButton *del = new QPushButton(tr("Delete"), buttons);
QPushButton *edit = new QPushButton(tr("Edit"), buttons);
QPushButton *add = new QPushButton(tr("Add"), buttons);
QWhatsThis::add(del, tr("Delete the currently selected server profile"));
QWhatsThis::add(edit, tr("Edit the currently selected server profile"));
QWhatsThis::add(add, tr("Add a new server profile"));
connect(del, SIGNAL(clicked()), this, SLOT(delServer()));
connect(edit, SIGNAL(clicked()), this, SLOT(editServer()));
connect(add, SIGNAL(clicked()), this, SLOT(addServer()));
layout->addWidget(buttons);
/* Load the configuration file */
m_config = new Config("OpieIRC");
m_config->setGroup("OpieIRC");
int count = m_config->readNumEntry("ServerCount", 0);
- if (count) {
- for (int i=0; i<count; i++) {
+ if (count)
+ {
+ for (int i=0; i<count; i++)
+ {
m_config->setGroup("OpieIRC");
QString name = m_config->readEntry("Server"+QString::number(i));
- if (name.length() > 0) {
+ if (name.length() > 0)
+ {
IRCServer server;
m_config->setGroup(name);
server.setName(name);
server.setHostname(m_config->readEntry("Hostname"));
server.setPort(m_config->readNumEntry("Port"));
server.setUsername(m_config->readEntry("Username"));
server.setPassword(m_config->readEntry("Password"));
server.setNick(m_config->readEntry("Nick"));
server.setRealname(m_config->readEntry("Realname"));
server.setChannels(m_config->readEntry("Channels"));
m_list->insertItem(new IRCListBoxServer(server));
}
}
}
-
- showMaximized();
+
+ QPEApplication::showDialog( this );
}
-void IRCServerList::addServer() {
+void IRCServerList::addServer()
+{
IRCServer server;
IRCServerEditor editor(server, this, "ServerEditor", TRUE);
- if (editor.exec() == QDialog::Accepted) {
+ if (editor.exec() == QDialog::Accepted)
+ {
server = editor.getServer();
/* Gets deleted by QListBox, so this is ok */
m_list->insertItem(new IRCListBoxServer(server));
}
}
-void IRCServerList::delServer() {
+void IRCServerList::delServer()
+{
int index = m_list->currentItem();
- if (index != -1) {
+ if (index != -1)
+ {
m_list->removeItem(index);
}
}
-void IRCServerList::editServer() {
+void IRCServerList::editServer()
+{
int index = m_list->currentItem();
- if (index != -1) {
+ if (index != -1)
+ {
IRCListBoxServer *item = (IRCListBoxServer *)m_list->item(index);
IRCServer server = item->server();
IRCServerEditor editor(server, this, "ServerEditor", TRUE);
- if (editor.exec() == QDialog::Accepted) {
+ if (editor.exec() == QDialog::Accepted)
+ {
server = editor.getServer();
item->setServer(server);
}
}
}
-int IRCServerList::exec() {
+int IRCServerList::exec()
+{
int returncode = QDialog::exec();
/* Now save the changes */
m_config->setGroup("OpieIRC");
m_config->writeEntry("ServerCount", QString::number(m_list->count()));
- for (unsigned int i=0; i<m_list->count(); i++) {
+ for (unsigned int i=0; i<m_list->count(); i++)
+ {
IRCServer server = ((IRCListBoxServer *)m_list->item(i))->server();
m_config->setGroup("OpieIRC");
m_config->writeEntry("Server"+QString::number(i), server.name());
m_config->setGroup(server.name());
m_config->writeEntry("Hostname", server.hostname());
m_config->writeEntry("Port", QString::number(server.port()));
m_config->writeEntry("Username", server.username());
m_config->writeEntry("Password", server.password());
m_config->writeEntry("Nick", server.nick());
m_config->writeEntry("Realname", server.realname());
m_config->writeEntry("Channels", server.channels());
}
return returncode;
}
-bool IRCServerList::hasServer() {
+bool IRCServerList::hasServer()
+{
return (m_list->currentItem() != -1);
}
-IRCServer IRCServerList::server() {
+IRCServer IRCServerList::server()
+{
return ((IRCListBoxServer *)m_list->item(m_list->currentItem()))->server();
}
-IRCServerList::~IRCServerList() {
+IRCServerList::~IRCServerList()
+{
delete m_config;
}
diff --git a/noncore/net/opieirc/ircsettings.cpp b/noncore/net/opieirc/ircsettings.cpp
index 2862296..f69d2c4 100644
--- a/noncore/net/opieirc/ircsettings.cpp
+++ b/noncore/net/opieirc/ircsettings.cpp
@@ -1,98 +1,108 @@
+
+#include "ircsettings.h"
+#include "irctab.h"
+
+/* OPIE */
#include <opie/ocolorbutton.h>
#include <opie/otabwidget.h>
+#include <qpe/qpeapplication.h>
+
+/* QT */
#include <qvalidator.h>
#include <qwhatsthis.h>
-#include "ircsettings.h"
-#include "irctab.h"
-IRCSettings::IRCSettings(QWidget* parent, const char* name, bool modal, WFlags) : QDialog(parent, name, modal, WStyle_ContextHelp) {
+IRCSettings::IRCSettings(QWidget* parent, const char* name, bool modal, WFlags) : QDialog(parent, name, modal, WStyle_ContextHelp)
+{
setCaption(tr("Settings") );
m_config = new Config("OpieIRC");
m_config->setGroup("OpieIRC");
QHBoxLayout *l = new QHBoxLayout(this, 2, 2);
OTabWidget *tw = new OTabWidget(this);
l->addWidget(tw);
/* General Configuration */
QWidget *genwidget = new QWidget(tw);
QGridLayout *layout = new QGridLayout(genwidget, 1, 2, 5, 0);
QLabel *label = new QLabel(tr("Lines displayed :"), genwidget);
layout->addWidget(label, 0, 0);
m_lines = new QLineEdit(m_config->readEntry("Lines", "100"), genwidget);
QWhatsThis::add(m_lines, tr("Amount of lines to be displayed in chats before old lines get deleted - this is necessary to restrain memory consumption. Set to 0 if you don't need this"));
QIntValidator *validator = new QIntValidator(this);
validator->setTop(10000);
validator->setBottom(0);
m_lines->setValidator(validator);
layout->addWidget(m_lines, 0, 1);
tw->addTab(genwidget, "opieirc/settings", tr("General"));
/* Color configuration */
QScrollView *view = new QScrollView(this);
view->setResizePolicy(QScrollView::AutoOneFit);
view->setFrameStyle( QFrame::NoFrame );
QWidget *widget = new QWidget(view->viewport());
view->addChild(widget);
layout = new QGridLayout(widget, 7, 2, 5, 0);
label = new QLabel(tr("Background color :"), widget);
layout->addWidget(label, 0, 0);
m_background = new OColorButton(widget, m_config->readEntry("BackgroundColor", "#FFFFFF"));
QWhatsThis::add(m_background, tr("Background color to be used in chats"));
layout->addWidget(m_background, 0, 1);
label = new QLabel(tr("Normal text color :"), widget);
layout->addWidget(label, 1, 0);
m_text = new OColorButton(widget, m_config->readEntry("TextColor", "#000000"));
QWhatsThis::add(m_text, tr("Text color to be used in chats"));
layout->addWidget(m_text, 1, 1);
label = new QLabel(tr("Error color :"), widget);
layout->addWidget(label, 2, 0);
m_error = new OColorButton(widget, m_config->readEntry("ErrorColor", "#FF0000"));
QWhatsThis::add(m_error, tr("Text color to be used to display errors"));
layout->addWidget(m_error, 2, 1);
label = new QLabel(tr("Text written by yourself :"), widget);
layout->addWidget(label, 3, 0);
m_self = new OColorButton(widget, m_config->readEntry("SelfColor", "#CC0000"));
QWhatsThis::add(m_self, tr("Text color to be used to identify text written by yourself"));
layout->addWidget(m_self, 3, 1);
label = new QLabel(tr("Text written by others :"), widget);
layout->addWidget(label, 4, 0);
m_other = new OColorButton(widget, m_config->readEntry("OtherColor", "#0000BB"));
QWhatsThis::add(m_other, tr("Text color to be used to identify text written by others"));
layout->addWidget(m_other, 4, 1);
label = new QLabel(tr("Text written by the server :"), widget);
layout->addWidget(label, 5, 0);
m_server = new OColorButton(widget, m_config->readEntry("ServerColor", "#0000FF"));
QWhatsThis::add(m_server, tr("Text color to be used to identify text written by the server"));
layout->addWidget(m_server, 5, 1);
label = new QLabel(tr("Notifications :"), widget);
layout->addWidget(label, 6, 0);
m_notification = new OColorButton(widget, m_config->readEntry("NotificationColor", "#AAE300"));
QWhatsThis::add(m_notification, tr("Text color to be used to display notifications"));
layout->addWidget(m_notification, 6, 1);
tw->addTab(view, "opieirc/colors", tr("Colors"));
tw->setCurrentTab( genwidget );
- showMaximized();
+
+ QPEApplication::showDialog( this );
}
-void IRCSettings::accept() {
+void IRCSettings::accept()
+{
IRCTab::m_backgroundColor = m_background->color().name();
IRCTab::m_textColor = m_text->color().name();
IRCTab::m_errorColor = m_error->color().name();
IRCTab::m_selfColor = m_self->color().name();
IRCTab::m_otherColor = m_other->color().name();
IRCTab::m_serverColor = m_server->color().name();
IRCTab::m_notificationColor = m_notification->color().name();
IRCTab::m_maxLines = m_lines->text().toInt();
m_config->writeEntry("BackgroundColor", IRCTab::m_backgroundColor);
m_config->writeEntry("TextColor", IRCTab::m_textColor);
m_config->writeEntry("ErrorColor", IRCTab::m_errorColor);
m_config->writeEntry("SelfColor", IRCTab::m_selfColor);
m_config->writeEntry("OtherColor", IRCTab::m_otherColor);
m_config->writeEntry("ServerColor", IRCTab::m_serverColor);
m_config->writeEntry("NotificationColor", IRCTab::m_notificationColor);
m_config->writeEntry("Lines", m_lines->text());
QDialog::accept();
}
-IRCSettings::~IRCSettings() {
+IRCSettings::~IRCSettings()
+{
delete m_config;
}
diff --git a/noncore/net/opietooth/blue-pin/pindlg.cc b/noncore/net/opietooth/blue-pin/pindlg.cc
index 7d60d6c..9418a20 100644
--- a/noncore/net/opietooth/blue-pin/pindlg.cc
+++ b/noncore/net/opietooth/blue-pin/pindlg.cc
@@ -1,54 +1,65 @@
-#include <stdio.h>
+#include "pindlg.h"
+
+/* OPIE */
+#include <qpe/config.h>
+#include <qpe/qpeapplication.h>
+/* QT */
#include <qcheckbox.h>
#include <qlabel.h>
#include <qlineedit.h>
#include <qtimer.h>
-#include <qpe/config.h>
-
-#include "pindlg.h"
+/* STD */
+#include <stdio.h>
using namespace OpieTooth;
PinDlg::PinDlg( const QString& status,
const QString& mac, QWidget* parent,
const char* name )
- : PinDlgBase( parent, name, WType_Modal )
+ : PinDlgBase( parent, name, WType_Modal )
{
m_mac = mac;
test( mac );
txtStatus->setText(status);
- showMaximized();
+ QPEApplication::showDialog( this );
}
-PinDlg::~PinDlg() {
-}
-void PinDlg::setMac( const QString& mac ) {
+PinDlg::~PinDlg()
+{}
+void PinDlg::setMac( const QString& mac )
+{
txtStatus->setText( mac );
}
-QString PinDlg::pin() const{
+QString PinDlg::pin() const
+{
return lnePin->text();
}
-void PinDlg::test( const QString& mac ) {
- if (!mac.isEmpty() ) {
+void PinDlg::test( const QString& mac )
+{
+ if (!mac.isEmpty() )
+ {
Config cfg("bluepin");
cfg.setGroup(mac);
lnePin->setText(cfg.readEntryCrypt("pin", QString::null ) );
- if ( !lnePin->text().isEmpty() ) {
+ if ( !lnePin->text().isEmpty() )
+ {
//QTimer::singleShot(100, this, SLOT(accept() ) );
}
}
}
-void PinDlg::accept() {
- if ( ckbPin->isChecked() ) {
+void PinDlg::accept()
+{
+ if ( ckbPin->isChecked() )
+ {
Config cfg("bluepin");
cfg.setGroup(m_mac );
cfg.writeEntryCrypt("pin", lnePin->text() );
}
QDialog::accept();
}
diff --git a/noncore/net/opietooth/manager/bluebase.cpp b/noncore/net/opietooth/manager/bluebase.cpp
index 2e68984..0ea45d2 100644
--- a/noncore/net/opietooth/manager/bluebase.cpp
+++ b/noncore/net/opietooth/manager/bluebase.cpp
@@ -1,627 +1,688 @@
/*
* bluebase.cpp *
* ---------------------
*
* copyright : (c) 2002 by Maximilian Reiß
* email : max.reiss@gmx.de
*
*/
/***************************************************************************
* *
* 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 option) any later version. *
* *
***************************************************************************/
#include "bluebase.h"
#include "scandialog.h"
#include "hciconfwrapper.h"
#include "devicehandler.h"
#include "btconnectionitem.h"
#include "rfcommassigndialogimpl.h"
-#include <remotedevice.h>
-#include <services.h>
-
-#include <stdlib.h>
+/* OPIE */
+#include <qpe/qpeapplication.h>
+#include <qpe/resource.h>
+#include <qpe/config.h>
+/* QT */
#include <qframe.h>
#include <qlabel.h>
#include <qpushbutton.h>
#include <qlayout.h>
#include <qvariant.h>
#include <qimage.h>
#include <qpixmap.h>
#include <qtabwidget.h>
#include <qscrollview.h>
#include <qvbox.h>
#include <qmessagebox.h>
#include <qcheckbox.h>
#include <qlineedit.h>
#include <qlistview.h>
#include <qdir.h>
#include <qpopupmenu.h>
#include <qtimer.h>
#include <qlist.h>
-#include <qpe/qpeapplication.h>
-#include <qpe/resource.h>
-#include <qpe/config.h>
-
+/* STD */
+#include <remotedevice.h>
+#include <services.h>
+#include <stdlib.h>
using namespace OpieTooth;
BlueBase::BlueBase( QWidget* parent, const char* name, WFlags fl )
- : BluetoothBase( parent, name, fl ) {
+ : BluetoothBase( parent, name, fl )
+{
m_localDevice = new Manager( "hci0" );
connect( PushButton2, SIGNAL( clicked() ), this, SLOT(startScan() ) );
connect( configApplyButton, SIGNAL(clicked() ), this, SLOT(applyConfigChanges() ) );
connect( rfcommBindButton, SIGNAL( clicked() ), this, SLOT( rfcommDialog() ) );
-// not good since lib is async
+ // not good since lib is async
// connect( ListView2, SIGNAL( expanded ( QListViewItem* ) ),
// this, SLOT( addServicesToDevice( QListViewItem * ) ) );
connect( ListView2, SIGNAL( clicked( QListViewItem* )),
this, SLOT( startServiceActionClicked( QListViewItem* ) ) );
connect( ListView2, SIGNAL( rightButtonClicked( QListViewItem *, const QPoint &, int ) ),
this, SLOT(startServiceActionHold( QListViewItem *, const QPoint &, int) ) );
connect( m_localDevice , SIGNAL( foundServices( const QString& , Services::ValueList ) ),
this, SLOT( addServicesToDevice( const QString& , Services::ValueList ) ) );
connect( m_localDevice, SIGNAL( available( const QString&, bool ) ),
this, SLOT( deviceActive( const QString& , bool ) ) );
connect( m_localDevice, SIGNAL( connections( ConnectionState::ValueList ) ),
this, SLOT( addConnectedDevices( ConnectionState::ValueList ) ) );
connect( m_localDevice, SIGNAL( signalStrength( const QString&, const QString& ) ),
- this, SLOT( addSignalStrength( const QString&, const QString& ) ) );
+ this, SLOT( addSignalStrength( const QString&, const QString& ) ) );
// let hold be rightButtonClicked()
QPEApplication::setStylusOperation( ListView2->viewport(), QPEApplication::RightOnHold);
QPEApplication::setStylusOperation( ListView4->viewport(), QPEApplication::RightOnHold);
//Load all icons needed
m_offPix = Resource::loadPixmap( "opietooth/notconnected" );
m_onPix = Resource::loadPixmap( "opietooth/connected" );
m_findPix = Resource::loadPixmap( "opietooth/find" );
QPalette pal = this->palette();
QColor col = pal.color( QPalette::Active, QColorGroup::Background );
pal.setColor( QPalette::Active, QColorGroup::Button, col );
pal.setColor( QPalette::Inactive, QColorGroup::Button, col );
pal.setColor( QPalette::Normal, QColorGroup::Button, col );
pal.setColor( QPalette::Disabled, QColorGroup::Button, col );
this->setPalette( pal );
setCaption( tr( "Bluetooth Manager" ) );
readConfig();
initGui();
ListView2->setRootIsDecorated(true);
writeToHciConfig();
// search conncetions
addConnectedDevices();
addSignalStrength();
m_iconLoader = new BTIconLoader();
readSavedDevices();
}
/**
* Reads all options from the config file
*/
-void BlueBase::readConfig() {
+void BlueBase::readConfig()
+{
Config cfg( "bluetoothmanager" );
cfg.setGroup( "bluezsettings" );
m_deviceName = cfg.readEntry( "name" , "No name" ); // name the device should identify with
m_defaultPasskey = cfg.readEntryCrypt( "passkey" , "" ); // <- hmm, look up how good the trolls did that, maybe too weak
m_useEncryption = cfg.readBoolEntry( "useEncryption" , TRUE );
m_enableAuthentification = cfg.readBoolEntry( "enableAuthentification" , TRUE );
m_enablePagescan = cfg.readBoolEntry( "enablePagescan" , TRUE );
m_enableInquiryscan = cfg.readBoolEntry( "enableInquiryscan" , TRUE );
}
/**
* Writes all options to the config file
*/
-void BlueBase::writeConfig() {
+void BlueBase::writeConfig()
+{
Config cfg( "bluetoothmanager" );
cfg.setGroup( "bluezsettings" );
cfg.writeEntry( "name" , m_deviceName );
cfg.writeEntryCrypt( "passkey" , m_defaultPasskey );
cfg.writeEntry( "useEncryption" , m_useEncryption );
cfg.writeEntry( "enableAuthentification" , m_enableAuthentification );
cfg.writeEntry( "enablePagescan" , m_enablePagescan );
cfg.writeEntry( "enableInquiryscan" , m_enableInquiryscan );
writeToHciConfig();
}
/**
* Modify the hcid.conf file to our needs
*/
-void BlueBase::writeToHciConfig() {
+void BlueBase::writeToHciConfig()
+{
qWarning("writeToHciConfig");
HciConfWrapper hciconf ( "/etc/bluetooth/hcid.conf" );
hciconf.load();
hciconf.setPinHelper( "/opt/QtPalmtop/bin/bluepin" );
hciconf.setName( m_deviceName );
hciconf.setEncrypt( m_useEncryption );
hciconf.setAuth( m_enableAuthentification );
hciconf.setPscan( m_enablePagescan );
hciconf.setIscan( m_enableInquiryscan );
hciconf.save();
}
/**
* Read the list of allready known devices
*/
-void BlueBase::readSavedDevices() {
+void BlueBase::readSavedDevices()
+{
QValueList<RemoteDevice> loadedDevices;
DeviceHandler handler;
loadedDevices = handler.load();
addSearchedDevices( loadedDevices );
}
/**
* Write the list of allready known devices
*/
-void BlueBase::writeSavedDevices() {
+void BlueBase::writeSavedDevices()
+{
QListViewItemIterator it( ListView2 );
BTListItem* item;
BTDeviceItem* device;
RemoteDevice::ValueList list;
- for ( ; it.current(); ++it ) {
+ for ( ; it.current(); ++it )
+ {
item = (BTListItem*)it.current();
if(item->typeId() != BTListItem::Device )
continue;
device = (BTDeviceItem*)item;
list.append( device->remoteDevice() );
}
/*
* if not empty save the List through DeviceHandler
*/
if ( list.isEmpty() )
return;
DeviceHandler handler;
handler.save( list );
}
/**
* Set up the gui
*/
-void BlueBase::initGui() {
+void BlueBase::initGui()
+{
StatusLabel->setText( status() ); // maybe move it to getStatus()
cryptCheckBox->setChecked( m_useEncryption );
authCheckBox->setChecked( m_enableAuthentification );
pagescanCheckBox->setChecked( m_enablePagescan );
inquiryscanCheckBox->setChecked( m_enableInquiryscan );
deviceNameLine->setText( m_deviceName );
passkeyLine->setText( m_defaultPasskey );
// set info tab
setInfo();
}
/**
* Get the status informations and returns it
* @return QString the status informations gathered
*/
-QString BlueBase::status()const{
+QString BlueBase::status()const
+{
QString infoString = tr( "<b>Device name : </b> Ipaq" );
infoString += QString( "<br><b>" + tr( "MAC adress: " ) +"</b> No idea" );
infoString += QString( "<br><b>" + tr( "Class" ) + "</b> PDA" );
return (infoString);
}
/**
* Read the current values from the gui and invoke writeConfig()
*/
-void BlueBase::applyConfigChanges() {
+void BlueBase::applyConfigChanges()
+{
m_deviceName = deviceNameLine->text();
m_defaultPasskey = passkeyLine->text();
m_useEncryption = cryptCheckBox->isChecked();
m_enableAuthentification = authCheckBox->isChecked();
m_enablePagescan = pagescanCheckBox->isChecked();
m_enableInquiryscan = inquiryscanCheckBox->isChecked();
writeConfig();
QMessageBox::information( this, tr("Test") , tr("Changes were applied.") );
}
/**
* Launch Rfcomm Bind dialog
*
*/
-void BlueBase::rfcommDialog() {
+void BlueBase::rfcommDialog()
+{
RfcommAssignDialog rfcommAssign ( this, "RfcommAssignDialog", true, WStyle_ContextHelp );
- rfcommAssign.showMaximized();
-
- if ( rfcommAssign.exec() == QDialog::Accepted ) {
+ if ( QPEApplication::execDialog( &rfcommAssign ) == QDialog::Accepted )
+ {
rfcommAssign.saveConfig();
}
}
/**
* Add fresh found devices from scan dialog to the listing
*
*/
-void BlueBase::addSearchedDevices( const QValueList<RemoteDevice> &newDevices ) {
+void BlueBase::addSearchedDevices( const QValueList<RemoteDevice> &newDevices )
+{
BTDeviceItem * deviceItem;
QValueList<RemoteDevice>::ConstIterator it;
- for( it = newDevices.begin(); it != newDevices.end() ; ++it ) {
+ for( it = newDevices.begin(); it != newDevices.end() ; ++it )
+ {
if (find( (*it) )) // is already inserted
continue;
deviceItem = new BTDeviceItem( ListView2 , (*it) );
deviceItem->setPixmap( 1, m_findPix );
deviceItem->setExpandable ( true );
// look if device is avail. atm, async
deviceActive( (*it) );
// ggf auch hier?
addServicesToDevice( deviceItem );
}
}
/**
* Action that is toggled on entrys on click
*/
-void BlueBase::startServiceActionClicked( QListViewItem */*item*/ ) {
-}
+void BlueBase::startServiceActionClicked( QListViewItem */*item*/ )
+{}
/**
* Action that are toggled on hold (mostly QPopups i guess)
*/
-void BlueBase::startServiceActionHold( QListViewItem * item, const QPoint & point, int /*column*/ ) {
+void BlueBase::startServiceActionHold( QListViewItem * item, const QPoint & point, int /*column*/ )
+{
if (!item )
return;
QPopupMenu *menu = new QPopupMenu();
int ret=0;
- if ( ((BTListItem*)item)->type() == "device") {
+ if ( ((BTListItem*)item)->type() == "device")
+ {
QPopupMenu *groups = new QPopupMenu();
menu->insertItem( ((BTDeviceItem*)item)->name(),0 );
menu->insertSeparator(1);
menu->insertItem( tr("rescan sevices"), 2);
menu->insertItem( tr("to group"), groups , 3);
menu->insertItem( tr("delete"), 4);
ret = menu->exec( point , 0);
- switch(ret) {
+ switch(ret)
+ {
case -1:
break;
case 2:
addServicesToDevice( (BTDeviceItem*)item );
break;
case 4:
// deletes childs too
delete item;
break;
}
delete groups;
}
/*
* We got service sensitive PopupMenus in our factory
* We will create one through the factory and will insert
* our Separator + ShowInfo into the menu or create a new
* one if the factory returns 0
* PopupMenu deletion is kind of weird.
* If escaped( -1 ) or any of our items were chosen we'll
* delete the PopupMenu otherwise it's the responsibility of
* the PopupMenu to delete itself
*
*/
- else if ( ((BTListItem*)item)->type() == "service") {
+ else if ( ((BTListItem*)item)->type() == "service")
+ {
BTServiceItem* service = (BTServiceItem*)item;
QMap<int, QString> list = service->services().classIdList();
QMap<int, QString>::Iterator it = list.begin();
QPopupMenu *popup =0l;
- if ( it != list.end() ) {
- qWarning("Searching id %d %s", it.key(), it.data().latin1() );
+ if ( it != list.end() )
+ {
+ qWarning("Searching id %d %s", it.key(), it.data().latin1() );
popup = m_popHelper.find( it.key(),
service->services(),
(BTDeviceItem*)service->parent() );
- }else {
- qWarning("Empty");
- }
+ }
+ else
+ {
+ qWarning("Empty");
+ }
- if ( popup == 0l ) {
+ if ( popup == 0l )
+ {
qWarning("factory returned 0l");
popup = new QPopupMenu();
}
int test1 = popup->insertItem( tr("Test1:"), 2);
ret = popup->exec( point );
qWarning("returned from exec() ");
- if ( ret == -1 ) {
+ if ( ret == -1 )
+ {
;
- } else if ( ret == test1 ) {
+ }
+ else if ( ret == test1 )
+ {
;
}
delete popup;
}
delete menu;
}
/**
* Search and display avail. services for a device (on expand from device listing)
* @param item the service item returned
*/
-void BlueBase::addServicesToDevice( BTDeviceItem * item ) {
+void BlueBase::addServicesToDevice( BTDeviceItem * item )
+{
qDebug("addServicesToDevice");
// row of mac adress text(3)
RemoteDevice device = item->remoteDevice();
m_deviceList.insert( item->mac() , item );
// and some time later I get a signal foundServices( const QString& device, Services::ValueList ); back
m_localDevice->searchServices( device );
}
/**
* Overloaded. This one it the one that is
ted to the foundServices signal
* @param device the mac address of the remote device
* @param servicesList the list with the service the device has.
*/
-void BlueBase::addServicesToDevice( const QString& device, Services::ValueList servicesList ) {
+void BlueBase::addServicesToDevice( const QString& device, Services::ValueList servicesList )
+{
qDebug("fill services list");
QMap<QString,BTDeviceItem*>::Iterator it;
BTDeviceItem* deviceItem = 0;
// get the right devices which requested the search
it = m_deviceList.find( device );
if( it == m_deviceList.end() )
return;
deviceItem = it.data();
// remove previous entries
QList<QListViewItem> tempList;
tempList.setAutoDelete( true );
QListViewItem * child = deviceItem->firstChild();
- while( child ) {
- tempList.append( child );
- child = child->nextSibling();
+ while( child )
+ {
+ tempList.append( child );
+ child = child->nextSibling();
}
tempList.clear();
QValueList<OpieTooth::Services>::Iterator it2;
BTServiceItem* serviceItem;
- if (!servicesList.isEmpty() ) {
+ if (!servicesList.isEmpty() )
+ {
// add services
QMap<int, QString> list;
QMap<int, QString>::Iterator classIt;
- for( it2 = servicesList.begin(); it2 != servicesList.end(); ++it2 ) {
+ for( it2 = servicesList.begin(); it2 != servicesList.end(); ++it2 )
+ {
serviceItem = new BTServiceItem( deviceItem, (*it2) );
list = (*it2).classIdList();
classIt = list.begin();
int classId=0;
- if ( classIt != list.end() ) {
+ if ( classIt != list.end() )
+ {
classId = classIt.key();
}
serviceItem->setPixmap( 0, m_iconLoader->serviceIcon( classId ) );
}
- } else {
+ }
+ else
+ {
Services s1;
s1.setServiceName( tr("no services found") );
serviceItem = new BTServiceItem( deviceItem, s1 );
}
// now remove them from the list
m_deviceList.remove( it );
}
-void BlueBase::addSignalStrength() {
+void BlueBase::addSignalStrength()
+{
- QListViewItemIterator it( ListView4 );
- for ( ; it.current(); ++it ) {
- m_localDevice->signalStrength( ((BTConnectionItem*)it.current() )->connection().mac() );
- }
+ QListViewItemIterator it( ListView4 );
+ for ( ; it.current(); ++it )
+ {
+ m_localDevice->signalStrength( ((BTConnectionItem*)it.current() )->connection().mac() );
+ }
- QTimer::singleShot( 5000, this, SLOT( addSignalStrength() ) );
+ QTimer::singleShot( 5000, this, SLOT( addSignalStrength() ) );
}
-void BlueBase::addSignalStrength( const QString& mac, const QString& strength ) {
+void BlueBase::addSignalStrength( const QString& mac, const QString& strength )
+{
- QListViewItemIterator it( ListView4 );
- for ( ; it.current(); ++it ) {
- if( ((BTConnectionItem*)it.current())->connection().mac() == mac ) {
- ((BTConnectionItem*)it.current() )->setSignalStrength( strength );
- }
- }
+ QListViewItemIterator it( ListView4 );
+ for ( ; it.current(); ++it )
+ {
+ if( ((BTConnectionItem*)it.current())->connection().mac() == mac )
+ {
+ ((BTConnectionItem*)it.current() )->setSignalStrength( strength );
+ }
+ }
}
/**
* Add the existing connections (pairs) to the connections tab.
* This one triggers the search
*/
-void BlueBase::addConnectedDevices() {
- m_localDevice->searchConnections();
+void BlueBase::addConnectedDevices()
+{
+ m_localDevice->searchConnections();
}
/**
* This adds the found connections to the connection tab.
* @param connectionList the ValueList with all current connections
*/
-void BlueBase::addConnectedDevices( ConnectionState::ValueList connectionList ) {
+void BlueBase::addConnectedDevices( ConnectionState::ValueList connectionList )
+{
QValueList<OpieTooth::ConnectionState>::Iterator it;
BTConnectionItem * connectionItem;
- if ( !connectionList.isEmpty() ) {
+ if ( !connectionList.isEmpty() )
+ {
- for (it = connectionList.begin(); it != connectionList.end(); ++it) {
+ for (it = connectionList.begin(); it != connectionList.end(); ++it)
+ {
QListViewItemIterator it2( ListView4 );
- bool found = false;
- for ( ; it2.current(); ++it2 ) {
- if( ( (BTConnectionItem*)it2.current())->connection().mac() == (*it).mac() ) {
- found = true;
- }
- }
+ bool found = false;
+ for ( ; it2.current(); ++it2 )
+ {
+ if( ( (BTConnectionItem*)it2.current())->connection().mac() == (*it).mac() )
+ {
+ found = true;
+ }
+ }
- if ( found == false ) {
- connectionItem = new BTConnectionItem( ListView4, (*it) );
+ if ( found == false )
+ {
+ connectionItem = new BTConnectionItem( ListView4, (*it) );
- if( m_deviceList.find((*it).mac()).data() ) {
- connectionItem->setName( m_deviceList.find( (*it).mac()).data()->name() );
- }
- }
+ if( m_deviceList.find((*it).mac()).data() )
+ {
+ connectionItem->setName( m_deviceList.find( (*it).mac()).data()->name() );
+ }
+ }
- }
+ }
QListViewItemIterator it2( ListView4 );
- for ( ; it2.current(); ++it2 ) {
- bool found = false;
- for (it = connectionList.begin(); it != connectionList.end(); ++it) {
- if( ( ((BTConnectionItem*)it2.current())->connection().mac() ) == (*it).mac() ) {
- found = true;
- }
+ for ( ; it2.current(); ++it2 )
+ {
+ bool found = false;
+ for (it = connectionList.begin(); it != connectionList.end(); ++it)
+ {
+ if( ( ((BTConnectionItem*)it2.current())->connection().mac() ) == (*it).mac() )
+ {
+ found = true;
+ }
}
- if ( !found ) {
- delete it2.current();
- }
+ if ( !found )
+ {
+ delete it2.current();
+ }
}
- } else {
+ }
+ else
+ {
ListView4->clear();
ConnectionState con;
con.setMac( tr("No connections found") );
connectionItem = new BTConnectionItem( ListView4 , con );
}
// recall connection search after some time
QTimer::singleShot( 15000, this, SLOT( addConnectedDevices() ) );
}
/**
* Find out if a device can currently be reached
* @param device
*/
-void BlueBase::deviceActive( const RemoteDevice &device ) {
+void BlueBase::deviceActive( const RemoteDevice &device )
+{
// search by mac, async, gets a signal back
// We should have a BTDeviceItem there or where does it get added to the map -zecke
m_localDevice->isAvailable( device.mac() );
}
/**
* The signal catcher. Set the avail. status on device.
* @param device - the mac address
* @param connected - if it is avail. or not
*/
-void BlueBase::deviceActive( const QString& device, bool connected ) {
+void BlueBase::deviceActive( const QString& device, bool connected )
+{
qDebug("deviceActive slot");
QMap<QString,BTDeviceItem*>::Iterator it;
it = m_deviceList.find( device );
if( it == m_deviceList.end() )
return;
BTDeviceItem* deviceItem = it.data();
- if ( connected ) {
+ if ( connected )
+ {
deviceItem->setPixmap( 1, m_onPix );
- } else {
+ }
+ else
+ {
deviceItem->setPixmap( 1, m_offPix );
}
m_deviceList.remove( it );
}
/**
* Open the "scan for devices" dialog
*/
-void BlueBase::startScan() {
+void BlueBase::startScan()
+{
ScanDialog *scan = new ScanDialog( this, "ScanDialog",
true, WDestructiveClose );
QObject::connect( scan, SIGNAL( selectedDevices( const QValueList<RemoteDevice>& ) ),
this, SLOT( addSearchedDevices( const QValueList<RemoteDevice>& ) ) );
- scan->showMaximized();
+ QPEApplication::showDialog( scan );
}
/**
* Set the informations about the local device in information Tab
*/
-void BlueBase::setInfo() {
+void BlueBase::setInfo()
+{
StatusLabel->setText( status() );
}
/**
* Decontructor
*/
-BlueBase::~BlueBase() {
+BlueBase::~BlueBase()
+{
writeSavedDevices();
delete m_iconLoader;
}
/**
* find searches the ListView for a BTDeviceItem containig
* the same Device if found return true else false
* @param dev RemoteDevice to find
* @return returns true if found
*/
-bool BlueBase::find( const RemoteDevice& rem ) {
+bool BlueBase::find( const RemoteDevice& rem )
+{
QListViewItemIterator it( ListView2 );
BTListItem* item;
BTDeviceItem* device;
- for (; it.current(); ++it ) {
+ for (; it.current(); ++it )
+ {
item = (BTListItem*) it.current();
if ( item->typeId() != BTListItem::Device )
continue;
device = (BTDeviceItem*)item;
if ( rem.equals( device->remoteDevice() ) )
return true;
}
return false; // not found
}
diff --git a/noncore/net/opietooth/manager/obexpopup.cpp b/noncore/net/opietooth/manager/obexpopup.cpp
index a550648..d147d52 100644
--- a/noncore/net/opietooth/manager/obexpopup.cpp
+++ b/noncore/net/opietooth/manager/obexpopup.cpp
@@ -1,41 +1,45 @@
-#include <qtimer.h>
-
#include "obexdialog.h"
#include "obexpopup.h"
+/* OPIE */
+#include <qpe/qpeapplication.h>
+
+/* QT */
+#include <qtimer.h>
+
using namespace OpieTooth;
/*
* c'tor init the QAction
*/
ObexPopup::ObexPopup()
- : QPopupMenu() {
+ : QPopupMenu()
+{
qWarning("RfcCommPopup c'tor");
QAction* a;
/* connect action */
a = new QAction( ); // so it's get deleted
a->setText("Push file");
a->addTo( this );
connect( a, SIGNAL( activated() ),
this, SLOT( slotPush() ) );
};
-ObexPopup::~ObexPopup() {
-}
+ObexPopup::~ObexPopup()
+{}
-void ObexPopup::slotPush() {
+void ObexPopup::slotPush()
+{
qWarning("push something");
-
ObexDialog obexDialog;
- obexDialog.showMaximized();
- obexDialog.exec();
+ QPEApplication::execDialog( &obexDialog );
}
diff --git a/noncore/net/opietooth/manager/rfcommassigndialogimpl.cpp b/noncore/net/opietooth/manager/rfcommassigndialogimpl.cpp
index b5cc074..fc76301 100644
--- a/noncore/net/opietooth/manager/rfcommassigndialogimpl.cpp
+++ b/noncore/net/opietooth/manager/rfcommassigndialogimpl.cpp
@@ -1,120 +1,135 @@
#include "rfcommassigndialogimpl.h"
#include "rfcommassigndialogitem.h"
#include "rfcommconfhandler.h"
+/* OPIE */
#include <qpe/config.h>
+#include <qpe/qpeapplication.h>
+/* QT */
#include <qlayout.h>
using namespace OpieTooth;
// TODO: write only the file in bluebase?
// muss rfcommd dann neu gestartet werden
// sollte rfcomm bind all nicht eh default config sein ( polled das? - d.h. sobald nen gerät in der nähe ist bindet es?
RfcommAssignDialog::RfcommAssignDialog( QWidget* parent, const char* name, bool modal, WFlags fl )
- : RfcommAssignDialogBase( parent, name, modal, fl ) {
+ : RfcommAssignDialogBase( parent, name, modal, fl )
+{
m_range = 5;
m_scrollView = new QScrollView( this );
m_scrollView->setResizePolicy( QScrollView::AutoOneFit );
m_scrollView->setHScrollBarMode( QScrollView::AlwaysOff );
RfcommAssignDialogBaseLayout->addWidget( m_scrollView );
m_box = new QVBox( m_scrollView->viewport() );
m_scrollView->addChild( m_box );
confHandler = new RfCommConfHandler( "/etc/bluetooth/rfcomm.conf" );
loadConfig();
}
-RfcommAssignDialog::~RfcommAssignDialog() {
- if ( confHandler ) {
+RfcommAssignDialog::~RfcommAssignDialog()
+{
+ if ( confHandler )
+ {
delete confHandler;
}
}
-void RfcommAssignDialog::newDevice( const QString & mac ) {
+void RfcommAssignDialog::newDevice( const QString & mac )
+{
- for ( int i = 0 ; i < m_range; i++ ) {
+ for ( int i = 0 ; i < m_range; i++ )
+ {
QMap<QString, RfCommConfObject*>::Iterator it;
it = confHandler->foundEntries().find( QString("%1").arg( i ) );
// make sure that rfcommX is not assigned yet
- if ( it == confHandler->foundEntries().end() ) {
+ if ( it == confHandler->foundEntries().end() )
+ {
QDialog dialog( this, "newdevice", true, WStyle_ContextHelp );
- dialog.showMaximized();
+
RfcommDialogItem *newDev = new RfcommDialogItem( &dialog );
newDev->setIdent( i );
newDev->setMac( mac );
- if ( dialog.exec() == QDialog::Accepted ) {
+ if ( QPEApplication::execDialog( &dialog ) == QDialog::Accepted )
+ {
RfcommDialogItem *rfcomm = new RfcommDialogItem( m_box );
m_itemList.insert( i , rfcomm );
rfcomm->setIdent( i );
rfcomm->setMac( mac );
rfcomm->setChannel( newDev->channel() );
rfcomm->setComment( newDev->comment() );
qDebug( "New device set up" );
}
}
}
}
-void RfcommAssignDialog::loadConfig() {
+void RfcommAssignDialog::loadConfig()
+{
//Config cfg( "bluetoothmanager-rfcommbind" );
- for ( int i = 0 ; i < m_range; i++ ) {
+ for ( int i = 0 ; i < m_range; i++ )
+ {
// cfg.setGroup( QString("%1").arg( i ) );
RfcommDialogItem *rfcomm = new RfcommDialogItem( m_box );
m_itemList.insert( i , rfcomm );
rfcomm->setIdent( i );
QMap<QString, RfCommConfObject*>::Iterator it;
it = confHandler->foundEntries().find( QString("%1").arg( i ) );
- if ( it != confHandler->foundEntries().end() ) {
+ if ( it != confHandler->foundEntries().end() )
+ {
qDebug( "Found key in foundEntries() " );
rfcomm->setMac( it.data()->mac() );
rfcomm->setChannel( it.data()->channel() );
rfcomm->setComment( it.data()->comment() );
}
- /* Use rfcomm.conf directly for now
- * rfcomm->setMac( cfg.readEntry( "mac", "" ) );
- * rfcomm->setChannel( cfg.readNumEntry( "channel", 1 ) );
- * rfcomm->setComment( cfg.readEntry( "comment", "" ) );
- */
+ /* Use rfcomm.conf directly for now
+ * rfcomm->setMac( cfg.readEntry( "mac", "" ) );
+ * rfcomm->setChannel( cfg.readNumEntry( "channel", 1 ) );
+ * rfcomm->setComment( cfg.readEntry( "comment", "" ) );
+ */
}
}
-void RfcommAssignDialog::saveConfig() {
+void RfcommAssignDialog::saveConfig()
+{
//Config cfg( "bluetoothmanager-rfcommbind" );
QMap< int, RfcommDialogItem*>::Iterator it;
QMap< QString, RfCommConfObject*> outMap;
- for( it = m_itemList.begin(); it != m_itemList.end(); ++it ) {
+ for( it = m_itemList.begin(); it != m_itemList.end(); ++it )
+ {
//cfg.setGroup( QString("%1").arg( it.key() ) );
RfcommDialogItem *rfcomm = it.data();
outMap.insert( QString( "%1").arg( it.key() ), new RfCommConfObject( it.key(), rfcomm->mac(), rfcomm->channel(), rfcomm->comment() ) );
//cfg.writeEntry( "mac", rfcomm->mac() );
//cfg.writeEntry( "channel", rfcomm->channel() );
//cfg.writeEntry( "comment", rfcomm->comment() );
}
confHandler->save( outMap );
}
diff --git a/noncore/net/opietooth/manager/rfcpopup.cpp b/noncore/net/opietooth/manager/rfcpopup.cpp
index d95f14b..04bfe48 100644
--- a/noncore/net/opietooth/manager/rfcpopup.cpp
+++ b/noncore/net/opietooth/manager/rfcpopup.cpp
@@ -1,96 +1,103 @@
-#include <qtimer.h>
-
#include "pppdialog.h"
#include "rfcpopup.h"
#include "rfcommassigndialogimpl.h"
+/* OPIE */
+#include <qpe/qpeapplication.h>
+
+/* QT */
+#include <qtimer.h>
+
using namespace OpieTooth;
/*
* c'tor init the QAction
*/
RfcCommPopup::RfcCommPopup( OpieTooth::BTDeviceItem* item )
- : QPopupMenu() {
+ : QPopupMenu()
+{
qWarning("RfcCommPopup c'tor");
QAction* a;
m_item = item;
/* connect action */
a = new QAction( ); // so it's get deleted
a->setText("Connect");
a->addTo( this );
connect( a, SIGNAL( activated() ),
this, SLOT( slotConnect() ) );
/* disconnect action */
a = new QAction( );
a->setText("Disconnect");
a->addTo( this );
connect( a, SIGNAL( activated() ) ,
- this, SLOT( slotDisconnect() ) );
+ this, SLOT( slotDisconnect() ) );
/* foo action */
a = new QAction( );
a->setText("Bind table");
a->addTo( this );
connect( a, SIGNAL( activated() ),
- this, SLOT( slotBind() ) );
+ this, SLOT( slotBind() ) );
/* bar action */
a = new QAction( );
a->setText( "Bar" );
a->addTo( this );
connect( a, SIGNAL( activated() ),
- this, SLOT( slotBar() ) );
+ this, SLOT( slotBar() ) );
};
-RfcCommPopup::~RfcCommPopup() {
-/* delete m_con;
- delete m_dis;
- delete m_foo;
- delete m_bar; */
+RfcCommPopup::~RfcCommPopup()
+{
+ /* delete m_con;
+ delete m_dis;
+ delete m_foo;
+ delete m_bar; */
}
-void RfcCommPopup::slotConnect() {
+void RfcCommPopup::slotConnect()
+{
qWarning("connect");
-
-
PPPDialog pppDialog;
- pppDialog.showMaximized();
- pppDialog.exec();
+ QPEApplication::execDialog( &pppDialog );
}
-void RfcCommPopup::slotDisconnect() {
+void RfcCommPopup::slotDisconnect()
+{
qWarning("slot disconnected");
}
-void RfcCommPopup::slotBind() {
+void RfcCommPopup::slotBind()
+{
RfcommAssignDialog rfcommAssign ( this, "RfcommAssignDialog", true, WStyle_ContextHelp );
- rfcommAssign.showMaximized();
rfcommAssign.newDevice( m_item->mac() );
- if ( rfcommAssign.exec() == QDialog::Accepted ) {
+ if ( QPEApplication::execDialog( &rfcommAssign ) == QDialog::Accepted )
+ {
rfcommAssign.saveConfig();
}
}
-void RfcCommPopup::slotBar() {
+void RfcCommPopup::slotBar()
+{
qWarning("slotBar");
};
diff --git a/noncore/net/wellenreiter/gui/mainwindow.cpp b/noncore/net/wellenreiter/gui/mainwindow.cpp
index 3729ed0..95a8294 100644
--- a/noncore/net/wellenreiter/gui/mainwindow.cpp
+++ b/noncore/net/wellenreiter/gui/mainwindow.cpp
@@ -1,439 +1,436 @@
/**********************************************************************
** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved.
**
** This file is part of Opie Environment.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
**********************************************************************/
#include "configwindow.h"
#include "gps.h"
#include "logwindow.h"
#include "hexwindow.h"
#include "mainwindow.h"
#include "wellenreiter.h"
#include "scanlist.h"
#include <qcombobox.h>
#include <qdatastream.h>
#include <qfile.h>
#include <qfileinfo.h>
#include <qlabel.h>
#include <qlayout.h>
#include <qlineedit.h>
#include <qiconset.h>
#include <qmenubar.h>
#include <qmessagebox.h>
#include <qpopupmenu.h>
#include <qpushbutton.h>
#include <qstatusbar.h>
#include <qspinbox.h>
#include <qtextstream.h>
#include <qtoolbutton.h>
#ifdef QWS
#include <qpe/resource.h>
#include <opie2/ofiledialog.h>
using namespace Opie;
#else
#include "resource.h"
#include <qapplication.h>
#include <qfiledialog.h>
#endif
#include <unistd.h>
WellenreiterMainWindow::WellenreiterMainWindow( QWidget * parent, const char * name, WFlags f )
:QMainWindow( parent, name, f )
{
cw = new WellenreiterConfigWindow( this );
mw = new Wellenreiter( this );
mw->setConfigWindow( cw );
setCentralWidget( mw );
// setup application icon
#ifndef QWS
setIcon( Resource::loadPixmap( "wellenreiter/appicon-trans" ) );
setIconText( "Wellenreiter/X11" );
#endif
// setup tool buttons
startButton = new QToolButton( 0 );
#ifdef QWS
startButton->setAutoRaise( true );
#endif
startButton->setIconSet( Resource::loadIconSet( "wellenreiter/SearchIcon" ) );
startButton->setEnabled( false );
connect( startButton, SIGNAL( clicked() ), mw, SLOT( startClicked() ) );
stopButton = new QToolButton( 0 );
#ifdef QWS
stopButton->setAutoRaise( true );
#endif
stopButton->setIconSet( Resource::loadIconSet( "wellenreiter/CancelIcon" ) );
stopButton->setEnabled( false );
connect( stopButton, SIGNAL( clicked() ), mw, SLOT( stopClicked() ) );
QToolButton* d = new QToolButton( 0 );
#ifdef QWS
d->setAutoRaise( true );
#endif
d->setIconSet( Resource::loadIconSet( "wellenreiter/SettingsIcon" ) );
connect( d, SIGNAL( clicked() ), this, SLOT( showConfigure() ) );
uploadButton = new QToolButton( 0 );
#ifdef QWS
uploadButton->setAutoRaise( true );
#endif
uploadButton->setIconSet( Resource::loadIconSet( "up" ) );
uploadButton->setEnabled( false );
//uploadButton->setEnabled( true ); // DEBUGGING
connect( uploadButton, SIGNAL( clicked() ), this, SLOT( uploadSession() ) );
// setup menu bar
int id;
QMenuBar* mb = menuBar();
QPopupMenu* fileSave = new QPopupMenu( mb );
fileSave->insertItem( tr( "&Session..." ), this, SLOT( fileSaveSession() ) );
fileSave->insertItem( tr( "&Text Log..." ), this, SLOT( fileSaveLog() ) );
fileSave->insertItem( tr( "&Hex Log..." ), this, SLOT( fileSaveHex() ) );
QPopupMenu* fileLoad = new QPopupMenu( mb );
fileLoad->insertItem( tr( "&Session..." ), this, SLOT( fileLoadSession() ) );
//fileLoad->insertItem( "&Log", this, SLOT( fileLoadLog() ) );
QPopupMenu* file = new QPopupMenu( mb );
file->insertItem( tr( "&New" ), this, SLOT( fileNew() ) );
id = file->insertItem( tr( "&Load" ), fileLoad );
file->insertItem( tr( "&Save" ), fileSave );
file->insertSeparator();
uploadID = file->insertItem( tr( "&Upload Session" ), this, SLOT( uploadSession() ) );
file->insertSeparator();
file->insertItem( tr( "&Exit" ), qApp, SLOT( quit() ) );
QPopupMenu* view = new QPopupMenu( mb );
view->insertItem( tr( "&Configure..." ) );
QPopupMenu* sniffer = new QPopupMenu( mb );
sniffer->insertItem( tr( "&Configure..." ), this, SLOT( showConfigure() ) );
sniffer->insertSeparator();
startID = sniffer->insertItem( tr( "&Start" ), mw, SLOT( startClicked() ) );
sniffer->setItemEnabled( startID, false );
stopID = sniffer->insertItem( tr( "Sto&p" ), mw, SLOT( stopClicked() ) );
sniffer->setItemEnabled( stopID, false );
QPopupMenu* demo = new QPopupMenu( mb );
demo->insertItem( tr( "&Add something" ), this, SLOT( demoAddStations() ) );
//demo->insertItem( tr( "&Read from GPSd" ), this, SLOT( demoReadFromGps() ) );
id = mb->insertItem( tr( "&File" ), file );
//id = mb->insertItem( tr( "&View" ), view );
//mb->setItemEnabled( id, false );
id = mb->insertItem( tr( "&Sniffer" ), sniffer );
id = mb->insertItem( tr( "&Demo" ), demo );
mb->setItemEnabled( id, true );
mb->setItemEnabled( uploadID, false );
#ifdef QWS
mb->insertItem( startButton );
mb->insertItem( stopButton );
mb->insertItem( uploadButton );
mb->insertItem( d );
#else // Qt3 changed the insertion order. It's now totally random :(
mb->insertItem( d );
mb->insertItem( uploadButton );
mb->insertItem( stopButton );
mb->insertItem( startButton );
#endif
updateToolButtonState();
// setup status bar (for now only on X11)
#ifndef QWS
statusBar()->message( tr( "Ready." ) );
#endif
connect( mw, SIGNAL( startedSniffing() ), this, SLOT( changedSniffingState() ) );
connect( mw, SIGNAL( stoppedSniffing() ), this, SLOT( changedSniffingState() ) );
};
void WellenreiterMainWindow::showConfigure()
{
qDebug( "show configure..." );
cw->setCaption( tr( "Configure" ) );
- #ifdef QWS
- cw->showMaximized();
- #endif
- int result = cw->exec();
+ int result = QPEApplication::execDialog( cw );
if ( result ) updateToolButtonState();
}
void WellenreiterMainWindow::updateToolButtonState()
{
const QString& interface = cw->interfaceName->currentText();
const int cardtype = cw->driverType();
if ( ( interface != "<select>" ) && ( cardtype != 0 ) )
{
startButton->setEnabled( true );
menuBar()->setItemEnabled( startID, true );
}
else
{
startButton->setEnabled( false );
menuBar()->setItemEnabled( startID, false );
}
}
void WellenreiterMainWindow::changedSniffingState()
{
startButton->setEnabled( !mw->sniffing );
menuBar()->setItemEnabled( startID, !mw->sniffing );
stopButton->setEnabled( mw->sniffing );
menuBar()->setItemEnabled( stopID, mw->sniffing );
if ( !mw->sniffing )
{
menuBar()->setItemEnabled( uploadID, true );
uploadButton->setEnabled( true );
}
}
WellenreiterMainWindow::~WellenreiterMainWindow()
{
qDebug( "Wellenreiter: bye." );
};
void WellenreiterMainWindow::demoAddStations()
{
//mw = 0; // test SIGSEGV handling
mw->netView()->addNewItem( "managed", "Vanille", OMacAddress::fromString("00:00:20:EF:A6:43"), true, 6, 80, GpsLocation( 39.8794, -94.0936) );
mw->netView()->addNewItem( "managed", "Vanille", OMacAddress::fromString("00:30:6D:EF:A6:23"), true, 11, 10, GpsLocation( 0.0, 0.0 ) );
mw->netView()->addNewItem( "adhoc", "ELAN", OMacAddress::fromString("00:03:F8:E7:16:22"), false, 3, 10, GpsLocation( 5.5, 2.3 ) );
mw->netView()->addNewItem( "adhoc", "ELAN", OMacAddress::fromString("00:04:01:E7:56:62"), false, 3, 15, GpsLocation( 2.3, 5.5 ) );
mw->netView()->addNewItem( "adhoc", "ELAN", OMacAddress::fromString("00:05:8E:E7:56:E2"), false, 3, 20, GpsLocation( -10.0, -20.5 ) );
}
void WellenreiterMainWindow::demoReadFromGps()
{
WellenreiterConfigWindow* configwindow = WellenreiterConfigWindow::instance();
GPS* gps = new GPS( this );
qDebug( "Wellenreiter::demoReadFromGps(): url=gps://%s:%d/", (const char*) configwindow->gpsdHost->currentText(), configwindow->gpsdPort->value() );
gps->open( configwindow->gpsdHost->currentText(), configwindow->gpsdPort->value() );
GpsLocation loc = gps->position();
QMessageBox::information( this, "Wellenreiter/Opie", tr( "GPS said:\n%1" ).arg( loc.dmsPosition() ) );
delete gps;
}
QString WellenreiterMainWindow::getFileName( bool save )
{
QMap<QString, QStringList> map;
map.insert( tr("All"), QStringList() );
QStringList text;
text << "text/*";
map.insert( tr("Text"), text );
text << "*";
map.insert( tr("All"), text );
QString str;
if ( save )
{
#ifdef QWS
str = OFileDialog::getSaveFileName( 2, "/", QString::null, map );
#else
str = QFileDialog::getSaveFileName();
#endif
if ( str.isEmpty() /*|| QFileInfo(str).isDir()*/ )
return "";
}
else
{
#ifdef QWS
str = OFileDialog::getOpenFileName( 2, "/", QString::null, map );
#else
str = QFileDialog::getOpenFileName();
#endif
if ( str.isEmpty() || !QFile(str).exists() || QFileInfo(str).isDir() )
return "";
}
return str;
}
void WellenreiterMainWindow::fileSaveLog()
{
QString fname = getFileName( true );
if ( !fname.isEmpty() )
{
QFile f( fname );
if ( f.open(IO_WriteOnly) )
{
QTextStream t( &f );
t << mw->logWindow()->getLog();
f.close();
qDebug( "Saved log to file '%s'", (const char*) fname );
}
else
{
qDebug( "Problem saving log to file '%s'", (const char*) fname );
}
}
}
void WellenreiterMainWindow::fileSaveSession()
{
QString fname = getFileName( true );
if ( !fname.isEmpty() )
{
QFile f( fname );
if ( f.open(IO_WriteOnly) )
{
QDataStream t( &f );
t << *mw->netView();
f.close();
qDebug( "Saved session to file '%s'", (const char*) fname );
}
else
{
qDebug( "Problem saving session to file '%s'", (const char*) fname );
}
}
}
void WellenreiterMainWindow::fileSaveHex()
{
QString fname = getFileName( true );
if ( !fname.isEmpty() )
{
QFile f( fname );
if ( f.open(IO_WriteOnly) )
{
QTextStream t( &f );
t << mw->hexWindow()->getLog();
f.close();
qDebug( "Saved hex log to file '%s'", (const char*) fname );
}
else
{
qDebug( "Problem saving hex log to file '%s'", (const char*) fname );
}
}
}
void WellenreiterMainWindow::fileLoadSession()
{
QString fname = getFileName( false );
if ( !fname.isEmpty() )
{
QFile f( fname );
if ( f.open(IO_ReadOnly) )
{
QDataStream t( &f );
t >> *mw->netView();
f.close();
qDebug( "Loaded session from file '%s'", (const char*) fname );
}
else
{
qDebug( "Problem loading session from file '%s'", (const char*) fname );
}
}
}
void WellenreiterMainWindow::fileNew()
{
mw->netView()->clear();
mw->logWindow()->clear();
mw->hexWindow()->clear();
}
void WellenreiterMainWindow::closeEvent( QCloseEvent* e )
{
if ( mw->isDaemonRunning() )
{
QMessageBox::warning( this, "Wellenreiter/Opie",
tr( "Sniffing in progress!\nPlease stop sniffing before closing." ) );
e->ignore();
}
else
{
QMainWindow::closeEvent( e );
}
}
static const char* CAP_hostname = "www.vanille.de";
#include <netdb.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
void WellenreiterMainWindow::uploadSession()
{
QLineEdit* from;
QLineEdit* location;
QLineEdit* comments;
QPushButton* accept;
QPushButton* reject;
QDialog* d = new QDialog( 0, "session upload", true );
d->setCaption( tr( "Upload Session" ) );
QGridLayout* g = new QGridLayout( d, 4, 2, 3 );
g->addWidget( new QLabel( tr( "From: " ), d ), 0, 0 );
g->addWidget( from = new QLineEdit( d ), 0, 1 );
g->addWidget( new QLabel( tr( "Location: " ), d ), 1, 0 );
g->addWidget( location = new QLineEdit( d ), 1, 1 );
g->addWidget( new QLabel( tr( "Comments: " ), d ), 2, 0 );
g->addWidget( comments = new QLineEdit( d ), 2, 1 );
g->addWidget( accept = new QPushButton( tr( "&Ok" ), d ), 3, 0 );
g->addWidget( reject = new QPushButton( tr( "&Cancel" ), d ), 3, 1 );
accept->setDefault( true );
accept->setAutoDefault( true );
from->setText( "WL II User" );
location->setText( "WL II Location" );
comments->setText( "No Comments." );
connect( accept, SIGNAL( clicked() ), d, SLOT( accept() ) );
connect( reject, SIGNAL( clicked() ), d, SLOT( reject() ) );
int result = d->exec();
if ( !result )
{
qDebug( "Session upload cancelled :(" );
return;
}
qDebug( "Starting upload..." );
struct sockaddr_in raddr;
struct hostent *rhost_info;
int sock = -1;
bool ok = false;
rhost_info = (struct hostent *) ::gethostbyname( CAP_hostname );