From efdd4cd28c33d8f1a6cfcd3da37a41f91e65cf7e Mon Sep 17 00:00:00 2001 From: "royqh1979@gmail.com" Date: Sat, 27 Nov 2021 15:43:47 +0800 Subject: [PATCH] - enhancement: add option "ignore spaces when validating problem cases" to the "Executor"/"Problem Set" option tab. --- NEWS.md | 3 + RedPandaIDE/RedPandaIDE_zh_CN.qm | Bin 106748 -> 106963 bytes RedPandaIDE/RedPandaIDE_zh_CN.ts | 871 +++++++++--------- RedPandaIDE/mainwindow.cpp | 20 +- RedPandaIDE/mainwindow.h | 2 + RedPandaIDE/mainwindow.ui | 15 +- RedPandaIDE/problems/problemcasevalidator.cpp | 40 +- RedPandaIDE/problems/problemcasevalidator.h | 5 +- RedPandaIDE/settings.cpp | 13 +- RedPandaIDE/settings.h | 4 + .../executorproblemsetwidget.cpp | 2 + .../executorproblemsetwidget.ui | 7 + RedPandaIDE/version.h | 2 +- 13 files changed, 544 insertions(+), 440 deletions(-) diff --git a/NEWS.md b/NEWS.md index 66d50f5e..7d2cae87 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,6 @@ +Version 0.10.3 For Dev-C++ 7 Beta + - enhancement: add option "ignore spaces when validating problem cases" to the "Executor"/"Problem Set" option tab. + Version 0.10.2 For Dev-C++ 7 Beta - fix: select by mouse can't correctly set mouse's column position - fix: dragging out of the editor and back will cause error diff --git a/RedPandaIDE/RedPandaIDE_zh_CN.qm b/RedPandaIDE/RedPandaIDE_zh_CN.qm index 18a0af6e662aae3f6e32b6f353104435b0ee1394..e4e9a7f02cc85dbbb0de30047610bf245faecb6f 100644 GIT binary patch delta 9231 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 JDp~BB{{vopGztI! delta 9115 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 IZ0e@}0~nJC^Z)<= diff --git a/RedPandaIDE/RedPandaIDE_zh_CN.ts b/RedPandaIDE/RedPandaIDE_zh_CN.ts index 239e2e49..afe03650 100644 --- a/RedPandaIDE/RedPandaIDE_zh_CN.ts +++ b/RedPandaIDE/RedPandaIDE_zh_CN.ts @@ -24,7 +24,7 @@ GNU通用公共许可 - + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or @@ -95,17 +95,17 @@ BacktraceModel - + Function 函数 - + Filename 文件名 - + Line @@ -151,37 +151,37 @@ BreakpointModel - + Filename 文件名 - + Line - + Condition 条件 - + Save file '%1' failed. 保存文件'%1'失败。 - + Can't open file '%1' for write. 无法写入文件'%1'. - + Error in json file '%1':%2 : %3 JSON文件'%1':%2中存在错误:%3 - + Can't open file '%1' for read. 无法读取文件'%1'. @@ -992,7 +992,7 @@ Are you really want to continue? 找不到调试器程序"%1" - + Execute to evaluate 执行以求值 @@ -1001,22 +1001,22 @@ Are you really want to continue? 不在当前语境中 - + Compile 编译 - + Source file is more recent than executable. 源文件比程序文件新。 - + Recompile? 重新编译? - + Signal "%1" Received: 收到信号"%1": @@ -2000,22 +2000,27 @@ Are you really want to continue? Port Number 网络端口 + + + Ignore spaces when validating problem cases + 在验证测试案例时忽略结果中的空格 + FileAssociationModel - + Register File Association Error 注册文件类型关联失败 - - + + Don't have privilege to register file types! 没有权限进行文件类型注册! - + Register File Type Error 注册文件类型失败 @@ -2864,64 +2869,64 @@ Are you really want to continue? - - - + - + + + Issues 编译器 - + Compile Log 编译日志 - + File 文件 - + Tools 工具 - - + + Run 运行 - + Edit 编辑 - - + + Project 项目 - + Watch 监视 - + Structure 结构 - + Files 文件 @@ -2931,10 +2936,10 @@ Are you really want to continue? - - - - + + + + Debug 调试 @@ -2945,7 +2950,7 @@ Are you really want to continue? - + Debug Console 调试主控台 @@ -2966,8 +2971,8 @@ Are you really want to continue? - - + + Search 查找 @@ -2992,23 +2997,23 @@ Are you really want to continue? 替换 - + Close 关闭 - + Execute 运行 - - + + Code 代码 - + Window 窗口 @@ -3026,249 +3031,249 @@ Are you really want to continue? 新建 - + Ctrl+N Ctrl+N - + Open... 打开... - + Ctrl+O Ctrl+O - + Save 保存 - + Ctrl+S Ctrl+S - + Save As... 另存为... - + Save As 另存为 - + Save All 全部保存 - + Ctrl+Shift+S Ctrl+Shift+S - + Options 选项 - - - - - + + + + + Compile 编译 - + F9 F9 - + F10 F10 - + Undo 恢复 - + Ctrl+Z Ctrl+Z - + Redo 重做 - + Ctrl+Y Ctrl+Y - + Cut 剪切 - + Ctrl+X Ctrl+X - - - + + + Copy 复制 - + Ctrl+C Ctrl+C - - + + Paste 粘贴 - + Ctrl+V Ctrl+V - - + + Select All 选择全部 - + Ctrl+A Ctrl+A - + Indent 缩进 - + UnIndent 取消缩进 - + Toggle Comment 切换注释 - + Ctrl+/ Ctrl+/ - + Collapse All 全部收起 - + Uncollapse All 全部展开 - + Encode in ANSI 使用ANSI编码 - + Encode in UTF-8 使用UTF-8编码 - + Auto Detect 自动检测 - + Convert to ANSI 转换为ANSI编码 - + Convert to UTF-8 转换为UTF-8编码 - - + + Compile & Run 编译运行 - + F11 F11 - - + + Rebuild All 全部重编译 - + F12 F12 - + Stop Execution 停止执行 - + F6 F6 - + F5 F5 - + Step Over 单步跳过 - + F7 F7 - + Step Into 单步进入 - + Problem Set 试题集 @@ -3276,7 +3281,7 @@ Are you really want to continue? - + New Problem Set 新建试题集 @@ -3295,14 +3300,14 @@ Are you really want to continue? - + Save Problem Set 保存试题集 - + Load Problem Set 载入试题集 @@ -3324,20 +3329,20 @@ Are you really want to continue? - + TODO TODO - + Bookmark 书签 - + Problem 试题 @@ -3369,439 +3374,444 @@ Are you really want to continue? 运行所有案例 - + + Problem Cases Validation Options + 测试案例验证选项 + + + %v/%m %v/%m - + Output 输出 - + Input 输入 - + Expected 期望输出 - + Help 帮助 - + Refactor 重构 - + View 视图 - + Tool Windows 工具窗口 - + Main 主工具栏 - + Compiler Set 编译器配置集 - - + + New Source File 新建源代码文件 - + Tab Tab - + Shift+Tab Shift+Tab - + F8 F8 - + Step Out 单步跳出 - + Ctrl+F8 Ctrl+F8 - + Run To Cursor 执行到光标处 - + Ctrl+F5 Ctrl+F5 - + Continue 继续执行 - + F4 F4 - + Add Watch... 添加监视 - + View CPU Window... 打开CPU信息窗口... - + Exit 退出 - + Find... 查找... - + Ctrl+F Ctrl+F - + Find in Files... 在文件中查找... - + Ctrl+Shift+F Ctrl+Shift+F - + Replace... 替换 - + Ctrl+R Ctrl+R - + Find Next 查找下一个 - + F3 F3 - + Find Previous 查找前一个 - + Shift+F3 Shift+F3 - + Remove Watch 删除监视值 - + Remove All Watches Remove All 删除全部监视值 - + Modify Watch... 修改监视值 - + Reformat Code 对代码重新排版 - + Ctrl+Shift+A Ctrl+Shift+A - + Go back 前一次编辑位置 - + Ctrl+Alt+Left Ctrl+Alt+Left - + Forward 后一次编辑位置 - + Ctrl+Alt+Right Ctrl+Alt+Right - + Ctrl+W Ctrl+W - + Close All 全部关闭 - + Ctrl+Shift+W Ctrl+Shift+W - + Maximize Editor 最大化编辑器 - + Ctrl+F11 Ctrl+F11 - + Next 下一窗口 - + Ctrl+Tab Ctrl+Tab - + Previous 前一窗口 - + Ctrl+Shift+Tab Ctrl+Shift+Tab - + Toggle breakpoint 切换断点 - + Ctrl+F4 Ctrl+F4 - - + + Clear all breakpoints 删除所有断点 - + Breakpoint property... 设置断点条件... - + Goto Declaration 跳转到声明处 - + Goto Definition 跳转到定义处 - + Find references 查找符号的引用 - + Open containing folder 打开所在的文件夹 - + Ctrl+B Ctrl+B - + Open a terminal here 打开命令行窗口 - + File Properties... 文件属性... - + Close Project 关闭项目 - + Project options 项目属性 - + New Project... 新建项目... - + New File 新建项目文件 - + Add to project... 添加到项目... - + Remove from project 从项目删除 - + View Makefile 查看Makefile - + Clean 清理构建文件 - + Open Folder in Explorer 在浏览器中打开 - + Open In Terminal 在终端中打开 - + About 关于 - - + + Rename Symbol 重命名符号 - + Shift+F6 Shift+F6 - + Print... 打印... - + Ctrl+P Ctrl+P - - + + Export As RTF 导出为RTF - - + + Export As HTML 导出为HTML - + Move To Other View 移动到其他视图 - + Ctrl+M Ctrl+M - - + + C++ Reference C++参考手册 - + C Reference C参考手册 - + Tool Window Bars 工具窗口栏 - + Status Bar 状态栏 - + Ctrl+Backspace Ctrl+Backspace @@ -3810,47 +3820,47 @@ Are you really want to continue? 插入行 - + Delete Line 删除当前行 - + Ctrl+D Ctrl+D - + Duplicate Line 复制当前行 - + Ctrl+E Ctrl+E - + Delete Word 删除当前单词 - + Ctrl+Shift+D Ctrl+Shift+D - + Delete to EOL 删除到行尾 - + Ctrl+Del Ctrl+Del - + Delete to BOL 删除到行首 @@ -3859,43 +3869,43 @@ Are you really want to continue? C/C++参考 - + EGE Manual EGE图形库手册 - + Add Bookmark 添加书签 - + Remove Bookmark 删除书签 - + Modify Bookmark Description 修改书签说明 - + Locate in Files View 在文件视图中定位 - - + + Open Folder 打开文件夹 - + Running Parameters... 运行参数... - + File Encoding 文件编码 @@ -3939,173 +3949,173 @@ Are you really want to continue? 行:%1 列:%2 已选择:%3 总行数:%4 总长度:%5 - + Line:%1 Col:%2 Selected:%3 Lines:%4 Length:%5 Line: %1 Col: %2 Selected: %3 Lines: %4 Length: %5 行: %1 列: %2 已选择 :%3 总行数: %4 总长度: %5 - + Read Only 只读 - + Insert 插入 - + Overwrite 覆写 - + Close project 关闭项目 - + Are you sure you want to close %1? 你确定要关闭'%1'吗? - - + + Confirm 确认 - - - + + + Source file is not compiled. 源文件尚未编译。 - - + + Compile now? 现在编译? - - - + + + Source file is more recent than executable. 源文件比可执行程序新。 - + Recompile now? 重新编译? - + No compiler set 无编译器设置 - + No compiler set is configured. 没有配置编译器设置。 - + Can't start debugging. 无法启动调试器 - - + + Enable debugging 启用调试参数 - - + + You have not enabled debugging info (-g3) and/or stripped it from the executable (-s) in Compiler Options.<BR /><BR />Do you want to correct this now? 当前编译设置中未启用调试选项(-g3),或启用了信息剥除选项(-s)<br /><br/>是否纠正这一问题? - + Project not built 项目尚未构建 - + Project hasn't been built. Build it now? 项目尚未构建。是否构建? - + Host applcation missing 宿主程序不存在 - + DLL project needs a host application to run. 动态链接库(DLL)需要一个宿主程序来运行。 - + But it's missing. 但它不存在。 - + Host application not exists 宿主程序不存在 - + Host application file '%1' doesn't exist. 宿主程序'%1'不存在。 - + Recompile? 重新编译? - - + + Save last open info error 保存上次打开信息失败 - + Can't remove old last open information file '%1' 无法删除旧上次打开信息文件'%1' - + Can't save last open info file '%1' 无法保存上次打开信息文件'%1' - + Load last open info error 载入上次打开信息失败 - + Can't load last open info file '%1' 无法载入上次打开信息文件'%1' - + Show detail debug logs 显示详细调试器日志 - + Copy all 全部复制 - - + + Clear 清除 @@ -4121,7 +4131,7 @@ Are you really want to continue? - + Problem Set %1 试题集%1 @@ -4147,68 +4157,68 @@ Are you really want to continue? 小熊猫Dev-C++ - - + + Rebuild Project 重新构建项目 - - + + Project has been modified, do you want to rebuild it? 项目已经被修改过,是否需要重新构建? - + Auto Save Error 自动保存出错 - + Auto save "%1" to "%2" failed:%3 自动保存"%1"到"%2"失败:%3 - + Properties... 试题属性... - + Set Problem Set Name 设置试题集名称 - + Problem Set Name: 试题集名称: - + Remove 删除 - + Remove All Bookmarks 删除全部书签 - + Modify Description 修改描述 - - - + + + Bookmark Description 书签描述 - - - + + + Description: 描述: @@ -4217,363 +4227,363 @@ Are you really want to continue? 在调试主控台中显示调试器输出 - + Remove this search 清除这次搜索 - + Clear all searches 删除所有搜索 - + Breakpoint condition... 断点条件... - + Break point condition 断点条件 - + Enter the condition of the breakpoint: 输入当前断点的生效条件: - + Remove All Breakpoints Remove all breakpoints 删除所有断点 - + Remove Breakpoint 删除当前断点 - + Rename File 重命名文件 - - + + Add Folder 添加文件夹 - + New folder 新文件夹 - + Folder name: 文件夹: - + Rename Folder 重命名 - + Remove Folder 删除文件夹 - + Sort By Type 按类型排序 - + Sort alphabetically 按名称排序 - + Show inherited members 显示继承的成员 - + Goto declaration 跳转到声明处 - + Goto definition 跳转到定义处 - + Open in Editor 在编辑器中打开 - + Open in External Program 使用外部程序打开 - + Open in Terminal 在终端中打开 - + Open in Windows Explorer 在Windows浏览器中打开 - + Character sets 字符集 - + %1 files autosaved 已自动保存%1个文件 - + Set answer to... 设置答案源代码... - + select other file... 选择其他文件... - + Select Answer Source File 选择答案源代码文件 - + C/C++Source Files (*.c *.cpp *.cc *.cxx) C/C++Source Files (*.c *.cpp *.cc *.cxx C/C++源代码文件 (*.c *.cpp *.cc *.cxx) - + Save project 保存项目 - + The project '%1' has modifications. 项目'%1'有改动。 - - + + Do you want to save it? 需要保存吗? - - + + File Changed 文件已发生变化 - + New Project File? 新建项目文件? - + Do you want to add the new file to the project? 您是否要将新建的文件加入项目? - - - - + + + + Save Error 保存失败 - + Change Project Compiler Set 改变项目编译器配置集 - + Change the project's compiler set will lose all custom compiler set options. 改变项目的编译器配置集会导致所有的自定义编译器选项被重置。 - + Do you really want to do that? 你真的想要做那些吗? - + Do you really want to clear all breakpoints in this file? 您真的要清除该文件的所有断点吗? - + New project 新建项目 - + Close %1 and start new project? 关闭'%1'以打开新项目? - + Folder not exist 文件夹不存在 - + Folder '%1' doesn't exist. Create it now? 文件夹'%1'不存在。是否创建? - + Can't create folder 无法创建文件夹 - + Failed to create folder '%1'. 创建文件夹'%1'失败。 - + Save new project as - + Red panda Dev-C++ project file (*.dev) 小熊猫Dev-C++项目文件 (*.dev) - + New project fail 新建项目失败 - + Can't assign project template 无法使用模板创建项目 - + Remove file 删除文件 - + Remove the file from disk? 同时从硬盘上删除文件? - + untitled 无标题 - + New Project File Name 新的项目文件名 - + File Name: 文件名: - + File Already Exists! 文件已存在! - + File '%1' already exists! 文件'%1'已经存在! - + Add to project 添加到项目 - + Rename Error 重命名出错 - + Symbol '%1' is defined in system header. 符号'%1'在系统头文件中定义,无法修改。 - + New Name 新名称 - - + + Replace Error 替换出错 - + Can't open file '%1' for replace! 无法打开文件'%1'进行替换! - + Contents has changed since last search! 内容和上次查找时不一致。 - + Rich Text Format Files (*.rtf) RTF格式文件 (*.rtf) - + HTML Files (*.html) HTML文件 (*.html) - + The current problem set is not empty. 当前的试题集不是空的。 - + Problem %1 试题%1 - - + + Problem Set Files (*.pbs) 试题集文件 (*.pbs) - + Load Error 载入失败 - - + + Problem Case %1 试题案例%1 @@ -4584,15 +4594,15 @@ Are you really want to continue? - - - - - - - - - + + + + + + + + + Error 错误 @@ -4602,75 +4612,75 @@ Are you really want to continue? 项目历史 - + File '%1' was changed. 磁盘文件'%1'已被修改。 - + Reload its content from disk? 是否重新读取它的内容? - + File '%1' was removed. 磁盘文件'%1'已被删除。 - + Keep it open? 是否保持它在小熊猫C++中打开的编辑窗口? - + Open 打开 - + Compile Failed 编译失败 - + Run Failed 运行失败 - - + + Confirm Convertion 确认转换 - - + + The editing file will be saved using %1 encoding. <br />This operation can't be reverted. <br />Are you sure to continue? 当前编辑器中的文件将会使用%1编码保存。<br />这项操作无法被撤回。<br />你确定要继续吗? - + New Watch Expression 新监视表达式 - + Enter Watch Expression (it is recommended to use 'this->' for class members): 输入监视表达式 - + Parsing file %1 of %2: "%3" (%1/%2)正在解析文件"%3" - - + + Done parsing %1 files in %2 seconds 完成%1个文件的解析,用时%2秒 - + (%1 files per second) (每秒%1个文件) @@ -4792,92 +4802,92 @@ Are you really want to continue? Project - + File Not Found 未找到文件 - + Project file '%1' can't be found! 找不到项目文件'%1'! - + untitled 无标题 - + Can't save file 无法保存文件 - + Can't save file '%1' 无法保存文件'%1'. - + Error Load File 载入文件错误 - + File Exists 文件已存在 - + File '%1' is already in the project 文件'%1'已在项目中 - + Project Updated 项目已升级 - + Your project was succesfully updated to a newer file format! 已成功将项目升级到新的格式 - + If something has gone wrong, we kept a backup-file: '%1'... 旧项目文件备份在'%1'。 - + Settings need update 设置需要更新 - + The compiler settings format of Dev-C++ has changed. Dev-C++的编译器设置格式已发生改变。 - + Please update your settings at Project >> Project Options >> Compiler and save your project. 请在项目 >> 项目属性 >> 编译器设置中修改您的设置并保存您的项目 - + Compiler not found 未找到编译器 - + The compiler set you have selected for this project, no longer exists. 您为该项目设置的编译器不存在。 - + It will be substituted by the global compiler set. 它将会被全局编译器设置代替。 - + Developed using the Red Panda Dev-C++ IDE 使用小熊猫Dev-C++编辑器开发 @@ -5268,24 +5278,24 @@ Are you really want to continue? ProjectModel - + File exists 文件已存在 - + File '%1' already exists. Delete it now? 文件'%1'已存在。是否删除? - - + + Remove failed 删除失败 - - + + Failed to remove file '%1' 无法删除文件'%1' @@ -5845,27 +5855,27 @@ Are you really want to continue? 无标题 - + Index %1 out of range 下标"%1"越界 - + bytes 字节 - + KB KB - + MB MB - + GB GB @@ -6186,12 +6196,12 @@ Are you really want to continue? RegisterModel - + Register 寄存器 - + Value @@ -6598,7 +6608,7 @@ Are you really want to continue? 自动链接 - + @@ -6674,13 +6684,15 @@ Are you really want to continue? 杂项 - + + Program Runner 程序运行 + Problem Set 试题集 @@ -7087,48 +7099,49 @@ Are you really want to continue? WatchModel - + Save file '%1' failed. 保存文件'%1'失败。 - + Can't open file '%1' for write. 无法写入文件'%1'. - + Error in json file '%1':%2 : %3 JSON文件'%1':%2中存在错误:%3 - - + + Execute to evaluate 执行以求值 - + + Not Valid 在当前作用域中无效 - + Can't open file '%1' for read. 无法读取文件'%1'. - + Expression 表达式 - + Type 类型 - + Value diff --git a/RedPandaIDE/mainwindow.cpp b/RedPandaIDE/mainwindow.cpp index f7fab347..fcf88623 100644 --- a/RedPandaIDE/mainwindow.cpp +++ b/RedPandaIDE/mainwindow.cpp @@ -1205,7 +1205,7 @@ void MainWindow::runExecutable(const QString &exeName,const QString &filename,Ru POJProblem problem = mOJProblemModel.problem(); if (problem) { mCompilerManager->runProblem(exeName,params,QFileInfo(exeName).absolutePath(), - problem->cases); + problem->cases); openCloseBottomPanel(true); ui->tabMessages->setCurrentWidget(ui->tabProblem); } @@ -2760,7 +2760,11 @@ void MainWindow::onProblemSetIndexChanged(const QModelIndex ¤t, const QMod mOJProblemModel.setProblem(problem); ui->lblProblem->setText(mOJProblemModel.getTitle()); ui->lblProblem->setToolTip(mOJProblemModel.getTooltip()); - ui->lstProblemCases->setCurrentIndex(mOJProblemModel.index(0,0)); + if (mOJProblemModel.count()>0) { + ui->lstProblemCases->setCurrentIndex(mOJProblemModel.index(0,0)); + } else { + onProblemCaseIndexChanged(QModelIndex(),QModelIndex()); + } openCloseBottomPanel(true); ui->tabMessages->setCurrentWidget(ui->tabProblem); ui->tabProblem->setEnabled(true); @@ -3696,7 +3700,7 @@ void MainWindow::onOJProblemCaseFinished(const QString& id, int current, int tot if (row>=0) { POJProblemCase problemCase = mOJProblemModel.getCase(row); ProblemCaseValidator validator; - problemCase->testState = validator.validate(problemCase)? + problemCase->testState = validator.validate(problemCase,pSettings->executor().ignoreSpacesWhenValidatingCases())? ProblemCaseTestState::Passed: ProblemCaseTestState::Failed; mOJProblemModel.update(row); @@ -5749,3 +5753,13 @@ void MainWindow::on_actionDelete_to_BOL_triggered() e->deleteToBOL(); } } + + +void MainWindow::on_btnCaseValidateOptions_clicked() +{ + changeOptions( + SettingsDialog::tr("Problem Set"), + SettingsDialog::tr("Program Runner") + ); +} + diff --git a/RedPandaIDE/mainwindow.h b/RedPandaIDE/mainwindow.h index 75408571..9997d355 100644 --- a/RedPandaIDE/mainwindow.h +++ b/RedPandaIDE/mainwindow.h @@ -529,6 +529,8 @@ private slots: void on_actionDelete_to_BOL_triggered(); + void on_btnCaseValidateOptions_clicked(); + private: Ui::MainWindow *ui; EditorList *mEditorList; diff --git a/RedPandaIDE/mainwindow.ui b/RedPandaIDE/mainwindow.ui index bcef089b..ada6f560 100644 --- a/RedPandaIDE/mainwindow.ui +++ b/RedPandaIDE/mainwindow.ui @@ -506,7 +506,7 @@ QTabWidget::South - 2 + 6 @@ -1258,6 +1258,17 @@ + + + + Problem Cases Validation Options + + + + :/icons/images/newlook24/083-toolbar.png:/icons/images/newlook24/083-toolbar.png + + + @@ -1381,7 +1392,7 @@ 0 0 1114 - 30 + 25 diff --git a/RedPandaIDE/problems/problemcasevalidator.cpp b/RedPandaIDE/problems/problemcasevalidator.cpp index 112d97a3..03160c15 100644 --- a/RedPandaIDE/problems/problemcasevalidator.cpp +++ b/RedPandaIDE/problems/problemcasevalidator.cpp @@ -6,7 +6,7 @@ ProblemCaseValidator::ProblemCaseValidator() } -bool ProblemCaseValidator::validate(POJProblemCase problemCase) +bool ProblemCaseValidator::validate(POJProblemCase problemCase, bool ignoreSpaces) { if (!problemCase) return false; @@ -15,8 +15,42 @@ bool ProblemCaseValidator::validate(POJProblemCase problemCase) if (output.count()!=expected.count()) return false; for (int i=0;iunicode()!=0) { + if (p->isSpace()) { + if (!start->isSpace()) { + result.append(QString(start,p-start)); + } + start = p; + } else if (start->isSpace()) { + start = p; + } + p++; + } + if (!start->isSpace()) { + result.append(QString(start,p-start)); + } + return result; +} diff --git a/RedPandaIDE/problems/problemcasevalidator.h b/RedPandaIDE/problems/problemcasevalidator.h index 0f9cc791..6b94d9ce 100644 --- a/RedPandaIDE/problems/problemcasevalidator.h +++ b/RedPandaIDE/problems/problemcasevalidator.h @@ -7,7 +7,10 @@ class ProblemCaseValidator { public: ProblemCaseValidator(); - bool validate(POJProblemCase problemCase); + bool validate(POJProblemCase problemCase,bool ignoreSpaces); +private: + bool equalIgnoringSpaces(const QString& s1, const QString& s2); + QStringList split(const QString& s); }; #endif // PROBLEMCASEVALIDATOR_H diff --git a/RedPandaIDE/settings.cpp b/RedPandaIDE/settings.cpp index b3896e40..78751f5b 100644 --- a/RedPandaIDE/settings.cpp +++ b/RedPandaIDE/settings.cpp @@ -2859,6 +2859,16 @@ void Settings::Executor::setCompetivieCompanionPort(int newCompetivieCompanionPo mCompetivieCompanionPort = newCompetivieCompanionPort; } +bool Settings::Executor::ignoreSpacesWhenValidatingCases() const +{ + return mIgnoreSpacesWhenValidatingCases; +} + +void Settings::Executor::setIgnoreSpacesWhenValidatingCases(bool newIgnoreSpacesWhenValidatingCases) +{ + mIgnoreSpacesWhenValidatingCases = newIgnoreSpacesWhenValidatingCases; +} + bool Settings::Executor::enableCompetitiveCompanion() const { return mEnableCompetitiveCompanion; @@ -2891,7 +2901,7 @@ void Settings::Executor::doSave() saveValue("enable_proble_set", mEnableProblemSet); saveValue("enable_competivie_companion", mEnableCompetitiveCompanion); saveValue("competitive_companion_port", mCompetivieCompanionPort); - + saveValue("ignore_spaces_when_validating_cases", mIgnoreSpacesWhenValidatingCases); } bool Settings::Executor::pauseConsole() const @@ -2916,6 +2926,7 @@ void Settings::Executor::doLoad() mEnableProblemSet = boolValue("enable_proble_set",true); mEnableCompetitiveCompanion = boolValue("enable_competivie_companion",true); mCompetivieCompanionPort = intValue("competitive_companion_port",10045); + mIgnoreSpacesWhenValidatingCases = boolValue("ignore_spaces_when_validating_cases",false); } diff --git a/RedPandaIDE/settings.h b/RedPandaIDE/settings.h index 3bc1450b..a29b37ca 100644 --- a/RedPandaIDE/settings.h +++ b/RedPandaIDE/settings.h @@ -794,6 +794,9 @@ public: int competivieCompanionPort() const; void setCompetivieCompanionPort(int newCompetivieCompanionPort); + bool ignoreSpacesWhenValidatingCases() const; + void setIgnoreSpacesWhenValidatingCases(bool newIgnoreSpacesWhenValidatingCases); + private: // general bool mPauseConsole; @@ -807,6 +810,7 @@ public: bool mEnableProblemSet; bool mEnableCompetitiveCompanion; int mCompetivieCompanionPort; + bool mIgnoreSpacesWhenValidatingCases; protected: void doSave() override; diff --git a/RedPandaIDE/settingsdialog/executorproblemsetwidget.cpp b/RedPandaIDE/settingsdialog/executorproblemsetwidget.cpp index b07438fb..3b80f14b 100644 --- a/RedPandaIDE/settingsdialog/executorproblemsetwidget.cpp +++ b/RedPandaIDE/settingsdialog/executorproblemsetwidget.cpp @@ -20,6 +20,7 @@ void ExecutorProblemSetWidget::doLoad() ui->grpProblemSet->setChecked(pSettings->executor().enableProblemSet()); ui->grpCompetitiveCompanion->setChecked(pSettings->executor().enableCompetitiveCompanion()); ui->spinPortNumber->setValue(pSettings->executor().competivieCompanionPort()); + ui->chkIgnoreSpacesWhenValidatingCases->setChecked(pSettings->executor().ignoreSpacesWhenValidatingCases()); } void ExecutorProblemSetWidget::doSave() @@ -27,6 +28,7 @@ void ExecutorProblemSetWidget::doSave() pSettings->executor().setEnableProblemSet(ui->grpProblemSet->isChecked()); pSettings->executor().setEnableCompetitiveCompanion(ui->grpCompetitiveCompanion->isChecked()); pSettings->executor().setCompetivieCompanionPort(ui->spinPortNumber->value()); + pSettings->executor().setIgnoreSpacesWhenValidatingCases(ui->chkIgnoreSpacesWhenValidatingCases->isChecked()); pSettings->executor().save(); pMainWindow->applySettings(); } diff --git a/RedPandaIDE/settingsdialog/executorproblemsetwidget.ui b/RedPandaIDE/settingsdialog/executorproblemsetwidget.ui index 30ef1cf8..a0d40ba5 100644 --- a/RedPandaIDE/settingsdialog/executorproblemsetwidget.ui +++ b/RedPandaIDE/settingsdialog/executorproblemsetwidget.ui @@ -65,6 +65,13 @@ + + + + Ignore spaces when validating problem cases + + + diff --git a/RedPandaIDE/version.h b/RedPandaIDE/version.h index ee6dee7a..5c3e78e2 100644 --- a/RedPandaIDE/version.h +++ b/RedPandaIDE/version.h @@ -2,6 +2,6 @@ #define VERSION_H #include -#define DEVCPP_VERSION "beta.0.10.2" +#define DEVCPP_VERSION "beta.0.10.3" #endif // VERSION_H