diff options
Diffstat (limited to 'Swift/QtUI/QtFileTransferListItemModel.cpp')
| -rw-r--r-- | Swift/QtUI/QtFileTransferListItemModel.cpp | 39 |
1 files changed, 34 insertions, 5 deletions
diff --git a/Swift/QtUI/QtFileTransferListItemModel.cpp b/Swift/QtUI/QtFileTransferListItemModel.cpp index b9b9fd1..ef73f4f 100644 --- a/Swift/QtUI/QtFileTransferListItemModel.cpp +++ b/Swift/QtUI/QtFileTransferListItemModel.cpp | |||
| @@ -2,39 +2,68 @@ | |||
| 2 | * Copyright (c) 2011 Tobias Markmann | 2 | * Copyright (c) 2011 Tobias Markmann |
| 3 | * Licensed under the simplified BSD license. | 3 | * Licensed under the simplified BSD license. |
| 4 | * See Documentation/Licenses/BSD-simplified.txt for more information. | 4 | * See Documentation/Licenses/BSD-simplified.txt for more information. |
| 5 | */ | 5 | */ |
| 6 | 6 | ||
| 7 | #include "QtFileTransferListItemModel.h" | 7 | /* |
| 8 | * Copyright (c) 2015 Isode Limited. | ||
| 9 | * All rights reserved. | ||
| 10 | * See the COPYING file for more information. | ||
| 11 | */ | ||
| 12 | |||
| 13 | #include <Swift/QtUI/QtFileTransferListItemModel.h> | ||
| 8 | 14 | ||
| 9 | #include <boost/bind.hpp> | 15 | #include <boost/bind.hpp> |
| 10 | #include <boost/cstdint.hpp> | 16 | #include <boost/cstdint.hpp> |
| 11 | 17 | ||
| 12 | #include <Swiften/Base/boost_bsignals.h> | ||
| 13 | #include <Swiften/Base/FileSize.h> | 18 | #include <Swiften/Base/FileSize.h> |
| 19 | #include <Swiften/Base/boost_bsignals.h> | ||
| 20 | |||
| 14 | #include <Swift/Controllers/FileTransfer/FileTransferController.h> | 21 | #include <Swift/Controllers/FileTransfer/FileTransferController.h> |
| 15 | #include <Swift/Controllers/FileTransfer/FileTransferOverview.h> | 22 | #include <Swift/Controllers/FileTransfer/FileTransferOverview.h> |
| 16 | #include "QtSwiftUtil.h" | 23 | |
| 24 | #include <Swift/QtUI/QtSwiftUtil.h> | ||
| 17 | 25 | ||
| 18 | namespace Swift { | 26 | namespace Swift { |
| 19 | 27 | ||
| 20 | QtFileTransferListItemModel::QtFileTransferListItemModel(QObject *parent) : QAbstractItemModel(parent), fileTransferOverview(0) { | 28 | QtFileTransferListItemModel::QtFileTransferListItemModel(QObject *parent) : QAbstractItemModel(parent), fileTransferOverview(0) { |
| 21 | } | 29 | } |
| 22 | 30 | ||
| 31 | QtFileTransferListItemModel::~QtFileTransferListItemModel() { | ||
| 32 | if (fileTransferOverview) { | ||
| 33 | fileTransferOverview->onNewFileTransferController.disconnect(boost::bind(&QtFileTransferListItemModel::handleNewFileTransferController, this, _1)); | ||
| 34 | fileTransferOverview->onFileTransferListChanged.disconnect(boost::bind(&QtFileTransferListItemModel::handleFileTransferListChanged, this)); | ||
| 35 | } | ||
| 36 | } | ||
| 37 | |||
| 23 | void QtFileTransferListItemModel::setFileTransferOverview(FileTransferOverview *overview) { | 38 | void QtFileTransferListItemModel::setFileTransferOverview(FileTransferOverview *overview) { |
| 39 | if (fileTransferOverview) { | ||
| 40 | fileTransferOverview->onNewFileTransferController.disconnect(boost::bind(&QtFileTransferListItemModel::handleNewFileTransferController, this, _1)); | ||
| 41 | fileTransferOverview->onFileTransferListChanged.disconnect(boost::bind(&QtFileTransferListItemModel::handleFileTransferListChanged, this)); | ||
| 42 | } | ||
| 24 | fileTransferOverview = overview; | 43 | fileTransferOverview = overview; |
| 25 | fileTransferOverview->onNewFileTransferController.connect(boost::bind(&QtFileTransferListItemModel::handleNewFileTransferController, this, _1)); | 44 | if (fileTransferOverview) { |
| 45 | fileTransferOverview->onNewFileTransferController.connect(boost::bind(&QtFileTransferListItemModel::handleNewFileTransferController, this, _1)); | ||
| 46 | fileTransferOverview->onFileTransferListChanged.connect(boost::bind(&QtFileTransferListItemModel::handleFileTransferListChanged, this)); | ||
| 47 | } | ||
| 48 | emit layoutAboutToBeChanged(); | ||
| 49 | emit layoutChanged(); | ||
| 26 | } | 50 | } |
| 27 | 51 | ||
| 28 | void QtFileTransferListItemModel::handleNewFileTransferController(FileTransferController* newController) { | 52 | void QtFileTransferListItemModel::handleNewFileTransferController(FileTransferController* newController) { |
| 29 | emit layoutAboutToBeChanged(); | 53 | emit layoutAboutToBeChanged(); |
| 30 | emit layoutChanged(); | 54 | emit layoutChanged(); |
| 31 | dataChanged(createIndex(0,0), createIndex(fileTransferOverview->getFileTransfers().size(),4)); | 55 | dataChanged(createIndex(0,0), createIndex(fileTransferOverview->getFileTransfers().size(),4)); |
| 32 | newController->onStateChage.connect(boost::bind(&QtFileTransferListItemModel::handleStateChange, this, fileTransferOverview->getFileTransfers().size() - 1)); | 56 | newController->onStateChanged.connect(boost::bind(&QtFileTransferListItemModel::handleStateChange, this, fileTransferOverview->getFileTransfers().size() - 1)); |
| 33 | newController->onProgressChange.connect(boost::bind(&QtFileTransferListItemModel::handleProgressChange, this, fileTransferOverview->getFileTransfers().size() - 1)); | 57 | newController->onProgressChange.connect(boost::bind(&QtFileTransferListItemModel::handleProgressChange, this, fileTransferOverview->getFileTransfers().size() - 1)); |
| 34 | } | 58 | } |
| 35 | 59 | ||
| 60 | void QtFileTransferListItemModel::handleFileTransferListChanged() { | ||
| 61 | emit layoutAboutToBeChanged(); | ||
| 62 | emit layoutChanged(); | ||
| 63 | } | ||
| 64 | |||
| 36 | void QtFileTransferListItemModel::handleStateChange(int index) { | 65 | void QtFileTransferListItemModel::handleStateChange(int index) { |
| 37 | emit dataChanged(createIndex(index, 2), createIndex(index, 2)); | 66 | emit dataChanged(createIndex(index, 2), createIndex(index, 2)); |
| 38 | } | 67 | } |
| 39 | 68 | ||
| 40 | void QtFileTransferListItemModel::handleProgressChange(int index) { | 69 | void QtFileTransferListItemModel::handleProgressChange(int index) { |
Swift