The downloadfile() function below connects a finished() reply my function writefile(). I want to have the downloadfile() return an int if it completes correctly, including the writefile(). But I don't know how to have the writefile() return an int to my downloadfile() or the function calling my download file, but I don't know how to put that int into a variable, since it is called through a connect() function and not explicitly within a function. How can I get the return from the writefile() to be part either the downloadfile() or the function that calls the downloadfile().
Here is the code:
Code:
int MainWindow::downloadfile(std::string address, std::string filename){ /*takes address from the lineedit, puts it in url, sends request and connects Puts the address in class variable address, then links signal readyread writetofile, then writefile takes class variable */ filenamehold = filename.c_str(); reply = manager.get(QNetworkRequest(url)); connect(reply, SIGNAL(finished()), this, SLOT(writefile())); ui->label_5->setText("Downloading..."); } //function to write into the file after the finished slot is called int MainWindow::writefile(){ //opens the file and checks to see that it is open, then writes //info into the file and sets label to done. file->write(reply->readAll()); ui->label_5->setText("Complete!"); return 1; } //checks for errors and display's if they exist if (reply->error()){ ui->label_5->setText(reply->errorString()); } return 0; file->close(); reply->deleteLater(); }