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(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
firstrun = !settings.value("core/firstrun").toBool(); //firstrun is inverted!
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());
echo = settings.value("core/echo", 0).toBool();
autolock = settings.value("core/lockcontrols", 0).toBool();
sendingChecksum = settings.value("core/checksums", 0).toBool();
chekingSDStatus = settings.value("core/checksdstatus", 1).toBool();
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");
for(int i = 0; i < size; ++i)
{
@ -61,7 +70,6 @@ MainWindow::MainWindow(QWidget *parent) :
//Init values
sending = false;
paused = false;
readingFiles = false;
sdprinting = false;
opened = false;
sdBytes = 0;
@ -72,15 +80,13 @@ MainWindow::MainWindow(QWidget *parent) :
serialupdate();
//Internal signal-slots
connect(&statusTimer, SIGNAL(timeout()), this, SLOT(checkStatus()));
connect(&progressSDTimer, SIGNAL(timeout()), this, SLOT(checkSDStatus()));
connect(statusTimer, SIGNAL(timeout()), this, SLOT(checkStatus()));
connect(progressSDTimer, SIGNAL(timeout()), this, SLOT(checkSDStatus()));
connect(this, SIGNAL(eepromReady()), this, SLOT(openEEPROMeditor()));
//Parser thread signal-slots and init
qRegisterMetaType<TemperatureReadings>("TemperatureReadings");
qRegisterMetaType<SDProgress>("SDProgress");
parserWorker = new Parser();
parserThread = new QThread(this);
parserWorker->moveToThread(parserThread);
connect(parserThread, &QThread::finished, parserWorker, &QObject::deleteLater);
connect(this, &MainWindow::recievedData, parserWorker, &Parser::parse);
@ -99,8 +105,6 @@ MainWindow::MainWindow(QWidget *parent) :
qRegisterMetaType< QVector<QString> >("QVector<QString>");
qRegisterMetaType<FileProgress>("FileProgress");
qRegisterMetaType<QSerialPort::SerialPortError>("QSerialPort::SerialPortError");
senderWorker = new Sender();
senderThread = new QThread(this);
senderWorker->moveToThread(senderThread);
connect(senderThread, &QThread::finished, senderWorker, &QObject::deleteLater);
connect(parserWorker, &Parser::recievedOkNum, senderWorker, &Sender::recievedOkNum);
@ -123,11 +127,11 @@ MainWindow::MainWindow(QWidget *parent) :
senderThread->start();
//Timers init
statusTimer.start();
progressSDTimer.setInterval(2500);
if(chekingSDStatus) progressSDTimer.start();
sinceLastTemp.start();
sinceLastSDStatus.start();
statusTimer->start();
progressSDTimer->setInterval(2500);
if(chekingSDStatus) progressSDTimer->start();
sinceLastTemp->start();
sinceLastSDStatus->start();
updateRecent();
}
@ -507,6 +511,25 @@ void MainWindow::on_releasebtn_clicked()
{
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 //
/////////////////
@ -540,7 +563,7 @@ void MainWindow::printMsg(QString text)
void MainWindow::checkStatus()
{
if(checkingTemperature
&&(sinceLastTemp.elapsed() > statusTimer.interval())) emit injectCommand("M105");
&&(sinceLastTemp->elapsed() > statusTimer->interval())) emit injectCommand("M105");
}
void MainWindow::on_checktemp_stateChanged(int arg1)
@ -549,20 +572,6 @@ void MainWindow::on_checktemp_stateChanged(int arg1)
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()
{
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->bedlcd->display(r.b);
ui->tempLine->setText(r.raw);
sinceLastTemp.restart();
}
void MainWindow::on_actionAbout_Qt_triggered()
{
qApp->aboutQt();
sinceLastTemp->restart();
}
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);
else ui->progressBar->setValue(0);
if(p.total == p.progress) sdprinting = false;
sinceLastSDStatus.restart();
sinceLastSDStatus->restart();
}
void MainWindow::checkSDStatus()
{
if(sdprinting && chekingSDStatus && sinceLastSDStatus.elapsed() > progressSDTimer.interval())
if(sdprinting && chekingSDStatus && sinceLastSDStatus->elapsed() > progressSDTimer->interval())
emit injectCommand("M27");
}

View File

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

View File

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

View File

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