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