summaryrefslogtreecommitdiff
path: root/kde/daemon/handler.h
blob: 8d86cb3f306f7667064d3af996107aa1960145bb (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
#ifndef HANDLER_H
#define HANDLER_H

#include <qobject.h>
#include <qmap.h>

#include "comm.h"

class QSocketNotifier;

class KDapiHandler
    : public QObject
    {
    Q_OBJECT
    public:
        KDapiHandler();
        virtual ~KDapiHandler();
    private slots:
        void processMainSocketData();
        void processSocketData( int sock );
    private:
        struct ConnectionData
            {
            DapiConnection* conn;
            QSocketNotifier* notifier;
            bool screensaver_suspend;
            };
        void setupSocket();
        void closeSocket( ConnectionData& conn );
        void processCommand( ConnectionData& conn );
        void processCommandInit( ConnectionData& conn, int seq );
        void processCommandCapabilities( ConnectionData& conn, int seq );
        void processCommandOpenUrl( ConnectionData& conn, int seq );
        void processCommandExecuteUrl( ConnectionData& conn, int seq );
        void processCommandButtonOrder( ConnectionData& conn, int seq );
        void processCommandRunAsUser( ConnectionData& conn, int seq );
        void processCommandSuspendScreensaving( ConnectionData& conn, int seq );
        void processCommandMailTo( ConnectionData& conn, int seq );
        void processCommandLocalFile( ConnectionData& conn, int seq );
        void processCommandUploadFile( ConnectionData& conn, int seq );
        void processCommandRemoveTemporaryLocalFile( ConnectionData& conn, int seq );
        void updateScreensaving();
        static QCString makeStartupInfo( const DapiWindowInfo& winfo );
        int mainsocket;
        typedef QValueList< ConnectionData > ConnectionList;
        ConnectionList connections;
    };

#endif