- change: Don't stop debug when breakpoint can't be set

This commit is contained in:
Roy Qu 2023-02-22 10:39:20 +08:00
parent c204b39e00
commit 8ad1915acd
19 changed files with 121 additions and 271 deletions

View File

@ -4,8 +4,9 @@ Red Panda C++ Version 2.14
- fix: Enum value defines is not correctly parsed. - fix: Enum value defines is not correctly parsed.
- enhancement: Use differenct source file for each language in project templates - enhancement: Use differenct source file for each language in project templates
- fix: Ctrl+click is too sensitive. - fix: Ctrl+click is too sensitive.
- enhancement: Remove all breakpoints for a closed non-project file.
- enhancement: Check and remove all non-exist breakpoints before debug a project - enhancement: Check and remove all non-exist breakpoints before debug a project
- change: Remove nasm support
- change: Don't stop debug when breakpoint can't be set
Red Panda C++ Version 2.13 Red Panda C++ Version 2.13

View File

@ -158,11 +158,9 @@ void ProjectCompiler::writeMakeDefines(QFile &file)
// Only process source files // Only process source files
QString RelativeName = extractRelativePath(mProject->directory(), unit->fileName()); QString RelativeName = extractRelativePath(mProject->directory(), unit->fileName());
FileType fileType = getFileType(RelativeName); FileType fileType = getFileType(RelativeName);
if (fileType==FileType::ASM && !compilerSet()->canAssemble())
continue;
if (fileType == FileType::CSource || fileType == FileType::CppSource if (fileType == FileType::CSource || fileType == FileType::CppSource
|| fileType == FileType::ASM || fileType==FileType::GAS) { || fileType==FileType::GAS) {
if (!mProject->options().objectOutput.isEmpty()) { if (!mProject->options().objectOutput.isEmpty()) {
// ofile = C:\MyProgram\obj\main.o // ofile = C:\MyProgram\obj\main.o
QString fullObjFile = includeTrailingPathDelimiter(mProject->options().objectOutput) QString fullObjFile = includeTrailingPathDelimiter(mProject->options().objectOutput)
@ -235,8 +233,6 @@ void ProjectCompiler::writeMakeDefines(QFile &file)
cppCompileArguments+= " -D__DEBUG__"; cppCompileArguments+= " -D__DEBUG__";
} }
if (compilerSet()->canAssemble())
writeln(file,"ASM = " + extractFileName(compilerSet()->assembler()));
writeln(file,"CPP = " + extractFileName(compilerSet()->cppCompiler())); writeln(file,"CPP = " + extractFileName(compilerSet()->cppCompiler()));
writeln(file,"CC = " + extractFileName(compilerSet()->CCompiler())); writeln(file,"CC = " + extractFileName(compilerSet()->CCompiler()));
#ifdef Q_OS_WIN #ifdef Q_OS_WIN
@ -287,24 +283,6 @@ void ProjectCompiler::writeMakeDefines(QFile &file)
#ifdef Q_OS_WIN #ifdef Q_OS_WIN
writeln(file,"WINDRESFLAGS = " + mProject->options().resourceCmd); writeln(file,"WINDRESFLAGS = " + mProject->options().resourceCmd);
#endif #endif
if (compilerSet()->canAssemble()) {
QString asmFlags;
#ifdef Q_OS_WIN
if (Settings::CompilerSets::isTarget64Bit(compilerSet()->target())) {
if (mProject->getCompileOption(CC_CMD_OPT_POINTER_SIZE)=="32")
asmFlags = "-f win32 " + mProject->options().assemblerArgs;
else
asmFlags = "-f win64 " + mProject->options().assemblerArgs;
} else {
asmFlags = "-f win32 " + mProject->options().assemblerArgs;
}
#elif defined(Q_OS_LINUX)
asmFlags = "-f elf64";
#elif defined(Q_OS_MACOS)
asmFlags = "-f macho64";
#endif
writeln(file,"ASMFLAGS = " + asmFlags);
}
// This needs to be put in before the clean command. // This needs to be put in before the clean command.
if (mProject->options().type == ProjectType::DynamicLib) { if (mProject->options().type == ProjectType::DynamicLib) {
@ -384,7 +362,6 @@ void ProjectCompiler::writeMakeObjFilesRules(QFile &file)
FileType fileType = getFileType(unit->fileName()); FileType fileType = getFileType(unit->fileName());
// Only process source files // Only process source files
if (fileType!=FileType::CSource && fileType!=FileType::CppSource if (fileType!=FileType::CSource && fileType!=FileType::CppSource
&& fileType!=FileType::ASM
&& fileType!=FileType::GAS) && fileType!=FileType::GAS)
continue; continue;
@ -504,17 +481,12 @@ void ProjectCompiler::writeMakeObjFilesRules(QFile &file)
if (!mOnlyCheckSyntax) { if (!mOnlyCheckSyntax) {
writeln(file, "\t$(CC) -c " + genMakePath1(shortFileName) + " -o \"" + objFileName2 + "\" $(CFLAGS) " + encodingStr); writeln(file, "\t$(CC) -c " + genMakePath1(shortFileName) + " -o \"" + objFileName2 + "\" $(CFLAGS) " + encodingStr);
} }
} else if (fileType==FileType::ASM) {
if (!mOnlyCheckSyntax) {
writeln(file, "\t$(ASM) " + genMakePath1(shortFileName) + " -o \"" + objFileName2 + "\" $(ASMFLAGS) ");
}
} }
} }
} }
#ifdef Q_OS_WIN #ifdef Q_OS_WIN
if (!mProject->options().privateResource.isEmpty()) { if (!mProject->options().privateResource.isEmpty()) {
// Concatenate all resource include directories // Concatenate all resource include directories
QString ResIncludes(" "); QString ResIncludes(" ");
for (int i=0;i<mProject->options().resourceIncludes.count();i++) { for (int i=0;i<mProject->options().resourceIncludes.count();i++) {

View File

@ -196,8 +196,6 @@ bool Debugger::start(int compilerSetIndex, const QString& inferior, const QStrin
&MainWindow::setActiveBreakpoint); &MainWindow::setActiveBreakpoint);
connect(mReader, &DebugReader::errorNoSymbolTable,pMainWindow, connect(mReader, &DebugReader::errorNoSymbolTable,pMainWindow,
&MainWindow::stopDebugForNoSymbolTable); &MainWindow::stopDebugForNoSymbolTable);
connect(mReader, &DebugReader::errorNoSourceFile,pMainWindow,
&MainWindow::stopDebugForNoSourceFile);
connect(mReader, &DebugReader::inferiorStopped,this, connect(mReader, &DebugReader::inferiorStopped,this,
&Debugger::refreshAll); &Debugger::refreshAll);
@ -1198,11 +1196,6 @@ void DebugReader::processError(const QByteArray &errorLine)
emit errorNoSymbolTable(); emit errorNoSymbolTable();
return; return;
} }
idx=s.indexOf(",msg=\"No source file named ");
if (idx>0) {
emit errorNoSourceFile();
return;
}
} }
void DebugReader::processResultRecord(const QByteArray &line) void DebugReader::processResultRecord(const QByteArray &line)

View File

@ -519,7 +519,6 @@ signals:
void cmdFinished(); void cmdFinished();
void errorNoSymbolTable(); void errorNoSymbolTable();
void errorNoSourceFile();
void breakpointInfoGetted(const QString& filename, int line, int number); void breakpointInfoGetted(const QString& filename, int line, int number);
void inferiorContinued(); void inferiorContinued();
void inferiorStopped(const QString& filename, int line, bool setFocus); void inferiorStopped(const QString& filename, int line, bool setFocus);

View File

@ -2177,7 +2177,8 @@ void MainWindow::debug()
// mDebugger->setUseUTF8(e->fileEncoding() == ENCODING_UTF8 || e->fileEncoding() == ENCODING_UTF8_BOM); // mDebugger->setUseUTF8(e->fileEncoding() == ENCODING_UTF8 || e->fileEncoding() == ENCODING_UTF8_BOM);
foreach(const PProjectUnit& unit, mProject->unitList()) { foreach(const PProjectUnit& unit, mProject->unitList()) {
unitFiles.insert(unit->fileName()); if (fileExists(unit->fileName()))
unitFiles.insert(unit->fileName());
} }
mDebugger->deleteInvalidProjectBreakpoints(unitFiles); mDebugger->deleteInvalidProjectBreakpoints(unitFiles);
if (!mDebugger->start(mProject->options().compilerSet, filePath, binDirs)) if (!mDebugger->start(mProject->options().compilerSet, filePath, binDirs))
@ -4965,20 +4966,6 @@ void MainWindow::stopDebugForNoSymbolTable()
); );
} }
void MainWindow::stopDebugForNoSourceFile()
{
mDebugger->stop();
QMessageBox::critical(this,
tr("Debug Failed"),
tr("The executable doesn't have enough debug info to set breakpoint.")
+"<BR /><BR />"
+tr("Please choose a Debug compiler set in the toolbar, or turn on your compiler set's \"Generate debug info (-g3)\" option in the options dialog.")
+tr("Then recompile and retry debug.")
+"<BR /><BR/>"
+tr("Or you can remove all breakpoints, open cpu info dialog, and try debug machine codes.")
);
}
void MainWindow::onTodoParsingFile(const QString& filename) void MainWindow::onTodoParsingFile(const QString& filename)
{ {
mTodoModel.removeTodosForFile(filename); mTodoModel.removeTodosForFile(filename);

View File

@ -251,7 +251,6 @@ public slots:
void disableDebugActions(); void disableDebugActions();
void enableDebugActions(); void enableDebugActions();
void stopDebugForNoSymbolTable(); void stopDebugForNoSymbolTable();
void stopDebugForNoSourceFile();
void onTodoParsingFile(const QString& filename); void onTodoParsingFile(const QString& filename);
void onTodoParseStarted(); void onTodoParseStarted();
void onTodoFound(const QString& filename, int lineNo, int ch, const QString& line); void onTodoFound(const QString& filename, int lineNo, int ch, const QString& line);

View File

@ -961,8 +961,7 @@ bool Project::assignTemplate(const std::shared_ptr<ProjectTemplate> aTemplate, b
unit = newUnit(mRootNode, target); unit = newUnit(mRootNode, target);
FileType fileType=getFileType(unit->fileName()); FileType fileType=getFileType(unit->fileName());
if (fileType==FileType::ASM if ( fileType==FileType::GAS
|| fileType==FileType::GAS
|| isCFile(unit->fileName()) || isHFile(unit->fileName())) { || isCFile(unit->fileName()) || isHFile(unit->fileName())) {
Editor * editor = mEditorList->newEditor( Editor * editor = mEditorList->newEditor(
unit->fileName(), unit->fileName(),
@ -1058,8 +1057,6 @@ bool Project::saveAsTemplate(const QString &templateFolder,
ini->SetValue("Project", "Linker",textToLines(mOptions.linkerCmd).join(";CONFIG_LINE;").toUtf8()); ini->SetValue("Project", "Linker",textToLines(mOptions.linkerCmd).join(";CONFIG_LINE;").toUtf8());
if (!mOptions.resourceCmd.isEmpty()) if (!mOptions.resourceCmd.isEmpty())
ini->SetValue("Project", "ResourceCommand",textToLines(mOptions.resourceCmd).join(";CONFIG_LINE;").toUtf8()); ini->SetValue("Project", "ResourceCommand",textToLines(mOptions.resourceCmd).join(";CONFIG_LINE;").toUtf8());
if (!mOptions.assemblerArgs.isEmpty())
ini->SetValue("Project", "AssemblerArgs",textToLines(mOptions.assemblerArgs).join(";CONFIG_LINE;").toUtf8());
ini->SetBoolValue("Project", "IsCpp", mOptions.isCpp); ini->SetBoolValue("Project", "IsCpp", mOptions.isCpp);
if (mOptions.includeVersionInfo) if (mOptions.includeVersionInfo)
ini->SetBoolValue("Project", "IncludeVersionInfo", true); ini->SetBoolValue("Project", "IncludeVersionInfo", true);
@ -1158,7 +1155,6 @@ void Project::saveOptions()
ini.SetValue("Project","PrivateResource", toByteArray(mOptions.privateResource)); ini.SetValue("Project","PrivateResource", toByteArray(mOptions.privateResource));
ini.SetValue("Project","Compiler", toByteArray(textToLines(mOptions.compilerCmd).join(";CONFIG_LINE;"))); ini.SetValue("Project","Compiler", toByteArray(textToLines(mOptions.compilerCmd).join(";CONFIG_LINE;")));
ini.SetValue("Project","CppCompiler", toByteArray(textToLines(mOptions.cppCompilerCmd).join(";CONFIG_LINE;"))); ini.SetValue("Project","CppCompiler", toByteArray(textToLines(mOptions.cppCompilerCmd).join(";CONFIG_LINE;")));
ini.SetValue("Project","AssemblerArgs",toByteArray(textToLines(mOptions.assemblerArgs).join(";CONFIG_LINE;")));
ini.SetValue("Project","Linker", toByteArray(textToLines(mOptions.linkerCmd).join(";CONFIG_LINE;"))); ini.SetValue("Project","Linker", toByteArray(textToLines(mOptions.linkerCmd).join(";CONFIG_LINE;")));
ini.SetValue("Project", "ResourceCommand", toByteArray(textToLines(mOptions.resourceCmd).join(";CONFIG_LINE;"))); ini.SetValue("Project", "ResourceCommand", toByteArray(textToLines(mOptions.resourceCmd).join(";CONFIG_LINE;")));
ini.SetLongValue("Project","IsCpp", mOptions.isCpp); ini.SetLongValue("Project","IsCpp", mOptions.isCpp);
@ -1293,11 +1289,6 @@ PProjectUnit Project::internalAddUnit(const QString &inFileName, PProjectModelNo
newUnit->setCompileCpp(false); newUnit->setCompileCpp(false);
newUnit->setLink(true); newUnit->setLink(true);
break; break;
case FileType::ASM:
newUnit->setCompile(true);
newUnit->setCompileCpp(false);
newUnit->setLink(true);
break;
case FileType::CSource: case FileType::CSource:
newUnit->setCompile(true); newUnit->setCompile(true);
newUnit->setCompileCpp(false); newUnit->setCompileCpp(false);
@ -1970,7 +1961,6 @@ void Project::loadOptions(SimpleIni& ini)
mOptions.cppCompilerCmd = fromByteArray(ini.GetValue("Project", "CppCompiler", "")).replace(";CONFIG_LINE;","\n"); mOptions.cppCompilerCmd = fromByteArray(ini.GetValue("Project", "CppCompiler", "")).replace(";CONFIG_LINE;","\n");
mOptions.linkerCmd = fromByteArray(ini.GetValue("Project", "Linker", "")).replace(";CONFIG_LINE;","\n"); mOptions.linkerCmd = fromByteArray(ini.GetValue("Project", "Linker", "")).replace(";CONFIG_LINE;","\n");
mOptions.resourceCmd = fromByteArray(ini.GetValue("Project", "ResourceCommand", "")).replace(";CONFIG_LINE;","\n"); mOptions.resourceCmd = fromByteArray(ini.GetValue("Project", "ResourceCommand", "")).replace(";CONFIG_LINE;","\n");
mOptions.assemblerArgs = fromByteArray(ini.GetValue("Project","AssemblerArgs","")).replace(";CONFIG_LINE;","\n");
mOptions.binDirs = absolutePaths(fromByteArray(ini.GetValue("Project", "Bins", "")).split(";", mOptions.binDirs = absolutePaths(fromByteArray(ini.GetValue("Project", "Bins", "")).split(";",
#if QT_VERSION >= QT_VERSION_CHECK(5,15,0) #if QT_VERSION >= QT_VERSION_CHECK(5,15,0)
Qt::SkipEmptyParts Qt::SkipEmptyParts

View File

@ -67,7 +67,6 @@ struct ProjectOptions{
QString cppCompilerCmd; QString cppCompilerCmd;
QString linkerCmd; QString linkerCmd;
QString resourceCmd; QString resourceCmd;
QString assemblerArgs;
QStringList binDirs; QStringList binDirs;
QStringList includeDirs; QStringList includeDirs;
QStringList libDirs; QStringList libDirs;

View File

@ -147,7 +147,6 @@ void ProjectTemplate::readTemplateFile(const QString &fileName)
mOptions.cppCompilerCmd = fromByteArray(mIni->GetValue("Project", "CppCompiler", "")); mOptions.cppCompilerCmd = fromByteArray(mIni->GetValue("Project", "CppCompiler", ""));
mOptions.linkerCmd = fromByteArray(mIni->GetValue("Project", "Linker","")); mOptions.linkerCmd = fromByteArray(mIni->GetValue("Project", "Linker",""));
mOptions.resourceCmd = fromByteArray(mIni->GetValue("Project", "ResourceCommand", "")); mOptions.resourceCmd = fromByteArray(mIni->GetValue("Project", "ResourceCommand", ""));
mOptions.assemblerArgs = fromByteArray(mIni->GetValue("Project","AssemblerArgs",""));
mOptions.isCpp = mIni->GetBoolValue("Project", "IsCpp", false); mOptions.isCpp = mIni->GetBoolValue("Project", "IsCpp", false);
mOptions.includeVersionInfo = mIni->GetBoolValue("Project", "IncludeVersionInfo", false); mOptions.includeVersionInfo = mIni->GetBoolValue("Project", "IncludeVersionInfo", false);
mOptions.supportXPThemes = mIni->GetBoolValue("Project", "SupportXPThemes", false); mOptions.supportXPThemes = mIni->GetBoolValue("Project", "SupportXPThemes", false);

View File

@ -1709,7 +1709,6 @@ Settings::CompilerSet::CompilerSet(const Settings::CompilerSet &set):
mDebugger(set.mDebugger), mDebugger(set.mDebugger),
mResourceCompiler(set.mResourceCompiler), mResourceCompiler(set.mResourceCompiler),
mDebugServer(set.mDebugServer), mDebugServer(set.mDebugServer),
mAssembler(set.assembler()),
mBinDirs(set.mBinDirs), mBinDirs(set.mBinDirs),
mCIncludeDirs(set.mCIncludeDirs), mCIncludeDirs(set.mCIncludeDirs),
@ -2335,7 +2334,6 @@ void Settings::CompilerSet::setExecutables()
} }
mMake = findProgramInBinDirs(MAKE_PROGRAM); mMake = findProgramInBinDirs(MAKE_PROGRAM);
mResourceCompiler = findProgramInBinDirs(WINDRES_PROGRAM); mResourceCompiler = findProgramInBinDirs(WINDRES_PROGRAM);
mAssembler = findProgramInBinDirs(ASSEMBLER);
} }
void Settings::CompilerSet::setDirectories(const QString& binDir,CompilerType compilerType) void Settings::CompilerSet::setDirectories(const QString& binDir,CompilerType compilerType)
@ -2513,11 +2511,6 @@ bool Settings::CompilerSet::canDebug()
return fileExists(mDebugger); return fileExists(mDebugger);
} }
bool Settings::CompilerSet::canAssemble()
{
return fileExists(mAssembler);
}
void Settings::CompilerSet::setUserInput() void Settings::CompilerSet::setUserInput()
{ {
mUseCustomCompileParams = false; mUseCustomCompileParams = false;
@ -2563,16 +2556,6 @@ QByteArray Settings::CompilerSet::getCompilerOutput(const QString &binDir, const
return result.trimmed(); return result.trimmed();
} }
const QString &Settings::CompilerSet::assembler() const
{
return mAssembler;
}
void Settings::CompilerSet::setAssembler(const QString &newAssembler)
{
mAssembler = newAssembler;
}
Settings::CompilerSet::CompilationStage Settings::CompilerSet::compilationStage() const Settings::CompilerSet::CompilationStage Settings::CompilerSet::compilationStage() const
{ {
return mCompilationStage; return mCompilationStage;
@ -3079,7 +3062,6 @@ void Settings::CompilerSets::saveSet(int index)
savePath("debug_server", pSet->debugServer()); savePath("debug_server", pSet->debugServer());
savePath("make", pSet->make()); savePath("make", pSet->make());
savePath("windres", pSet->resourceCompiler()); savePath("windres", pSet->resourceCompiler());
savePath("assembler", pSet->assembler());
mSettings->mSettings.remove("Options"); mSettings->mSettings.remove("Options");
foreach(const PCompilerOption& option, CompilerInfoManager::getInstance()->getCompilerOptions(pSet->compilerType())) { foreach(const PCompilerOption& option, CompilerInfoManager::getInstance()->getCompilerOptions(pSet->compilerType())) {
@ -3156,7 +3138,6 @@ Settings::PCompilerSet Settings::CompilerSets::loadSet(int index)
pSet->setDebugServer(loadPath("debug_server")); pSet->setDebugServer(loadPath("debug_server"));
pSet->setMake(loadPath("make")); pSet->setMake(loadPath("make"));
pSet->setResourceCompiler(loadPath("windres")); pSet->setResourceCompiler(loadPath("windres"));
pSet->setAssembler(loadPath("assembler"));
pSet->setDumpMachine(mSettings->mSettings.value("DumpMachine").toString()); pSet->setDumpMachine(mSettings->mSettings.value("DumpMachine").toString());
pSet->setVersion(mSettings->mSettings.value("Version").toString()); pSet->setVersion(mSettings->mSettings.value("Version").toString());

View File

@ -1320,7 +1320,6 @@ public:
bool canCompileCPP(); bool canCompileCPP();
bool canMake(); bool canMake();
bool canDebug(); bool canDebug();
bool canAssemble();
// bool dirsValid(QString& msg); // bool dirsValid(QString& msg);
// bool validateExes(QString& msg); // bool validateExes(QString& msg);
//properties //properties
@ -1405,8 +1404,6 @@ public:
QString getOutputFilename(const QString& sourceFilename,Settings::CompilerSet::CompilationStage stage); QString getOutputFilename(const QString& sourceFilename,Settings::CompilerSet::CompilationStage stage);
bool isOutputExecutable(); bool isOutputExecutable();
bool isOutputExecutable(Settings::CompilerSet::CompilationStage stage); bool isOutputExecutable(Settings::CompilerSet::CompilationStage stage);
const QString &assembler() const;
void setAssembler(const QString &newAssembler);
private: private:
void setDirectories(const QString& binDir, CompilerType mCompilerType); void setDirectories(const QString& binDir, CompilerType mCompilerType);
@ -1427,7 +1424,6 @@ public:
QString mDebugger; QString mDebugger;
QString mResourceCompiler; QString mResourceCompiler;
QString mDebugServer; QString mDebugServer;
QString mAssembler;
// Directories, mostly hardcoded too // Directories, mostly hardcoded too
QStringList mBinDirs; QStringList mBinDirs;

View File

@ -98,7 +98,6 @@ static void loadCompilerSetSettings(Settings::PCompilerSet pSet, Ui::CompilerSet
ui->txtDebugger->setText(pSet->debugger()); ui->txtDebugger->setText(pSet->debugger());
ui->txtGDBServer->setText(pSet->debugServer()); ui->txtGDBServer->setText(pSet->debugServer());
ui->txtResourceCompiler->setText(pSet->resourceCompiler()); ui->txtResourceCompiler->setText(pSet->resourceCompiler());
ui->txtAssembler->setText(pSet->assembler());
if (pSet->execCharset() == ENCODING_AUTO_DETECT if (pSet->execCharset() == ENCODING_AUTO_DETECT
|| pSet->execCharset() == ENCODING_SYSTEM_DEFAULT || pSet->execCharset() == ENCODING_SYSTEM_DEFAULT
@ -207,7 +206,6 @@ void CompilerSetOptionWidget::saveCurrentCompilerSet()
pSet->setDebugger(ui->txtDebugger->text().trimmed()); pSet->setDebugger(ui->txtDebugger->text().trimmed());
pSet->setDebugServer(ui->txtGDBServer->text().trimmed()); pSet->setDebugServer(ui->txtGDBServer->text().trimmed());
pSet->setResourceCompiler(ui->txtResourceCompiler->text().trimmed()); pSet->setResourceCompiler(ui->txtResourceCompiler->text().trimmed());
pSet->setAssembler(ui->txtAssembler->text().trimmed());
pSet->binDirs()=mBinDirWidget->dirList(); pSet->binDirs()=mBinDirWidget->dirList();
@ -333,7 +331,6 @@ void CompilerSetOptionWidget::updateIcons(const QSize& /*size*/)
pIconsManager->setIcon(ui->btnChooseGDB, IconsManager::ACTION_FILE_OPEN_FOLDER); pIconsManager->setIcon(ui->btnChooseGDB, IconsManager::ACTION_FILE_OPEN_FOLDER);
pIconsManager->setIcon(ui->btnChooseGDBServer, IconsManager::ACTION_FILE_OPEN_FOLDER); pIconsManager->setIcon(ui->btnChooseGDBServer, IconsManager::ACTION_FILE_OPEN_FOLDER);
pIconsManager->setIcon(ui->btnChooseMake, IconsManager::ACTION_FILE_OPEN_FOLDER); pIconsManager->setIcon(ui->btnChooseMake, IconsManager::ACTION_FILE_OPEN_FOLDER);
pIconsManager->setIcon(ui->btnChooseAssembler, IconsManager::ACTION_FILE_OPEN_FOLDER);
pIconsManager->setIcon(ui->btnChooseResourceCompiler, IconsManager::ACTION_FILE_OPEN_FOLDER); pIconsManager->setIcon(ui->btnChooseResourceCompiler, IconsManager::ACTION_FILE_OPEN_FOLDER);
} }
@ -433,15 +430,3 @@ void CompilerSetOptionWidget::on_btnChooseResourceCompiler_clicked()
ui->txtResourceCompiler->setText(fileName); ui->txtResourceCompiler->setText(fileName);
} }
void CompilerSetOptionWidget::on_btnChooseAssembler_clicked()
{
QString fileName = QFileDialog::getOpenFileName(
this,
tr("Locate nasm"),
getBinDir(),
tr("Executable files (*.exe)"));
if (fileExists(fileName))
ui->txtAssembler->setText(fileName);
}

View File

@ -70,7 +70,6 @@ private slots:
void on_btnChooseGDB_clicked(); void on_btnChooseGDB_clicked();
void on_btnChooseGDBServer_clicked(); void on_btnChooseGDBServer_clicked();
void on_btnChooseResourceCompiler_clicked(); void on_btnChooseResourceCompiler_clicked();
void on_btnChooseAssembler_clicked();
}; };
#endif // COMPILERSETOPTIONWIDGET_H #endif // COMPILERSETOPTIONWIDGET_H

View File

@ -110,7 +110,7 @@
<item> <item>
<widget class="QTabWidget" name="settingTabs"> <widget class="QTabWidget" name="settingTabs">
<property name="currentIndex"> <property name="currentIndex">
<number>0</number> <number>3</number>
</property> </property>
<property name="movable"> <property name="movable">
<bool>false</bool> <bool>false</bool>
@ -249,19 +249,6 @@
<enum>QFrame::Raised</enum> <enum>QFrame::Raised</enum>
</property> </property>
<layout class="QGridLayout" name="gridLayout"> <layout class="QGridLayout" name="gridLayout">
<item row="0" column="1">
<widget class="QLineEdit" name="txtCCompiler"/>
</item>
<item row="6" column="1">
<widget class="QLineEdit" name="txtAssembler"/>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>make</string>
</property>
</widget>
</item>
<item row="3" column="2"> <item row="3" column="2">
<widget class="QToolButton" name="btnChooseGDB"> <widget class="QToolButton" name="btnChooseGDB">
<property name="toolTip"> <property name="toolTip">
@ -277,127 +264,6 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>C++ Compiler(g++)</string>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="label_8">
<property name="text">
<string>gdb server</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="txtMake"/>
</item>
<item row="1" column="2">
<widget class="QToolButton" name="btnChooseCppCompiler">
<property name="toolTip">
<string>Choose C++ Compiler</string>
</property>
<property name="text">
<string>...</string>
</property>
<property name="icon">
<iconset>
<normalon>:/icons/images/newlook24/053-open.png</normalon>
</iconset>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QToolButton" name="btnChooseMake">
<property name="toolTip">
<string>Choose make</string>
</property>
<property name="text">
<string>...</string>
</property>
<property name="icon">
<iconset>
<normalon>:/icons/images/newlook24/053-open.png</normalon>
</iconset>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QLabel" name="label_9">
<property name="text">
<string>Assembler</string>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QLineEdit" name="txtResourceCompiler"/>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>C Compiler(gcc)</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="txtCppCompiler"/>
</item>
<item row="6" column="2">
<widget class="QToolButton" name="btnChooseAssembler">
<property name="text">
<string>...</string>
</property>
<property name="icon">
<iconset resource="../icons.qrc">
<normaloff>:/icons/images/newlook24/053-open.png</normaloff>:/icons/images/newlook24/053-open.png</iconset>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QToolButton" name="btnChooseCCompiler">
<property name="toolTip">
<string>Choose C Compiler</string>
</property>
<property name="text">
<string>...</string>
</property>
<property name="icon">
<iconset>
<normalon>:/icons/images/newlook24/053-open.png</normalon>
</iconset>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QLabel" name="label_6">
<property name="text">
<string>Resource Compilerwindres)</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QLineEdit" name="txtGDBServer"/>
</item>
<item row="3" column="1">
<widget class="QLineEdit" name="txtDebugger"/>
</item>
<item row="5" column="2">
<widget class="QToolButton" name="btnChooseResourceCompiler">
<property name="toolTip">
<string>Choose Resource Compiler</string>
</property>
<property name="text">
<string>...</string>
</property>
<property name="icon">
<iconset>
<normalon>:/icons/images/newlook24/053-open.png</normalon>
</iconset>
</property>
</widget>
</item>
<item row="4" column="2"> <item row="4" column="2">
<widget class="QToolButton" name="btnChooseGDBServer"> <widget class="QToolButton" name="btnChooseGDBServer">
<property name="text"> <property name="text">
@ -409,6 +275,119 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="5" column="0">
<widget class="QLabel" name="label_6">
<property name="text">
<string>Resource Compilerwindres)</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QLineEdit" name="txtGDBServer"/>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="txtCppCompiler"/>
</item>
<item row="2" column="2">
<widget class="QToolButton" name="btnChooseMake">
<property name="toolTip">
<string>Choose make</string>
</property>
<property name="text">
<string>...</string>
</property>
<property name="icon">
<iconset>
<normalon>:/icons/images/newlook24/053-open.png</normalon>
</iconset>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>C Compiler(gcc)</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>make</string>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QLineEdit" name="txtResourceCompiler"/>
</item>
<item row="1" column="2">
<widget class="QToolButton" name="btnChooseCppCompiler">
<property name="toolTip">
<string>Choose C++ Compiler</string>
</property>
<property name="text">
<string>...</string>
</property>
<property name="icon">
<iconset>
<normalon>:/icons/images/newlook24/053-open.png</normalon>
</iconset>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QToolButton" name="btnChooseCCompiler">
<property name="toolTip">
<string>Choose C Compiler</string>
</property>
<property name="text">
<string>...</string>
</property>
<property name="icon">
<iconset>
<normalon>:/icons/images/newlook24/053-open.png</normalon>
</iconset>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="txtCCompiler"/>
</item>
<item row="4" column="0">
<widget class="QLabel" name="label_8">
<property name="text">
<string>gdb server</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="txtMake"/>
</item>
<item row="3" column="1">
<widget class="QLineEdit" name="txtDebugger"/>
</item>
<item row="5" column="2">
<widget class="QToolButton" name="btnChooseResourceCompiler">
<property name="toolTip">
<string>Choose Resource Compiler</string>
</property>
<property name="text">
<string>...</string>
</property>
<property name="icon">
<iconset>
<normalon>:/icons/images/newlook24/053-open.png</normalon>
</iconset>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>C++ Compiler(g++)</string>
</property>
</widget>
</item>
<item row="3" column="0"> <item row="3" column="0">
<widget class="QLabel" name="label_5"> <widget class="QLabel" name="label_5">
<property name="text"> <property name="text">

View File

@ -52,7 +52,6 @@ void ProjectCompileParamatersWidget::doLoad()
ui->txtCPPCompiler->setPlainText(pMainWindow->project()->options().cppCompilerCmd); ui->txtCPPCompiler->setPlainText(pMainWindow->project()->options().cppCompilerCmd);
ui->txtLinker->setPlainText(pMainWindow->project()->options().linkerCmd); ui->txtLinker->setPlainText(pMainWindow->project()->options().linkerCmd);
ui->txtResource->setPlainText(pMainWindow->project()->options().resourceCmd); ui->txtResource->setPlainText(pMainWindow->project()->options().resourceCmd);
ui->txtAssembler->setPlainText(pMainWindow->project()->options().assemblerArgs);
ui->grpAllowParallelBuilding->setChecked(pMainWindow->project()->options().allowParallelBuilding); ui->grpAllowParallelBuilding->setChecked(pMainWindow->project()->options().allowParallelBuilding);
ui->spinParallelJobs->setValue(pMainWindow->project()->options().parellelBuildingJobs); ui->spinParallelJobs->setValue(pMainWindow->project()->options().parellelBuildingJobs);
} }
@ -63,7 +62,6 @@ void ProjectCompileParamatersWidget::doSave()
pMainWindow->project()->options().cppCompilerCmd = ui->txtCPPCompiler->toPlainText(); pMainWindow->project()->options().cppCompilerCmd = ui->txtCPPCompiler->toPlainText();
pMainWindow->project()->options().linkerCmd = ui->txtLinker->toPlainText(); pMainWindow->project()->options().linkerCmd = ui->txtLinker->toPlainText();
pMainWindow->project()->options().resourceCmd = ui->txtResource->toPlainText(); pMainWindow->project()->options().resourceCmd = ui->txtResource->toPlainText();
pMainWindow->project()->options().assemblerArgs = ui->txtAssembler->toPlainText();
pMainWindow->project()->options().allowParallelBuilding = ui->grpAllowParallelBuilding->isChecked(); pMainWindow->project()->options().allowParallelBuilding = ui->grpAllowParallelBuilding->isChecked();
pMainWindow->project()->options().parellelBuildingJobs = ui->spinParallelJobs->value(); pMainWindow->project()->options().parellelBuildingJobs = ui->spinParallelJobs->value();
pMainWindow->project()->saveOptions(); pMainWindow->project()->saveOptions();

View File

@ -52,7 +52,7 @@
<item> <item>
<widget class="QTabWidget" name="tabCommands"> <widget class="QTabWidget" name="tabCommands">
<property name="currentIndex"> <property name="currentIndex">
<number>4</number> <number>3</number>
</property> </property>
<widget class="QWidget" name="tabCCompiler"> <widget class="QWidget" name="tabCCompiler">
<attribute name="title"> <attribute name="title">
@ -181,28 +181,6 @@
</item> </item>
</layout> </layout>
</widget> </widget>
<widget class="QWidget" name="tabAssembler">
<attribute name="title">
<string>Assembler</string>
</attribute>
<layout class="QHBoxLayout" name="horizontalLayout_6">
<property name="leftMargin">
<number>5</number>
</property>
<property name="topMargin">
<number>5</number>
</property>
<property name="rightMargin">
<number>5</number>
</property>
<property name="bottomMargin">
<number>5</number>
</property>
<item>
<widget class="QTextEdit" name="txtAssembler"/>
</item>
</layout>
</widget>
</widget> </widget>
</item> </item>
</layout> </layout>

View File

@ -36,7 +36,6 @@ SystemConsts::SystemConsts(): mDefaultFileFilters()
addDefaultFileFilter(QObject::tr("C++ files"),"*.cpp *.cc *.cxx"); addDefaultFileFilter(QObject::tr("C++ files"),"*.cpp *.cc *.cxx");
addDefaultFileFilter(QObject::tr("Header files"),"*.h *.hh *.hpp"); addDefaultFileFilter(QObject::tr("Header files"),"*.h *.hh *.hpp");
addDefaultFileFilter(QObject::tr("GAS files"),"*.s *.S"); addDefaultFileFilter(QObject::tr("GAS files"),"*.s *.S");
addDefaultFileFilter(QObject::tr("ASM files"),"*.asm");
addDefaultFileFilter(QObject::tr("Lua files"),"*.lua"); addDefaultFileFilter(QObject::tr("Lua files"),"*.lua");
addFileFilter(mIconFileFilters, QObject::tr("Icon files"), "*.ico"); addFileFilter(mIconFileFilters, QObject::tr("Icon files"), "*.ico");

View File

@ -83,9 +83,6 @@ QStringList splitProcessCommand(const QString &cmd)
FileType getFileType(const QString &filename) FileType getFileType(const QString &filename)
{ {
if (filename.endsWith(".asm",PATH_SENSITIVITY)) {
return FileType::ASM;
}
if (filename.endsWith(".s",PATH_SENSITIVITY)) { if (filename.endsWith(".s",PATH_SENSITIVITY)) {
return FileType::GAS; return FileType::GAS;
} }

View File

@ -32,7 +32,6 @@ using SimpleIni = CSimpleIniA;
using PSimpleIni = std::shared_ptr<SimpleIni>; using PSimpleIni = std::shared_ptr<SimpleIni>;
enum class FileType{ enum class FileType{
ASM, // asm source file (.asm)
GAS, // GNU assembler source file (.s) GAS, // GNU assembler source file (.s)
LUA, // lua file (.lua) LUA, // lua file (.lua)
CSource, // c source file (.c) CSource, // c source file (.c)