author | harlekin <harlekin> | 2003-12-14 00:20:38 (UTC) |
---|---|---|
committer | harlekin <harlekin> | 2003-12-14 00:20:38 (UTC) |
commit | ff2b84787e454f8a11aaef7a4ce18941ac0d28fd (patch) (unidiff) | |
tree | 44bf51f9a3935542cdcfa5dafcc212e4f01ee8ce | |
parent | b0a71314013a3367767526b68928a7168b4ad460 (diff) | |
download | opie-ff2b84787e454f8a11aaef7a4ce18941ac0d28fd.zip opie-ff2b84787e454f8a11aaef7a4ce18941ac0d28fd.tar.gz opie-ff2b84787e454f8a11aaef7a4ce18941ac0d28fd.tar.bz2 |
deleting of mails working
-rw-r--r-- | noncore/net/mail/accountview.cpp | 26 | ||||
-rw-r--r-- | noncore/net/mail/accountview.h | 6 | ||||
-rw-r--r-- | noncore/net/mail/mainwindow.cpp | 29 | ||||
-rw-r--r-- | noncore/net/mail/mainwindow.h | 4 | ||||
-rw-r--r-- | noncore/net/mail/viewmail.cpp | 8 | ||||
-rw-r--r-- | noncore/net/mail/viewmail.h | 3 |
6 files changed, 64 insertions, 12 deletions
diff --git a/noncore/net/mail/accountview.cpp b/noncore/net/mail/accountview.cpp index 1069b9f..ac4f0e0 100644 --- a/noncore/net/mail/accountview.cpp +++ b/noncore/net/mail/accountview.cpp | |||
@@ -58,32 +58,32 @@ AbstractMail *IMAPviewItem::getWrapper() | |||
58 | return wrapper; | 58 | return wrapper; |
59 | } | 59 | } |
60 | 60 | ||
61 | void IMAPviewItem::refresh(QList<RecMail>&) | 61 | void IMAPviewItem::refresh(QList<RecMail>&) |
62 | { | 62 | { |
63 | QList<Folder> *folders = wrapper->listFolders(); | 63 | QList<Folder> *folders = wrapper->listFolders(); |
64 | 64 | ||
65 | QListViewItem *child = firstChild(); | 65 | QListViewItem *child = firstChild(); |
66 | while ( child ) { | 66 | while ( child ) { |
67 | QListViewItem *tmp = child; | 67 | QListViewItem *tmp = child; |
68 | child = child->nextSibling(); | 68 | child = child->nextSibling(); |
69 | delete tmp; | 69 | delete tmp; |
70 | } | 70 | } |
71 | 71 | ||
72 | Folder *it; | 72 | Folder *it; |
73 | for ( it = folders->first(); it; it = folders->next() ) { | 73 | for ( it = folders->first(); it; it = folders->next() ) { |
74 | (void) new IMAPfolderItem( it, this ); | 74 | (void) new IMAPfolderItem( it, this ); |
75 | } | 75 | } |
76 | } | 76 | } |
77 | 77 | ||
78 | RecBody IMAPviewItem::fetchBody(const RecMail&) | 78 | RecBody IMAPviewItem::fetchBody(const RecMail&) |
79 | { | 79 | { |
80 | return RecBody(); | 80 | return RecBody(); |
81 | } | 81 | } |
82 | 82 | ||
83 | IMAPfolderItem::~IMAPfolderItem() | 83 | IMAPfolderItem::~IMAPfolderItem() |
84 | { | 84 | { |
85 | delete folder; | 85 | delete folder; |
86 | } | 86 | } |
87 | 87 | ||
88 | IMAPfolderItem::IMAPfolderItem( Folder *folderInit, IMAPviewItem *parent ) | 88 | IMAPfolderItem::IMAPfolderItem( Folder *folderInit, IMAPviewItem *parent ) |
89 | : AccountViewItem( parent ) | 89 | : AccountViewItem( parent ) |
@@ -91,13 +91,13 @@ IMAPfolderItem::IMAPfolderItem( Folder *folderInit, IMAPviewItem *parent ) | |||
91 | folder = folderInit; | 91 | folder = folderInit; |
92 | imap = parent; | 92 | imap = parent; |
93 | setPixmap( 0, PIXMAP_IMAPFOLDER ); | 93 | setPixmap( 0, PIXMAP_IMAPFOLDER ); |
94 | setText( 0, folder->getDisplayName() ); | 94 | setText( 0, folder->getDisplayName() ); |
95 | } | 95 | } |
96 | 96 | ||
97 | void IMAPfolderItem::refresh(QList<RecMail>&target) | 97 | void IMAPfolderItem::refresh(QList<RecMail>&target) |
98 | { | 98 | { |
99 | imap->getWrapper()->listMessages( folder->getName(),target ); | 99 | imap->getWrapper()->listMessages( folder->getName(),target ); |
100 | } | 100 | } |
101 | 101 | ||
102 | RecBody IMAPfolderItem::fetchBody(const RecMail&aMail) | 102 | RecBody IMAPfolderItem::fetchBody(const RecMail&aMail) |
103 | { | 103 | { |
@@ -115,13 +115,13 @@ AccountView::AccountView( QWidget *parent, const char *name, WFlags flags ) | |||
115 | SLOT( refresh( QListViewItem * ) ) ); | 115 | SLOT( refresh( QListViewItem * ) ) ); |
116 | } | 116 | } |
117 | 117 | ||
118 | void AccountView::populate( QList<Account> list ) | 118 | void AccountView::populate( QList<Account> list ) |
119 | { | 119 | { |
120 | clear(); | 120 | clear(); |
121 | 121 | ||
122 | Account *it; | 122 | Account *it; |
123 | for ( it = list.first(); it; it = list.next() ) { | 123 | for ( it = list.first(); it; it = list.next() ) { |
124 | if ( it->getType().compare( "IMAP" ) == 0 ) { | 124 | if ( it->getType().compare( "IMAP" ) == 0 ) { |
125 | IMAPaccount *imap = static_cast<IMAPaccount *>(it); | 125 | IMAPaccount *imap = static_cast<IMAPaccount *>(it); |
126 | qDebug( "added IMAP " + imap->getAccountName() ); | 126 | qDebug( "added IMAP " + imap->getAccountName() ); |
127 | (void) new IMAPviewItem( imap, this ); | 127 | (void) new IMAPviewItem( imap, this ); |
@@ -131,25 +131,37 @@ void AccountView::populate( QList<Account> list ) | |||
131 | (void) new POP3viewItem( pop3, this ); | 131 | (void) new POP3viewItem( pop3, this ); |
132 | } | 132 | } |
133 | } | 133 | } |
134 | } | 134 | } |
135 | 135 | ||
136 | void AccountView::refresh(QListViewItem *item) { | 136 | void AccountView::refresh(QListViewItem *item) { |
137 | |||
137 | qDebug("AccountView refresh..."); | 138 | qDebug("AccountView refresh..."); |
138 | if ( item ) { | 139 | if ( item ) { |
140 | m_currentItem = item; | ||
139 | QList<RecMail> headerlist; | 141 | QList<RecMail> headerlist; |
140 | headerlist.setAutoDelete(true); | 142 | headerlist.setAutoDelete(true); |
141 | AccountViewItem *view = static_cast<AccountViewItem *>(item); | 143 | AccountViewItem *view = static_cast<AccountViewItem *>(item); |
142 | view->refresh(headerlist); | 144 | view->refresh(headerlist); |
143 | emit refreshMailview(&headerlist); | 145 | emit refreshMailview(&headerlist); |
144 | } | 146 | } |
145 | } | 147 | } |
146 | 148 | ||
149 | void AccountView::refreshCurrent() | ||
150 | { | ||
151 | if ( !m_currentItem ) return; | ||
152 | QList<RecMail> headerlist; | ||
153 | headerlist.setAutoDelete(true); | ||
154 | AccountViewItem *view = static_cast<AccountViewItem *>(m_currentItem); | ||
155 | view->refresh(headerlist); | ||
156 | emit refreshMailview(&headerlist); | ||
157 | } | ||
158 | |||
147 | void AccountView::refreshAll() | 159 | void AccountView::refreshAll() |
148 | { | 160 | { |
149 | 161 | ||
150 | } | 162 | } |
151 | 163 | ||
152 | RecBody AccountView::fetchBody(const RecMail&aMail) | 164 | RecBody AccountView::fetchBody(const RecMail&aMail) |
153 | { | 165 | { |
154 | QListViewItem*item = selectedItem (); | 166 | QListViewItem*item = selectedItem (); |
155 | if (!item) return RecBody(); | 167 | if (!item) return RecBody(); |
diff --git a/noncore/net/mail/accountview.h b/noncore/net/mail/accountview.h index 83d49af..cdc87ce 100644 --- a/noncore/net/mail/accountview.h +++ b/noncore/net/mail/accountview.h | |||
@@ -74,12 +74,16 @@ public: | |||
74 | void populate( QList<Account> list ); | 74 | void populate( QList<Account> list ); |
75 | RecBody fetchBody(const RecMail&aMail); | 75 | RecBody fetchBody(const RecMail&aMail); |
76 | 76 | ||
77 | public slots: | 77 | public slots: |
78 | void refreshAll(); | 78 | void refreshAll(); |
79 | void refresh(QListViewItem *item); | 79 | void refresh(QListViewItem *item); |
80 | void refreshCurrent(); | ||
80 | 81 | ||
81 | signals: | 82 | signals: |
82 | void refreshMailview(QList<RecMail>*); | 83 | void refreshMailview(QList<RecMail>*); |
84 | |||
85 | private: | ||
86 | QListViewItem* m_currentItem; | ||
83 | }; | 87 | }; |
84 | 88 | ||
85 | #endif | 89 | #endif |
diff --git a/noncore/net/mail/mainwindow.cpp b/noncore/net/mail/mainwindow.cpp index 8ef7ddd..c410829 100644 --- a/noncore/net/mail/mainwindow.cpp +++ b/noncore/net/mail/mainwindow.cpp | |||
@@ -57,12 +57,17 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags ) | |||
57 | 57 | ||
58 | searchMails = new QAction( tr( "Search mails" ), ICON_SEARCHMAILS, | 58 | searchMails = new QAction( tr( "Search mails" ), ICON_SEARCHMAILS, |
59 | 0, 0, this ); | 59 | 0, 0, this ); |
60 | searchMails->addTo( toolBar ); | 60 | searchMails->addTo( toolBar ); |
61 | searchMails->addTo( mailMenu ); | 61 | searchMails->addTo( mailMenu ); |
62 | 62 | ||
63 | deleteMails = new QAction(tr("Delete Mail"), QIconSet(Resource::loadPixmap("mail/delete")), 0, 0, this); | ||
64 | deleteMails->addTo( toolBar ); | ||
65 | deleteMails->addTo( mailMenu ); | ||
66 | connect( deleteMails, SIGNAL( activated() ), | ||
67 | SLOT( slotDeleteMail() ) ); | ||
63 | 68 | ||
64 | editSettings = new QAction( tr( "Edit settings" ), ICON_EDITSETTINGS, | 69 | editSettings = new QAction( tr( "Edit settings" ), ICON_EDITSETTINGS, |
65 | 0, 0, this ); | 70 | 0, 0, this ); |
66 | editSettings->addTo( settingsMenu ); | 71 | editSettings->addTo( settingsMenu ); |
67 | 72 | ||
68 | editAccounts = new QAction( tr( "Configure accounts" ), ICON_EDITACCOUNTS, | 73 | editAccounts = new QAction( tr( "Configure accounts" ), ICON_EDITACCOUNTS, |
@@ -95,13 +100,13 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags ) | |||
95 | 100 | ||
96 | slotAdjustLayout(); | 101 | slotAdjustLayout(); |
97 | 102 | ||
98 | connect( mailView, SIGNAL( clicked( QListViewItem * ) ),this, | 103 | connect( mailView, SIGNAL( clicked( QListViewItem * ) ),this, |
99 | SLOT( displayMail( QListViewItem * ) ) ); | 104 | SLOT( displayMail( QListViewItem * ) ) ); |
100 | 105 | ||
101 | connect(folderView,SIGNAL(refreshMailview(QList<RecMail>*)),this,SLOT(refreshMailView(QList<RecMail>*))); | 106 | connect(folderView, SIGNAL(refreshMailview(QList<RecMail>*)),this,SLOT(refreshMailView(QList<RecMail>*))); |
102 | 107 | ||
103 | QTimer::singleShot( 1000, this, SLOT( slotAdjustColumns() ) ); | 108 | QTimer::singleShot( 1000, this, SLOT( slotAdjustColumns() ) ); |
104 | } | 109 | } |
105 | 110 | ||
106 | 111 | ||
107 | void MainWindow::slotAdjustLayout() { | 112 | void MainWindow::slotAdjustLayout() { |
@@ -128,13 +133,13 @@ void MainWindow::slotAdjustColumns() | |||
128 | mailView->setColumnWidth( 2, 80 ); | 133 | mailView->setColumnWidth( 2, 80 ); |
129 | mailView->setColumnWidth( 3, 50 ); | 134 | mailView->setColumnWidth( 3, 50 ); |
130 | } | 135 | } |
131 | 136 | ||
132 | void MainWindow::slotShowFolders( bool show ) | 137 | void MainWindow::slotShowFolders( bool show ) |
133 | { | 138 | { |
134 | qDebug( "Show Folders" ); | 139 | qDebug( "Show Folders" ); |
135 | if ( show && folderView->isHidden() ) { | 140 | if ( show && folderView->isHidden() ) { |
136 | qDebug( "-> showing" ); | 141 | qDebug( "-> showing" ); |
137 | folderView->show(); | 142 | folderView->show(); |
138 | } else if ( !show && !folderView->isHidden() ) { | 143 | } else if ( !show && !folderView->isHidden() ) { |
139 | qDebug( "-> hiding" ); | 144 | qDebug( "-> hiding" ); |
140 | folderView->hide(); | 145 | folderView->hide(); |
@@ -150,24 +155,42 @@ void MainWindow::refreshMailView(QList<RecMail>*list) | |||
150 | item->storeData(*(list->at(i))); | 155 | item->storeData(*(list->at(i))); |
151 | item->showEntry(); | 156 | item->showEntry(); |
152 | } | 157 | } |
153 | } | 158 | } |
154 | void MainWindow::displayMail(QListViewItem*item) | 159 | void MainWindow::displayMail(QListViewItem*item) |
155 | { | 160 | { |
161 | |||
162 | m_currentItem = item; | ||
163 | |||
156 | if (!item) return; | 164 | if (!item) return; |
157 | RecMail mail = ((MailListViewItem*)item)->data(); | 165 | RecMail mail = ((MailListViewItem*)item)->data(); |
158 | RecBody body = folderView->fetchBody(mail); | 166 | RecBody body = folderView->fetchBody(mail); |
159 | 167 | ||
160 | ViewMail readMail( this ); | 168 | ViewMail readMail( this ); |
161 | readMail.setBody( body ); | 169 | readMail.setBody( body ); |
162 | readMail.setMail( mail ); | 170 | readMail.setMail( mail ); |
163 | readMail.showMaximized(); | 171 | readMail.showMaximized(); |
164 | readMail.exec(); | 172 | readMail.exec(); |
165 | ( (MailListViewItem*)item )->setPixmap( 0, Resource::loadPixmap( "opiemail/kmmsgunseen") ); | 173 | |
174 | if ( readMail.deleted ) { | ||
175 | folderView->refreshCurrent(); | ||
176 | } else { | ||
177 | ( (MailListViewItem*)item )->setPixmap( 0, Resource::loadPixmap( "opiemail/kmmsgunseen") ); | ||
178 | } | ||
166 | } | 179 | } |
167 | 180 | ||
181 | void MainWindow::slotDeleteMail() | ||
182 | { | ||
183 | if (!m_currentItem) return; | ||
184 | RecMail mail = ((MailListViewItem*)m_currentItem)->data(); | ||
185 | mail.Wrapper()->deleteMail( mail ); | ||
186 | folderView->refreshCurrent(); | ||
187 | } | ||
188 | |||
189 | |||
190 | |||
168 | MailListViewItem::MailListViewItem(QListView * parent, MailListViewItem * item ) | 191 | MailListViewItem::MailListViewItem(QListView * parent, MailListViewItem * item ) |
169 | :QListViewItem(parent,item),mail_data() | 192 | :QListViewItem(parent,item),mail_data() |
170 | { | 193 | { |
171 | } | 194 | } |
172 | 195 | ||
173 | void MailListViewItem::showEntry() | 196 | void MailListViewItem::showEntry() |
diff --git a/noncore/net/mail/mainwindow.h b/noncore/net/mail/mainwindow.h index 6c1cda0..8641510 100644 --- a/noncore/net/mail/mainwindow.h +++ b/noncore/net/mail/mainwindow.h | |||
@@ -23,20 +23,22 @@ public slots: | |||
23 | void slotAdjustColumns(); | 23 | void slotAdjustColumns(); |
24 | 24 | ||
25 | protected slots: | 25 | protected slots: |
26 | virtual void slotShowFolders( bool show ); | 26 | virtual void slotShowFolders( bool show ); |
27 | virtual void refreshMailView(QList<RecMail>*); | 27 | virtual void refreshMailView(QList<RecMail>*); |
28 | virtual void displayMail(QListViewItem*); | 28 | virtual void displayMail(QListViewItem*); |
29 | virtual void slotDeleteMail(); | ||
29 | void slotAdjustLayout(); | 30 | void slotAdjustLayout(); |
30 | 31 | ||
31 | protected: | 32 | protected: |
32 | QToolBar *toolBar; | 33 | QToolBar *toolBar; |
33 | QMenuBar *menuBar; | 34 | QMenuBar *menuBar; |
34 | QPopupMenu *mailMenu, *settingsMenu; | 35 | QPopupMenu *mailMenu, *settingsMenu; |
35 | QAction *composeMail, *sendQueued, *showFolders, *searchMails, | 36 | QAction *composeMail, *sendQueued, *showFolders, *searchMails, *deleteMails, |
36 | *editSettings, *editAccounts, *syncFolders; | 37 | *editSettings, *editAccounts, *syncFolders; |
37 | AccountView *folderView; | 38 | AccountView *folderView; |
38 | QListView *mailView; | 39 | QListView *mailView; |
40 | QListViewItem* m_currentItem; | ||
39 | QBoxLayout *layout; | 41 | QBoxLayout *layout; |
40 | }; | 42 | }; |
41 | 43 | ||
42 | #endif | 44 | #endif |
diff --git a/noncore/net/mail/viewmail.cpp b/noncore/net/mail/viewmail.cpp index 42707e3..163ffb7 100644 --- a/noncore/net/mail/viewmail.cpp +++ b/noncore/net/mail/viewmail.cpp | |||
@@ -8,12 +8,13 @@ | |||
8 | #include <opie/ofiledialog.h> | 8 | #include <opie/ofiledialog.h> |
9 | 9 | ||
10 | #include "settings.h" | 10 | #include "settings.h" |
11 | #include "composemail.h" | 11 | #include "composemail.h" |
12 | #include "viewmail.h" | 12 | #include "viewmail.h" |
13 | #include "abstractmail.h" | 13 | #include "abstractmail.h" |
14 | #include "accountview.h" | ||
14 | 15 | ||
15 | AttachItem::AttachItem(QListView * parent,QListViewItem *after, const QString&mime,const QString&file,const QString&desc,int num) | 16 | AttachItem::AttachItem(QListView * parent,QListViewItem *after, const QString&mime,const QString&file,const QString&desc,int num) |
16 | : QListViewItem(parent,after),_partNum(num) | 17 | : QListViewItem(parent,after),_partNum(num) |
17 | { | 18 | { |
18 | setText(0, mime); | 19 | setText(0, mime); |
19 | setText(1, file); | 20 | setText(1, file); |
@@ -166,12 +167,13 @@ ViewMail::ViewMail( QWidget *parent, const char *name, WFlags fl) | |||
166 | : ViewMailBase(parent, name, fl), _inLoop(false) | 167 | : ViewMailBase(parent, name, fl), _inLoop(false) |
167 | { | 168 | { |
168 | m_gotBody = false; | 169 | m_gotBody = false; |
169 | 170 | ||
170 | connect(reply, SIGNAL(activated()), SLOT(slotReply())); | 171 | connect(reply, SIGNAL(activated()), SLOT(slotReply())); |
171 | connect(forward, SIGNAL(activated()), SLOT(slotForward())); | 172 | connect(forward, SIGNAL(activated()), SLOT(slotForward())); |
173 | connect( deleteMail, SIGNAL( activated() ), SLOT( slotDeleteMail( ) ) ); | ||
172 | 174 | ||
173 | attachments->setEnabled(m_gotBody); | 175 | attachments->setEnabled(m_gotBody); |
174 | connect( attachments, SIGNAL( clicked ( QListViewItem *, const QPoint & , int ) ), SLOT( slotItemClicked( QListViewItem *, const QPoint & , int ) ) ); | 176 | connect( attachments, SIGNAL( clicked ( QListViewItem *, const QPoint & , int ) ), SLOT( slotItemClicked( QListViewItem *, const QPoint & , int ) ) ); |
175 | 177 | ||
176 | } | 178 | } |
177 | 179 | ||
@@ -312,6 +314,12 @@ void ViewMail::slotForward() | |||
312 | composer.setSubject( "Fwd: " + m_mail[1] ); | 314 | composer.setSubject( "Fwd: " + m_mail[1] ); |
313 | composer.setMessage( ftext ); | 315 | composer.setMessage( ftext ); |
314 | composer.showMaximized(); | 316 | composer.showMaximized(); |
315 | composer.exec(); | 317 | composer.exec(); |
316 | } | 318 | } |
317 | 319 | ||
320 | void ViewMail::slotDeleteMail( ) | ||
321 | { | ||
322 | m_recMail.Wrapper()->deleteMail( m_recMail ); | ||
323 | hide(); | ||
324 | deleted = true; | ||
325 | } | ||
diff --git a/noncore/net/mail/viewmail.h b/noncore/net/mail/viewmail.h index bc12da1..765464c 100644 --- a/noncore/net/mail/viewmail.h +++ b/noncore/net/mail/viewmail.h | |||
@@ -27,21 +27,24 @@ public: | |||
27 | ~ViewMail(); | 27 | ~ViewMail(); |
28 | 28 | ||
29 | void hide(); | 29 | void hide(); |
30 | void exec(); | 30 | void exec(); |
31 | void setMail( RecMail mail ); | 31 | void setMail( RecMail mail ); |
32 | void setBody( RecBody body ); | 32 | void setBody( RecBody body ); |
33 | bool deleted; | ||
33 | 34 | ||
34 | protected: | 35 | protected: |
35 | QString deHtml(const QString &string); | 36 | QString deHtml(const QString &string); |
36 | 37 | ||
37 | protected slots: | 38 | protected slots: |
38 | void slotReply(); | 39 | void slotReply(); |
39 | void slotForward(); | 40 | void slotForward(); |
40 | void setText(); | 41 | void setText(); |
41 | void slotItemClicked( QListViewItem * item , const QPoint & point, int c ); | 42 | void slotItemClicked( QListViewItem * item , const QPoint & point, int c ); |
43 | void slotDeleteMail( ); | ||
44 | |||
42 | 45 | ||
43 | private: | 46 | private: |
44 | bool _inLoop; | 47 | bool _inLoop; |
45 | QString m_mailHtml; | 48 | QString m_mailHtml; |
46 | bool m_gotBody; | 49 | bool m_gotBody; |
47 | RecBody m_body; | 50 | RecBody m_body; |