diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | 460c52653ab0dcca6f19a4f492ed2c5e4e963ab0 (patch) | |
tree | 67208f7c145782a7e90b123b982ca78d88cc2c87 /knode/knaccountmanager.h | |
download | tdepim-460c52653ab0dcca6f19a4f492ed2c5e4e963ab0.tar.gz tdepim-460c52653ab0dcca6f19a4f492ed2c5e4e963ab0.zip |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdepim@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'knode/knaccountmanager.h')
-rw-r--r-- | knode/knaccountmanager.h | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/knode/knaccountmanager.h b/knode/knaccountmanager.h new file mode 100644 index 000000000..5b6cd4ef9 --- /dev/null +++ b/knode/knaccountmanager.h @@ -0,0 +1,93 @@ +/* + KNode, the KDE newsreader + Copyright (c) 1999-2005 the KNode authors. + See file AUTHORS for details + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, US +*/ + +#ifndef KNACCOUNTMANAGER_H +#define KNACCOUNTMANAGER_H + +#include <qglobal.h> +#include <qvaluelist.h> + +namespace KWallet { + class Wallet; +} + +class KNGroupManager; +class KNNntpAccount; +class KNServerInfo; + + +class KNAccountManager : public QObject +{ + Q_OBJECT + + public: + KNAccountManager(KNGroupManager *gm, QObject * parent=0, const char * name=0); + ~KNAccountManager(); + + void prepareShutdown(); + + void setCurrentAccount(KNNntpAccount *a); + + bool newAccount(KNNntpAccount *a); // a is new account allocated and configured by the caller + bool removeAccount(KNNntpAccount *a=0); // a==0: remove current account + void editProperties(KNNntpAccount *a=0); + void accountRenamed(KNNntpAccount *a=0); + + bool hasCurrentAccount() const { return (c_urrentAccount!=0); } + KNNntpAccount* currentAccount() const { return c_urrentAccount; } + KNServerInfo* smtp() const { return s_mtp; } + /** Returns the account with the given id. */ + KNNntpAccount* account( int id ); + QValueList<KNNntpAccount*>::Iterator begin() { return mAccounts.begin(); } + QValueList<KNNntpAccount*>::Iterator end() { return mAccounts.end(); } + /** Returns the first account (used as fallback sometimes). */ + KNNntpAccount* first() const; + + /** Loads the passwords of all accounts, allows on-demand wallet opening */ + void loadPasswords(); + /** Loads passwords of all accounts asynchronous */ + void loadPasswordsAsync(); + + /** Returns a pointer to an open wallet if available, 0 otherwise */ + static KWallet::Wallet* wallet(); + + protected: + void loadAccounts(); + KNGroupManager *gManager; + KNNntpAccount *c_urrentAccount; + KNServerInfo *s_mtp; + + signals: + void accountAdded(KNNntpAccount *a); + void accountRemoved(KNNntpAccount *a); // don't do anything with a, it will be deleted soon + void accountModified(KNNntpAccount *a); + /** Emitted if passwords have been loaded from the wallet */ + void passwordsChanged(); + + private slots: + void slotWalletOpened( bool success ); + + private: + /** set/create wallet-folder */ + static void prepareWallet(); + + private: + QValueList<KNNntpAccount*> mAccounts; + static KWallet::Wallet *mWallet; + static bool mWalletOpenFailed; + bool mAsyncOpening; + +}; + +#endif |