summaryrefslogtreecommitdiffstats
path: root/kbiff/kbiff.h
blob: b76fad6f5dfa0bc2139fdc8951e56fbf6d81f9f9 (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
132
133
134
135
136
137
138
139
140
/*
 * kbiff.h
 * Copyright (C) 1999-2004 Kurt Granroth <granroth@kde.org>
 *
 * This file contains the declaration of the main KBiff
 * widget.
 *
 * $Id$
 */
#ifndef KBIFF_H 
#define KBIFF_H 

#ifdef HAVE_CONFIG_H
#include <config.h>
#endif 

#include <qlist.h>

#include <kbiffmonitor.h>
#include <setupdlg.h>

#include <kbiffurl.h>
#include <kapp.h>

#include <qlabel.h>
#include <qtimer.h>

#include <notify.h>
#include <status.h>

#include <dcopclient.h>
#include <dcopobject.h>

class Led;

class KBiff : public QLabel, virtual public DCOPObjectProxy
{
    Q_OBJECT
public:
    KBiff(DCOPClient *client_, QWidget *parent_ = 0);
    virtual ~KBiff();

    bool isDocked() const;

    void processSetup(const KBiffSetup* setup, bool start);
    void readSessionConfig();

    void setMailboxList(const QList<KBiffMailbox>& mailbox_list, unsigned int poll = 60);

    virtual bool process(const QCString& obj, const QCString& function,
                         const QByteArray& data, QCString& replyType,
                         QByteArray &replyData );

public slots:
    void slotPlaySound(const QString&);
    void slotLaunchFetchClient(const QString&);
    void slotLaunchMailClient();

protected:
    void mousePressEvent(QMouseEvent *);
    void enterEvent(QEvent *);
    void leaveEvent(QEvent *);

protected:
    void popupMenu();
    void reset();
    bool isRunning();
    bool isGIF8x(const QString & file);
    void executeCommand(const QString& command);
    void registerMe(DCOPClient *client);

protected slots:
    void saveYourself();
    void invokeHelp();
    void displayPixmap();
    void haveNewMail(const int, const QString &);
    void haveNoNewMail();
    void currentStatus(const int, const QString &, const KBiffMailState);
    void dock();
    void setup();
    void checkMailNow();
    void readMailNow();
    void readPop3MailNow();
    void stop();
    void start();
    void popupStatus();
    void invalidLogin(const QString& mailbox);

private:
    bool findMailbox(const QString& url, QString& proxy);
    int newMailCount(const QString& url);

    QString getURLWithNewMail();
    QString getMailBoxWithNewMail();
    QString replaceCommandArgs(QString cmdStr);

protected:
    bool myMUTEX;
    QList<KBiffMonitor> monitorList;
    QList<KBiffNotify>  notifyList;
    KBiffStatusList     statusList;
    QStringList         proxyList;

    // Capability
    QTimer  *statusTimer;
    
    // General settings
    QString profile;
    QString mailClient;

    // New mail
    bool    systemBeep;
    bool    runCommand;
    QString runCommandPath;
    bool    runResetCommand;
    QString runResetCommandPath;
    bool    playSound;
    QString playSoundPath;
    bool    notify;
    bool    dostatus;

    bool    docked;
    bool    sessions;
    bool    skipcheck;

    bool    isSecure;

    QString noMailIcon;
    QString newMailIcon;
    QString oldMailIcon;
    QString noConnIcon;
    QString stoppedIcon;

    KBiffStatus *status;
    bool         statusChanged;

    Led *mled;
};

#endif // KBIFF_H