diff options
author | Tobias Markmann <tm@ayena.de> | 2015-06-17 20:40:41 (GMT) |
---|---|---|
committer | Tobias Markmann <tm@ayena.de> | 2015-07-10 14:56:43 (GMT) |
commit | b54aa689ffc6bec7987c193e28c641d2f0f73236 (patch) | |
tree | ad9984fc3f9633e21fe0ff5ef8728f6d420ca07f /Swift/QtUI/QtFileTransferListWidget.cpp | |
parent | 7af21fdd59af3b3112cff69996301605859af84c (diff) | |
download | swift-b54aa689ffc6bec7987c193e28c641d2f0f73236.zip swift-b54aa689ffc6bec7987c193e28c641d2f0f73236.tar.bz2 |
Implement logic behind 'Clear all' button
The 'Clear all' button in the file transfer overview window
was only present in the UI, without any logic behind. That's fixed now.
Test-Information:
Send a file in between two Swift instances. Verified that the button is
enabled/disabled at appropriate times and works as expected if pressed.
Change-Id: Ib92621cba479683ade8d815ce5ace9768449a499
Diffstat (limited to 'Swift/QtUI/QtFileTransferListWidget.cpp')
-rw-r--r-- | Swift/QtUI/QtFileTransferListWidget.cpp | 44 |
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 @@ -1,20 +1,30 @@ /* * Copyright (c) 2011 Tobias Markmann * Licensed under the simplified BSD license. * See Documentation/Licenses/BSD-simplified.txt for more information. */ -#include "QtFileTransferListWidget.h" +/* + * Copyright (c) 2015 Isode Limited. + * All rights reserved. + * See the COPYING file for more information. + */ -#include <Swift/QtUI/QtFileTransferListItemModel.h> +#include <Swift/QtUI/QtFileTransferListWidget.h> + +#include <boost/bind.hpp> -#include <QVBoxLayout> #include <QHBoxLayout> -#include <QWidget> #include <QPushButton> +#include <QVBoxLayout> +#include <QWidget> + +#include <Swift/Controllers/FileTransfer/FileTransferOverview.h> + +#include <Swift/QtUI/QtFileTransferListItemModel.h> namespace Swift { QtFileTransferListWidget::QtFileTransferListWidget() : fileTransferOverview(0) { QVBoxLayout* layout = new QVBoxLayout(this); layout->setSpacing(0); @@ -33,42 +43,62 @@ QtFileTransferListWidget::QtFileTransferListWidget() : fileTransferOverview(0) { bottom->setAutoFillBackground(true); QHBoxLayout* buttonLayout = new QHBoxLayout(bottom); buttonLayout->setContentsMargins(10,0,20,0); buttonLayout->setSpacing(0); - QPushButton* clearFinished = new QPushButton(tr("Clear Finished Transfers"), bottom); + clearFinished = new QPushButton(tr("Clear Inactive Transfers"), bottom); clearFinished->setEnabled(false); - //connect(clearButton, SIGNAL(clicked()), textEdit, SLOT(clear())); + connect(clearFinished, SIGNAL(clicked()), this, SLOT(clearInactiveTransfers())); buttonLayout->addWidget(clearFinished); setWindowTitle(tr("File Transfer List")); emit titleUpdated(); } QtFileTransferListWidget::~QtFileTransferListWidget() { + if (fileTransferOverview) { + fileTransferOverview->onFileTransferListChanged.disconnect(boost::bind(&QtFileTransferListWidget::handleFileTransferListChanged, this)); + fileTransferOverview = NULL; + } delete itemModel; } void QtFileTransferListWidget::showEvent(QShowEvent* event) { emit windowOpening(); emit titleUpdated(); /* This just needs to be somewhere after construction */ QWidget::showEvent(event); } +void QtFileTransferListWidget::handleFileTransferListChanged() { + clearFinished->setEnabled(fileTransferOverview->isClearable()); +} + +void QtFileTransferListWidget::clearInactiveTransfers() { + fileTransferOverview->clearFinished(); +} + void QtFileTransferListWidget::show() { QWidget::show(); emit windowOpening(); } void QtFileTransferListWidget::activate() { emit wantsToActivate(); } void QtFileTransferListWidget::setFileTransferOverview(FileTransferOverview *overview) { - fileTransferOverview = overview; + if (fileTransferOverview) { + fileTransferOverview->onFileTransferListChanged.disconnect(boost::bind(&QtFileTransferListWidget::handleFileTransferListChanged, this)); + fileTransferOverview = NULL; + } + if (overview) { + fileTransferOverview = overview; + fileTransferOverview->onFileTransferListChanged.connect(boost::bind(&QtFileTransferListWidget::handleFileTransferListChanged, this)); + clearFinished->setEnabled(fileTransferOverview->isClearable()); + } itemModel->setFileTransferOverview(overview); } std::string QtFileTransferListWidget::getID() const { return "QtFileTransferListWidget"; } |