summaryrefslogtreecommitdiff
path: root/noncore/net/mail/accountview.cpp
Side-by-side diff
Diffstat (limited to 'noncore/net/mail/accountview.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/accountview.cpp143
1 files changed, 126 insertions, 17 deletions
diff --git a/noncore/net/mail/accountview.cpp b/noncore/net/mail/accountview.cpp
index 8aac14b..30765cf 100644
--- a/noncore/net/mail/accountview.cpp
+++ b/noncore/net/mail/accountview.cpp
@@ -187,6 +187,6 @@ QPopupMenu * IMAPviewItem::getContextMenu()
if (m) {
- m->insertItem(QObject::tr("Refresh folder list","IMAPviewItem"),0);
- m->insertItem(QObject::tr("Create new folder","IMAPviewItem"),1);
+ 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","IMAPviewItem"),2);
+ m->insertItem(QObject::tr("Disconnect",contextName),2);
}
@@ -293,10 +293,10 @@ QPopupMenu * IMAPfolderItem::getContextMenu()
if (folder->may_select()) {
- m->insertItem(QObject::tr("Refresh header list","IMAPfolderItem"),0);
- m->insertItem(QObject::tr("Delete all mails","IMAPfolderItem"),1);
+ m->insertItem(QObject::tr("Refresh header list",contextName),0);
+ m->insertItem(QObject::tr("Delete all mails",contextName),1);
}
if (folder->no_inferior()==false) {
- m->insertItem(QObject::tr("Create new subfolder","IMAPfolderItem"),2);
+ m->insertItem(QObject::tr("Create new subfolder",contextName),2);
}
if (folder->getDisplayName().lower()!="inbox") {
- m->insertItem(QObject::tr("Delete folder","IMAPfolderItem"),3);
+ m->insertItem(QObject::tr("Delete folder",contextName),3);
}
@@ -308,6 +308,6 @@ void IMAPfolderItem::deleteAllMails()
{
- int yesno = QMessageBox::warning(0,QObject::tr("Delete all mails","IMAPfolderItem"),
- QObject::tr("<center>Realy delete all mails in box <br>%1</center>","IMAPfolderItem").arg(folder->getDisplayName()),
- QObject::tr("Yes","IMAPfolderItem"),
- QObject::tr("No","IMAPfolderItem"),QString::null,1,1);
+ 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(folder->getDisplayName()),
+ QObject::tr("Yes",contextName),
+ QObject::tr("No",contextName),QString::null,1,1);
qDebug("Auswahl: %i",yesno);
@@ -337,6 +337,6 @@ void IMAPfolderItem::deleteFolder()
{
- int yesno = QMessageBox::warning(0,QObject::tr("Delete folder","IMAPfolderItem"),
- QObject::tr("<center>Realy delete folder <br><b>%1</b><br>and all if it content?</center>","IMAPfolderItem").arg(folder->getDisplayName()),
- QObject::tr("Yes","IMAPfolderItem"),
- QObject::tr("No","IMAPfolderItem"),QString::null,1,1);
+ 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);
qDebug("Auswahl: %i",yesno);
@@ -344,5 +344,10 @@ void IMAPfolderItem::deleteFolder()
if (imap->getWrapper()->deleteMbox(folder)) {
- /* be carefull - after that this object is destroyd so don't call
+ 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) {
+ v->setSelected(box,true);
+ }
}
@@ -377,2 +382,4 @@ void IMAPfolderItem::contextMenuSelected(int id)
+const QString AccountViewItem::contextName="AccountViewItem";
+
AccountView::AccountView( QWidget *parent, const char *name, WFlags flags )
@@ -492,2 +499,8 @@ void MBOXviewItem::refresh( QList<RecMail> & )
{
+ refresh(false);
+}
+
+void MBOXviewItem::refresh(bool force)
+{
+ if (childCount()>0 && force==false) return;
QList<Folder> *folders = wrapper->listFolders();
@@ -512,3 +525,3 @@ RecBody MBOXviewItem::fetchBody( const RecMail &mail )
{
- qDebug( "POP3 fetchBody" );
+ qDebug( "MBOX fetchBody" );
return wrapper->fetchBody( mail );
@@ -516,2 +529,38 @@ RecBody MBOXviewItem::fetchBody( const RecMail &mail )
+QPopupMenu * MBOXviewItem::getContextMenu()
+{
+ QPopupMenu *m = new QPopupMenu(0);
+ if (m) {
+ m->insertItem(QObject::tr("Refresh folder list",contextName),0);
+ m->insertItem(QObject::tr("Create new folder",contextName),1);
+ }
+ return m;
+}
+
+void MBOXviewItem::createFolder()
+{
+ Newmdirdlg ndirdlg(0,0,true);
+ ndirdlg.showMaximized();
+ if (ndirdlg.exec()) {
+ QString ndir = ndirdlg.Newdir();
+ if (wrapper->createMbox(ndir)) {
+ refresh(true);
+ }
+ }
+}
+
+void MBOXviewItem::contextMenuSelected(int which)
+{
+ switch (which) {
+ case 0:
+ refresh(true);
+ break;
+ case 1:
+ createFolder();
+ break;
+ default:
+ break;
+ }
+}
+
MBOXfolderItem::~MBOXfolderItem()
@@ -546 +595,61 @@ RecBody MBOXfolderItem::fetchBody(const RecMail&aMail)
}
+
+void MBOXfolderItem::deleteAllMails()
+{
+ 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(folder->getDisplayName()),
+ QObject::tr("Yes",contextName),
+ QObject::tr("No",contextName),QString::null,1,1);
+ qDebug("Auswahl: %i",yesno);
+ if (yesno == 0) {
+ if (mbox->getWrapper()->deleteAllMail(folder)) {
+ AccountView * view = (AccountView*)listView();
+ if (view) view->refreshCurrent();
+ }
+ }
+}
+
+void MBOXfolderItem::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);
+ qDebug("Auswahl: %i",yesno);
+ if (yesno == 0) {
+ if (mbox->getWrapper()->deleteMbox(folder)) {
+ QListView*v=listView();
+ MBOXviewItem * 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) {
+ v->setSelected(box,true);
+ }
+ }
+ }
+}
+
+QPopupMenu * MBOXfolderItem::getContextMenu()
+{
+ QPopupMenu *m = new QPopupMenu(0);
+ if (m) {
+ m->insertItem(QObject::tr("Delete all mails",contextName),0);
+ m->insertItem(QObject::tr("Delete folder",contextName),1);
+ }
+ return m;
+}
+
+void MBOXfolderItem::contextMenuSelected(int which)
+{
+ switch(which) {
+ case 0:
+ deleteAllMails();
+ break;
+ case 1:
+ deleteFolder();
+ break;
+ default:
+ break;
+ }
+}