• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdepim API Reference
  • KDE Home
  • Contact Us
 

knode

  • sources
  • kde-4.12
  • kdepim
  • knode
kngroupmanager.h
Go to the documentation of this file.
1 /*
2  KNode, the KDE newsreader
3  Copyright (c) 1999-2005 the KNode authors.
4  See file AUTHORS for details
5 
6  This program is free software; you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation; either version 2 of the License, or
9  (at your option) any later version.
10  You should have received a copy of the GNU General Public License
11  along with this program; if not, write to the Free Software Foundation,
12  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, US
13 */
14 
15 #ifndef KNGROUPMANAGER_H
16 #define KNGROUPMANAGER_H
17 
18 #include "kngroup.h"
19 #include "knjobdata.h"
20 #include "knnntpaccount.h"
21 
22 #include <QObject>
23 #include <qlist.h>
24 
25 class KNArticleManager;
26 class KNCleanUp;
27 
28 
29 //=================================================================================
30 
34 class KNGroupInfo {
35 
36  public:
37 
38  KNGroupInfo();
39  KNGroupInfo(const QString &n_ame, const QString &d_escription, bool n_ewGroup=false, bool s_ubscribed=false, KNGroup::Status s_tatus=KNGroup::unknown );
40  ~KNGroupInfo();
41 
43  QString name,description;
44  bool newGroup, subscribed;
45  KNGroup::Status status;
46 
47  bool operator== (const KNGroupInfo &gi2) const;
48  bool operator< (const KNGroupInfo &gi2) const;
49 };
50 
51 
53 class KNGroupListData : public KNJobItem {
54 
55  public:
59  typedef boost::shared_ptr<KNGroupListData> Ptr;
60 
61  KNGroupListData();
62  ~KNGroupListData();
63 
64  bool readIn(KNJobData *job=0);
65  bool writeOut();
66  void merge(QList<KNGroupInfo>* newGroups);
67 
68  QList<KNGroupInfo>* extractList();
69 
70  QStringList subscribed;
71  QString path;
72  QList<KNGroupInfo> *groups;
73  QDate fetchSince;
74  bool getDescriptions;
75  QTextCodec *codecForDescriptions;
76 
77 };
78 
79 //===============================================================================
80 
81 
83 class KNGroupManager : public QObject , public KNJobConsumer {
84 
85  Q_OBJECT
86 
87  public:
88 
89  explicit KNGroupManager( QObject * parent = 0 );
90  ~KNGroupManager();
91 
92  // group access
93  void loadGroups( KNNntpAccount::Ptr a );
94  void getSubscribed( KNNntpAccount::Ptr a, QStringList &l );
98  KNGroup::List groupsOfAccount( KNNntpAccount::Ptr a );
99 
100  bool loadHeaders( KNGroup::Ptr g );
101  bool unloadHeaders( KNGroup::Ptr g, bool force = true );
102 
106  KNGroup::Ptr group( const QString &gName, const KNServerInfo::Ptr s );
110  KNGroup::Ptr firstGroupOfAccount( const KNServerInfo::Ptr s );
111  KNGroup::Ptr currentGroup() const { return c_urrentGroup; }
112  bool hasCurrentGroup() const { return (c_urrentGroup!=0); }
113  void setCurrentGroup( KNGroup::Ptr g );
114 
115  // group handling
116  void showGroupDialog( KNNntpAccount::Ptr a, QWidget *parent = 0 );
117  void subscribeGroup( const KNGroupInfo *gi, KNNntpAccount::Ptr a );
118  bool unsubscribeGroup( KNGroup::Ptr g = KNGroup::Ptr() );
122  void showGroupProperties( KNGroup::Ptr g = KNGroup::Ptr() );
123  void expireGroupNow( KNGroup::Ptr g = KNGroup::Ptr() );
124  void reorganizeGroup( KNGroup::Ptr g = KNGroup::Ptr() );
125 
126  void checkGroupForNewHeaders( KNGroup::Ptr g = KNGroup::Ptr() );
127  void checkAll( KNNntpAccount::Ptr a, bool silent = false );
132  void checkAll( int id, bool silent = false );
133 
134  void expireAll(KNCleanUp *cup);
135  void expireAll( KNNntpAccount::Ptr a );
136  void syncGroups();
137 
138  public slots:
140  void slotLoadGroupList( KNNntpAccount::Ptr a );
142  void slotFetchGroupList( KNNntpAccount::Ptr a );
144  void slotCheckForNewGroups( KNNntpAccount::Ptr a, QDate date );
145 
146  protected:
148  void processJob(KNJobData *j);
149  KNGroup::List mGroupList;
150  KNGroup::Ptr c_urrentGroup;
151  KNArticleManager *a_rticleMgr;
152 
153  signals:
154  void newListReady( KNGroupListData::Ptr d );
155 
159  void groupAdded( KNGroup::Ptr g );
163  void groupRemoved( KNGroup::Ptr g );
167  void groupUpdated( KNGroup::Ptr g );
168 
169 };
170 
171 
172 
173 #endif
KNGroupManager::newListReady
void newListReady(KNGroupListData::Ptr d)
KNGroupInfo::KNGroupInfo
KNGroupInfo()
Definition: kngroupmanager.cpp:56
KNGroupInfo::description
QString description
Definition: kngroupmanager.h:43
KNGroupManager::syncGroups
void syncGroups()
Definition: kngroupmanager.cpp:248
KNGroupManager::expireGroupNow
void expireGroupNow(KNGroup::Ptr g=KNGroup::Ptr())
Definition: kngroupmanager.cpp:520
KNGroupListData::extractList
QList< KNGroupInfo > * extractList()
Definition: kngroupmanager.cpp:225
KNGroupManager::groupsOfAccount
KNGroup::List groupsOfAccount(KNNntpAccount::Ptr a)
Returns the list of (subscribed) groups in the account a.
Definition: kngroupmanager.cpp:288
KNGroupManager::getSubscribed
void getSubscribed(KNNntpAccount::Ptr a, QStringList &l)
Definition: kngroupmanager.cpp:279
KNGroupManager::~KNGroupManager
~KNGroupManager()
Definition: kngroupmanager.cpp:243
KNGroupManager::showGroupDialog
void showGroupDialog(KNNntpAccount::Ptr a, QWidget *parent=0)
Definition: kngroupmanager.cpp:401
KNGroupManager::reorganizeGroup
void reorganizeGroup(KNGroup::Ptr g=KNGroup::Ptr())
Definition: kngroupmanager.cpp:545
KNGroupManager::checkAll
void checkAll(KNNntpAccount::Ptr a, bool silent=false)
Definition: kngroupmanager.cpp:573
KNGroup::Status
Status
The posting rights status of this group.
Definition: kngroup.h:50
date
time_t date() const
KNGroupManager::group
KNGroup::Ptr group(const QString &gName, const KNServerInfo::Ptr s)
Returns a group named gName in the server s, or null if none is found.
Definition: kngroupmanager.cpp:338
KNGroupManager::loadGroups
void loadGroups(KNNntpAccount::Ptr a)
Definition: kngroupmanager.cpp:257
KNGroupListData::Ptr
boost::shared_ptr< KNGroupListData > Ptr
Shared pointer to a KNGroupListData.
Definition: kngroupmanager.h:59
KNJobData
Abstract base class for all KNode internal jobs.
Definition: knjobdata.h:101
QWidget
KNGroupManager::a_rticleMgr
KNArticleManager * a_rticleMgr
Definition: kngroupmanager.h:151
KNGroupManager::unsubscribeGroup
bool unsubscribeGroup(KNGroup::Ptr g=KNGroup::Ptr())
Definition: kngroupmanager.cpp:454
KNGroupListData::merge
void merge(QList< KNGroupInfo > *newGroups)
Definition: kngroupmanager.cpp:209
QObject
kngroup.h
KNNntpAccount::Ptr
boost::shared_ptr< KNNntpAccount > Ptr
Shared pointer to a KNNntpAccount.
Definition: knnntpaccount.h:62
KNCleanUp
This class handles group expiration and folder compaction.
Definition: kncleanup.h:36
KNGroupListData::getDescriptions
bool getDescriptions
Definition: kngroupmanager.h:74
knnntpaccount.h
KNGroupManager::KNGroupManager
KNGroupManager(QObject *parent=0)
Definition: kngroupmanager.cpp:236
KNGroupManager::groupAdded
void groupAdded(KNGroup::Ptr g)
Emitted when a group is added.
KNGroupInfo::newGroup
bool newGroup
Definition: kngroupmanager.h:44
KNGroupManager::expireAll
void expireAll(KNCleanUp *cup)
Definition: kngroupmanager.cpp:358
knjobdata.h
KNGroupManager::subscribeGroup
void subscribeGroup(const KNGroupInfo *gi, KNNntpAccount::Ptr a)
Definition: kngroupmanager.cpp:442
KNGroupManager::mGroupList
KNGroup::List mGroupList
Definition: kngroupmanager.h:149
KNGroupListData::writeOut
bool writeOut()
Definition: kngroupmanager.cpp:176
KNGroupListData::~KNGroupListData
~KNGroupListData()
Definition: kngroupmanager.cpp:96
KNGroupManager::hasCurrentGroup
bool hasCurrentGroup() const
Definition: kngroupmanager.h:112
KNGroupManager::groupRemoved
void groupRemoved(KNGroup::Ptr g)
Emitted when a group is removed.
KNGroupManager::slotFetchGroupList
void slotFetchGroupList(KNNntpAccount::Ptr a)
fetch group list from server
Definition: kngroupmanager.cpp:686
KNGroupManager::checkGroupForNewHeaders
void checkGroupForNewHeaders(KNGroup::Ptr g=KNGroup::Ptr())
Definition: kngroupmanager.cpp:506
KNGroupInfo::name
QString name
group names will be utf-8 encoded in the future...
Definition: kngroupmanager.h:43
KNGroupManager::c_urrentGroup
KNGroup::Ptr c_urrentGroup
Definition: kngroupmanager.h:150
KNGroup::unknown
Definition: kngroup.h:50
KNGroupManager::slotLoadGroupList
void slotLoadGroupList(KNNntpAccount::Ptr a)
load group list from disk (if this fails: ask user if we should fetch the list)
Definition: kngroupmanager.cpp:663
KNGroupManager::processJob
void processJob(KNJobData *j)
Reimplemented from KNJobConsumer.
Definition: kngroupmanager.cpp:592
KNGroupManager::loadHeaders
bool loadHeaders(KNGroup::Ptr g)
Definition: kngroupmanager.cpp:298
KNGroupManager::setCurrentGroup
void setCurrentGroup(KNGroup::Ptr g)
Definition: kngroupmanager.cpp:555
KNJobConsumer
Base class for classes that want to create and schedule jobs.
Definition: knjobdata.h:39
KNGroupListData
Data of group list jobs.
Definition: kngroupmanager.h:53
KNGroupManager::showGroupProperties
void showGroupProperties(KNGroup::Ptr g=KNGroup::Ptr())
Shows the property dialog of g or if null, the properties of the currentGroup().
Definition: kngroupmanager.cpp:498
KNGroupInfo::subscribed
bool subscribed
Definition: kngroupmanager.h:44
KNArticleManager
Article manager.
Definition: knarticlemanager.h:38
KNGroupListData::path
QString path
Definition: kngroupmanager.h:71
KNGroupListData::readIn
bool readIn(KNJobData *job=0)
Definition: kngroupmanager.cpp:103
KNGroupListData::groups
QList< KNGroupInfo > * groups
Definition: kngroupmanager.h:72
KNJobItem
Base class for data structures used in jobs.
Definition: knjobdata.h:74
KNGroupInfo::operator==
bool operator==(const KNGroupInfo &gi2) const
Definition: kngroupmanager.cpp:73
KNServerInfo::Ptr
boost::shared_ptr< KNServerInfo > Ptr
Shared pointer to a KNServerInfo.
Definition: knserverinfo.h:37
KNGroupManager::firstGroupOfAccount
KNGroup::Ptr firstGroupOfAccount(const KNServerInfo::Ptr s)
Returns the first group in the server s, or null if it is empty.
Definition: kngroupmanager.cpp:348
KNGroupListData::codecForDescriptions
QTextCodec * codecForDescriptions
Definition: kngroupmanager.h:75
KNGroupInfo::operator<
bool operator<(const KNGroupInfo &gi2) const
Definition: kngroupmanager.cpp:79
KNGroupListData::subscribed
QStringList subscribed
Definition: kngroupmanager.h:70
KNGroupInfo
Helper classes for the group selection dialog, contains info about a newsgroup (name, description)
Definition: kngroupmanager.h:34
KNGroupManager::currentGroup
KNGroup::Ptr currentGroup() const
Definition: kngroupmanager.h:111
KNGroupManager
Group manager.
Definition: kngroupmanager.h:83
KNGroupListData::fetchSince
QDate fetchSince
Definition: kngroupmanager.h:73
KNGroupManager::unloadHeaders
bool unloadHeaders(KNGroup::Ptr g, bool force=true)
Definition: kngroupmanager.cpp:318
KNGroupInfo::~KNGroupInfo
~KNGroupInfo()
Definition: kngroupmanager.cpp:68
KNGroupManager::groupUpdated
void groupUpdated(KNGroup::Ptr g)
Emitted when a group is updated.
KNGroupInfo::status
KNGroup::Status status
Definition: kngroupmanager.h:45
KNGroupManager::slotCheckForNewGroups
void slotCheckForNewGroups(KNNntpAccount::Ptr a, QDate date)
check for new groups (created after the given date)
Definition: kngroupmanager.cpp:699
QList< KNGroupInfo >
KNGroup::Ptr
boost::shared_ptr< KNGroup > Ptr
Shared pointer to a KNGroup.
Definition: kngroup.h:47
KNGroupListData::KNGroupListData
KNGroupListData()
Definition: kngroupmanager.cpp:88
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:58:36 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

knode

Skip menu "knode"
  • Main Page
  • Namespace List
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdepim API Reference

Skip menu "kdepim API Reference"
  • akonadi_next
  • akregator
  • blogilo
  • calendarsupport
  • console
  •   kabcclient
  •   konsolekalendar
  • kaddressbook
  • kalarm
  •   lib
  • kdgantt2
  • kjots
  • kleopatra
  • kmail
  • knode
  • knotes
  • kontact
  • korgac
  • korganizer
  • ktimetracker
  • libkdepim
  • libkleo
  • libkpgp
  • mailcommon
  • messagelist
  • messageviewer

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal