So I have made a basic app that allows users to enter in data and then upon pressing submit the data is submitted to a firebase and the app closes. However for some reason the app is closing without submitting the data to the firebase.
The code for the submit button is as follows:
void checkinapp::on_pushButton_clicked()
{
checkinapp::post();
checkinapp::exit();
}
post()
and exit()
are defined as follows:
void post()
{
m_networkManager = new QNetworkAccessManager ( this );
QVariantMap newUser;
newUser[ "Stress" ] = QString::number(stressed);
newUser[ "Sleep" ] = QString::number(tired);
newUser[ "Hungry" ] = QString::number(hungry);
newUser[ "Happy" ] = QString::number(happy);
newUser[ "Grade" ] = QString::number(grade);
newUser[ "Date" ] = "1/10/21";
newUser[ "Gender" ] = QString::number(gender);
newUser[ "Aid" ] = QString::number(help);
QJsonDocument jsonDoc = QJsonDocument::fromVariant( newUser );
QNetworkRequest newUserRequest(Url( "url/User.json"));
newUserRequest.setHeader( QNetworkRequest::ContentTypeHeader, QString( "application/json" ));
m_networkManager->post( newUserRequest, jsonDoc.toJson() );
submitted = true;
}
void exit()
{
if(submitted==true)
{
QApplication::exit();
}
}
When I comment out checkinapp::exit()
the app submits to the database but doesn't close. however when it's not commented out it closes the app without uploading to the database.
Edit: Here is my class:
class checkinapp : public QMainWindow
{
Q_OBJECT
public:
checkinapp(QWidget *parent = nullptr);
~checkinapp();
void databasehandler(QWidget *parent = nullptr);
int stressed;
int happy;
int hungry;
int tired;
int gender;
bool help;
int grade;
bool submitted;
//bool QNetworkReply::isFinished() const;
void post()
{
m_networkManager = new QNetworkAccessManager ( this );
QVariantMap newUser;
newUser[ "Stress" ] = QString::number(stressed);
newUser[ "Sleep" ] = QString::number(tired);
newUser[ "Hungry" ] = QString::number(hungry);
newUser[ "Happy" ] = QString::number(happy);
newUser[ "Grade" ] = QString::number(grade);
newUser[ "Date" ] = "1/10/21";
newUser[ "Gender" ] = QString::number(gender);
newUser[ "Aid" ] = QString::number(help);
QJsonDocument jsonDoc = QJsonDocument::fromVariant( newUser );
QNetworkRequest newUserRequest( QUrl( "url/User.jason"));
newUserRequest.setHeader( QNetworkRequest::ContentTypeHeader, QString( "application/json" ));
connect(m_networkManager, SIGNAL(finished(QNetworkReply*)),
this,SLOT(myOnFinishSlot(QNetworkReply*)));
m_networkManager->post( newUserRequest, jsonDoc.toJson() );
//submitted = true;
}
void myOnFinishSlot()
{
exit();
}
void exit()
{
QApplication::quit();
}
public slots:
//void networkReplyReadyRead();
void myOnFinishSlot(QNetworkReply* x);
private slots:
void on_happy_valueChanged(int value);
void on_hungry_valueChanged(int value);
void on_sleep_valueChanged(int value);
void on_stress_valueChanged(int value);
void on_male_toggled(bool checked);
void on_female_toggled(bool checked);
void on_other_toggled(bool checked);
void on_help_toggled(bool checked);
void on_pushButton_clicked();
private:
Ui::checkinapp *ui;
QNetworkAccessManager * m_networkManager;
QNetworkReply * m_networkReply;
};