author | alwin <alwin> | 2004-03-06 12:36:55 (UTC) |
---|---|---|
committer | alwin <alwin> | 2004-03-06 12:36:55 (UTC) |
commit | a66fd5afde517e9a61e74fc17df617297f134c96 (patch) (unidiff) | |
tree | 7bb9819c087516f6b0f3399bdec6d5ce225201e5 | |
parent | 5b49d47174925c1e2415641b77269b753688f5f1 (diff) | |
download | opie-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.
-rw-r--r-- | noncore/net/mail/.cvsignore | 3 | ||||
-rw-r--r-- | noncore/net/mail/accountitem.cpp | 15 | ||||
-rw-r--r-- | noncore/net/mail/accountitem.h | 1 | ||||
-rw-r--r-- | noncore/net/mail/mail.pro | 11 | ||||
-rw-r--r-- | noncore/net/mail/nntpgroups.cpp | 57 | ||||
-rw-r--r-- | noncore/net/mail/nntpgroups.h | 33 | ||||
-rw-r--r-- | noncore/net/mail/nntpgroupsdlg.cpp | 29 | ||||
-rw-r--r-- | noncore/net/mail/nntpgroupsdlg.h | 24 | ||||
-rw-r--r-- | noncore/net/mail/nntpgroupsui.ui | 88 |
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 | |||
29 | selectstoreui.cpp | 29 | selectstoreui.cpp |
30 | selectstoreui.h | 30 | selectstoreui.h |
31 | 31 | nntpgroupsui.cpp | |
32 | nntpgroupsui.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 | ||
298 | void NNTPviewItem::subscribeGroups() | ||
299 | { | ||
300 | NNTPGroupsDlg dlg(account); | ||
301 | if (QPEApplication::execDialog(&dlg)== QDialog::Accepted ){ | ||
302 | refresh(); | ||
303 | } | ||
304 | } | ||
305 | |||
296 | void NNTPviewItem::disconnect() | 306 | void 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 | ||
19 | SOURCES = main.cpp \ | 21 | SOURCES = 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 | ||
36 | INTERFACES = editaccountsui.ui \ | 40 | INTERFACES = 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 | |||
7 | NNTPGroups::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 | |||
14 | NNTPGroups::~NNTPGroups() | ||
15 | { | ||
16 | |||
17 | } | ||
18 | |||
19 | void 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 | |||
34 | void 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 | |||
45 | void 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 | |||
8 | class NNTPaccount; | ||
9 | class QStringList; | ||
10 | |||
11 | class NNTPGroups:public NNTPGroupsUI | ||
12 | { | ||
13 | Q_OBJECT | ||
14 | public: | ||
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 | |||
23 | protected slots: | ||
24 | virtual void slotGetNG(); | ||
25 | |||
26 | protected: | ||
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 | |||
8 | NNTPGroupsDlg::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 | |||
20 | NNTPGroupsDlg::~NNTPGroupsDlg() | ||
21 | { | ||
22 | } | ||
23 | |||
24 | void 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 | |||
6 | class NNTPGroups; | ||
7 | class NNTPaccount; | ||
8 | |||
9 | class NNTPGroupsDlg : public QDialog | ||
10 | { | ||
11 | Q_OBJECT | ||
12 | public: | ||
13 | NNTPGroupsDlg(NNTPaccount *account,QWidget * parent=0, const char * name=0); | ||
14 | virtual ~NNTPGroupsDlg(); | ||
15 | |||
16 | protected: | ||
17 | NNTPGroups*groupsWidget; | ||
18 | NNTPaccount*m_Account; | ||
19 | |||
20 | protected 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> | ||