summaryrefslogtreecommitdiffstats
path: root/kshowmail/kcmconfigs/configaccounts.h
blob: 7a6f2f2eebaed3aa345595a5e59cdd33200c0307 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
//
// C++ Interface: configaccounts
//
// Description:
//
//
// Author: Ulrich Weigelt <ulrich.weigelt@gmx.de>, (C) 2007
//
// Copyright: See COPYING file that comes with this distribution
//
//
#ifndef CONFIGACCOUNTS_H
#define CONFIGACCOUNTS_H

//TQt headers
#include <tqlayout.h>

//KDE headers
#include <tdecmodule.h>
#include <kgenericfactory.h>
#include <tdeapplication.h>
#include <tdeconfig.h>
#include <tdelistview.h>
#include <kpushbutton.h>
#include <kstdguiitem.h>
#include <tdemessagebox.h>

//kshowmail headers
#include "../constants.h"
#include "accountsetupdialog.h"
#include "accountsetupitem.h"

/**
 * @brief Part of the setup dialog (KShowMailApp::SetupDialog) to configure the accounts.
 * @author Ulrich Weigelt <ulrich.weigelt@gmx.de>
 */
class ConfigAccounts : public TDECModule
{
TQ_OBJECT

  public:

    /**
     * Generic Constructor
     */
    ConfigAccounts( TQWidget *parent = 0, const char *name = 0, const TQStringList &args = TQStringList() );

    /**
     * Destructor
     */
    ~ConfigAccounts();

    /**
     * Overloaded method of TDECModule.
     * Sets the user interface elements to reflect the current settings stored in the
     * config file.
     */
    virtual void load();

    /**
     * Overloaded method of TDECModule.
     * Sets the user interface elements to default values.
     * This method is called when the user clicks the "Default" button.
     */
    virtual void defaults();

    /**
     * Overloaded method of TDECModule.
     * Stores the config information as shown in the user interface in the
     * config file.
     * Is called when the user clicks "Apply" or "Ok".
     */
    virtual void save();

  private:

    /**
     * Connector to the configuration file
     */
    TDEConfig* config;

    /**
     * Account List View
     */
    TDEListView* AccountListView;

    /**
     * Button to add a new account
     */
    KPushButton* btnAdd;

    /**
     * Button to edit an account
     */
    KPushButton* btnEdit;

    /**
     * Button to remove an account
     */
    KPushButton* btnRemove;

  private slots:

    /**
     * Connected with the configuration items.
     * Calls the slot changed() of TDECModule to notify the dialog about the change.
     */
    void slotChanged();

    /**
     * Connected with button btnAdd.
     * Opens the account setup dialog with an account item pointer of NULL.
     * If the user has clicked OK, the dialog will create a new account item with
     * the entered values and adds it to the list view.
     */
    void slotAdd();

    /**
     * Connected with button btnEdit.
     * Opens the account setup with the selected account item.
     */
    void slotEdit();

    /**
     * Connected with button btnRemove.
     * Removes the selected item.
     */
    void slotRemove();
};

#endif