Add drag and drop support.

This commit is contained in:
Black Hat
2019-05-17 19:46:59 +08:00
parent 75c5c71855
commit b4281896ba
3 changed files with 43 additions and 23 deletions

View File

@@ -47,32 +47,39 @@ inline QSize getImageSize(const QUrl& imageUrl) {
void SpectralRoom::chooseAndUploadFile() {
auto localFile = QFileDialog::getOpenFileUrl(Q_NULLPTR, tr("Save File as"));
if (!localFile.isEmpty()) {
QString txnID = postFile(localFile.fileName(), localFile, false);
setHasFileUploading(true);
connect(this, &Room::fileTransferCompleted,
[=](QString id, QUrl localFile, QUrl mxcUrl) {
if (id == txnID) {
setFileUploadingProgress(0);
setHasFileUploading(false);
}
});
connect(this, &Room::fileTransferFailed, [=](QString id, QString error) {
if (id == txnID) {
setFileUploadingProgress(0);
setHasFileUploading(false);
}
});
connect(
this, &Room::fileTransferProgress,
[=](QString id, qint64 progress, qint64 total) {
if (id == txnID) {
qDebug() << "Progress:" << progress << total;
setFileUploadingProgress(int(float(progress) / float(total) * 100));
}
});
uploadFile(localFile);
}
}
void SpectralRoom::uploadFile(const QUrl& url) {
if (url.isEmpty())
return;
QString txnID = postFile(url.fileName(), url, false);
setHasFileUploading(true);
connect(this, &Room::fileTransferCompleted,
[=](QString id, QUrl localFile, QUrl mxcUrl) {
if (id == txnID) {
setFileUploadingProgress(0);
setHasFileUploading(false);
}
});
connect(this, &Room::fileTransferFailed, [=](QString id, QString error) {
if (id == txnID) {
setFileUploadingProgress(0);
setHasFileUploading(false);
}
});
connect(
this, &Room::fileTransferProgress,
[=](QString id, qint64 progress, qint64 total) {
if (id == txnID) {
qDebug() << "Progress:" << progress << total;
setFileUploadingProgress(int(float(progress) / float(total) * 100));
}
});
}
void SpectralRoom::acceptInvitation() {
connection()->joinRoom(id());
}