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