More cleanup

Set parent for all QTimers
This commit is contained in:
NeoTheFox 2015-03-14 18:00:34 +03:00
parent 5db118ebf6
commit a30e869e61
4 changed files with 50 additions and 46 deletions

View File

@ -37,6 +37,16 @@ MainWindow::MainWindow(QWidget *parent) :
ui->baudbox->addItem(QString::number(460800)); ui->baudbox->addItem(QString::number(460800));
ui->baudbox->addItem(QString::number(500000)); ui->baudbox->addItem(QString::number(500000));
//Create objects
statusTimer = new QTimer(this);
progressSDTimer = new QTimer(this);
sinceLastTemp = new QElapsedTimer();
sinceLastSDStatus = new QElapsedTimer();
parserWorker = new Parser();
parserThread = new QThread(this);
senderWorker = new Sender();
senderThread = new QThread(this);
//Restore settings //Restore settings
firstrun = !settings.value("core/firstrun").toBool(); //firstrun is inverted! firstrun = !settings.value("core/firstrun").toBool(); //firstrun is inverted!
ui->baudbox->setCurrentIndex(settings.value("printer/baudrateindex", 2).toInt()); ui->baudbox->setCurrentIndex(settings.value("printer/baudrateindex", 2).toInt());
@ -46,10 +56,9 @@ MainWindow::MainWindow(QWidget *parent) :
ui->btmpspin->setValue(settings.value("user/bedtemp", 60).toInt()); ui->btmpspin->setValue(settings.value("user/bedtemp", 60).toInt());
echo = settings.value("core/echo", 0).toBool(); echo = settings.value("core/echo", 0).toBool();
autolock = settings.value("core/lockcontrols", 0).toBool(); autolock = settings.value("core/lockcontrols", 0).toBool();
sendingChecksum = settings.value("core/checksums", 0).toBool();
chekingSDStatus = settings.value("core/checksdstatus", 1).toBool(); chekingSDStatus = settings.value("core/checksdstatus", 1).toBool();
firmware = settings.value("printer/firmware", OtherFirmware).toInt(); firmware = settings.value("printer/firmware", OtherFirmware).toInt();
statusTimer.setInterval(settings.value("core/statusinterval", 3000).toInt()); statusTimer->setInterval(settings.value("core/statusinterval", 3000).toInt());
int size = settings.beginReadArray("user/recentfiles"); int size = settings.beginReadArray("user/recentfiles");
for(int i = 0; i < size; ++i) for(int i = 0; i < size; ++i)
{ {
@ -61,7 +70,6 @@ MainWindow::MainWindow(QWidget *parent) :
//Init values //Init values
sending = false; sending = false;
paused = false; paused = false;
readingFiles = false;
sdprinting = false; sdprinting = false;
opened = false; opened = false;
sdBytes = 0; sdBytes = 0;
@ -72,15 +80,13 @@ MainWindow::MainWindow(QWidget *parent) :
serialupdate(); serialupdate();
//Internal signal-slots //Internal signal-slots
connect(&statusTimer, SIGNAL(timeout()), this, SLOT(checkStatus())); connect(statusTimer, SIGNAL(timeout()), this, SLOT(checkStatus()));
connect(&progressSDTimer, SIGNAL(timeout()), this, SLOT(checkSDStatus())); connect(progressSDTimer, SIGNAL(timeout()), this, SLOT(checkSDStatus()));
connect(this, SIGNAL(eepromReady()), this, SLOT(openEEPROMeditor())); connect(this, SIGNAL(eepromReady()), this, SLOT(openEEPROMeditor()));
//Parser thread signal-slots and init //Parser thread signal-slots and init
qRegisterMetaType<TemperatureReadings>("TemperatureReadings"); qRegisterMetaType<TemperatureReadings>("TemperatureReadings");
qRegisterMetaType<SDProgress>("SDProgress"); qRegisterMetaType<SDProgress>("SDProgress");
parserWorker = new Parser();
parserThread = new QThread(this);
parserWorker->moveToThread(parserThread); parserWorker->moveToThread(parserThread);
connect(parserThread, &QThread::finished, parserWorker, &QObject::deleteLater); connect(parserThread, &QThread::finished, parserWorker, &QObject::deleteLater);
connect(this, &MainWindow::recievedData, parserWorker, &Parser::parse); connect(this, &MainWindow::recievedData, parserWorker, &Parser::parse);
@ -99,8 +105,6 @@ MainWindow::MainWindow(QWidget *parent) :
qRegisterMetaType< QVector<QString> >("QVector<QString>"); qRegisterMetaType< QVector<QString> >("QVector<QString>");
qRegisterMetaType<FileProgress>("FileProgress"); qRegisterMetaType<FileProgress>("FileProgress");
qRegisterMetaType<QSerialPort::SerialPortError>("QSerialPort::SerialPortError"); qRegisterMetaType<QSerialPort::SerialPortError>("QSerialPort::SerialPortError");
senderWorker = new Sender();
senderThread = new QThread(this);
senderWorker->moveToThread(senderThread); senderWorker->moveToThread(senderThread);
connect(senderThread, &QThread::finished, senderWorker, &QObject::deleteLater); connect(senderThread, &QThread::finished, senderWorker, &QObject::deleteLater);
connect(parserWorker, &Parser::recievedOkNum, senderWorker, &Sender::recievedOkNum); connect(parserWorker, &Parser::recievedOkNum, senderWorker, &Sender::recievedOkNum);
@ -123,11 +127,11 @@ MainWindow::MainWindow(QWidget *parent) :
senderThread->start(); senderThread->start();
//Timers init //Timers init
statusTimer.start(); statusTimer->start();
progressSDTimer.setInterval(2500); progressSDTimer->setInterval(2500);
if(chekingSDStatus) progressSDTimer.start(); if(chekingSDStatus) progressSDTimer->start();
sinceLastTemp.start(); sinceLastTemp->start();
sinceLastSDStatus.start(); sinceLastSDStatus->start();
updateRecent(); updateRecent();
} }
@ -507,6 +511,25 @@ void MainWindow::on_releasebtn_clicked()
{ {
emit injectCommand("M84"); emit injectCommand("M84");
} }
void MainWindow::on_actionSettings_triggered()
{
SettingsWindow settingswindow(this);
settingswindow.exec();
}
void MainWindow::on_actionAbout_triggered()
{
AboutWindow aboutwindow(this);
aboutwindow.exec();
}
void MainWindow::on_actionAbout_Qt_triggered()
{
qApp->aboutQt();
}
///////////////// /////////////////
//Buttons end // //Buttons end //
///////////////// /////////////////
@ -540,7 +563,7 @@ void MainWindow::printMsg(QString text)
void MainWindow::checkStatus() void MainWindow::checkStatus()
{ {
if(checkingTemperature if(checkingTemperature
&&(sinceLastTemp.elapsed() > statusTimer.interval())) emit injectCommand("M105"); &&(sinceLastTemp->elapsed() > statusTimer->interval())) emit injectCommand("M105");
} }
void MainWindow::on_checktemp_stateChanged(int arg1) void MainWindow::on_checktemp_stateChanged(int arg1)
@ -549,20 +572,6 @@ void MainWindow::on_checktemp_stateChanged(int arg1)
else checkingTemperature = false; else checkingTemperature = false;
} }
void MainWindow::on_actionSettings_triggered()
{
SettingsWindow settingswindow(this);
settingswindow.exec();
}
void MainWindow::on_actionAbout_triggered()
{
AboutWindow aboutwindow(this);
aboutwindow.exec();
}
void MainWindow::updateRecent() void MainWindow::updateRecent()
{ {
if(!recentFiles.isEmpty()) //If array is empty we should not be bothered if(!recentFiles.isEmpty()) //If array is empty we should not be bothered
@ -648,12 +657,7 @@ void MainWindow::updateTemperature(TemperatureReadings r)
ui->extruderlcd->display(r.e); ui->extruderlcd->display(r.e);
ui->bedlcd->display(r.b); ui->bedlcd->display(r.b);
ui->tempLine->setText(r.raw); ui->tempLine->setText(r.raw);
sinceLastTemp.restart(); sinceLastTemp->restart();
}
void MainWindow::on_actionAbout_Qt_triggered()
{
qApp->aboutQt();
} }
void MainWindow::initSDprinting(QStringList sdFiles) void MainWindow::initSDprinting(QStringList sdFiles)
@ -698,12 +702,12 @@ void MainWindow::updateSDStatus(SDProgress p)
if(p.progress != 0) ui->progressBar->setValue(((double)p.progress/p.total) * 100); if(p.progress != 0) ui->progressBar->setValue(((double)p.progress/p.total) * 100);
else ui->progressBar->setValue(0); else ui->progressBar->setValue(0);
if(p.total == p.progress) sdprinting = false; if(p.total == p.progress) sdprinting = false;
sinceLastSDStatus.restart(); sinceLastSDStatus->restart();
} }
void MainWindow::checkSDStatus() void MainWindow::checkSDStatus()
{ {
if(sdprinting && chekingSDStatus && sinceLastSDStatus.elapsed() > progressSDTimer.interval()) if(sdprinting && chekingSDStatus && sinceLastSDStatus->elapsed() > progressSDTimer->interval())
emit injectCommand("M27"); emit injectCommand("M27");
} }

View File

@ -46,15 +46,15 @@ protected:
QFile gfile; QFile gfile;
QVector<QString> gcode; QVector<QString> gcode;
QQueue <QString> userCommands; QQueue <QString> userCommands;
QTimer progressSDTimer; QTimer *progressSDTimer;
QTimer statusTimer; QTimer *statusTimer;
QElapsedTimer sinceLastTemp; QMenu *recentMenu;
QElapsedTimer sinceLastSDStatus; QElapsedTimer *sinceLastTemp;
QElapsedTimer *sinceLastSDStatus;
QSettings settings; QSettings settings;
QStringList recentFiles; QStringList recentFiles;
QStringList EEPROMSettings; QStringList EEPROMSettings;
QStringList userHistory; QStringList userHistory;
QMenu *recentMenu;
bool eventFilter(QObject *target, QEvent *event); bool eventFilter(QObject *target, QEvent *event);
@ -69,13 +69,10 @@ private:
bool sending; bool sending;
bool paused; bool paused;
bool checkingTemperature; bool checkingTemperature;
bool readingFiles;
bool sdprinting; bool sdprinting;
bool echo; bool echo;
bool sendingChecksum;
bool chekingSDStatus; bool chekingSDStatus;
int firmware; int firmware;
//unsigned long int lastRecieved;
int userHistoryPos; int userHistoryPos;
unsigned long int sdBytes; unsigned long int sdBytes;

View File

@ -1079,7 +1079,7 @@ STOP</string>
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>0</width> <width>0</width>
<height>14</height> <height>15</height>
</size> </size>
</property> </property>
<property name="maximumSize"> <property name="maximumSize">

View File

@ -98,6 +98,9 @@
<layout class="QGridLayout" name="gridLayout"> <layout class="QGridLayout" name="gridLayout">
<item row="3" column="0" colspan="3"> <item row="3" column="0" colspan="3">
<widget class="QCheckBox" name="echobox"> <widget class="QCheckBox" name="echobox">
<property name="enabled">
<bool>false</bool>
</property>
<property name="toolTip"> <property name="toolTip">
<string>Show every sent command in console</string> <string>Show every sent command in console</string>
</property> </property>