-rw-r--r-- | kmicromail/accountitem.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/kmicromail/accountitem.cpp b/kmicromail/accountitem.cpp index d0321ef..1698b40 100644 --- a/kmicromail/accountitem.cpp +++ b/kmicromail/accountitem.cpp | |||
@@ -47,139 +47,149 @@ POP3viewItem::~POP3viewItem() | |||
47 | } | 47 | } |
48 | 48 | ||
49 | AbstractMail *POP3viewItem::getWrapper() | 49 | AbstractMail *POP3viewItem::getWrapper() |
50 | { | 50 | { |
51 | return wrapper; | 51 | return wrapper; |
52 | } | 52 | } |
53 | 53 | ||
54 | void POP3viewItem::refresh(QValueList<Opie::Core::OSmartPointer<RecMail> > & ) | 54 | void POP3viewItem::refresh(QValueList<Opie::Core::OSmartPointer<RecMail> > & ) |
55 | { | 55 | { |
56 | refresh(); | 56 | refresh(); |
57 | } | 57 | } |
58 | 58 | ||
59 | void POP3viewItem::refresh() | 59 | void POP3viewItem::refresh() |
60 | { | 60 | { |
61 | if (account->getOffline()) return; | 61 | if (account->getOffline()) return; |
62 | QValueList<FolderP> *folders = wrapper->listFolders(); | 62 | QValueList<FolderP> *folders = wrapper->listFolders(); |
63 | QListViewItem *child = firstChild(); | 63 | QListViewItem *child = firstChild(); |
64 | while ( child ) | 64 | while ( child ) |
65 | { | 65 | { |
66 | QListViewItem *tmp = child; | 66 | QListViewItem *tmp = child; |
67 | child = child->nextSibling(); | 67 | child = child->nextSibling(); |
68 | delete tmp; | 68 | delete tmp; |
69 | } | 69 | } |
70 | QValueList<FolderP>::ConstIterator it; | 70 | QValueList<FolderP>::ConstIterator it; |
71 | QListViewItem*item = 0; | 71 | QListViewItem*item = 0; |
72 | for ( it = folders->begin(); it!=folders->end(); ++it) | 72 | for ( it = folders->begin(); it!=folders->end(); ++it) |
73 | { | 73 | { |
74 | item = new POP3folderItem( (*it), this , item ); | 74 | item = new POP3folderItem( (*it), this , item ); |
75 | item->setSelectable( (*it)->may_select()); | 75 | item->setSelectable( (*it)->may_select()); |
76 | } | 76 | } |
77 | delete folders; | 77 | delete folders; |
78 | } | 78 | } |
79 | 79 | ||
80 | RECBODYP POP3viewItem::fetchBody( const RecMailP &mail ) | 80 | RECBODYP POP3viewItem::fetchBody( const RecMailP &mail ) |
81 | { | 81 | { |
82 | 82 | ||
83 | return wrapper->fetchBody( mail ); | 83 | return wrapper->fetchBody( mail ); |
84 | } | 84 | } |
85 | 85 | ||
86 | QPopupMenu * POP3viewItem::getContextMenu() | 86 | QPopupMenu * POP3viewItem::getContextMenu() |
87 | { | 87 | { |
88 | QPopupMenu *m = new QPopupMenu(0); | 88 | QPopupMenu *m = new QPopupMenu(0); |
89 | if (m) | 89 | if (m) |
90 | { | 90 | { |
91 | if (!account->getOffline()) | 91 | if (!account->getOffline()) |
92 | { | 92 | { |
93 | m->insertItem(QObject::tr("Disconnect",contextName),0); | 93 | m->insertItem(QObject::tr("Disconnect",contextName),0); |
94 | m->insertItem(QObject::tr("Set offline",contextName),1); | 94 | m->insertItem(QObject::tr("Set offline",contextName),1); |
95 | m->insertItem(QObject::tr("Download messages",contextName),2); | ||
95 | } | 96 | } |
96 | else | 97 | else |
97 | { | 98 | { |
98 | m->insertItem(QObject::tr("Set online",contextName),1); | 99 | m->insertItem(QObject::tr("Set online",contextName),1); |
99 | } | 100 | } |
100 | } | 101 | } |
101 | return m; | 102 | return m; |
102 | } | 103 | } |
103 | 104 | ||
104 | void POP3viewItem::disconnect() | 105 | void POP3viewItem::disconnect() |
105 | { | 106 | { |
106 | QListViewItem *child = firstChild(); | 107 | QListViewItem *child = firstChild(); |
107 | while ( child ) | 108 | while ( child ) |
108 | { | 109 | { |
109 | QListViewItem *tmp = child; | 110 | QListViewItem *tmp = child; |
110 | child = child->nextSibling(); | 111 | child = child->nextSibling(); |
111 | delete tmp; | 112 | delete tmp; |
112 | } | 113 | } |
113 | wrapper->logout(); | 114 | wrapper->logout(); |
114 | } | 115 | } |
115 | 116 | ||
116 | void POP3viewItem::setOnOffline() | 117 | void POP3viewItem::setOnOffline() |
117 | { | 118 | { |
118 | if (!account->getOffline()) | 119 | if (!account->getOffline()) |
119 | { | 120 | { |
120 | disconnect(); | 121 | disconnect(); |
121 | } | 122 | } |
122 | account->setOffline(!account->getOffline()); | 123 | account->setOffline(!account->getOffline()); |
123 | account->save(); | 124 | account->save(); |
124 | SETPIX(PIXMAP_POP3FOLDER); | 125 | SETPIX(PIXMAP_POP3FOLDER); |
125 | refresh(); | 126 | refresh(); |
126 | } | 127 | } |
127 | 128 | ||
128 | void POP3viewItem::contextMenuSelected(int which) | 129 | void POP3viewItem::contextMenuSelected(int which) |
129 | { | 130 | { |
130 | switch (which) | 131 | switch (which) |
131 | { | 132 | { |
132 | case 0: | 133 | case 0: |
133 | disconnect(); | 134 | disconnect(); |
134 | break; | 135 | break; |
135 | case 1: | 136 | case 1: |
136 | setOnOffline(); | 137 | setOnOffline(); |
137 | break; | 138 | break; |
139 | case 2: // daunlood | ||
140 | AccountView*bl = accountView(); | ||
141 | if (!bl) return; | ||
142 | AccountViewItem* in = findSubItem( "inbox" , 0); | ||
143 | if ( ! in ) | ||
144 | return; | ||
145 | bl->downloadMailsInbox(in->getFolder() ,getWrapper()); | ||
146 | setOnOffline(); | ||
147 | break; | ||
138 | } | 148 | } |
139 | } | 149 | } |
140 | 150 | ||
141 | POP3folderItem::~POP3folderItem() | 151 | POP3folderItem::~POP3folderItem() |
142 | {} | 152 | {} |
143 | 153 | ||
144 | POP3folderItem::POP3folderItem( const FolderP&folderInit, POP3viewItem *parent , QListViewItem*after ) | 154 | POP3folderItem::POP3folderItem( const FolderP&folderInit, POP3viewItem *parent , QListViewItem*after ) |
145 | : AccountViewItem(folderInit,parent,after ) | 155 | : AccountViewItem(folderInit,parent,after ) |
146 | { | 156 | { |
147 | pop3 = parent; | 157 | pop3 = parent; |
148 | if (folder->getDisplayName().lower()!="inbox") | 158 | if (folder->getDisplayName().lower()!="inbox") |
149 | { | 159 | { |
150 | setPixmap( 0, PIXMAP_POP3FOLDER ); | 160 | setPixmap( 0, PIXMAP_POP3FOLDER ); |
151 | } | 161 | } |
152 | else | 162 | else |
153 | { | 163 | { |
154 | setPixmap( 0, PIXMAP_INBOXFOLDER); | 164 | setPixmap( 0, PIXMAP_INBOXFOLDER); |
155 | } | 165 | } |
156 | setText( 0, folder->getDisplayName() ); | 166 | setText( 0, folder->getDisplayName() ); |
157 | } | 167 | } |
158 | 168 | ||
159 | void POP3folderItem::refresh(QValueList<RecMailP>&target) | 169 | void POP3folderItem::refresh(QValueList<RecMailP>&target) |
160 | { | 170 | { |
161 | if (folder->may_select()) | 171 | if (folder->may_select()) |
162 | pop3->getWrapper()->listMessages( folder->getName(),target ); | 172 | pop3->getWrapper()->listMessages( folder->getName(),target ); |
163 | } | 173 | } |
164 | 174 | ||
165 | RECBODYP POP3folderItem::fetchBody(const RecMailP&aMail) | 175 | RECBODYP POP3folderItem::fetchBody(const RecMailP&aMail) |
166 | { | 176 | { |
167 | return pop3->getWrapper()->fetchBody(aMail); | 177 | return pop3->getWrapper()->fetchBody(aMail); |
168 | } | 178 | } |
169 | 179 | ||
170 | QPopupMenu * POP3folderItem::getContextMenu() | 180 | QPopupMenu * POP3folderItem::getContextMenu() |
171 | { | 181 | { |
172 | QPopupMenu *m = new QPopupMenu(0); | 182 | QPopupMenu *m = new QPopupMenu(0); |
173 | if (m) | 183 | if (m) |
174 | { | 184 | { |
175 | m->insertItem(QObject::tr("Refresh header list",contextName),0); | 185 | m->insertItem(QObject::tr("Refresh header list",contextName),0); |
176 | m->insertItem(QObject::tr("Delete all mails",contextName),1); | 186 | m->insertItem(QObject::tr("Delete all mails",contextName),1); |
177 | m->insertItem(QObject::tr("Move/Copie all mails",contextName),2); | 187 | m->insertItem(QObject::tr("Move/Copie all mails",contextName),2); |
178 | } | 188 | } |
179 | return m; | 189 | return m; |
180 | } | 190 | } |
181 | 191 | ||
182 | void POP3folderItem::downloadMails() | 192 | void POP3folderItem::downloadMails() |
183 | { | 193 | { |
184 | AccountView*bl = pop3->accountView(); | 194 | AccountView*bl = pop3->accountView(); |
185 | if (!bl) return; | 195 | if (!bl) return; |
@@ -1060,81 +1070,81 @@ void AccountViewItem::init() | |||
1060 | m_Backlink = 0; | 1070 | m_Backlink = 0; |
1061 | } | 1071 | } |
1062 | 1072 | ||
1063 | AccountViewItem::~AccountViewItem() | 1073 | AccountViewItem::~AccountViewItem() |
1064 | { | 1074 | { |
1065 | folder = 0; | 1075 | folder = 0; |
1066 | } | 1076 | } |
1067 | 1077 | ||
1068 | AccountView*AccountViewItem::accountView() | 1078 | AccountView*AccountViewItem::accountView() |
1069 | { | 1079 | { |
1070 | return m_Backlink; | 1080 | return m_Backlink; |
1071 | } | 1081 | } |
1072 | 1082 | ||
1073 | void AccountViewItem::deleteAllMail(AbstractMail*wrapper,const FolderP&folder) | 1083 | void AccountViewItem::deleteAllMail(AbstractMail*wrapper,const FolderP&folder) |
1074 | { | 1084 | { |
1075 | if (!wrapper) return; | 1085 | if (!wrapper) return; |
1076 | QString fname=""; | 1086 | QString fname=""; |
1077 | if (folder) fname = folder->getDisplayName(); | 1087 | if (folder) fname = folder->getDisplayName(); |
1078 | int yesno = QMessageBox::warning(0,QObject::tr("Delete all mails",contextName), | 1088 | int yesno = QMessageBox::warning(0,QObject::tr("Delete all mails",contextName), |
1079 | QObject::tr("<center>Realy delete all mails in box <br>%1</center>",contextName). | 1089 | QObject::tr("<center>Realy delete all mails in box <br>%1</center>",contextName). |
1080 | arg(fname), | 1090 | arg(fname), |
1081 | QObject::tr("Yes",contextName), | 1091 | QObject::tr("Yes",contextName), |
1082 | QObject::tr("No",contextName),QString::null,1,1); | 1092 | QObject::tr("No",contextName),QString::null,1,1); |
1083 | 1093 | ||
1084 | if (yesno == 0) | 1094 | if (yesno == 0) |
1085 | { | 1095 | { |
1086 | if (wrapper->deleteAllMail(folder)) | 1096 | if (wrapper->deleteAllMail(folder)) |
1087 | { | 1097 | { |
1088 | AccountView * view = (AccountView*)listView(); | 1098 | AccountView * view = (AccountView*)listView(); |
1089 | if (view) view->refreshCurrent(); | 1099 | if (view) view->refreshCurrent(); |
1090 | } | 1100 | } |
1091 | } | 1101 | } |
1092 | } | 1102 | } |
1093 | 1103 | ||
1094 | void AccountViewItem::removeChilds() | 1104 | void AccountViewItem::removeChilds() |
1095 | { | 1105 | { |
1096 | QListViewItem *child = firstChild(); | 1106 | QListViewItem *child = firstChild(); |
1097 | while ( child ) | 1107 | while ( child ) |
1098 | { | 1108 | { |
1099 | QListViewItem *tmp = child; | 1109 | QListViewItem *tmp = child; |
1100 | child = child->nextSibling(); | 1110 | child = child->nextSibling(); |
1101 | delete tmp; | 1111 | delete tmp; |
1102 | } | 1112 | } |
1103 | } | 1113 | } |
1104 | 1114 | ||
1105 | bool AccountViewItem::matchName(const QString&name)const | 1115 | bool AccountViewItem::matchName(const QString&name)const |
1106 | { | 1116 | { |
1107 | if (!folder) return false; | 1117 | if (!folder) return false; |
1108 | return folder->getDisplayName()==name; | 1118 | return folder->getDisplayName().lower()==name.lower(); |
1109 | } | 1119 | } |
1110 | 1120 | ||
1111 | 1121 | ||
1112 | AccountViewItem*AccountViewItem::findSubItem(const QString&path,AccountViewItem*start) | 1122 | AccountViewItem*AccountViewItem::findSubItem(const QString&path,AccountViewItem*start) |
1113 | { | 1123 | { |
1114 | AccountViewItem*pitem,*sitem; | 1124 | AccountViewItem*pitem,*sitem; |
1115 | if (!start) pitem = (AccountViewItem*)firstChild(); | 1125 | if (!start) pitem = (AccountViewItem*)firstChild(); |
1116 | else pitem = (AccountViewItem*)start->firstChild(); | 1126 | else pitem = (AccountViewItem*)start->firstChild(); |
1117 | while (pitem) | 1127 | while (pitem) |
1118 | { | 1128 | { |
1119 | if (pitem->matchName(path)) | 1129 | if (pitem->matchName(path)) |
1120 | { | 1130 | { |
1121 | break; | 1131 | break; |
1122 | } | 1132 | } |
1123 | if (pitem->childCount()>0) | 1133 | if (pitem->childCount()>0) |
1124 | { | 1134 | { |
1125 | sitem = findSubItem(path,pitem); | 1135 | sitem = findSubItem(path,pitem); |
1126 | if (sitem) | 1136 | if (sitem) |
1127 | { | 1137 | { |
1128 | pitem = sitem; | 1138 | pitem = sitem; |
1129 | break; | 1139 | break; |
1130 | } | 1140 | } |
1131 | } | 1141 | } |
1132 | pitem=(AccountViewItem*)pitem->nextSibling(); | 1142 | pitem=(AccountViewItem*)pitem->nextSibling(); |
1133 | } | 1143 | } |
1134 | return pitem; | 1144 | return pitem; |
1135 | } | 1145 | } |
1136 | 1146 | ||
1137 | bool AccountViewItem::isDraftfolder() | 1147 | bool AccountViewItem::isDraftfolder() |
1138 | { | 1148 | { |
1139 | return false; | 1149 | return false; |
1140 | } | 1150 | } |