fix quitting
This commit is contained in:
parent
a93bdd9c78
commit
cb255bc7d1
@ -19,11 +19,18 @@ Calculator::Calculator(QObject *parent) :
|
||||
}
|
||||
|
||||
Calculator::~Calculator(){
|
||||
ExitCalcMain = 1;
|
||||
quit();
|
||||
while (!calc_thread.isFinished()); //TODO: timeout
|
||||
while (!lcd_thread.isFinished()); //TODO: timeout
|
||||
}
|
||||
|
||||
void Calculator::quit(){
|
||||
ExitCalcMain = 1;
|
||||
LcdAvailable.release();
|
||||
KeysAvailable.release();
|
||||
qDebug() << "quitting...";
|
||||
}
|
||||
|
||||
void Calculator::buttonClicked(const QString& in) {
|
||||
QStringList split = in.split(",");
|
||||
int8_t row = split[0].toInt();
|
||||
|
@ -52,6 +52,7 @@ signals:
|
||||
public slots:
|
||||
void buttonClicked(const QString& in);
|
||||
void updateLcd();
|
||||
void quit();
|
||||
|
||||
private:
|
||||
CalcMainThread calc_thread;
|
||||
|
@ -8,15 +8,21 @@ int main(int argc, char** argv)
|
||||
{
|
||||
QApplication app(argc, argv);
|
||||
|
||||
//QML engine
|
||||
QQmlApplicationEngine engine;
|
||||
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
|
||||
|
||||
//calculator
|
||||
Calculator calculator;
|
||||
engine.rootContext()->setContextProperty("_calculator", &calculator);
|
||||
|
||||
//fixed-width font for LCD
|
||||
QFont fixedFont = QFontDatabase::systemFont(QFontDatabase::FixedFont);
|
||||
fixedFont.setStyleHint(QFont::TypeWriter);
|
||||
engine.rootContext()->setContextProperty("_fixedFont", fixedFont);
|
||||
|
||||
//handle quit
|
||||
QObject::connect(&app, &QApplication::aboutToQuit, &calculator, &Calculator::quit);
|
||||
|
||||
return app.exec();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user