diff --git a/NEWS.md b/NEWS.md
index 370b5ff5..e5949e58 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -12,6 +12,7 @@ Red Panda C++ Version 1.0.3
- change: don't auto jump to the first syntax error location when compile
- enhancement: don't show folders that doesn't contain files in the project view
- enhancement: redesigned new project unit dialog
+ - fix: some dialog's icon not correctly set
Red Panda C++ Version 1.0.2
- enhancement: press tab in column mode won't exit column mode
diff --git a/RedPandaIDE/RedPandaIDE_zh_CN.ts b/RedPandaIDE/RedPandaIDE_zh_CN.ts
index 731e55b2..ecf0df9f 100644
--- a/RedPandaIDE/RedPandaIDE_zh_CN.ts
+++ b/RedPandaIDE/RedPandaIDE_zh_CN.ts
@@ -771,7 +771,7 @@ p, li { white-space: pre-wrap; }
删除非法文件夹
-
+
选择文件夹
@@ -1270,10 +1270,10 @@ Are you really want to continue?
-
-
-
-
+
+
+
+
错误
@@ -1292,34 +1292,34 @@ Are you really want to continue?
文件%1已经被打开!
-
+
要复制的内容超过了行数限制!
-
+
要复制的内容超过了字符数限制!
-
+
要剪切的内容超过了行数限制!
-
+
要剪切的内容超过了字符数限制!
-
+
打印文档
-
-
-
+
+
+
Ctrl+单击以获取更多信息
@@ -1328,27 +1328,27 @@ Are you really want to continue?
未找到符号'%1'!
-
+
找不到astyle程序
-
+
找不到astyle程序"%1".
-
+
断点条件
-
+
输入当前断点的生效条件:
-
+
只读
@@ -3804,18 +3804,18 @@ Are you really want to continue?
MainWindow
-
+
小熊猫C++
-
-
-
-
-
+
+
+
+
+
编译器
@@ -3889,7 +3889,7 @@ Are you really want to continue?
-
+
调试主控台
@@ -3965,7 +3965,7 @@ Are you really want to continue?
工具栏2
-
+
新建
@@ -4023,8 +4023,8 @@ Are you really want to continue?
-
-
+
+
编译
@@ -4097,9 +4097,9 @@ Are you really want to continue?
-
-
-
+
+
+
复制
@@ -4110,7 +4110,7 @@ Are you really want to continue?
-
+
粘贴
@@ -4121,8 +4121,8 @@ Are you really want to continue?
-
-
+
+
选择全部
@@ -4248,7 +4248,7 @@ Are you really want to continue?
-
+
新建试题集
@@ -4267,14 +4267,14 @@ Are you really want to continue?
-
+
保存试题集
-
+
载入试题集
@@ -4335,7 +4335,7 @@ Are you really want to continue?
-
+
Run Current Case
运行所有案例
@@ -4613,7 +4613,7 @@ Are you really want to continue?
-
+
删除所有断点
@@ -4709,7 +4709,7 @@ Are you really want to continue?
Ctrl+Shift+Down
-
+
新建文件
@@ -4750,7 +4750,7 @@ Are you really want to continue?
-
+
重命名符号
@@ -4771,13 +4771,13 @@ Are you really want to continue?
-
+
导出为RTF
-
+
导出为HTML
@@ -5046,42 +5046,42 @@ Are you really want to continue?
运行参数...
-
+
文件编码
-
+
文件历史
-
-
-
-
-
-
+
+
+
+
+
+
正在调试
-
-
-
-
-
-
+
+
+
+
+
+
正在运行
-
-
-
-
-
-
+
+
+
+
+
+
正在编译
@@ -5090,171 +5090,171 @@ Are you really want to continue?
行:%1 列:%2 已选择:%3 总行数:%4 总长度:%5
-
+
Line: %1 Col: %2 Selected: %3 Lines: %4 Length: %5
行: %1 列: %2 已选择 :%3 总行数: %4 总长度: %5
-
+
只读
-
+
插入
-
+
覆写
-
+
关闭项目
-
+
你确定要关闭'%1'吗?
-
-
+
+
确认
-
-
-
+
+
+
源文件尚未编译。
-
-
+
+
现在编译?
-
-
+
+
源文件比可执行程序新。
-
+
重新编译?
-
+
无编译器设置
-
+
没有配置编译器设置。
-
+
无法启动调试器
-
-
+
+
启用调试参数
-
-
+
+
当前编译设置中未启用调试选项(-g3),或启用了信息剥除选项(-s)<br /><br/>是否纠正这一问题?
-
+
项目尚未构建
-
+
项目尚未构建。是否构建?
-
+
宿主程序不存在
-
+
动态链接库(DLL)需要一个宿主程序来运行。
-
+
但它不存在。
-
+
宿主程序不存在
-
+
宿主程序'%1'不存在。
-
+
重新编译?
-
-
+
+
保存上次打开信息失败
-
+
无法删除旧上次打开信息文件'%1'
-
+
无法保存上次打开信息文件'%1'
-
+
载入上次打开信息失败
-
+
无法载入上次打开信息文件'%1'
-
+
打开源代码文件
-
+
显示详细调试器日志
-
+
全部复制
@@ -5262,25 +5262,25 @@ Are you really want to continue?
-
-
-
+
+
+
清除
-
+
导出
-
+
插入代码段
-
-
+
+
试题集%1
@@ -5301,68 +5301,68 @@ Are you really want to continue?
或者选择使用其他的网络端口。
-
-
+
+
重新构建项目
-
-
+
+
项目已经被修改过,是否需要重新构建?
-
+
自动保存出错
-
+
自动保存"%1"到"%2"失败:%3
-
+
试题属性...
-
+
设置试题集名称
-
+
试题集名称:
-
+
删除
-
+
删除全部书签
-
+
修改描述
-
-
-
+
+
+
书签描述
-
-
-
+
+
+
描述:
@@ -5371,173 +5371,173 @@ Are you really want to continue?
在调试主控台中显示调试器输出
-
+
清除这次搜索
-
+
删除所有搜索
-
+
断点条件...
-
+
断点条件
-
+
输入当前断点的生效条件:
-
+
Remove all breakpoints
删除所有断点
-
+
删除当前断点
-
+
重命名文件
-
-
+
+
添加文件夹
-
+
新文件夹
-
+
文件夹:
-
+
重命名
-
+
运行当前案例
-
+
删除文件夹
-
+
切换为普通视图
-
+
切换为自定义视图
-
+
按类型排序
-
+
按名称排序
-
+
显示继承的成员
-
+
跳转到声明处
-
+
跳转到定义处
-
-
+
+
新建文件夹
-
-
-
-
+
+
+
+
删除
-
+
在编辑器中打开
-
+
使用外部程序打开
-
+
在终端中打开
-
+
在Windows浏览器中打开
-
+
字符集
-
+
转换为%1编码
-
+
已自动保存%1个文件
-
+
设置答案源代码...
-
+
选择其他文件...
-
+
选择答案源代码文件
@@ -5547,241 +5547,241 @@ Are you really want to continue?
C/C++源代码文件 (*.c *.cpp *.cc *.cxx)
-
+
新建文件夹%1
-
+
无标题
-
+
无标题%1
-
+
你真的要删除%1吗?
-
+
你真的要删除%1个文件吗?
-
+
保存项目
-
+
项目'%1'有改动。
-
-
+
+
需要保存吗?
-
-
+
+
文件已发生变化
-
+
新建项目文件?
-
+
您是否要将新建的文件加入项目?
-
-
-
-
+
+
+
+
保存失败
-
+
改变项目编译器配置集
-
+
改变项目的编译器配置集会导致所有的自定义编译器选项被重置。
-
+
你真的想要做那些吗?
-
+
您真的要清除该文件的所有断点吗?
-
+
新建项目
-
+
关闭'%1'以打开新项目?
-
+
文件夹不存在
-
+
文件夹'%1'不存在。是否创建?
-
+
无法创建文件夹
-
+
创建文件夹'%1'失败。
-
+
-
+
文件夹%1不是空的。
-
+
你真的要删除它吗?
-
+
改变工作文件夹
-
+
File '%1' is not in the current working folder
文件'%1'不在当前工作文件夹中。
-
+
是否将工作文件夹改设为'%1'?
-
+
无法提交
-
+
Git需要用信息进行提交。
-
+
选择输入数据文件
-
-
+
+
所有文件 (*.*)
-
+
Choose Expected Input Data File
选择期望输出文件
-
-
-
+
+
+
第%1行
-
+
选择工作文件夹
-
-
+
+
头文件已存在
-
-
+
+
头文件"%1"已存在!
-
+
源文件已存在!
-
+
源文件"%1"已存在!
-
+
无法提交!
-
+
下列文件处于冲突状态,请解决后重新添加和提交:
-
+
提交信息
-
+
提交信息:
-
+
提交失败
-
+
提交信息不能为空!
@@ -5790,246 +5790,246 @@ Are you really want to continue?
小熊猫Dev-C++项目文件 (*.dev)
-
+
新建项目失败
-
+
无法使用模板创建项目
-
+
删除文件
-
+
同时从硬盘上删除文件?
-
+
无标题
-
+
新的项目文件名
-
+
文件名:
-
+
文件已存在!
-
+
文件'%1'已经存在!
-
+
添加到项目
-
+
C/C++源代码文件 (*.c *.cpp *.cc *.cxx)
-
+
小熊猫C++项目文件(*.dev)
-
+
重命名出错
-
+
符号'%1'在系统头文件中定义,无法修改。
-
+
新名称
-
-
+
+
替换出错
-
+
无法打开文件'%1'进行替换!
-
+
内容和上次查找时不一致。
-
+
RTF格式文件 (*.rtf)
-
+
HTML文件 (*.html)
-
+
当前的试题集不是空的。
-
+
试题%1
-
-
+
+
试题集文件 (*.pbs)
-
+
载入失败
-
-
+
+
试题案例%1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
错误
-
+
项目历史
-
+
载入主题失败
-
-
+
+
清除历史
-
-
+
+
版本控制
-
+
磁盘文件'%1'已被修改。
-
+
是否重新读取它的内容?
-
+
磁盘文件'%1'已被删除。
-
+
是否保持它在小熊猫C++中打开的编辑窗口?
-
+
打开
-
+
编译失败
-
+
运行失败
-
-
-
+
+
+
确认转换
-
-
-
+
+
+
当前编辑器中的文件将会使用%1编码保存。<br />这项操作无法被撤回。<br />你确定要继续吗?
-
+
新监视表达式
-
+
输入监视表达式
-
+
(%1/%2)正在解析文件"%3"
+
-
完成%1个文件的解析,用时%2秒
-
+
(每秒%1个文件)
@@ -6086,7 +6086,7 @@ Are you really want to continue?
源文件名:
-
+
路径
@@ -6129,7 +6129,7 @@ Are you really want to continue?
取消
-
+
路径
@@ -6186,11 +6186,64 @@ Are you really want to continue?
项目%1
-
-
+
+
缺省
+
+
+
+ 选择文件夹
+
+
+
+ NewProjectUnitDialog
+
+
+ 对话框
+
+
+
+
+ 新建项目文件
+
+
+
+
+ 文件夹
+
+
+
+
+ 文件名
+
+
+
+
+
+ 浏览
+
+
+
+
+ 确定
+
+
+
+
+ 取消
+
+
+
+
+ 无标题
+
+
+
+
+ 选择文件夹
+
OJProblemCasesRunner
@@ -6282,93 +6335,93 @@ Are you really want to continue?
无标题
-
+
无法保存文件
-
+
无法保存文件'%1'.
-
+
载入文件错误
-
+
文件已存在
-
+
文件'%1'已在项目中
-
+
项目已升级
-
+
已成功将项目升级到新的格式
-
+
旧项目文件备份在'%1'。
-
+
头文件
-
+
源文件
-
+
其他文件
-
+
设置需要更新
-
+
The compiler settings format of Dev-C++ has changed.
小熊猫C++的编译器设置格式已发生改变。
-
+
请在项目 >> 项目属性 >> 编译器设置中修改您的设置并保存您的项目
-
+
未找到编译器
-
+
您为该项目设置的编译器不存在。
-
+
它将会被全局编译器设置代替。
-
+
Developed using the Red Panda Dev-C++ IDE
使用小熊猫C++编辑器开发
@@ -6775,32 +6828,32 @@ Are you really want to continue?
ProjectModel
-
+
文件已存在
-
+
文件'%1'已存在。是否删除?
-
+
删除失败
-
+
无法删除文件'%1'
-
+
改名失败
-
+
无法将文件'%1'改名为'%2'
@@ -7393,7 +7446,6 @@ Are you really want to continue?
是
-
无标题
@@ -8196,7 +8248,7 @@ Are you really want to continue?
自动链接
-
+
@@ -8272,15 +8324,15 @@ Are you really want to continue?
杂项
-
-
+
+
程序运行
-
+
试题集
diff --git a/RedPandaIDE/mainwindow.cpp b/RedPandaIDE/mainwindow.cpp
index 8ef6691a..ba841516 100644
--- a/RedPandaIDE/mainwindow.cpp
+++ b/RedPandaIDE/mainwindow.cpp
@@ -5946,10 +5946,12 @@ void MainWindow::newProjectUnitFile()
QString newFileName;
PProjectUnit newUnit;
if (mProject->modelType() == ProjectModelType::FileSystem) {
+ PProjectModelNode modelTypeNode = pNode;
+ while (modelTypeNode && modelTypeNode->folderNodeType==ProjectSpecialFolderNode::NonSpecial) {
+ modelTypeNode=modelTypeNode->parent.lock();
+ }
NewProjectUnitDialog newProjectUnitDialog;
- QString folder = mProject->fileSystemNodeFolderPath(pNode);
- newProjectUnitDialog.setFolder(folder);
- switch (pNode->folderNodeType) {
+ switch (modelTypeNode->folderNodeType) {
case ProjectSpecialFolderNode::HEADERS:
newProjectUnitDialog.setSuffix("h");
break;
@@ -5962,13 +5964,23 @@ void MainWindow::newProjectUnitFile()
default:
newProjectUnitDialog.setSuffix("");
}
+ QString folder = mProject->fileSystemNodeFolderPath(pNode);
+ qDebug()<options().isCpp)
+ newFileName += ".cpp";
+ else
+ newFileName += ".c";
+ } while (QDir(mProject->directory()).exists(newFileName));
newFileName = QInputDialog::getText(
this,
tr("New Project File Name"),
@@ -5977,11 +5989,12 @@ void MainWindow::newProjectUnitFile()
newFileName);
if (newFileName.isEmpty())
return;
- if (fileExists(QDir(mProject->directory()).absoluteFilePath(newFileName))) {
- QMessageBox::critical(this,tr("File Already Exists!"),
- tr("File '%1' already exists!").arg(newFileName));
- return;
- }
+ newFileName = QDir(mProject->directory()).absoluteFilePath(newFileName);
+ }
+ if (fileExists(newFileName)) {
+ QMessageBox::critical(this,tr("File Already Exists!"),
+ tr("File '%1' already exists!").arg(newFileName));
+ return;
}
newUnit = mProject->newUnit(
pNode,newFileName);
diff --git a/RedPandaIDE/project.cpp b/RedPandaIDE/project.cpp
index 8749602f..9e64f4d6 100644
--- a/RedPandaIDE/project.cpp
+++ b/RedPandaIDE/project.cpp
@@ -1695,6 +1695,18 @@ QFileSystemWatcher *Project::fileSystemWatcher() const
return mFileSystemWatcher;
}
+QString Project::fileSystemNodeFolderPath(const PProjectModelNode &node)
+{
+ QString result;
+ PProjectModelNode pNode = node;
+ while (pNode && pNode->folderNodeType == ProjectSpecialFolderNode::NonSpecial) {
+ result = node->text + "/" +result;
+ pNode = pNode->parent.lock();
+ }
+ result = folder() + "/" + result;
+ return result;
+}
+
EditorList *Project::editorList() const
{
return mEditorList;
diff --git a/RedPandaIDE/project.h b/RedPandaIDE/project.h
index ea5b96a9..c0620b22 100644
--- a/RedPandaIDE/project.h
+++ b/RedPandaIDE/project.h
@@ -237,6 +237,8 @@ public:
QFileSystemWatcher *fileSystemWatcher() const;
+ QString fileSystemNodeFolderPath(const PProjectModelNode& node);
+
signals:
void nodesChanged();
void modifyChanged(bool value);
diff --git a/RedPandaIDE/widgets/newprojectunitdialog.cpp b/RedPandaIDE/widgets/newprojectunitdialog.cpp
index 4e3045ff..d0cc3e7a 100644
--- a/RedPandaIDE/widgets/newprojectunitdialog.cpp
+++ b/RedPandaIDE/widgets/newprojectunitdialog.cpp
@@ -31,7 +31,7 @@ void NewProjectUnitDialog::setFolder(const QString &folderName)
if (folderName!=folder()) {
ui->txtFolder->setText(folderName);
QDir dir(folder());
- if (dir.exists(filename()) || filename().isEmpty()) {
+ if (filename().isEmpty() || dir.exists(filename())) {
//todo change filename
QString newFileName;
QString ext;
@@ -50,6 +50,16 @@ void NewProjectUnitDialog::setFolder(const QString &folderName)
}
}
+QString NewProjectUnitDialog::filename() const
+{
+ return ui->txtFilename->text();
+}
+
+void NewProjectUnitDialog::setFilename(const QString &filename)
+{
+ ui->txtFilename->setText(filename);
+}
+
void NewProjectUnitDialog::onUpdateIcons()
{
pIconsManager->setIcon(ui->btnBrowse, IconsManager::ACTION_FILE_OPEN_FOLDER);
@@ -90,21 +100,20 @@ void NewProjectUnitDialog::updateBtnOkStatus()
&& QFileInfo(ui->txtFolder->text()).isDir());
}
-void NewProjectUnitDialog::closeEvent(QCloseEvent *event)
-{
- reject();
-}
-
-bool NewProjectUnitDialog::suffix() const
+const QString &NewProjectUnitDialog::suffix() const
{
return mSuffix;
}
-void NewProjectUnitDialog::setSuffix(bool newSuffix)
+void NewProjectUnitDialog::setSuffix(const QString &newSuffix)
{
mSuffix = newSuffix;
}
+void NewProjectUnitDialog::closeEvent(QCloseEvent */*event*/)
+{
+ reject();
+}
void NewProjectUnitDialog::on_txtFolder_textChanged(const QString &/*arg1*/)
{
diff --git a/RedPandaIDE/widgets/newprojectunitdialog.h b/RedPandaIDE/widgets/newprojectunitdialog.h
index ea3f620e..67f8ca16 100644
--- a/RedPandaIDE/widgets/newprojectunitdialog.h
+++ b/RedPandaIDE/widgets/newprojectunitdialog.h
@@ -21,8 +21,8 @@ public:
QString filename() const;
void setFilename(const QString& filename);
- bool suffix() const;
- void setSuffix(bool newSuffix);
+ const QString &suffix() const;
+ void setSuffix(const QString &newSuffix);
private slots:
void onUpdateIcons();
@@ -40,7 +40,7 @@ private:
private:
Ui::NewProjectUnitDialog *ui;
private:
- bool mSuffix;
+ QString mSuffix;
// QWidget interface
protected:
diff --git a/RedPandaIDE/widgets/newprojectunitdialog.ui b/RedPandaIDE/widgets/newprojectunitdialog.ui
index 206d4a72..9fd064ae 100644
--- a/RedPandaIDE/widgets/newprojectunitdialog.ui
+++ b/RedPandaIDE/widgets/newprojectunitdialog.ui
@@ -6,12 +6,12 @@
0
0
- 400
- 300
+ 547
+ 250
- Dialog
+ New Project Unit
-