summaryrefslogtreecommitdiff
authoralwin <alwin>2004-03-06 12:36:55 (UTC)
committer alwin <alwin>2004-03-06 12:36:55 (UTC)
commita66fd5afde517e9a61e74fc17df617297f134c96 (patch) (unidiff)
tree7bb9819c087516f6b0f3399bdec6d5ce225201e5
parent5b49d47174925c1e2415641b77269b753688f5f1 (diff)
downloadopie-a66fd5afde517e9a61e74fc17df617297f134c96.zip
opie-a66fd5afde517e9a61e74fc17df617297f134c96.tar.gz
opie-a66fd5afde517e9a61e74fc17df617297f134c96.tar.bz2
standalone dlg for (un-)subscribing newsgroups.
May be integrated into the standard nntp-settings-dialog, too.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/.cvsignore3
-rw-r--r--noncore/net/mail/accountitem.cpp15
-rw-r--r--noncore/net/mail/accountitem.h1
-rw-r--r--noncore/net/mail/mail.pro11
-rw-r--r--noncore/net/mail/nntpgroups.cpp57
-rw-r--r--noncore/net/mail/nntpgroups.h33
-rw-r--r--noncore/net/mail/nntpgroupsdlg.cpp29
-rw-r--r--noncore/net/mail/nntpgroupsdlg.h24
-rw-r--r--noncore/net/mail/nntpgroupsui.ui88
9 files changed, 256 insertions, 5 deletions
diff --git a/noncore/net/mail/.cvsignore b/noncore/net/mail/.cvsignore
index 4957719..3819f80 100644
--- a/noncore/net/mail/.cvsignore
+++ b/noncore/net/mail/.cvsignore
@@ -29,3 +29,4 @@ sendmailprogressui.h
29selectstoreui.cpp 29selectstoreui.cpp
30selectstoreui.h 30selectstoreui.h
31 31nntpgroupsui.cpp
32nntpgroupsui.h
diff --git a/noncore/net/mail/accountitem.cpp b/noncore/net/mail/accountitem.cpp
index e925d8d..0d636a4 100644
--- a/noncore/net/mail/accountitem.cpp
+++ b/noncore/net/mail/accountitem.cpp
@@ -3,4 +3,5 @@
3#include "accountview.h" 3#include "accountview.h"
4#include "newmaildir.h" 4#include "newmaildir.h"
5#include "nntpgroupsdlg.h"
5#include "defines.h" 6#include "defines.h"
6 7
@@ -285,4 +286,5 @@ QPopupMenu * NNTPviewItem::getContextMenu()
285 m->insertItem(QObject::tr("Disconnect",contextName),0); 286 m->insertItem(QObject::tr("Disconnect",contextName),0);
286 m->insertItem(QObject::tr("Set offline",contextName),1); 287 m->insertItem(QObject::tr("Set offline",contextName),1);
288 m->insertItem(QObject::tr("(Un-)Subscribe groups",contextName),2);
287 } 289 }
288 else 290 else
@@ -294,4 +296,12 @@ QPopupMenu * NNTPviewItem::getContextMenu()
294} 296}
295 297
298void NNTPviewItem::subscribeGroups()
299{
300 NNTPGroupsDlg dlg(account);
301 if (QPEApplication::execDialog(&dlg)== QDialog::Accepted ){
302 refresh();
303 }
304}
305
296void NNTPviewItem::disconnect() 306void NNTPviewItem::disconnect()
297{ 307{
@@ -329,4 +339,7 @@ void NNTPviewItem::contextMenuSelected(int which)
329 setOnOffline(); 339 setOnOffline();
330 break; 340 break;
341 case 2:
342 subscribeGroups();
343 break;
331 } 344 }
332} 345}
@@ -368,5 +381,5 @@ QPopupMenu * NNTPfolderItem::getContextMenu()
368 { 381 {
369 m->insertItem(QObject::tr("Refresh header list",contextName),0); 382 m->insertItem(QObject::tr("Refresh header list",contextName),0);
370 m->insertItem(QObject::tr("Move/Copie all mails",contextName),1); 383 m->insertItem(QObject::tr("Copy all postings",contextName),1);
371 } 384 }
372 return m; 385 return m;
diff --git a/noncore/net/mail/accountitem.h b/noncore/net/mail/accountitem.h
index a138c9b..f3c0f5d 100644
--- a/noncore/net/mail/accountitem.h
+++ b/noncore/net/mail/accountitem.h
@@ -97,4 +97,5 @@ protected:
97 void disconnect(); 97 void disconnect();
98 void setOnOffline(); 98 void setOnOffline();
99 void subscribeGroups();
99}; 100};
100 101
diff --git a/noncore/net/mail/mail.pro b/noncore/net/mail/mail.pro
index 7e0de2b..005a839 100644
--- a/noncore/net/mail/mail.pro
+++ b/noncore/net/mail/mail.pro
@@ -15,5 +15,7 @@ HEADERS = defines.h \
15 newmaildir.h \ 15 newmaildir.h \
16 selectstore.h \ 16 selectstore.h \
17 selectsmtp.h 17 selectsmtp.h \
18 nntpgroups.h \
19 nntpgroupsdlg.h
18 20
19SOURCES = main.cpp \ 21SOURCES = main.cpp \
@@ -32,5 +34,7 @@ SOURCES = main.cpp \
32 newmaildir.cpp \ 34 newmaildir.cpp \
33 selectstore.cpp \ 35 selectstore.cpp \
34 selectsmtp.cpp 36 selectsmtp.cpp \
37 nntpgroups.cpp \
38 nntpgroupsdlg.cpp
35 39
36INTERFACES = editaccountsui.ui \ 40INTERFACES = editaccountsui.ui \
@@ -45,5 +49,6 @@ INTERFACES = editaccountsui.ui \
45 statuswidgetui.ui \ 49 statuswidgetui.ui \
46 newmaildirui.ui \ 50 newmaildirui.ui \
47 selectstoreui.ui 51 selectstoreui.ui \
52 nntpgroupsui.ui
48 53
49 54
diff --git a/noncore/net/mail/nntpgroups.cpp b/noncore/net/mail/nntpgroups.cpp
new file mode 100644
index 0000000..97b1985
--- a/dev/null
+++ b/noncore/net/mail/nntpgroups.cpp
@@ -0,0 +1,57 @@
1#include "nntpgroups.h"
2
3#include <libmailwrapper/settings.h>
4
5#include <qlistview.h>
6
7NNTPGroups::NNTPGroups(NNTPaccount *account, QWidget* parent, const char* name, WFlags fl)
8 : NNTPGroupsUI(parent,name,fl),subscribedGroups()
9{
10 m_Account = account;
11 fillGroups();
12}
13
14NNTPGroups::~NNTPGroups()
15{
16
17}
18
19void NNTPGroups::slotGetNG()
20{
21 if (!m_Account) return;
22 GroupListView->clear();
23 NNTPwrapper tmp( m_Account );
24 QStringList list = tmp.listAllNewsgroups();
25 for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it ) {
26 QCheckListItem *item;
27 item = new QCheckListItem( GroupListView, (*it), QCheckListItem::CheckBox );
28 if ( subscribedGroups.contains( (*it) ) >= 1 ) {
29 item->setOn( true );
30 }
31 }
32}
33
34void NNTPGroups::fillGroups()
35{
36 if (!m_Account) return;
37 subscribedGroups = m_Account->getGroups();
38 for ( QStringList::Iterator it = subscribedGroups.begin(); it != subscribedGroups.end(); ++it ) {
39 QCheckListItem *item;
40 item = new QCheckListItem( GroupListView, (*it), QCheckListItem::CheckBox );
41 item->setOn( true );
42 }
43}
44
45void NNTPGroups::storeValues()
46{
47 if (!m_Account) return;
48 QListViewItemIterator list_it( GroupListView );
49 subscribedGroups.clear();
50 for ( ; list_it.current(); ++list_it ) {
51 if ( ( (QCheckListItem*)list_it.current() )->isOn() ) {
52 qDebug(list_it.current()->text(0) );
53 subscribedGroups.append( list_it.current()->text(0) );
54 }
55 }
56 m_Account->setGroups( subscribedGroups );
57}
diff --git a/noncore/net/mail/nntpgroups.h b/noncore/net/mail/nntpgroups.h
new file mode 100644
index 0000000..8cc2e8b
--- a/dev/null
+++ b/noncore/net/mail/nntpgroups.h
@@ -0,0 +1,33 @@
1#ifndef __NNTPGROUPS_WINDOW__
2#define __NNTPGROUPS_WINDOW__
3
4#include "nntpgroupsui.h"
5
6#include <libmailwrapper/nntpwrapper.h>
7
8class NNTPaccount;
9class QStringList;
10
11class NNTPGroups:public NNTPGroupsUI
12{
13 Q_OBJECT
14public:
15 NNTPGroups(NNTPaccount *account, QWidget* parent = 0, const char* name = 0, WFlags fl = 0);
16 virtual ~NNTPGroups();
17 /* must be called from external.
18 * it will store the new subscription list into the account
19 * but don't save them, this must be done by the calling class.
20 */
21 void storeValues();
22
23protected slots:
24 virtual void slotGetNG();
25
26protected:
27 virtual void fillGroups();
28
29 NNTPaccount*m_Account;
30 QStringList subscribedGroups;
31};
32
33#endif
diff --git a/noncore/net/mail/nntpgroupsdlg.cpp b/noncore/net/mail/nntpgroupsdlg.cpp
new file mode 100644
index 0000000..752ce3c
--- a/dev/null
+++ b/noncore/net/mail/nntpgroupsdlg.cpp
@@ -0,0 +1,29 @@
1#include "nntpgroupsdlg.h"
2#include "nntpgroups.h"
3
4#include <libmailwrapper/settings.h>
5
6#include <qlayout.h>
7
8NNTPGroupsDlg::NNTPGroupsDlg(NNTPaccount *account,QWidget * parent, const char * name)
9 : QDialog(parent,name,true)
10{
11 setCaption(tr("Subscribed newsgroups"));
12 m_Account = account;
13 QVBoxLayout*dlglayout = new QVBoxLayout(this);
14 dlglayout->setSpacing(2);
15 dlglayout->setMargin(1);
16 groupsWidget = new NNTPGroups(account,this);
17 dlglayout->addWidget(groupsWidget);
18}
19
20NNTPGroupsDlg::~NNTPGroupsDlg()
21{
22}
23
24void NNTPGroupsDlg::accept()
25{
26 groupsWidget->storeValues();
27 m_Account->save();
28 QDialog::accept();
29}
diff --git a/noncore/net/mail/nntpgroupsdlg.h b/noncore/net/mail/nntpgroupsdlg.h
new file mode 100644
index 0000000..a21bac7
--- a/dev/null
+++ b/noncore/net/mail/nntpgroupsdlg.h
@@ -0,0 +1,24 @@
1#ifndef __NNTP_GROUP_DLG_H
2#define __NNTP_GROUP_DLG_H
3
4#include <qdialog.h>
5
6class NNTPGroups;
7class NNTPaccount;
8
9class NNTPGroupsDlg : public QDialog
10{
11 Q_OBJECT
12public:
13 NNTPGroupsDlg(NNTPaccount *account,QWidget * parent=0, const char * name=0);
14 virtual ~NNTPGroupsDlg();
15
16protected:
17 NNTPGroups*groupsWidget;
18 NNTPaccount*m_Account;
19
20protected slots:
21 virtual void accept ();
22};
23
24#endif
diff --git a/noncore/net/mail/nntpgroupsui.ui b/noncore/net/mail/nntpgroupsui.ui
new file mode 100644
index 0000000..93f487b
--- a/dev/null
+++ b/noncore/net/mail/nntpgroupsui.ui
@@ -0,0 +1,88 @@
1<!DOCTYPE UI><UI>
2<class>NNTPGroupsUI</class>
3<widget>
4 <class>QWidget</class>
5 <property stdset="1">
6 <name>name</name>
7 <cstring>NNTPGroupsUI</cstring>
8 </property>
9 <property stdset="1">
10 <name>geometry</name>
11 <rect>
12 <x>0</x>
13 <y>0</y>
14 <width>356</width>
15 <height>406</height>
16 </rect>
17 </property>
18 <property stdset="1">
19 <name>caption</name>
20 <string>newsgroupslist</string>
21 </property>
22 <property>
23 <name>layoutMargin</name>
24 </property>
25 <property>
26 <name>layoutSpacing</name>
27 </property>
28 <vbox>
29 <property stdset="1">
30 <name>margin</name>
31 <number>2</number>
32 </property>
33 <property stdset="1">
34 <name>spacing</name>
35 <number>2</number>
36 </property>
37 <widget>
38 <class>QListView</class>
39 <column>
40 <property>
41 <name>text</name>
42 <string>Newsgroups</string>
43 </property>
44 <property>
45 <name>clickable</name>
46 <bool>true</bool>
47 </property>
48 <property>
49 <name>resizeable</name>
50 <bool>true</bool>
51 </property>
52 </column>
53 <property stdset="1">
54 <name>name</name>
55 <cstring>GroupListView</cstring>
56 </property>
57 <property>
58 <name>whatsThis</name>
59 <string>List of groups from the server. On start, only subscribed groups are listed.</string>
60 </property>
61 </widget>
62 <widget>
63 <class>QPushButton</class>
64 <property stdset="1">
65 <name>name</name>
66 <cstring>GetNGButton</cstring>
67 </property>
68 <property stdset="1">
69 <name>text</name>
70 <string>Get newsgroup list from server</string>
71 </property>
72 <property>
73 <name>whatsThis</name>
74 <string>Retrieve the list of groups from server</string>
75 </property>
76 </widget>
77 </vbox>
78</widget>
79<connections>
80 <connection>
81 <sender>GetNGButton</sender>
82 <signal>clicked()</signal>
83 <receiver>NNTPGroupsUI</receiver>
84 <slot>slotGetNG()</slot>
85 </connection>
86 <slot access="protected">slotGetNG()</slot>
87</connections>
88</UI>