From 8c1629a16b02c6475928a201d4cbaf50c4c8f735 Mon Sep 17 00:00:00 2001 From: Duke Leto Date: Sat, 13 Jul 2019 22:39:58 -0400 Subject: [PATCH] Upload file to memo field, with size checks --- src/sendtab.cpp | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/src/sendtab.cpp b/src/sendtab.cpp index 186e15b..99867b6 100644 --- a/src/sendtab.cpp +++ b/src/sendtab.cpp @@ -327,9 +327,31 @@ void MainWindow::setMemoEnabled(int number, bool enabled) { } void MainWindow::fileUploadButtonClicked(int number) { + // currently limited to one memo + int uploadMaxSize = 512; qDebug() << "File upload button clicked"; - QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"), ".", tr("")); - qDebug() << "File " << fileName << " selected"; + //TODO: Choose custom upload directory in settings + QString fileName = QFileDialog::getOpenFileName(this, tr("File Upload"), ".", tr("")); + QFile file(fileName); + + if (!file.open(QIODevice::ReadOnly)) + { + qDebug() << "File " << fileName << " could not be opened, aborting!"; + return; + } + + QByteArray blob = file.readAll(); + if (blob.size() > uploadMaxSize) { + QMessageBox msg(QMessageBox::Critical, tr("File size too large"), + tr("The file size ") + QString::number(blob.size()) + tr(" bytes is greater than ") + QString::number(uploadMaxSize) + tr("bytes"), + QMessageBox::Ok, this); + msg.exec(); + return; + } + auto memoTxt = ui->sendToWidgets->findChild(QString("MemoTxt") + QString::number(number)); + memoTxt->setText( blob.data() ); + qDebug() << "Set memo data to:" << blob.data(); + qDebug() << "File " << fileName << " selected, " << QString::number(blob.size()) << " bytes"; } void MainWindow::memoButtonClicked(int number, bool includeReplyTo) {