summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swift/QtUI/QtFileTransferListWidget.cpp')
-rw-r--r--Swift/QtUI/QtFileTransferListWidget.cpp44
1 files changed, 37 insertions, 7 deletions
diff --git a/Swift/QtUI/QtFileTransferListWidget.cpp b/Swift/QtUI/QtFileTransferListWidget.cpp
index fb2b4de..729c95f 100644
--- a/Swift/QtUI/QtFileTransferListWidget.cpp
+++ b/Swift/QtUI/QtFileTransferListWidget.cpp
@@ -2,18 +2,28 @@
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 "QtFileTransferListWidget.h" 7/*
8 * Copyright (c) 2015 Isode Limited.
9 * All rights reserved.
10 * See the COPYING file for more information.
11 */
8 12
9#include <Swift/QtUI/QtFileTransferListItemModel.h> 13#include <Swift/QtUI/QtFileTransferListWidget.h>
14
15#include <boost/bind.hpp>
10 16
11#include <QVBoxLayout>
12#include <QHBoxLayout> 17#include <QHBoxLayout>
13#include <QWidget>
14#include <QPushButton> 18#include <QPushButton>
19#include <QVBoxLayout>
20#include <QWidget>
21
22#include <Swift/Controllers/FileTransfer/FileTransferOverview.h>
23
24#include <Swift/QtUI/QtFileTransferListItemModel.h>
15 25
16namespace Swift { 26namespace Swift {
17 27
18QtFileTransferListWidget::QtFileTransferListWidget() : fileTransferOverview(0) { 28QtFileTransferListWidget::QtFileTransferListWidget() : fileTransferOverview(0) {
19 QVBoxLayout* layout = new QVBoxLayout(this); 29 QVBoxLayout* layout = new QVBoxLayout(this);
@@ -34,40 +44,60 @@ QtFileTransferListWidget::QtFileTransferListWidget() : fileTransferOverview(0) {
34 44
35 QHBoxLayout* buttonLayout = new QHBoxLayout(bottom); 45 QHBoxLayout* buttonLayout = new QHBoxLayout(bottom);
36 buttonLayout->setContentsMargins(10,0,20,0); 46 buttonLayout->setContentsMargins(10,0,20,0);
37 buttonLayout->setSpacing(0); 47 buttonLayout->setSpacing(0);
38 48
39 QPushButton* clearFinished = new QPushButton(tr("Clear Finished Transfers"), bottom); 49 clearFinished = new QPushButton(tr("Clear Inactive Transfers"), bottom);
40 clearFinished->setEnabled(false); 50 clearFinished->setEnabled(false);
41 //connect(clearButton, SIGNAL(clicked()), textEdit, SLOT(clear())); 51 connect(clearFinished, SIGNAL(clicked()), this, SLOT(clearInactiveTransfers()));
42 buttonLayout->addWidget(clearFinished); 52 buttonLayout->addWidget(clearFinished);
43 53
44 setWindowTitle(tr("File Transfer List")); 54 setWindowTitle(tr("File Transfer List"));
45 emit titleUpdated(); 55 emit titleUpdated();
46} 56}
47 57
48QtFileTransferListWidget::~QtFileTransferListWidget() { 58QtFileTransferListWidget::~QtFileTransferListWidget() {
59 if (fileTransferOverview) {
60 fileTransferOverview->onFileTransferListChanged.disconnect(boost::bind(&QtFileTransferListWidget::handleFileTransferListChanged, this));
61 fileTransferOverview = NULL;
62 }
49 delete itemModel; 63 delete itemModel;
50} 64}
51 65
52void QtFileTransferListWidget::showEvent(QShowEvent* event) { 66void QtFileTransferListWidget::showEvent(QShowEvent* event) {
53 emit windowOpening(); 67 emit windowOpening();
54 emit titleUpdated(); /* This just needs to be somewhere after construction */ 68 emit titleUpdated(); /* This just needs to be somewhere after construction */
55 QWidget::showEvent(event); 69 QWidget::showEvent(event);
56} 70}
57 71
72void QtFileTransferListWidget::handleFileTransferListChanged() {
73 clearFinished->setEnabled(fileTransferOverview->isClearable());
74}
75
76void QtFileTransferListWidget::clearInactiveTransfers() {
77 fileTransferOverview->clearFinished();
78}
79
58void QtFileTransferListWidget::show() { 80void QtFileTransferListWidget::show() {
59 QWidget::show(); 81 QWidget::show();
60 emit windowOpening(); 82 emit windowOpening();
61} 83}
62 84
63void QtFileTransferListWidget::activate() { 85void QtFileTransferListWidget::activate() {
64 emit wantsToActivate(); 86 emit wantsToActivate();
65} 87}
66 88
67void QtFileTransferListWidget::setFileTransferOverview(FileTransferOverview *overview) { 89void QtFileTransferListWidget::setFileTransferOverview(FileTransferOverview *overview) {
68 fileTransferOverview = overview; 90 if (fileTransferOverview) {
91 fileTransferOverview->onFileTransferListChanged.disconnect(boost::bind(&QtFileTransferListWidget::handleFileTransferListChanged, this));
92 fileTransferOverview = NULL;
93 }
94 if (overview) {
95 fileTransferOverview = overview;
96 fileTransferOverview->onFileTransferListChanged.connect(boost::bind(&QtFileTransferListWidget::handleFileTransferListChanged, this));
97 clearFinished->setEnabled(fileTransferOverview->isClearable());
98 }
69 itemModel->setFileTransferOverview(overview); 99 itemModel->setFileTransferOverview(overview);
70} 100}
71 101
72std::string QtFileTransferListWidget::getID() const { 102std::string QtFileTransferListWidget::getID() const {
73 return "QtFileTransferListWidget"; 103 return "QtFileTransferListWidget";