summaryrefslogtreecommitdiff
authorgroucho <groucho>2003-04-11 14:48:19 (UTC)
committer groucho <groucho>2003-04-11 14:48:19 (UTC)
commitd37f3eac6b876285eb7a03ab01194ea261458ea5 (patch) (side-by-side diff)
tree47420d872c6d298db7e26715c80cf3aebb055033
parentebf5bb083d47179918d47f083a3cc98a5ed5d2e0 (diff)
downloadopie-d37f3eac6b876285eb7a03ab01194ea261458ea5.zip
opie-d37f3eac6b876285eb7a03ab01194ea261458ea5.tar.gz
opie-d37f3eac6b876285eb7a03ab01194ea261458ea5.tar.bz2
Lots of improvements regarding usability and stability:
- Now uses ofileselector for sending attachments (reading follows, does not crash any more) - Uses DocLnks for attachments (when composing a message) - Beautified the attachments dialog with doc icons - removed a crash when sending attachments and no account was set - smaller fixes ToDo: - Attachment viewer should use doclnk too - get rid of teh save button in ofileselector - fix the bug with GMX mail provider sending mail (user encoding wrong) - replace the Attach and Remove buttons with a nice toolbar - Maybe integrate attview into the mail sending window on demand - get rid of crashes
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mailit/addatt.cpp119
-rw-r--r--noncore/net/mailit/addatt.h24
-rw-r--r--noncore/net/mailit/emailclient.cpp10
-rw-r--r--noncore/net/mailit/emailhandler.cpp7
-rw-r--r--noncore/net/mailit/writemail.cpp6
-rw-r--r--noncore/unsupported/mailit/addatt.cpp119
-rw-r--r--noncore/unsupported/mailit/addatt.h24
-rw-r--r--noncore/unsupported/mailit/emailclient.cpp10
-rw-r--r--noncore/unsupported/mailit/emailhandler.cpp7
-rw-r--r--noncore/unsupported/mailit/writemail.cpp6
10 files changed, 200 insertions, 132 deletions
diff --git a/noncore/net/mailit/addatt.cpp b/noncore/net/mailit/addatt.cpp
index c030e36..f279f52 100644
--- a/noncore/net/mailit/addatt.cpp
+++ b/noncore/net/mailit/addatt.cpp
@@ -24,13 +24,15 @@
#include "addatt.h"
-FileItem::FileItem(QListView *parent, QFileInfo fileInfo, QString fileType)
+FileItem::FileItem(QListView *parent, DocLnk* dl)
: QListViewItem(parent)
{
- file = fileInfo;
- type = fileType;
+ /*file = fileInfo;
+ type = fileType;*/
+
+ doclnk=dl;
- setText(0, fileInfo.baseName());
+ setText(0, doclnk->name());
- if (fileType == "Picture") {
+/* if (fileType == "Picture") {
setPixmap(0, Resource::loadPixmap("pixmap"));
} else if (fileType == "Document") {
@@ -42,15 +44,11 @@ FileItem::FileItem(QListView *parent, QFileInfo fileInfo, QString fileType)
} else if (fileType == "File") {
setPixmap(0, Resource::loadPixmap("exec"));
- }
+ }*/
}
-QFileInfo FileItem::getFileInfo()
+FileItem::~FileItem()
{
- return file;
-}
-
-QString FileItem::getFileType()
-{
- return type;
+ if (doclnk!=NULL) delete doclnk;
+ doclnk=NULL;
}
@@ -60,11 +58,12 @@ AddAtt::AddAtt(QWidget *parent, const char *name, WFlags f)
setCaption("Adding attatchments");
- QGridLayout *top = new QGridLayout(this, 3, 2);
+ QGridLayout *top = new QGridLayout(this, 3,1 );
+
- fileCategoryButton = new QPushButton(this);
+ /*fileCategoryButton = new QPushButton(this);*/
attatchButton = new QPushButton("Attatch ->", this);
removeButton = new QPushButton("Remove", this);
- fileCategories = new QPopupMenu(fileCategoryButton);
+ /*fileCategories = new QPopupMenu(fileCategoryButton);
fileCategoryButton->setPopup(fileCategories);
fileCategories->insertItem("Document");
@@ -75,10 +74,14 @@ AddAtt::AddAtt(QWidget *parent, const char *name, WFlags f)
fileCategoryButton->setText("Document");
- top->addWidget(fileCategoryButton, 0, 0);
- top->addWidget(attatchButton, 2, 0);
- top->addWidget(removeButton, 2, 1);
+ top->addWidget(fileCategoryButton, 0, 0);*/
+
+ //ofs=new OFileSelector(this,2,0,"/root/Documents");
+
+
+ top->addWidget(attatchButton,1,0);
+ top->addWidget(removeButton,2,0);
- connect(fileCategories, SIGNAL(activated(int)), this,
- SLOT(fileCategorySelected(int)) );
+ /*connect(fileCategories, SIGNAL(activated(int)), this,
+ SLOT(fileCategorySelected(int)) );*/
connect(attatchButton, SIGNAL(clicked()), this,
SLOT(addAttatchment()) );
@@ -86,18 +89,22 @@ AddAtt::AddAtt(QWidget *parent, const char *name, WFlags f)
SLOT(removeAttatchment()) );
- listView = new QListView(this, "AttView");
- listView->addColumn("Documents");
+ /*listView = new QListView(this, "AttView");
+ listView->addColumn("Documents");*
connect(listView, SIGNAL(doubleClicked(QListViewItem *)), this,
- SLOT(addAttatchment()) );
+ SLOT(addAttatchment()) );*/
+
attView = new QListView(this, "Selected");
- attView->addColumn("Attatched");
+ attView->addColumn(tr("Attached"));
+ attView->addColumn(tr("File type"));
connect(attView, SIGNAL(doubleClicked(QListViewItem *)), this,
SLOT(removeAttatchment()) );
- top->addWidget(listView, 1,0);
- top->addWidget(attView, 1,1);
+ //top->addWidget(ofs, 0,0);
+ top->addWidget(attView, 0,0);
+
+ clear();
- clear();
+
}
@@ -105,31 +112,41 @@ void AddAtt::clear()
{
attView->clear();
- getFiles();
+ //getFiles();
modified = FALSE;
}
-void AddAtt::fileCategorySelected(int id)
+/*void AddAtt::fileCategorySelected(int id)
{
fileCategoryButton->setText(fileCategories->text(id));
getFiles();
-}
+}*/
void AddAtt::addAttatchment()
-{
- QFileInfo info;
- QString type;
+{
+ QDialog qd(this,tr("Select attachment"),true);
+
+ QGridLayout top(&qd,1,1);
+
+ OFileSelector ofs(&qd,1,0,"/root/Documents");
+
+ top.addWidget(&ofs,0,0);
- if (listView->selectedItem() != NULL) {
- item = (FileItem *) listView->selectedItem();
- info = item->getFileInfo();
- type = item->getFileType();
- item = new FileItem(attView, info, type);
+ qd.showMaximized();
+
+ if (qd.exec()==QDialog::Accepted)
+ {
+ DocLnk* dl=new DocLnk(ofs.selectedDocument());
+ FileItem* fi=new FileItem(attView,dl);
+ fi->setPixmap(0,dl->pixmap());
+ fi->setText(1,dl->type());
+ attView->insertItem(fi);
+ modified = TRUE;
}
- modified = TRUE;
}
void AddAtt::removeAttatchment()
{
- if (attView->selectedItem() != NULL) {
+ if (attView->selectedItem() != NULL)
+ {
attView->takeItem(attView->selectedItem());
}
@@ -154,7 +171,6 @@ void AddAtt::getFiles()
{
QString path, selected;
- QDir *dir;
- listView->clear();
+ /*listView->clear();
selected = fileCategoryButton->text();
@@ -178,7 +194,7 @@ void AddAtt::getFiles()
while ( (fi=it.current()) ) { // for each file...
- item = new FileItem(listView, *fi, selected);
+ item = new FileItem(lis+ütView, *fi, selected);
++it; // goto next list element
- }
+ }*/
}
@@ -189,7 +205,11 @@ QStringList AddAtt::returnAttatchedFiles()
item = (FileItem *) attView->firstChild();
+
+
while (item != NULL) {
- info = item->getFileInfo();
- list += info.filePath();
+ DocLnk* dl=item->getDocLnk();
+ list+=dl->file();
+ /*info = item->getFileInfo();
+ list += info.filePath();*/
item = (FileItem *) item->nextSibling();
}
@@ -200,8 +220,9 @@ QStringList AddAtt::returnFileTypes()
{
QStringList list;
-
+
item = (FileItem *) attView->firstChild();
+
while (item != NULL) {
- list += item->getFileType();
+ list += item->getDocLnk()->type();
item = (FileItem *) item->nextSibling();
}
diff --git a/noncore/net/mailit/addatt.h b/noncore/net/mailit/addatt.h
index 867c905..73062e2 100644
--- a/noncore/net/mailit/addatt.h
+++ b/noncore/net/mailit/addatt.h
@@ -28,15 +28,18 @@
#include <qfileinfo.h>
#include <qstringlist.h>
+#include <opie/ofileselector.h>
+#include <qpe/applnk.h>
class FileItem : public QListViewItem
{
public:
- FileItem(QListView *parent, QFileInfo fileInfo, QString fileType);
- QFileInfo getFileInfo();
- QString getFileType();
-
+ //FileItem(QListView *parent, QFileInfo fileInfo, QString fileType);
+ FileItem(QListView*, DocLnk*);
+ ~FileItem();
+ DocLnk* getDocLnk() {return doclnk;}
+
+
private:
- QFileInfo file;
- QString type;
+ DocLnk* doclnk;
};
@@ -52,6 +55,7 @@ public:
void clear();
+
public slots:
- void fileCategorySelected(int);
+ //void fileCategorySelected(int);
void addAttatchment();
void removeAttatchment();
@@ -60,10 +64,12 @@ public slots:
private:
- FileItem *item;
- QListView *listView, *attView;
+ FileItem* item;
+ QListView *attView;
QPushButton *fileCategoryButton, *attatchButton, *removeButton;
QPopupMenu *fileCategories;
bool modified;
QFileInfo *fi;
+
+ OFileSelector* ofs;
};
diff --git a/noncore/net/mailit/emailclient.cpp b/noncore/net/mailit/emailclient.cpp
index fc4276b..9258aac 100644
--- a/noncore/net/mailit/emailclient.cpp
+++ b/noncore/net/mailit/emailclient.cpp
@@ -162,4 +162,5 @@ void EmailClient::init()
connect(cancelButton, SIGNAL(activated()), this, SLOT(cancel()) );
cancelButton->addTo(mail);
+ cancelButton->addTo(bar);
cancelButton->setEnabled(FALSE);
@@ -215,4 +216,10 @@ AddressList* EmailClient::getAdrListRef()
void EmailClient::enqueMail(const Email &mail)
{
+ if (accountList.count() == 0) {
+ QMessageBox::warning(qApp->activeWindow(),
+ tr("No account selected"), tr("You must create an account"), "OK\n");
+ return;
+ }
+
if (accountList.count() > 0) {
currentAccount = accountList.first();
@@ -233,6 +240,5 @@ void EmailClient::sendQuedMail()
if (accountList.count() == 0) {
- QMessageBox::warning(qApp->activeWindow(),
- "No account selected", "You must create an account", "OK\n");
+ QMessageBox::warning(qApp->activeWindow(), "No account selected", "You must create an account", "OK\n");
return;
}
diff --git a/noncore/net/mailit/emailhandler.cpp b/noncore/net/mailit/emailhandler.cpp
index 2144899..1be16d4 100644
--- a/noncore/net/mailit/emailhandler.cpp
+++ b/noncore/net/mailit/emailhandler.cpp
@@ -413,10 +413,13 @@ int EmailHandler::parse64base(char *src, char *bufOut) {
}
-int EmailHandler::encodeMime(Email *mail) {
+int EmailHandler::encodeMime(Email *mail)
+{
+
QString fileName, fileType, contentType, newBody, boundary;
Enclosure *ePtr;
QString userName = mailAccount.name;
- userName += " <" + mailAccount.emailAddress + ">";
+ if (userName.length()>0) //only embrace it if there is a user name
+ userName += " <" + mailAccount.emailAddress + ">";
//add standard headers
diff --git a/noncore/net/mailit/writemail.cpp b/noncore/net/mailit/writemail.cpp
index 1a7185e..70332a9 100644
--- a/noncore/net/mailit/writemail.cpp
+++ b/noncore/net/mailit/writemail.cpp
@@ -65,5 +65,5 @@ void WriteMail::init()
bar = new QToolBar(this);
- attatchButton = new QAction(tr("Attatchment"), Resource::loadPixmap("fileopen"), QString::null, 0, this, 0);
+ attatchButton = new QAction(tr("Attatchment"), Resource::loadPixmap("mailit/attach"), QString::null, 0, this, 0);
attatchButton->addTo(bar);
attatchButton->addTo(addMenu);
@@ -172,7 +172,5 @@ void WriteMail::accept()
Enclosure e;
- for ( QStringList::Iterator it = attatchedFiles.begin();
- it != attatchedFiles.end(); ++it ) {
-
+ for ( QStringList::Iterator it = attatchedFiles.begin(); it != attatchedFiles.end(); ++it ) {
e.id = idCount;
e.originalName = (*it).latin1();
diff --git a/noncore/unsupported/mailit/addatt.cpp b/noncore/unsupported/mailit/addatt.cpp
index c030e36..f279f52 100644
--- a/noncore/unsupported/mailit/addatt.cpp
+++ b/noncore/unsupported/mailit/addatt.cpp
@@ -24,13 +24,15 @@
#include "addatt.h"
-FileItem::FileItem(QListView *parent, QFileInfo fileInfo, QString fileType)
+FileItem::FileItem(QListView *parent, DocLnk* dl)
: QListViewItem(parent)
{
- file = fileInfo;
- type = fileType;
+ /*file = fileInfo;
+ type = fileType;*/
+
+ doclnk=dl;
- setText(0, fileInfo.baseName());
+ setText(0, doclnk->name());
- if (fileType == "Picture") {
+/* if (fileType == "Picture") {
setPixmap(0, Resource::loadPixmap("pixmap"));
} else if (fileType == "Document") {
@@ -42,15 +44,11 @@ FileItem::FileItem(QListView *parent, QFileInfo fileInfo, QString fileType)
} else if (fileType == "File") {
setPixmap(0, Resource::loadPixmap("exec"));
- }
+ }*/
}
-QFileInfo FileItem::getFileInfo()
+FileItem::~FileItem()
{
- return file;
-}
-
-QString FileItem::getFileType()
-{
- return type;
+ if (doclnk!=NULL) delete doclnk;
+ doclnk=NULL;
}
@@ -60,11 +58,12 @@ AddAtt::AddAtt(QWidget *parent, const char *name, WFlags f)
setCaption("Adding attatchments");
- QGridLayout *top = new QGridLayout(this, 3, 2);
+ QGridLayout *top = new QGridLayout(this, 3,1 );
+
- fileCategoryButton = new QPushButton(this);
+ /*fileCategoryButton = new QPushButton(this);*/
attatchButton = new QPushButton("Attatch ->", this);
removeButton = new QPushButton("Remove", this);
- fileCategories = new QPopupMenu(fileCategoryButton);
+ /*fileCategories = new QPopupMenu(fileCategoryButton);
fileCategoryButton->setPopup(fileCategories);
fileCategories->insertItem("Document");
@@ -75,10 +74,14 @@ AddAtt::AddAtt(QWidget *parent, const char *name, WFlags f)
fileCategoryButton->setText("Document");
- top->addWidget(fileCategoryButton, 0, 0);
- top->addWidget(attatchButton, 2, 0);
- top->addWidget(removeButton, 2, 1);
+ top->addWidget(fileCategoryButton, 0, 0);*/
+
+ //ofs=new OFileSelector(this,2,0,"/root/Documents");
+
+
+ top->addWidget(attatchButton,1,0);
+ top->addWidget(removeButton,2,0);
- connect(fileCategories, SIGNAL(activated(int)), this,
- SLOT(fileCategorySelected(int)) );
+ /*connect(fileCategories, SIGNAL(activated(int)), this,
+ SLOT(fileCategorySelected(int)) );*/
connect(attatchButton, SIGNAL(clicked()), this,
SLOT(addAttatchment()) );
@@ -86,18 +89,22 @@ AddAtt::AddAtt(QWidget *parent, const char *name, WFlags f)
SLOT(removeAttatchment()) );
- listView = new QListView(this, "AttView");
- listView->addColumn("Documents");
+ /*listView = new QListView(this, "AttView");
+ listView->addColumn("Documents");*
connect(listView, SIGNAL(doubleClicked(QListViewItem *)), this,
- SLOT(addAttatchment()) );
+ SLOT(addAttatchment()) );*/
+
attView = new QListView(this, "Selected");
- attView->addColumn("Attatched");
+ attView->addColumn(tr("Attached"));
+ attView->addColumn(tr("File type"));
connect(attView, SIGNAL(doubleClicked(QListViewItem *)), this,
SLOT(removeAttatchment()) );
- top->addWidget(listView, 1,0);
- top->addWidget(attView, 1,1);
+ //top->addWidget(ofs, 0,0);
+ top->addWidget(attView, 0,0);
+
+ clear();
- clear();
+
}
@@ -105,31 +112,41 @@ void AddAtt::clear()
{
attView->clear();
- getFiles();
+ //getFiles();
modified = FALSE;
}
-void AddAtt::fileCategorySelected(int id)
+/*void AddAtt::fileCategorySelected(int id)
{
fileCategoryButton->setText(fileCategories->text(id));
getFiles();
-}
+}*/
void AddAtt::addAttatchment()
-{
- QFileInfo info;
- QString type;
+{
+ QDialog qd(this,tr("Select attachment"),true);
+
+ QGridLayout top(&qd,1,1);
+
+ OFileSelector ofs(&qd,1,0,"/root/Documents");
+
+ top.addWidget(&ofs,0,0);
- if (listView->selectedItem() != NULL) {
- item = (FileItem *) listView->selectedItem();
- info = item->getFileInfo();
- type = item->getFileType();
- item = new FileItem(attView, info, type);
+ qd.showMaximized();
+
+ if (qd.exec()==QDialog::Accepted)
+ {
+ DocLnk* dl=new DocLnk(ofs.selectedDocument());
+ FileItem* fi=new FileItem(attView,dl);
+ fi->setPixmap(0,dl->pixmap());
+ fi->setText(1,dl->type());
+ attView->insertItem(fi);
+ modified = TRUE;
}
- modified = TRUE;
}
void AddAtt::removeAttatchment()
{
- if (attView->selectedItem() != NULL) {
+ if (attView->selectedItem() != NULL)
+ {
attView->takeItem(attView->selectedItem());
}
@@ -154,7 +171,6 @@ void AddAtt::getFiles()
{
QString path, selected;
- QDir *dir;
- listView->clear();
+ /*listView->clear();
selected = fileCategoryButton->text();
@@ -178,7 +194,7 @@ void AddAtt::getFiles()
while ( (fi=it.current()) ) { // for each file...
- item = new FileItem(listView, *fi, selected);
+ item = new FileItem(lis+ütView, *fi, selected);
++it; // goto next list element
- }
+ }*/
}
@@ -189,7 +205,11 @@ QStringList AddAtt::returnAttatchedFiles()
item = (FileItem *) attView->firstChild();
+
+
while (item != NULL) {
- info = item->getFileInfo();
- list += info.filePath();
+ DocLnk* dl=item->getDocLnk();
+ list+=dl->file();
+ /*info = item->getFileInfo();
+ list += info.filePath();*/
item = (FileItem *) item->nextSibling();
}
@@ -200,8 +220,9 @@ QStringList AddAtt::returnFileTypes()
{
QStringList list;
-
+
item = (FileItem *) attView->firstChild();
+
while (item != NULL) {
- list += item->getFileType();
+ list += item->getDocLnk()->type();
item = (FileItem *) item->nextSibling();
}
diff --git a/noncore/unsupported/mailit/addatt.h b/noncore/unsupported/mailit/addatt.h
index 867c905..73062e2 100644
--- a/noncore/unsupported/mailit/addatt.h
+++ b/noncore/unsupported/mailit/addatt.h
@@ -28,15 +28,18 @@
#include <qfileinfo.h>
#include <qstringlist.h>
+#include <opie/ofileselector.h>
+#include <qpe/applnk.h>
class FileItem : public QListViewItem
{
public:
- FileItem(QListView *parent, QFileInfo fileInfo, QString fileType);
- QFileInfo getFileInfo();
- QString getFileType();
-
+ //FileItem(QListView *parent, QFileInfo fileInfo, QString fileType);
+ FileItem(QListView*, DocLnk*);
+ ~FileItem();
+ DocLnk* getDocLnk() {return doclnk;}
+
+
private:
- QFileInfo file;
- QString type;
+ DocLnk* doclnk;
};
@@ -52,6 +55,7 @@ public:
void clear();
+
public slots:
- void fileCategorySelected(int);
+ //void fileCategorySelected(int);
void addAttatchment();
void removeAttatchment();
@@ -60,10 +64,12 @@ public slots:
private:
- FileItem *item;
- QListView *listView, *attView;
+ FileItem* item;
+ QListView *attView;
QPushButton *fileCategoryButton, *attatchButton, *removeButton;
QPopupMenu *fileCategories;
bool modified;
QFileInfo *fi;
+
+ OFileSelector* ofs;
};
diff --git a/noncore/unsupported/mailit/emailclient.cpp b/noncore/unsupported/mailit/emailclient.cpp
index fc4276b..9258aac 100644
--- a/noncore/unsupported/mailit/emailclient.cpp
+++ b/noncore/unsupported/mailit/emailclient.cpp
@@ -162,4 +162,5 @@ void EmailClient::init()
connect(cancelButton, SIGNAL(activated()), this, SLOT(cancel()) );
cancelButton->addTo(mail);
+ cancelButton->addTo(bar);
cancelButton->setEnabled(FALSE);
@@ -215,4 +216,10 @@ AddressList* EmailClient::getAdrListRef()
void EmailClient::enqueMail(const Email &mail)
{
+ if (accountList.count() == 0) {
+ QMessageBox::warning(qApp->activeWindow(),
+ tr("No account selected"), tr("You must create an account"), "OK\n");
+ return;
+ }
+
if (accountList.count() > 0) {
currentAccount = accountList.first();
@@ -233,6 +240,5 @@ void EmailClient::sendQuedMail()
if (accountList.count() == 0) {
- QMessageBox::warning(qApp->activeWindow(),
- "No account selected", "You must create an account", "OK\n");
+ QMessageBox::warning(qApp->activeWindow(), "No account selected", "You must create an account", "OK\n");
return;
}
diff --git a/noncore/unsupported/mailit/emailhandler.cpp b/noncore/unsupported/mailit/emailhandler.cpp
index 2144899..1be16d4 100644
--- a/noncore/unsupported/mailit/emailhandler.cpp
+++ b/noncore/unsupported/mailit/emailhandler.cpp
@@ -413,10 +413,13 @@ int EmailHandler::parse64base(char *src, char *bufOut) {
}
-int EmailHandler::encodeMime(Email *mail) {
+int EmailHandler::encodeMime(Email *mail)
+{
+
QString fileName, fileType, contentType, newBody, boundary;
Enclosure *ePtr;
QString userName = mailAccount.name;
- userName += " <" + mailAccount.emailAddress + ">";
+ if (userName.length()>0) //only embrace it if there is a user name
+ userName += " <" + mailAccount.emailAddress + ">";
//add standard headers
diff --git a/noncore/unsupported/mailit/writemail.cpp b/noncore/unsupported/mailit/writemail.cpp
index 1a7185e..70332a9 100644
--- a/noncore/unsupported/mailit/writemail.cpp
+++ b/noncore/unsupported/mailit/writemail.cpp
@@ -65,5 +65,5 @@ void WriteMail::init()
bar = new QToolBar(this);
- attatchButton = new QAction(tr("Attatchment"), Resource::loadPixmap("fileopen"), QString::null, 0, this, 0);
+ attatchButton = new QAction(tr("Attatchment"), Resource::loadPixmap("mailit/attach"), QString::null, 0, this, 0);
attatchButton->addTo(bar);
attatchButton->addTo(addMenu);
@@ -172,7 +172,5 @@ void WriteMail::accept()
Enclosure e;
- for ( QStringList::Iterator it = attatchedFiles.begin();
- it != attatchedFiles.end(); ++it ) {
-
+ for ( QStringList::Iterator it = attatchedFiles.begin(); it != attatchedFiles.end(); ++it ) {
e.id = idCount;
e.originalName = (*it).latin1();