summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Swift/Controllers/FileTransfer/FileTransferController.cpp1
-rw-r--r--Swift/Controllers/UIInterfaces/ChatWindow.h10
-rw-r--r--Swift/QtUI/QtPlainChatView.cpp23
-rw-r--r--Swift/QtUI/QtWebKitChatView.cpp14
4 files changed, 34 insertions, 14 deletions
diff --git a/Swift/Controllers/FileTransfer/FileTransferController.cpp b/Swift/Controllers/FileTransfer/FileTransferController.cpp
index 076d3c0..f7ce8e6 100644
--- a/Swift/Controllers/FileTransfer/FileTransferController.cpp
+++ b/Swift/Controllers/FileTransfer/FileTransferController.cpp
@@ -148,6 +148,7 @@ void FileTransferController::handleFileTransferStateChange(FileTransfer::State s
148 chatWindow->setFileTransferStatus(uiID, ChatWindow::WaitingForAccept); 148 chatWindow->setFileTransferStatus(uiID, ChatWindow::WaitingForAccept);
149 return; 149 return;
150 case FileTransfer::State::WaitingForStart: 150 case FileTransfer::State::WaitingForStart:
151 chatWindow->setFileTransferStatus(uiID, ChatWindow::Initialisation);
151 return; 152 return;
152 } 153 }
153 assert(false); 154 assert(false);
diff --git a/Swift/Controllers/UIInterfaces/ChatWindow.h b/Swift/Controllers/UIInterfaces/ChatWindow.h
index b1e2a11..0fa734c 100644
--- a/Swift/Controllers/UIInterfaces/ChatWindow.h
+++ b/Swift/Controllers/UIInterfaces/ChatWindow.h
@@ -89,7 +89,15 @@ namespace Swift {
89 enum ReceiptState {ReceiptRequested, ReceiptReceived, ReceiptFailed}; 89 enum ReceiptState {ReceiptRequested, ReceiptReceived, ReceiptFailed};
90 enum OccupantAction {Kick, Ban, MakeModerator, MakeParticipant, MakeVisitor, AddContact, ShowProfile}; 90 enum OccupantAction {Kick, Ban, MakeModerator, MakeParticipant, MakeVisitor, AddContact, ShowProfile};
91 enum RoomAction {ChangeSubject, Configure, Affiliations, Destroy, Invite}; 91 enum RoomAction {ChangeSubject, Configure, Affiliations, Destroy, Invite};
92 enum FileTransferState {WaitingForAccept, Negotiating, Transferring, Canceled, Finished, FTFailed}; 92 enum FileTransferState {
93 Initialisation, ///< Collecting information required for sending the request out.
94 WaitingForAccept, ///< The file transfer request was send out.
95 Negotiating, ///< The other party accepted the file transfer request and a suitable transfer method is negotiated.
96 Transferring, ///< The negotiation was successful and the file is currently transferred.
97 Canceled, ///< Someone actively canceled the transfer.
98 Finished, ///< The file was transferred successfully.
99 FTFailed ///< The negotiation, the transfer itself or the verification failed.
100 };
93 enum WhiteboardSessionState {WhiteboardAccepted, WhiteboardTerminated, WhiteboardRejected}; 101 enum WhiteboardSessionState {WhiteboardAccepted, WhiteboardTerminated, WhiteboardRejected};
94 enum BlockingState {BlockingUnsupported, IsBlocked, IsUnblocked}; 102 enum BlockingState {BlockingUnsupported, IsBlocked, IsUnblocked};
95 enum Direction { UnknownDirection, DefaultDirection }; 103 enum Direction { UnknownDirection, DefaultDirection };
diff --git a/Swift/QtUI/QtPlainChatView.cpp b/Swift/QtUI/QtPlainChatView.cpp
index 031a41d..eabf35f 100644
--- a/Swift/QtUI/QtPlainChatView.cpp
+++ b/Swift/QtUI/QtPlainChatView.cpp
@@ -6,22 +6,22 @@
6 6
7#include <Swift/QtUI/QtPlainChatView.h> 7#include <Swift/QtUI/QtPlainChatView.h>
8 8
9#include <QTextEdit>
10#include <QScrollBar>
11#include <QVBoxLayout>
12#include <QPushButton>
13#include <QLabel>
14#include <QDialog> 9#include <QDialog>
15#include <QProgressBar>
16#include <QFileDialog> 10#include <QFileDialog>
17#include <QInputDialog> 11#include <QInputDialog>
12#include <QLabel>
18#include <QMenu> 13#include <QMenu>
14#include <QProgressBar>
15#include <QPushButton>
16#include <QScrollBar>
17#include <QTextEdit>
18#include <QVBoxLayout>
19 19
20#include <Swiften/Base/foreach.h>
21#include <Swiften/Base/FileSize.h> 20#include <Swiften/Base/FileSize.h>
21#include <Swiften/Base/foreach.h>
22 22
23#include <Swift/Controllers/UIEvents/UIEventStream.h>
24#include <Swift/Controllers/UIEvents/JoinMUCUIEvent.h> 23#include <Swift/Controllers/UIEvents/JoinMUCUIEvent.h>
24#include <Swift/Controllers/UIEvents/UIEventStream.h>
25 25
26#include <Swift/QtUI/ChatSnippet.h> 26#include <Swift/QtUI/ChatSnippet.h>
27#include <Swift/QtUI/QtSwiftUtil.h> 27#include <Swift/QtUI/QtSwiftUtil.h>
@@ -360,6 +360,13 @@ QtPlainChatView::FileTransfer::FileTransfer(QtPlainChatView* parent, bool sender
360 std::string status = msg; 360 std::string status = msg;
361 361
362 switch (state) { 362 switch (state) {
363 case ChatWindow::Initialisation: {
364 status = "Preparing to send <i>"+ filename + "</i>...";
365 FileTransfer::Action* cancel = new FileTransfer::Action("Cancel", ftId);
366 parent->connect(cancel, SIGNAL(clicked()), SLOT(fileTransferReject()));
367 layout_->addWidget(cancel);
368 break;
369 }
363 case ChatWindow::WaitingForAccept: { 370 case ChatWindow::WaitingForAccept: {
364 status = "Waiting for user to accept <i>" + filename + "</i>..."; 371 status = "Waiting for user to accept <i>" + filename + "</i>...";
365 FileTransfer::Action* cancel = new FileTransfer::Action("Cancel", ftId); 372 FileTransfer::Action* cancel = new FileTransfer::Action("Cancel", ftId);
diff --git a/Swift/QtUI/QtWebKitChatView.cpp b/Swift/QtUI/QtWebKitChatView.cpp
index d6dc6f5..b7f96f6 100644
--- a/Swift/QtUI/QtWebKitChatView.cpp
+++ b/Swift/QtUI/QtWebKitChatView.cpp
@@ -438,18 +438,22 @@ void QtWebKitChatView::setFileTransferStatus(QString id, const ChatWindow::FileT
438 } 438 }
439 439
440 QString newInnerHTML = ""; 440 QString newInnerHTML = "";
441 if (state == ChatWindow::WaitingForAccept) { 441 if (state == ChatWindow::Initialisation) {
442 newInnerHTML = tr("Waiting for other side to accept the transfer.") + "<br/>" + 442 newInnerHTML = tr("Preparing to send.") + "<br/>" +
443 buildChatWindowButton(tr("Cancel"), ButtonFileTransferCancel, id); 443 buildChatWindowButton(tr("Cancel"), ButtonFileTransferCancel, id);
444 } 444 }
445 if (state == ChatWindow::Negotiating) { 445 else if (state == ChatWindow::WaitingForAccept) {
446 newInnerHTML = tr("Waiting for other side to accept the transfer.") + "<br/>" +
447 buildChatWindowButton(tr("Cancel"), ButtonFileTransferCancel, id);
448 }
449 else if (state == ChatWindow::Negotiating) {
446 // replace with text "Negotiaging" + Cancel button 450 // replace with text "Negotiaging" + Cancel button
447 newInnerHTML = tr("Negotiating...") + "<br/>" + 451 newInnerHTML = tr("Negotiating...") + "<br/>" +
448 buildChatWindowButton(tr("Cancel"), ButtonFileTransferCancel, id); 452 buildChatWindowButton(tr("Cancel"), ButtonFileTransferCancel, id);
449 } 453 }
450 else if (state == ChatWindow::Transferring) { 454 else if (state == ChatWindow::Transferring) {
451 // progress bar + Cancel Button 455 // progress bar + Cancel Button
452 newInnerHTML = "<div style=\"position: relative; width: 90%; height: 20px; border: 2px solid grey; -webkit-border-radius: 10px;\">" 456 newInnerHTML = "<div style=\"position: relative; width: 90%; height: 20px; border: 2px solid grey; -webkit-border-radius: 10px;\">"
453 "<div class=\"progressbar\" style=\"width: 0%; height: 100%; background: #AAA; -webkit-border-radius: 6px;\">" 457 "<div class=\"progressbar\" style=\"width: 0%; height: 100%; background: #AAA; -webkit-border-radius: 6px;\">"
454 "<div class=\"progressbar-value\" style=\"position: absolute; top: 0px; left: 0px; width: 100%; text-align: center; padding-top: 2px;\">" 458 "<div class=\"progressbar-value\" style=\"position: absolute; top: 0px; left: 0px; width: 100%; text-align: center; padding-top: 2px;\">"
455 "0%" 459 "0%"