TwitterMicroBlog plugin made operational.
[choqok:choqok-obsolete.git] / libchoqok / account.h
1 /*
2     This file is part of Choqok, the KDE micro-blogging client
3
4     Copyright (C) 2008-2009 Mehrdad Momeny <mehrdad.momeny@gmail.com>
5
6     This program is free software; you can redistribute it and/or
7     modify it under the terms of the GNU General Public License as
8     published by the Free Software Foundation; either version 2 of
9     the License or (at your option) version 3 or any later version
10     accepted by the membership of KDE e.V. (or its successor approved
11     by the membership of KDE e.V.), which shall act as a proxy
12     defined in Section 14 of version 3 of the license.
13
14
15     This program is distributed in the hope that it will be useful,
16     but WITHOUT ANY WARRANTY; without even the implied warranty of
17     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18     GNU General Public License for more details.
19
20     You should have received a copy of the GNU General Public License
21     along with this program; if not, see http://www.gnu.org/licenses/
22
23 */
24 #ifndef CHOQOKACCOUNT_H
25 #define CHOQOKACCOUNT_H
26 #include <QString>
27 #include "choqok_export.h"
28 #include <kconfiggroup.h>
29
30 namespace Choqok
31 {
32 class MicroBlog;
33 /**
34 \brief Account class base
35 MicroBlog plugins can subclass this class or use it if fill their needs.
36     @author Mehrdad Momeny <mehrdad.momeny@gmail.com>
37 */
38 class CHOQOK_EXPORT Account : public QObject
39 {
40 public:
41     Account(MicroBlog *parent, QString alias);
42
43     ~Account();
44     /**
45     \brief MicroBlog for this account
46     */
47     MicroBlog *microblog() const;
48
49     QString username() const;
50     void setUsername( const QString &name );
51
52     QString password() const;
53     void setPassword( const QString &pass );
54
55     QString alias() const;
56     void setAlias( const QString &alias );
57
58     bool isReadOnly() const;
59     void setReadOnly(bool readonly = true);
60
61     virtual void writeConfig();
62     /**
63     * \brief Get the priority of this account.
64     *
65     * Used for sorting mainwindow tab widgets.
66     */
67     uint priority() const;
68
69     /**
70     * \brief Set the priority of this account.
71     *
72     * @note This method is called by the UI, and should not be called elsewhere.
73     */
74     void setPriority( uint priority );
75
76     /**
77     * Return the @ref KConfigGroup used to write and read special properties
78     *
79     * "MicroBlog", "UserId", "Username" , "Password", "Priority", "Enabled" are reserved keyword
80     * already in use in that group.
81     *
82     * for compatibility, try to not use key that start with a uppercase
83     */
84     KConfigGroup *configGroup() const;
85
86 private:
87     class Private;
88     Private *d;
89 };
90
91 }
92 #endif