- fix: "run current cases" dosen't correctly display real output
This commit is contained in:
parent
fbdd268484
commit
e920d230df
1
NEWS.md
1
NEWS.md
|
@ -9,6 +9,7 @@ Red Panda C++ Version 1.0.9
|
||||||
- fix: the hiding state of the tools output panel is not correctly saved
|
- fix: the hiding state of the tools output panel is not correctly saved
|
||||||
- enhancement: add "toggle explorer panel" and "toggle messages panel" in "view" menu
|
- enhancement: add "toggle explorer panel" and "toggle messages panel" in "view" menu
|
||||||
- fix: cursor is wrongly positioned when insert code snippets that don't have placeholders
|
- fix: cursor is wrongly positioned when insert code snippets that don't have placeholders
|
||||||
|
- fix: "run current cases" dosen't correctly display real output
|
||||||
|
|
||||||
Red Panda C++ Version 1.0.8
|
Red Panda C++ Version 1.0.8
|
||||||
- enhancement: auto complete '#undef'
|
- enhancement: auto complete '#undef'
|
||||||
|
|
|
@ -289,27 +289,21 @@ void CompilerManager::run(const QString &filename, const QString &arguments, con
|
||||||
mRunner->start();
|
mRunner->start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void CompilerManager::runProblem(const QString &filename, const QString &arguments, const QString &workDir, POJProblemCase problemCase)
|
void CompilerManager::runProblem(const QString &filename, const QString &arguments, const QString &workDir, POJProblemCase problemCase)
|
||||||
{
|
{
|
||||||
QMutexLocker locker(&mRunnerMutex);
|
QMutexLocker locker(&mRunnerMutex);
|
||||||
if (mRunner!=nullptr) {
|
doRunProblem(filename, arguments, workDir, QVector<POJProblemCase> {problemCase});
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
OJProblemCasesRunner * execRunner = new OJProblemCasesRunner(filename,arguments,workDir,problemCase);
|
|
||||||
mRunner = execRunner;
|
|
||||||
connect(mRunner, &Runner::finished, this ,&CompilerManager::onRunnerTerminated);
|
|
||||||
connect(mRunner, &Runner::finished, mRunner ,&Runner::deleteLater);
|
|
||||||
connect(mRunner, &Runner::finished, pMainWindow ,&MainWindow::onRunProblemFinished);
|
|
||||||
connect(mRunner, &Runner::runErrorOccurred, pMainWindow ,&MainWindow::onRunErrorOccured);
|
|
||||||
connect(execRunner, &OJProblemCasesRunner::caseStarted, pMainWindow, &MainWindow::onOJProblemCaseStarted);
|
|
||||||
connect(execRunner, &OJProblemCasesRunner::caseFinished, pMainWindow, &MainWindow::onOJProblemCaseFinished);
|
|
||||||
mRunner->start();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CompilerManager::runProblem(const QString &filename, const QString &arguments, const QString &workDir, QVector<POJProblemCase> problemCases)
|
void CompilerManager::runProblem(const QString &filename, const QString &arguments, const QString &workDir, const QVector<POJProblemCase>& problemCases)
|
||||||
{
|
{
|
||||||
QMutexLocker locker(&mRunnerMutex);
|
QMutexLocker locker(&mRunnerMutex);
|
||||||
|
doRunProblem(filename, arguments, workDir, problemCases);
|
||||||
|
}
|
||||||
|
void CompilerManager::doRunProblem(const QString &filename, const QString &arguments, const QString &workDir, const QVector<POJProblemCase>& problemCases)
|
||||||
|
{
|
||||||
if (mRunner!=nullptr) {
|
if (mRunner!=nullptr) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -318,6 +312,7 @@ void CompilerManager::runProblem(const QString &filename, const QString &argumen
|
||||||
if (pSettings->executor().enableCaseTimeout())
|
if (pSettings->executor().enableCaseTimeout())
|
||||||
execRunner->setExecTimeout(pSettings->executor().caseTimeout());
|
execRunner->setExecTimeout(pSettings->executor().caseTimeout());
|
||||||
connect(mRunner, &Runner::finished, this ,&CompilerManager::onRunnerTerminated);
|
connect(mRunner, &Runner::finished, this ,&CompilerManager::onRunnerTerminated);
|
||||||
|
connect(mRunner, &Runner::finished, mRunner ,&Runner::deleteLater);
|
||||||
connect(mRunner, &Runner::finished, pMainWindow ,&MainWindow::onRunProblemFinished);
|
connect(mRunner, &Runner::finished, pMainWindow ,&MainWindow::onRunProblemFinished);
|
||||||
connect(mRunner, &Runner::runErrorOccurred, pMainWindow ,&MainWindow::onRunErrorOccured);
|
connect(mRunner, &Runner::runErrorOccurred, pMainWindow ,&MainWindow::onRunErrorOccured);
|
||||||
connect(execRunner, &OJProblemCasesRunner::caseStarted, pMainWindow, &MainWindow::onOJProblemCaseStarted);
|
connect(execRunner, &OJProblemCasesRunner::caseStarted, pMainWindow, &MainWindow::onOJProblemCaseStarted);
|
||||||
|
|
|
@ -44,7 +44,7 @@ public:
|
||||||
void checkSyntax(const QString&filename, const QByteArray& encoding, const QString& content, std::shared_ptr<Project> project);
|
void checkSyntax(const QString&filename, const QByteArray& encoding, const QString& content, std::shared_ptr<Project> project);
|
||||||
void run(const QString& filename, const QString& arguments, const QString& workDir);
|
void run(const QString& filename, const QString& arguments, const QString& workDir);
|
||||||
void runProblem(const QString& filename, const QString& arguments, const QString& workDir, POJProblemCase problemCase);
|
void runProblem(const QString& filename, const QString& arguments, const QString& workDir, POJProblemCase problemCase);
|
||||||
void runProblem(const QString& filename, const QString& arguments, const QString& workDir, QVector<POJProblemCase> problemCases);
|
void runProblem(const QString& filename, const QString& arguments, const QString& workDir, const QVector<POJProblemCase> &problemCases);
|
||||||
void stopRun();
|
void stopRun();
|
||||||
void stopAllRunners();
|
void stopAllRunners();
|
||||||
void stopPausing();
|
void stopPausing();
|
||||||
|
@ -63,6 +63,7 @@ signals:
|
||||||
void signalStopAllRunners();
|
void signalStopAllRunners();
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
|
void doRunProblem(const QString& filename, const QString& arguments, const QString& workDir, const QVector<POJProblemCase> &problemCases);
|
||||||
void onRunnerTerminated();
|
void onRunnerTerminated();
|
||||||
void onRunnerPausing();
|
void onRunnerPausing();
|
||||||
void onCompileFinished();
|
void onCompileFinished();
|
||||||
|
|
Loading…
Reference in New Issue