~ubuntu-branches/ubuntu/jaunty/psi/jaunty

« back to all changes in this revision

Viewing changes to src/filetransdlg.h

  • Committer: Bazaar Package Importer
  • Author(s): Jan Niehusmann
  • Date: 2005-01-10 17:41:43 UTC
  • mfrom: (1.2.1 upstream) (2.1.2 hoary)
  • Revision ID: james.westby@ubuntu.com-20050110174143-ltocv5zapl6blf5d
Tags: 0.9.3-1
* New upstream release
* Cleaned up debian/rules (some things are done by upstream Makefiles now)
* Fixed some lintian warnings:
  - removed executable bit from some .png files
  - moved psi.desktop to /usr/share/applications
* Updated menu files

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#ifndef FILETRANSDLG_H
 
2
#define FILETRANSDLG_H
 
3
 
 
4
#include"ui_filetrans.h"
 
5
#include"im.h"
 
6
#include"s5b.h"
 
7
 
 
8
#if QT_VERSION < 0x030200
 
9
typedef long int Q_LLONG;
 
10
#endif
 
11
 
 
12
class PsiCon;
 
13
class PsiAccount;
 
14
namespace XMPP
 
15
{
 
16
        class FileTransfer;
 
17
}
 
18
using namespace XMPP;
 
19
 
 
20
class FileTransferHandler : public QObject
 
21
{
 
22
        Q_OBJECT
 
23
public:
 
24
        enum { ErrReject, ErrTransfer, ErrFile };
 
25
        enum { Sending, Receiving };
 
26
        FileTransferHandler(PsiAccount *pa, FileTransfer *ft=0);
 
27
        ~FileTransferHandler();
 
28
 
 
29
        PsiAccount *account() const;
 
30
        int mode() const;
 
31
        Jid peer() const;
 
32
        QString fileName() const;
 
33
        Q_LLONG fileSize() const;
 
34
        QString description() const;
 
35
        Q_LLONG offset() const;
 
36
        int totalSteps() const;
 
37
        bool resumeSupported() const;
 
38
        QString saveName() const;
 
39
 
 
40
        void send(const Jid &to, const QString &fname, const QString &desc);
 
41
        void accept(const QString &saveName, const QString &fileName, Q_LLONG offset=0);
 
42
 
 
43
signals:
 
44
        void accepted();
 
45
        void statusMessage(const QString &s);
 
46
        void connected();
 
47
        void progress(int p, Q_LLONG sent);
 
48
        void error(int, int, const QString &s);
 
49
 
 
50
private slots:
 
51
        // s5b status
 
52
        void s5b_proxyQuery();
 
53
        void s5b_proxyResult(bool b);
 
54
        void s5b_requesting();
 
55
        void s5b_accepted();
 
56
        void s5b_tryingHosts(const StreamHostList &hosts);
 
57
        void s5b_proxyConnect();
 
58
        void s5b_waitingForActivation();
 
59
 
 
60
        // ft
 
61
        void ft_accepted();
 
62
        void ft_connected();
 
63
        void ft_readyRead(const QByteArray &);
 
64
        void ft_bytesWritten(int);
 
65
        void ft_error(int);
 
66
        void trySend();
 
67
        void doFinish();
 
68
 
 
69
private:
 
70
        class Private;
 
71
        Private *d;
 
72
 
 
73
        void mapSignals();
 
74
};
 
75
 
 
76
class FileRequestDlg : public FileTransUI
 
77
{
 
78
        Q_OBJECT
 
79
public:
 
80
        FileRequestDlg(const Jid &j, PsiCon *psi, PsiAccount *pa);
 
81
        FileRequestDlg(const Jid &j, PsiCon *psi, PsiAccount *pa, const QStringList& files);
 
82
        FileRequestDlg(const QDateTime &ts, FileTransfer *ft, PsiAccount *pa);
 
83
        ~FileRequestDlg();
 
84
 
 
85
protected:
 
86
        void keyPressEvent(QKeyEvent *);
 
87
 
 
88
public slots:
 
89
        void done(int r);
 
90
 
 
91
private slots:
 
92
        void updateIdentity(PsiAccount *);
 
93
        void pa_disconnected();
 
94
        void chooseFile();
 
95
        void doStart();
 
96
        void ft_accepted();
 
97
        void ft_statusMessage(const QString &s);
 
98
        void ft_connected();
 
99
        void ft_error(int, int, const QString &);
 
100
        void t_timeout();
 
101
 
 
102
private:
 
103
        class Private;
 
104
        Private *d;
 
105
 
 
106
        void blockWidgets();
 
107
        void unblockWidgets();
 
108
};
 
109
 
 
110
class FileTransDlg : public QDialog
 
111
{
 
112
        Q_OBJECT
 
113
public:
 
114
        FileTransDlg(PsiCon *);
 
115
        ~FileTransDlg();
 
116
 
 
117
        int addItem(const QString &filename, Q_LLONG size, const QString &peer, bool sending);
 
118
        void setProgress(int id, int step, int total, Q_LLONG sent, int bytesPerSecond, bool updateAll=false);
 
119
        void setError(int id, const QString &reason);
 
120
        void removeItem(int id);
 
121
 
 
122
        void takeTransfer(FileTransferHandler *h, int p, Q_LLONG sent);
 
123
        void killTransfers(PsiAccount *pa);
 
124
 
 
125
private slots:
 
126
        void clearFinished();
 
127
        void ft_progress(int p, Q_LLONG sent);
 
128
        void ft_error(int, int, const QString &s);
 
129
        void updateItems();
 
130
 
 
131
        void itemCancel(int);
 
132
        void itemOpenDest(int);
 
133
        void itemClear(int);
 
134
 
 
135
private:
 
136
        class Private;
 
137
        Private *d;
 
138
};
 
139
 
 
140
#endif