- enhancement: "Trim trailing spaces" in code menu

- change: Don't auto disable compile and debug buttons.
  - enhancement: Better error messages for missing compile/debug/make programs.
  - enhancement: "Show special chars" in options / editor / font
  - fix: Lost compiler set settings if a compiler set's bin dirs is empty.
  - enhancement: Better error message when trying to debug with Release compile set.
This commit is contained in:
Roy Qu 2022-12-16 11:10:46 +08:00
parent 7ddc30967d
commit 492345b939
28 changed files with 1388 additions and 1085 deletions

View File

@ -2,7 +2,13 @@ Red Panda C++ Version 2.7
- enhancement: Remove multiple problems in the problem set view
- enhancement: Clear the proble view after a new problem set created
- enhancement: "Remove trailing spaces" in options / editor / misc
- enhancement: "Trim trailing spaces" in options / editor / misc
- enhancement: "Trim trailing spaces" in code menu
- change: Don't auto disable compile and debug buttons.
- enhancement: Better error messages for missing compile/debug/make programs.
- enhancement: "Show special chars" in options / editor / font
- fix: Lost compiler set settings if a compiler set's bin dirs is empty.
- enhancement: Better error message when trying to debug with Release compile set.
Red Panda C++ Version 2.6

View File

@ -112,6 +112,7 @@
"strikeout" : false
},
"Space" : {
"foreground": "#ff9b9b9b",
"bold" : false,
"italic" : false,
"underlined" : false,

View File

@ -112,6 +112,7 @@
"strikeout" : false
},
"Space" : {
"foreground": "#ffbababa",
"bold" : false,
"italic" : false,
"underlined" : false,

View File

@ -112,6 +112,7 @@
"strikeout" : false
},
"Space" : {
"foreground": "#ffbababa",
"bold" : false,
"italic" : false,
"underlined" : false,

View File

@ -191,6 +191,7 @@
"underlined": false
},
"Space": {
"foreground": "#ff505050",
"bold": false,
"italic": false,
"strikeout": false,

View File

@ -198,6 +198,7 @@
"underlined": false
},
"Space": {
"foreground": "#ffbababa",
"bold": false,
"italic": false,
"strikeout": false,

View File

@ -193,6 +193,7 @@
"underlined": false
},
"Space": {
"foreground": "#ff303030",
"bold": false,
"italic": false,
"strikeout": false,

View File

@ -195,6 +195,7 @@
"underlined": false
},
"Space": {
"foreground": "#ff505050",
"bold": false,
"italic": false,
"strikeout": false,

View File

@ -15,7 +15,6 @@
"underlined": false
},
"Assembler": {
"background": "#ff1e1e1e",
"bold": false,
"foreground": "#ff79abff",
"italic": false,
@ -36,7 +35,6 @@
"underlined": false
},
"Class": {
"background": "#ff1e1e1e",
"bold": false,
"foreground": "#ff79abff",
"italic": false,
@ -44,7 +42,6 @@
"underlined": false
},
"Comment": {
"background": "#ff1e1e1e",
"bold": false,
"foreground": "#ffc7dd0c",
"italic": false,
@ -82,7 +79,6 @@
"underlined": false
},
"Float": {
"background": "#ff1e1e1e",
"bold": false,
"foreground": "#ff7fb347",
"italic": false,
@ -126,7 +122,6 @@
"underlined": false
},
"Hexadecimal": {
"background": "#ff1e1e1e",
"bold": false,
"foreground": "#ff7fb347",
"italic": false,
@ -162,7 +157,6 @@
"underlined": false
},
"Number": {
"background": "#ff1e1e1e",
"bold": false,
"foreground": "#ff7fb347",
"italic": false,
@ -170,7 +164,6 @@
"underlined": false
},
"Octal": {
"background": "#ff1e1e1e",
"bold": false,
"foreground": "#ff7fb347",
"italic": false,
@ -178,7 +171,6 @@
"underlined": false
},
"Preprocessor": {
"background": "#ff1e1e1e",
"bold": false,
"foreground": "#ff79abff",
"italic": false,
@ -186,7 +178,6 @@
"underlined": false
},
"Reserved Word": {
"background": "#ff1e1e1e",
"bold": false,
"foreground": "#ffffffff",
"italic": false,
@ -202,7 +193,6 @@
"underlined": false
},
"Space": {
"background": "#ff1e1e1e",
"bold": false,
"foreground": "#ff505050",
"italic": false,
@ -210,7 +200,6 @@
"underlined": false
},
"String": {
"background": "#ff1e1e1e",
"bold": false,
"foreground": "#ffffc600",
"italic": false,
@ -218,7 +207,6 @@
"underlined": false
},
"Symbol": {
"background": "#ff1e1e1e",
"bold": false,
"foreground": "#ffd9e577",
"italic": false,

View File

@ -195,6 +195,7 @@
"underlined": false
},
"Space": {
"foreground": "#ff505050",
"bold": false,
"italic": false,
"strikeout": false,

View File

@ -194,6 +194,7 @@
"underlined": false
},
"Space": {
"foreground": "#ff505050",
"bold": false,
"italic": false,
"strikeout": false,

View File

@ -190,6 +190,7 @@
"underlined": false
},
"Space": {
"foreground": "#ffbababa",
"bold": false,
"italic": false,
"strikeout": false,

View File

@ -113,7 +113,10 @@ bool FileCompiler::prepareForCompile()
mArguments += getLibraryArguments(fileType);
if (!fileExists(mCompiler)) {
throw CompileError(tr("The Compiler '%1' doesn't exists!").arg(mCompiler));
throw CompileError(
tr("The Compiler '%1' doesn't exists!").arg(mCompiler)
+"<br />"
+tr("Please check the \"program\" page of compiler settings."));
}
log(tr("Processing %1 source file:").arg(strFileType));

View File

@ -530,7 +530,10 @@ bool ProjectCompiler::prepareForCompile()
mCompiler = compilerSet()->make();
if (!fileExists(mCompiler)) {
throw CompileError(tr("Make program '%1' doesn't exists!").arg(mCompiler));
throw CompileError(
tr("Make program '%1' doesn't exists!").arg(mCompiler)
+"<br />"
+tr("Please check the \"program\" page of compiler settings."));
}
QString parallelParam;

View File

@ -101,7 +101,9 @@ bool Debugger::start(int compilerSetIndex, const QString& inferior, const QStrin
mExecuting = false;
QMessageBox::critical(pMainWindow,
tr("Debugger not exists"),
tr("Can''t find debugger in : \"%1\"").arg(debuggerPath));
tr("Can''t find debugger (gdb) in : \"%1\"").arg(debuggerPath)
+"<br />"
+tr("Please check the \"program\" page of compiler settings."));
return false;
}
if (pSettings->debugger().useGDBServer()) {

View File

@ -4705,7 +4705,7 @@ void Editor::applySettings()
QSynedit::eoRightMouseMovesCursor | QSynedit::eoScrollByOneLess | QSynedit::eoTabIndent | QSynedit::eoHideShowScrollbars | QSynedit::eoGroupUndo
| QSynedit::eoSelectWordByDblClick;
options.setFlag(QSynedit::eoShowSpecialChars, false);
options.setFlag(QSynedit::eoShowSpecialChars, pSettings->editor().showSpecialChars());
//options
options.setFlag(QSynedit::eoAutoIndent,pSettings->editor().autoIndent());

View File

@ -241,8 +241,8 @@ MainWindow::MainWindow(QWidget *parent)
mMenuInsertCodeSnippet = new QMenu();
mMenuInsertCodeSnippet->setTitle(tr("Insert Snippet"));
ui->menuCode->insertMenu(ui->actionReformat_Code,mMenuInsertCodeSnippet);
ui->menuCode->insertSeparator(ui->actionReformat_Code);
ui->menuCode->insertMenu(ui->actionTrim_trailing_spaces,mMenuInsertCodeSnippet);
ui->menuCode->insertSeparator(ui->actionTrim_trailing_spaces);
connect(mMenuInsertCodeSnippet,&QMenu::aboutToShow,
this, &MainWindow::onShowInsertCodeSnippetMenu);
@ -647,10 +647,17 @@ void MainWindow::updateProjectActions()
void MainWindow::updateCompileActions()
{
if (mCompilerManager->compiling() || mCompilerManager->running() || mDebugger->executing()) {
ui->actionCompile->setEnabled(false);
ui->actionCompile_Run->setEnabled(false);
ui->actionRun->setEnabled(false);
ui->actionRebuild->setEnabled(false);
ui->actionGenerate_Assembly->setEnabled(false);
ui->actionDebug->setEnabled(false);
ui->btnRunAllProblemCases->setEnabled(false);
} else {
bool forProject=false;
bool canCompile = false;
bool canRun = false;
bool canDebug = false;
Editor * e = mEditorList->getEditor();
if (e) {
if (!e->inProject()) {
@ -658,20 +665,6 @@ void MainWindow::updateCompileActions()
if (fileType == FileType::CSource
|| fileType == FileType::CppSource || e->isNew()) {
canRun = true;
Settings::PCompilerSet set = pSettings->compilerSets().defaultSet();
if (set) {
canDebug = set->canDebug();
switch(fileType) {
case FileType::CSource:
canCompile = set->canCompileC();
break;
case FileType::CppSource:
canCompile = set->canCompileCPP();
break;
default:
break;
}
}
}
} else {
forProject = (mProject!=nullptr);
@ -682,28 +675,13 @@ void MainWindow::updateCompileActions()
if (forProject) {
canRun = (mProject->options().type !=ProjectType::DynamicLib)
&& (mProject->options().type !=ProjectType::StaticLib);
Settings::PCompilerSet set = pSettings->compilerSets().getSet(mProject->options().compilerSet);
if (set) {
canDebug = set->canDebug();
canCompile = set->canMake();
}
}
if (mCompilerManager->compiling() || mCompilerManager->running() || mDebugger->executing()
|| (!canCompile)) {
ui->actionCompile->setEnabled(false);
ui->actionCompile_Run->setEnabled(false);
ui->actionRun->setEnabled(false);
ui->actionRebuild->setEnabled(false);
ui->actionGenerate_Assembly->setEnabled(false);
ui->actionDebug->setEnabled(false);
ui->btnRunAllProblemCases->setEnabled(false);
} else {
ui->actionCompile->setEnabled(true);
ui->actionCompile_Run->setEnabled(canRun && canCompile);
ui->actionCompile_Run->setEnabled(canRun);
ui->actionRun->setEnabled(canRun);
ui->actionRebuild->setEnabled(true);
ui->actionGenerate_Assembly->setEnabled(!forProject);
ui->actionDebug->setEnabled(canDebug);
ui->actionDebug->setEnabled(canRun);
ui->btnRunAllProblemCases->setEnabled(canRun);
}
if (!mDebugger->executing()) {
@ -2055,25 +2033,20 @@ void MainWindow::debug()
debugEnabled = mProject->getCompileOption(CC_CMD_OPT_DEBUG_INFO) == COMPILER_OPTION_ON;
stripEnabled = mProject->getCompileOption(LINK_CMD_OPT_STRIP_EXE) == COMPILER_OPTION_ON;
// Ask the user if he wants to enable debugging...
if (((!debugEnabled) || stripEnabled) &&
(QMessageBox::question(this,
if ((!debugEnabled) || stripEnabled) {
if (QMessageBox::question(this,
tr("Enable debugging"),
tr("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?")
) == QMessageBox::Yes)) {
// Enable debugging, disable stripping
mProject->setCompileOption(CC_CMD_OPT_DEBUG_INFO,COMPILER_OPTION_ON);
mProject->setCompileOption(LINK_CMD_OPT_STRIP_EXE,"");
// Save changes to compiler set
mProject->saveOptions();
mCompileSuccessionTask=std::make_shared<CompileSuccessionTask>();
mCompileSuccessionTask->type = CompileSuccessionTaskType::Debug;
mCompileSuccessionTask->execName = mProject->executable();
mCompileSuccessionTask->isExecutable = true;
mCompileSuccessionTask->binDirs = binDirs;
compile();
tr("You are not using a Debug compiler setting.")
+"<BR /><BR />"
+tr("Please use a Debug compiler set, or enable the \"generate debugging info (-g3)\" and disable the \"strip additional info (-s)\" options in the compiler settings.")
+"<BR /><BR />"
+tr("Do you want to set it now?")
) == QMessageBox::Yes) {
changeOptions(
SettingsDialog::tr("Compiler Set"),
SettingsDialog::tr("Compiler")
);
}
return;
}
// Did we compile?
@ -2155,25 +2128,22 @@ void MainWindow::debug()
debugEnabled = compilerSet->getCompileOptionValue(CC_CMD_OPT_DEBUG_INFO) == COMPILER_OPTION_ON;
stripEnabled = compilerSet->getCompileOptionValue(LINK_CMD_OPT_STRIP_EXE) == COMPILER_OPTION_ON;
// Ask the user if he wants to enable debugging...
if (((!debugEnabled) || stripEnabled) &&
(QMessageBox::question(this,
if ((!debugEnabled) || stripEnabled) {
if (QMessageBox::question(this,
tr("Enable debugging"),
tr("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?")
) == QMessageBox::Yes)) {
// Enable debugging, disable stripping
compilerSet->setCompileOption(CC_CMD_OPT_DEBUG_INFO,COMPILER_OPTION_ON);
compilerSet->unsetCompileOption(LINK_CMD_OPT_STRIP_EXE);
// Save changes to compiler set
pSettings->compilerSets().saveSet(pSettings->compilerSets().defaultIndex());
mCompileSuccessionTask=std::make_shared<CompileSuccessionTask>();
mCompileSuccessionTask->type = CompileSuccessionTaskType::Debug;
mCompileSuccessionTask->binDirs = binDirs;
compile();
tr("You are not using a Debug compiler setting.")
+"<BR /><BR />"
+tr("Please choose a Debug compiler set in the toolbar, or enable the \"generate debugging info (-g3)\" and disable the \"strip additional info (-s)\" options in the compiler set settings's \"settings\" page.")
+"<BR /><BR />"
+tr("Do you want to set it now?")
) == QMessageBox::Yes) {
changeOptions(
SettingsDialog::tr("Compiler Set"),
SettingsDialog::tr("Compiler")
);
}
return;
}
Editor* e = mEditorList->getEditor();
if (e!=nullptr) {
// Did we saved?
@ -4572,6 +4542,7 @@ void MainWindow::onEditorContextMenu(const QPoint& pos)
menu.addAction(ui->actionOpen_Terminal);
menu.addAction(ui->actionLocate_in_Files_View);
menu.addSeparator();
menu.addAction(ui->actionTrim_trailing_spaces);
menu.addAction(ui->actionReformat_Code);
menu.addSeparator();
menu.addAction(ui->actionCut);
@ -8997,3 +8968,12 @@ void MainWindow::on_btnImportFPS_clicked()
}
void MainWindow::on_actionTrim_trailing_spaces_triggered()
{
Editor * e = mEditorList->getEditor();
if (e) {
e->trimTrailingSpaces();
}
}

View File

@ -753,6 +753,8 @@ private slots:
void on_btnImportFPS_clicked();
void on_actionTrim_trailing_spaces_triggered();
private:
Ui::MainWindow *ui;
EditorList *mEditorList;

View File

@ -6,7 +6,7 @@
<rect>
<x>0</x>
<y>0</y>
<width>945</width>
<width>955</width>
<height>619</height>
</rect>
</property>
@ -119,8 +119,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>945</width>
<height>25</height>
<width>955</width>
<height>29</height>
</rect>
</property>
<widget class="QMenu" name="menuFile">
@ -229,6 +229,7 @@
<addaction name="actionRemove_Bookmark"/>
<addaction name="actionModify_Bookmark_Description"/>
<addaction name="separator"/>
<addaction name="actionTrim_trailing_spaces"/>
<addaction name="actionReformat_Code"/>
</widget>
<widget class="QMenu" name="menuWindow">
@ -3283,6 +3284,11 @@
<string>Generate Assembly</string>
</property>
</action>
<action name="actionTrim_trailing_spaces">
<property name="text">
<string>Trim trailing spaces</string>
</property>
</action>
</widget>
<customwidgets>
<customwidget>

View File

@ -730,6 +730,16 @@ void Settings::Editor::setRemoveTrailingSpacesWhenSaved(bool newRemoveTrailingSp
mRemoveTrailingSpacesWhenSaved = newRemoveTrailingSpacesWhenSaved;
}
bool Settings::Editor::showSpecialChars() const
{
return mShowSpecialChars;
}
void Settings::Editor::setShowSpecialChars(bool newShowSpecialChars)
{
mShowSpecialChars = newShowSpecialChars;
}
bool Settings::Editor::highlightCurrentWord() const
{
return mHighlightCurrentWord;
@ -1220,6 +1230,8 @@ void Settings::Editor::doSave()
saveValue("caret_use_text_color",mCaretUseTextColor);
saveValue("caret_color",mCaretColor);
saveValue("show_special_chars",mShowSpecialChars);
//highlight
saveValue("highlight_matching_braces",mHighlightMathingBraces);
saveValue("highlight_current_word",mHighlightCurrentWord);
@ -1345,6 +1357,9 @@ void Settings::Editor::doLoad()
mCaretUseTextColor = boolValue("caret_use_text_color",true);
mCaretColor = colorValue("caret_color",Qt::yellow);
mShowSpecialChars = boolValue("show_special_chars",false);
//highlight
mHighlightMathingBraces = boolValue("highlight_matching_braces",true);
mHighlightCurrentWord = boolValue("highlight_current_word",true);
@ -1581,8 +1596,10 @@ Settings::CompilerSet::CompilerSet(const QString& compilerFolder, const QString&
mExecutableSuffix(DEFAULT_EXECUTABLE_SUFFIX),
mCompilationStage(Settings::CompilerSet::CompilationStage::GenerateExecutable)
{
if (QDir(compilerFolder).exists()) {
setProperties(compilerFolder, c_prog);
QDir dir(compilerFolder);
if (dir.exists(c_prog)) {
setProperties(dir.absoluteFilePath(c_prog));
//manually set the directories
setDirectories(compilerFolder, mCompilerType);
@ -1717,72 +1734,72 @@ static void checkDirs(const QStringList& dirlist, QString& gooddirs, QString& ba
}
bool Settings::CompilerSet::dirsValid(QString &msg)
{
QString goodbin, badbin, goodlib, badlib, goodinc, badinc, goodinccpp, badinccpp;
msg = "";
//bool Settings::CompilerSet::dirsValid(QString &msg)
//{
// QString goodbin, badbin, goodlib, badlib, goodinc, badinc, goodinccpp, badinccpp;
// msg = "";
if (mBinDirs.count()>0) {// we need some bin dir, so treat count=0 as an error too
checkDirs(mBinDirs,goodbin,badbin);
if (!badbin.isEmpty()) {
msg += QObject::tr("The following %1 directories don't exist:").arg(
QObject::tr("binary")
);
msg += "<br />";
msg += badbin.replace(';',"<br />");
msg += "<br />";
msg += "<br />";
return false;
}
} else {
msg += QObject::tr("No %1 directories have been specified.").arg(
QObject::tr("binary")
);
msg += "<br />";
msg += "<br />";
return false;
}
checkDirs(mCIncludeDirs,goodbin,badbin);
if (!badbin.isEmpty()) {
msg += QObject::tr("The following %1 directories don't exist:").arg(
QObject::tr("C include")
);
msg += "<br />";
msg += badbin.replace(';',"<br />");
msg += "<br />";
msg += "<br />";
return false;
}
// if (mBinDirs.count()>0) {// we need some bin dir, so treat count=0 as an error too
// checkDirs(mBinDirs,goodbin,badbin);
// if (!badbin.isEmpty()) {
// msg += QObject::tr("The following %1 directories don't exist:").arg(
// QObject::tr("binary")
// );
// msg += "<br />";
// msg += badbin.replace(';',"<br />");
// msg += "<br />";
// msg += "<br />";
// return false;
// }
// } else {
// msg += QObject::tr("No %1 directories have been specified.").arg(
// QObject::tr("binary")
// );
// msg += "<br />";
// msg += "<br />";
// return false;
// }
// checkDirs(mCIncludeDirs,goodbin,badbin);
// if (!badbin.isEmpty()) {
// msg += QObject::tr("The following %1 directories don't exist:").arg(
// QObject::tr("C include")
// );
// msg += "<br />";
// msg += badbin.replace(';',"<br />");
// msg += "<br />";
// msg += "<br />";
// return false;
// }
checkDirs(mCppIncludeDirs,goodbin,badbin);
if (!badbin.isEmpty()) {
msg += QObject::tr("The following %1 directories don't exist:").arg(
QObject::tr("C++ include")
);
msg += "<br />";
msg += badbin.replace(';',"<br />");
msg += "<br />";
msg += "<br />";
return false;
}
// checkDirs(mCppIncludeDirs,goodbin,badbin);
// if (!badbin.isEmpty()) {
// msg += QObject::tr("The following %1 directories don't exist:").arg(
// QObject::tr("C++ include")
// );
// msg += "<br />";
// msg += badbin.replace(';',"<br />");
// msg += "<br />";
// msg += "<br />";
// return false;
// }
checkDirs(mLibDirs,goodbin,badbin);
if (!badbin.isEmpty()) {
msg += QObject::tr("The following %1 directories don't exist:").arg(
QObject::tr("C++ include")
);
msg += "<br />";
msg += badbin.replace(';',"<br />");
msg += "<br />";
msg += "<br />";
return false;
}
// checkDirs(mLibDirs,goodbin,badbin);
// if (!badbin.isEmpty()) {
// msg += QObject::tr("The following %1 directories don't exist:").arg(
// QObject::tr("C++ include")
// );
// msg += "<br />";
// msg += badbin.replace(';',"<br />");
// msg += "<br />";
// msg += "<br />";
// return false;
// }
if (!msg.isEmpty())
return false;
else
return true;
}
// if (!msg.isEmpty())
// return false;
// else
// return true;
//}
//bool Settings::CompilerSet::validateExes(QString &msg)
//{
@ -2075,11 +2092,11 @@ static void addExistingDirectory(QStringList& dirs, const QString& directory) {
dirs.append(dirPath);
}
void Settings::CompilerSet::setProperties(const QString &binDir, const QString& c_prog)
void Settings::CompilerSet::setProperties(const QString& c_prog)
{
if (c_prog.isEmpty())
if (!fileExists(c_prog))
return;
QString binDir=extractFileDir(c_prog);
// Obtain version number and compiler distro etc
QStringList arguments;
arguments.append("-v");
@ -2844,37 +2861,36 @@ void Settings::CompilerSets::loadSets()
PCompilerSet pCurrentSet = defaultSet();
if (pCurrentSet) {
QString msg;
if (!pCurrentSet->dirsValid(msg)) {
if (QMessageBox::warning(nullptr,QObject::tr("Confirm"),
QObject::tr("The following problems were found during validation of compiler set \"%1\":")
.arg(pCurrentSet->name())
+"<br /><br />"
+msg
+"<br /><br />"
+QObject::tr("Leaving those directories will lead to problems during compilation.")
+"<br /><br />"
+QObject::tr("Would you like Red Panda C++ to remove them for you and add the default paths to the valid paths?")
,
QMessageBox::Yes | QMessageBox::No) != QMessageBox::Yes) {
// if (!pCurrentSet->dirsValid(msg)) {
// if (QMessageBox::warning(nullptr,QObject::tr("Confirm"),
// QObject::tr("The following problems were found during validation of compiler set \"%1\":")
// .arg(pCurrentSet->name())
// +"<br /><br />"
// +msg
// +"<br /><br />"
// +QObject::tr("Leaving those directories will lead to problems during compilation.")
// +"<br /><br />"
// +QObject::tr("Would you like Red Panda C++ to remove them for you and add the default paths to the valid paths?")
// ,
// QMessageBox::Yes | QMessageBox::No) != QMessageBox::Yes) {
// return;
// }
// findSets();
// if ( (int)mList.size() <= mDefaultIndex)
// mDefaultIndex = mList.size()-1;
// pCurrentSet = defaultSet();
// if (!pCurrentSet) {
// mList.clear();
// mDefaultIndex = -1;
// saveSets();
// return;
// }
// saveSets();
// pCurrentSet->setProperties(pCurrentSet->CCompiler());
// } else {
// return;
// }
return;
}
findSets();
if ( (int)mList.size() <= mDefaultIndex)
mDefaultIndex = mList.size()-1;
pCurrentSet = defaultSet();
if (!pCurrentSet) {
mList.clear();
mDefaultIndex = -1;
saveSets();
return;
}
saveSets();
if (pCurrentSet->binDirs().count()>0) {
pCurrentSet->setProperties(pCurrentSet->binDirs()[0],pCurrentSet->CCompiler());
}
} else {
return;
}
} else {
#ifdef Q_OS_WIN
QString msg = QObject::tr("Compiler set not configuared.")
@ -3137,8 +3153,8 @@ Settings::PCompilerSet Settings::CompilerSets::loadSet(int index)
mSettings->mSettings.endGroup();
if (pSet->binDirs().isEmpty())
return PCompilerSet();
// if (pSet->binDirs().isEmpty())
// return PCompilerSet();
return pSet;
}

View File

@ -382,6 +382,9 @@ public:
bool removeTrailingSpacesWhenSaved() const;
void setRemoveTrailingSpacesWhenSaved(bool newRemoveTrailingSpacesWhenSaved);
bool showSpecialChars() const;
void setShowSpecialChars(bool newShowSpecialChars);
private:
//General
// indents
@ -399,6 +402,8 @@ public:
QSynedit::EditCaretType mCaretForOverwrite;
bool mCaretUseTextColor;
QColor mCaretColor;
//
bool mShowSpecialChars;
//highlights
bool mHighlightCurrentWord;
@ -1241,7 +1246,7 @@ public:
CompilerSet& operator= (const CompilerSet&& ) = delete;
// Initialization
void setProperties(const QString& binDir, const QString& c_prog);
void setProperties(const QString& c_prog);
void resetCompileOptionts();
bool setCompileOption(const QString& key, int valIndex);
@ -1257,7 +1262,7 @@ public:
bool canCompileCPP();
bool canMake();
bool canDebug();
bool dirsValid(QString& msg);
// bool dirsValid(QString& msg);
// bool validateExes(QString& msg);
//properties
const QString& CCompiler() const;

View File

@ -59,7 +59,7 @@ void EditorFontWidget::doLoad()
ui->cbNonAsciiFont->setCurrentFont(QFont(pSettings->editor().nonAsciiFontName()));
ui->spinFontSize->setValue(pSettings->editor().fontSize());
ui->chkLigature->setChecked(pSettings->editor().enableLigaturesSupport());
ui->chkShowSpecialChars->setChecked(pSettings->editor().showSpecialChars());
//gutter
ui->chkGutterVisible->setChecked(pSettings->editor().gutterVisible());
ui->chkAutoSizeGutter->setChecked(pSettings->editor().gutterAutoSize());
@ -83,7 +83,7 @@ void EditorFontWidget::doSave()
pSettings->editor().setNonAsciiFontName(ui->cbNonAsciiFont->currentFont().family());
pSettings->editor().setFontSize(ui->spinFontSize->value());
pSettings->editor().setEnableLigaturesSupport(ui->chkLigature->isChecked());
pSettings->editor().setShowSpecialChars(ui->chkShowSpecialChars->isChecked());
//gutter
pSettings->editor().setGutterVisible(ui->chkGutterVisible->isChecked());
pSettings->editor().setGutterAutoSize(ui->chkAutoSizeGutter->isChecked());

View File

@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>737</width>
<height>569</height>
<width>876</width>
<height>643</height>
</rect>
</property>
<property name="windowTitle">
@ -30,44 +30,6 @@
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QWidget" name="widget_3" native="true">
<layout class="QHBoxLayout" name="horizontalLayout_3">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QSpinBox" name="spinFontSize">
<property name="minimum">
<number>2</number>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item row="0" column="1">
<widget class="QWidget" name="widget_2" native="true">
<layout class="QHBoxLayout" name="horizontalLayout">
@ -119,11 +81,42 @@
</layout>
</widget>
</item>
<item row="3" column="0" colspan="2">
<widget class="QCheckBox" name="chkLigature">
<property name="text">
<string>Enable Ligatures Support</string>
<item row="2" column="1">
<widget class="QWidget" name="widget_3" native="true">
<layout class="QHBoxLayout" name="horizontalLayout_3">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QSpinBox" name="spinFontSize">
<property name="minimum">
<number>2</number>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item row="2" column="0">
@ -174,6 +167,20 @@
</layout>
</widget>
</item>
<item row="4" column="0" colspan="2">
<widget class="QCheckBox" name="chkShowSpecialChars">
<property name="text">
<string>Show special chars</string>
</property>
</widget>
</item>
<item row="3" column="0" colspan="2">
<widget class="QCheckBox" name="chkLigature">
<property name="text">
<string>Enable ligatures support</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
@ -183,6 +190,21 @@
<string>Gutter</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<property name="spacing">
<number>7</number>
</property>
<property name="leftMargin">
<number>11</number>
</property>
<property name="topMargin">
<number>11</number>
</property>
<property name="rightMargin">
<number>11</number>
</property>
<property name="bottomMargin">
<number>11</number>
</property>
<item>
<widget class="QCheckBox" name="chkGutterVisible">
<property name="text">
@ -264,6 +286,21 @@
<bool>true</bool>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<property name="spacing">
<number>7</number>
</property>
<property name="leftMargin">
<number>11</number>
</property>
<property name="topMargin">
<number>11</number>
</property>
<property name="rightMargin">
<number>11</number>
</property>
<property name="bottomMargin">
<number>11</number>
</property>
<item>
<widget class="QCheckBox" name="chkAddLeadingZeros">
<property name="text">
@ -345,6 +382,21 @@
<bool>true</bool>
</property>
<layout class="QGridLayout" name="gridLayout_4">
<property name="leftMargin">
<number>11</number>
</property>
<property name="topMargin">
<number>11</number>
</property>
<property name="rightMargin">
<number>11</number>
</property>
<property name="bottomMargin">
<number>11</number>
</property>
<property name="horizontalSpacing">
<number>7</number>
</property>
<item row="0" column="0">
<widget class="QLabel" name="label_5">
<property name="text">

View File

@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>721</width>
<height>982</height>
<width>795</width>
<height>1211</height>
</rect>
</property>
<property name="windowTitle">
@ -20,6 +20,21 @@
<string>Indents</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing">
<number>7</number>
</property>
<property name="leftMargin">
<number>11</number>
</property>
<property name="topMargin">
<number>11</number>
</property>
<property name="rightMargin">
<number>11</number>
</property>
<property name="bottomMargin">
<number>11</number>
</property>
<item>
<widget class="QCheckBox" name="chkAutoIndent">
<property name="text">
@ -37,6 +52,21 @@
<item>
<widget class="QWidget" name="widget_2" native="true">
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="spacing">
<number>7</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="lbCaretColor_2">
<property name="text">
@ -79,8 +109,37 @@
</item>
<item>
<widget class="QWidget" name="widget_3" native="true">
<layout class="QGridLayout" name="gridLayout_4">
<item row="0" column="2">
<layout class="QHBoxLayout" name="horizontalLayout_5">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="lbIndentLineColor">
<property name="text">
<string>Indent Line Color</string>
</property>
</widget>
</item>
<item>
<widget class="ColorEdit" name="colorIndentLine">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
@ -93,23 +152,6 @@
</property>
</spacer>
</item>
<item row="0" column="0">
<widget class="QLabel" name="lbIndentLineColor">
<property name="text">
<string>Indent Line Color</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="ColorEdit" name="colorIndentLine">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
</item>
</layout>
</widget>
</item>
@ -129,6 +171,21 @@
<string>Caret</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<property name="spacing">
<number>7</number>
</property>
<property name="leftMargin">
<number>11</number>
</property>
<property name="topMargin">
<number>11</number>
</property>
<property name="rightMargin">
<number>11</number>
</property>
<property name="bottomMargin">
<number>11</number>
</property>
<item>
<widget class="QCheckBox" name="chkEnhanceHome">
<property name="text">
@ -162,13 +219,20 @@
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<property name="spacing">
<number>7</number>
</property>
<item row="1" column="1">
<widget class="QComboBox" name="cbCaretForOverwrite"/>
<item row="1" column="0">
<widget class="QLabel" name="lbCaretForOverwrite">
<property name="text">
<string>Caret for overwriting mode</string>
</property>
</widget>
</item>
<item row="3" column="1">
<item row="4" column="1">
<widget class="ColorEdit" name="colorCaret">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
@ -178,6 +242,16 @@
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="lbCaretColor">
<property name="text">
<string>Caret Color</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QComboBox" name="cbCaretForOverwrite"/>
</item>
<item row="0" column="0">
<widget class="QLabel" name="lbCaretForInsert">
<property name="text">
@ -188,13 +262,6 @@
<item row="0" column="1">
<widget class="QComboBox" name="cbCaretForInsert"/>
</item>
<item row="3" column="0">
<widget class="QLabel" name="lbCaretColor">
<property name="text">
<string>Caret Color</string>
</property>
</widget>
</item>
<item row="0" column="2">
<spacer name="horizontalSpacer">
<property name="orientation">
@ -208,13 +275,6 @@
</property>
</spacer>
</item>
<item row="1" column="0">
<widget class="QLabel" name="lbCaretForOverwrite">
<property name="text">
<string>Caret for overwriting mode</string>
</property>
</widget>
</item>
<item row="2" column="0" colspan="3">
<widget class="QCheckBox" name="chkCaretUseTextColor">
<property name="text">
@ -234,6 +294,21 @@
<string>Highlight</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_6">
<property name="spacing">
<number>7</number>
</property>
<property name="leftMargin">
<number>11</number>
</property>
<property name="topMargin">
<number>11</number>
</property>
<property name="rightMargin">
<number>11</number>
</property>
<property name="bottomMargin">
<number>11</number>
</property>
<item>
<widget class="QCheckBox" name="chkHighlightMatchingBraces">
<property name="text">
@ -400,9 +475,36 @@
<bool>true</bool>
</property>
<layout class="QVBoxLayout" name="verticalLayout_5">
<property name="spacing">
<number>7</number>
</property>
<property name="leftMargin">
<number>11</number>
</property>
<property name="topMargin">
<number>11</number>
</property>
<property name="rightMargin">
<number>11</number>
</property>
<property name="bottomMargin">
<number>11</number>
</property>
<item>
<widget class="QWidget" name="widget_4" native="true">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="lbCaretColor_3">
<property name="text">
@ -441,8 +543,37 @@
</item>
<item>
<widget class="QWidget" name="widget_5" native="true">
<layout class="QGridLayout" name="gridLayout_5">
<item row="0" column="2">
<layout class="QHBoxLayout" name="horizontalLayout_6">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="lbCaretColor_5">
<property name="text">
<string>Right edge line color</string>
</property>
</widget>
</item>
<item>
<widget class="ColorEdit" name="colorRightEdgeLine">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_5">
<property name="orientation">
<enum>Qt::Horizontal</enum>
@ -455,23 +586,6 @@
</property>
</spacer>
</item>
<item row="0" column="0">
<widget class="QLabel" name="lbCaretColor_5">
<property name="text">
<string>Right edge line color</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="ColorEdit" name="colorRightEdgeLine">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
</item>
</layout>
</widget>
</item>

View File

@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>515</width>
<height>510</height>
<width>583</width>
<height>528</height>
</rect>
</property>
<property name="windowTitle">
@ -132,14 +132,14 @@
<item row="0" column="1">
<widget class="QRadioButton" name="rbAutoReformat">
<property name="text">
<string>Reformat Code</string>
<string>Reformat</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QRadioButton" name="rbRemoveTrailingSpaces">
<property name="text">
<string>Remove Trailing Spaces</string>
<string>Trim trailing spaces</string>
</property>
</widget>
</item>

View File

@ -905,7 +905,7 @@
</message>
<message>
<source>Can&apos;&apos;t find debugger in : &quot;%1&quot;</source>
<translation>Impossível encontrar depurador em &quot;%1&quot;</translation>
<translation type="vanished">Impossível encontrar depurador em &quot;%1&quot;</translation>
</message>
<message>
<source>GDB Server path error</source>
@ -963,6 +963,14 @@
<source>Can&apos;t open file &apos;%1&apos; for read.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Can&apos;&apos;t find debugger (gdb) in : &quot;%1&quot;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please check the &quot;program&quot; page of compiler settings.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Editor</name>
@ -1343,7 +1351,7 @@
</message>
<message>
<source>Enable Ligatures Support</source>
<translation>Habilitar suporte a ligaduras</translation>
<translation type="vanished">Habilitar suporte a ligaduras</translation>
</message>
<message>
<source>Size:</source>
@ -1393,6 +1401,14 @@
<source>Use Custom Font</source>
<translation>Usar fonte personalizada</translation>
</message>
<message>
<source>Show special chars</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable ligatures support</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>EditorGeneralWidget</name>
@ -1485,11 +1501,7 @@
</message>
<message>
<source>Reformat Code</source>
<translation type="unfinished">Reformatar código</translation>
</message>
<message>
<source>Remove Trailing Spaces</source>
<translation type="unfinished"></translation>
<translation type="obsolete">Reformatar código</translation>
</message>
<message>
<source>None</source>
@ -1499,6 +1511,14 @@
<source>Limits for Undo</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Reformat</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Trim trailing spaces</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>EditorSnippetWidget</name>
@ -2012,6 +2032,10 @@
<source>Command: %1 %2</source>
<translation>Comando: %1 %2</translation>
</message>
<message>
<source>Please check the &quot;program&quot; page of compiler settings.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FilePropertiesDialog</name>
@ -4050,7 +4074,7 @@
</message>
<message>
<source>You have not enabled debugging info (-g3) and/or stripped it from the executable (-s) in Compiler Options.&lt;BR /&gt;&lt;BR /&gt;Do you want to correct this now?</source>
<translation>Informação para depuração não ativada (-g3) e/or removida do executável (-s) nas opções do compilador.&lt;BR /&gt;&lt;BR /&gt;Quer alterar isso agora?</translation>
<translation type="vanished">Informação para depuração não ativada (-g3) e/or removida do executável (-s) nas opções do compilador.&lt;BR /&gt;&lt;BR /&gt;Quer alterar isso agora?</translation>
</message>
<message>
<source>Project not built</source>
@ -4816,6 +4840,26 @@
<source>FPS Problem Set Files (*.fps;*.xml)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Do you want to set it now?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You are not using a Debug compiler setting.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please use a Debug compiler set, or enable the &quot;generate debugging info (-g3)&quot; and disable the &quot;strip additional info (-s)&quot; options in the compiler settings.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please choose a Debug compiler set in the toolbar, or enable the &quot;generate debugging info (-g3)&quot; and disable the &quot;strip additional info (-s)&quot; options in the compiler set settings&apos;s &quot;settings&quot; page.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Trim trailing spaces</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>NewClassDialog</name>
@ -5308,6 +5352,14 @@
<source>- Command: %1 %2</source>
<translation>- Comando: %1 %2</translation>
</message>
<message>
<source>Make program &apos;%1&apos; doesn&apos;t exists!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please check the &quot;program&quot; page of compiler settings.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ProjectCompilerWidget</name>
@ -6009,23 +6061,23 @@
</message>
<message>
<source>The following %1 directories don&apos;t exist:</source>
<translation>As seguintes pastas não existem:</translation>
<translation type="vanished">As seguintes pastas não existem:</translation>
</message>
<message>
<source>binary</source>
<translation>binário</translation>
<translation type="vanished">binário</translation>
</message>
<message>
<source>No %1 directories have been specified.</source>
<translation>%1 pastas não foram especificadas</translation>
<translation type="vanished">%1 pastas não foram especificadas</translation>
</message>
<message>
<source>C include</source>
<translation>include C</translation>
<translation type="vanished">include C</translation>
</message>
<message>
<source>C++ include</source>
<translation>include C++</translation>
<translation type="vanished">include C++</translation>
</message>
<message>
<source>Cannot find the %1 &quot;%2&quot;</source>
@ -6173,11 +6225,11 @@
</message>
<message>
<source>The following problems were found during validation of compiler set &quot;%1&quot;:</source>
<translation>Os seguintes problemas foram encontrados durante a validação do compilador &quot;%1&quot;:</translation>
<translation type="vanished">Os seguintes problemas foram encontrados durante a validação do compilador &quot;%1&quot;:</translation>
</message>
<message>
<source>Would you like Red Panda C++ to remove them for you and add the default paths to the valid paths?</source>
<translation>Gostaria que o Red Panda C++ os removesse e acrescentasse caminhos padrões para validar?</translation>
<translation type="vanished">Gostaria que o Red Panda C++ os removesse e acrescentasse caminhos padrões para validar?</translation>
</message>
<message>
<source>Compiler set not configured.</source>
@ -6269,7 +6321,7 @@
</message>
<message>
<source>Leaving those directories will lead to problems during compilation.</source>
<translation>Deixar essas pastas resultará em problemas durante a compilação.</translation>
<translation type="vanished">Deixar essas pastas resultará em problemas durante a compilação.</translation>
</message>
<message>
<source>Gloabal Variable</source>

File diff suppressed because it is too large Load Diff

View File

@ -804,10 +804,6 @@
<source>Debugger not exists</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Can&apos;&apos;t find debugger in : &quot;%1&quot;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>GDB Server path error</source>
<translation type="unfinished"></translation>
@ -864,6 +860,14 @@
<source>Can&apos;t open file &apos;%1&apos; for read.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Can&apos;&apos;t find debugger (gdb) in : &quot;%1&quot;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please check the &quot;program&quot; page of compiler settings.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Editor</name>
@ -1234,10 +1238,6 @@
<source>Show only monospaced fonts</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Ligatures Support</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Size:</source>
<translation type="unfinished"></translation>
@ -1286,6 +1286,14 @@
<source>Use Custom Font</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show special chars</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable ligatures support</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>EditorGeneralWidget</name>
@ -1372,14 +1380,6 @@
<source>Action before saving files</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Reformat Code</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Remove Trailing Spaces</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>None</source>
<translation type="unfinished"></translation>
@ -1388,6 +1388,14 @@
<source>Limits for Undo</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Reformat</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Trim trailing spaces</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>EditorSnippetWidget</name>
@ -1893,6 +1901,10 @@
<source>Command: %1 %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please check the &quot;program&quot; page of compiler settings.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FilePropertiesDialog</name>
@ -3905,10 +3917,6 @@
<source>Enable debugging</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You have not enabled debugging info (-g3) and/or stripped it from the executable (-s) in Compiler Options.&lt;BR /&gt;&lt;BR /&gt;Do you want to correct this now?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Project not built</source>
<translation type="unfinished"></translation>
@ -4649,6 +4657,26 @@
<source>FPS Problem Set Files (*.fps;*.xml)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Do you want to set it now?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You are not using a Debug compiler setting.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please use a Debug compiler set, or enable the &quot;generate debugging info (-g3)&quot; and disable the &quot;strip additional info (-s)&quot; options in the compiler settings.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please choose a Debug compiler set in the toolbar, or enable the &quot;generate debugging info (-g3)&quot; and disable the &quot;strip additional info (-s)&quot; options in the compiler set settings&apos;s &quot;settings&quot; page.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Trim trailing spaces</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>NewClassDialog</name>
@ -5105,6 +5133,14 @@
<source>- Command: %1 %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Make program &apos;%1&apos; doesn&apos;t exists!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please check the &quot;program&quot; page of compiler settings.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ProjectCompilerWidget</name>
@ -5780,26 +5816,6 @@
<source>destructor</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The following %1 directories don&apos;t exist:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>binary</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>No %1 directories have been specified.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>C include</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>C++ include</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>C options</source>
<translation type="unfinished"></translation>
@ -5896,14 +5912,6 @@
<source>Confirm</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The following problems were found during validation of compiler set &quot;%1&quot;:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Would you like Red Panda C++ to remove them for you and add the default paths to the valid paths?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Compiler set not configuared.</source>
<translation type="unfinished"></translation>
@ -5980,10 +5988,6 @@
<source>Can&apos;t parse problem set file &apos;%1&apos;:%2</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Leaving those directories will lead to problems during compilation.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>C++ Language standard (-std)</source>
<translation type="unfinished"></translation>