00001 #ifndef TRANSFERLISTWINDOW_H
00002 #define TRANSFERLISTWINDOW_H
00003
00004 #include <QMainWindow>
00005 #include <QHash>
00006 #include <QMutex>
00007
00008 namespace Ui {
00009 class TransferListWindow;
00010 }
00011
00012 class TransferStatusDisplay : public QWidget
00013 {
00014 Q_OBJECT
00015 private:
00016 unsigned long m_transferred, m_totalSize;
00017
00018 public:
00019 TransferStatusDisplay(QWidget *parent = 0);
00020
00021 void setStatus(unsigned long transferred, unsigned long totalSize);
00022
00023 public Q_SLOTS:
00024
00025 protected:
00026 void paintEvent(QPaintEvent *event);
00027 void resizeEvent(QResizeEvent *event);
00028 };
00029
00030 class TransferListWindow : public QMainWindow
00031 {
00032 Q_OBJECT
00033
00034 public:
00035 explicit TransferListWindow(QWidget *parent = 0);
00036 ~TransferListWindow();
00037
00038 private:
00039 Ui::TransferListWindow *ui;
00040
00041 QHash<QString, int> m_idToRowDict;
00042 QMutex m_accessLock;
00043
00044 public Q_SLOTS:
00045 void onUpdateStatus(QString id);
00046 void onAddTransfer(QString id);
00047 void onRemoveTransfer(QString id);
00048
00049 void onCancelButtonClick();
00050 };
00051
00052 #endif // TRANSFERLISTWINDOW_H