int CCropDialog::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QDialog::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: UpdateOutput(); break; case 1: on_pushButtonSourceFolderBrowse_clicked(); break; case 2: on_pushButtonDestFolderBrowse_clicked(); break; case 3: on_pushButtonCrop_clicked(); break; case 4: on_pushButtonPauseResume_clicked(); break; case 5: on_pushButtonStop_clicked(); break; case 6: on_pushButtonClearOutput_clicked(); break; case 7: ProcessFinished((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< QProcess::ExitStatus(*)>(_a[2]))); break; case 8: ProcessError((*reinterpret_cast< QProcess::ProcessError(*)>(_a[1]))); break; } _id -= 9; } return _id; }
//从b9terminal各种微调按钮那调用(由sAbortText给出) void B9Print::on_pushButtonAbort_clicked(QString sAbortText) { //提示用户,以确保他们希望中止。 if(sAbortText == "User Directed Abort.") { QMessageBox msgBox; msgBox.setText("Are you sure you want to abort?"); msgBox.setIcon(QMessageBox::Warning); msgBox.setStandardButtons(QMessageBox::No | QMessageBox::Yes); msgBox.setDefaultButton(QMessageBox::No); int ret = msgBox.exec(); if(ret == QMessageBox::No) return; } m_sAbortMessage = sAbortText; if(m_sAbortMessage.contains("Jammed Mechanism")||m_sAbortMessage.contains("Lost Printer Connection")|| (m_sAbortMessage.contains("Projector"))){ //特殊情况下,总是尽快处理。 m_pTerminal->rcSetCPJ(NULL); //blank ui->pushButtonAbort->setText("Abort"); m_iPrintState = PRINT_ABORT; on_signalAbortPrint(); return; } if(m_iPrintState == PRINT_NO||m_iPrintState == PRINT_ABORT||m_iPaused==PAUSE_WAIT) return; // no abort if pausing, not printing or already aborting ui->pushButtonAbort->setText("Aborting..."); ui->lineEditLayerCount->setText("Aborting..."); ui->pushButtonPauseResume->setEnabled(false); ui->pushButtonAbort->setEnabled(false); setProjMessage("Aborting..."); m_bAbort = true; if(m_iPaused==PAUSE_YES) on_pushButtonPauseResume_clicked(); }
B9Print::B9Print(B9Terminal *pTerm, QWidget *parent) : QDialog(parent), ui(new Ui::B9Print) { m_pTerminal = pTerm; if(m_pTerminal == NULL) qFatal("FATAL Call to B9Creator with null B9Terminal Pointer"); ui->setupUi(this); //清除旧信息 ui->lineEditSerialStatus->setText(""); ui->lineEditProjectorOutput->setText(""); m_iTbase = m_iTover = 0; m_iTattach = 0; m_iNumAttach = 1; m_iXOff = m_iYOff =0; m_iPrintState = PRINT_NO; m_iPaused = PAUSE_NO; m_bAbort = false; m_sAbortMessage = "Unknown Abort"; m_iCurLayerNumber = 0; m_dLayerThickness = 0.0; m_iLastLayer = 0; connect(m_pTerminal, SIGNAL(updateConnectionStatus(QString)), this, SLOT(on_updateConnectionStatus(QString))); connect(m_pTerminal, SIGNAL(updateProjectorOutput(QString)), this, SLOT(on_updateProjectorOutput(QString))); connect(m_pTerminal, SIGNAL(updateProjectorStatus(QString)), this, SLOT(on_updateProjectorStatus(QString))); connect(m_pTerminal, SIGNAL(updateProjector(B9PrinterStatus::ProjectorStatus)), this, SLOT(on_updateProjector(B9PrinterStatus::ProjectorStatus))); connect(m_pTerminal, SIGNAL(signalAbortPrint(QString)), this, SLOT(on_pushButtonAbort_clicked(QString))); connect(m_pTerminal, SIGNAL(PrintReleaseCycleFinished()), this, SLOT(exposeTBaseLayer())); connect(m_pTerminal, SIGNAL(pausePrint()), this, SLOT(on_pushButtonPauseResume_clicked())); connect(m_pTerminal, SIGNAL(sendStatusMsg(QString)),this, SLOT(setProjMessage(QString))); QString sTime = QDateTime::currentDateTime().toString("hh:mm"); ui->lcdNumberTime->setDigitCount(9); ui->lcdNumberTime->display(sTime); }