- enhancement: add select current word command in the Selection menu
- change: add Selection menu - enhancement: add memory view rows/columns settings in the settings dialog -> debugger -> general panel - enhancement: add "Go to Line..." in the Code menu
This commit is contained in:
parent
f20d5f1b07
commit
17eb0c1f94
4
NEWS.md
4
NEWS.md
|
@ -5,6 +5,10 @@ Red Panda C++ Version 1.1.5
|
||||||
- enhancement: double clicking a non-text file in the project's view, will open it with external program
|
- enhancement: double clicking a non-text file in the project's view, will open it with external program
|
||||||
- fix: correctly update the start postion of selection after code completion
|
- fix: correctly update the start postion of selection after code completion
|
||||||
- enhancement: add a demo template for raylib/rdrawing predefined colors
|
- enhancement: add a demo template for raylib/rdrawing predefined colors
|
||||||
|
- enhancement: add select current word command in the Selection menu
|
||||||
|
- change: add Selection menu
|
||||||
|
- enhancement: add memory view rows/columns settings in the settings dialog -> debugger -> general panel
|
||||||
|
- enhancement: add "Go to Line..." in the Code menu
|
||||||
|
|
||||||
Red Panda C++ Version 1.1.4
|
Red Panda C++ Version 1.1.4
|
||||||
|
|
||||||
|
|
|
@ -784,6 +784,18 @@
|
||||||
<source>Show disassembly code in blend mode</source>
|
<source>Show disassembly code in blend mode</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Memory View</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Memory View Rows</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Memory View Columns</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>Debugger</name>
|
<name>Debugger</name>
|
||||||
|
@ -4496,6 +4508,26 @@
|
||||||
<source>untitled%1</source>
|
<source>untitled%1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Selection</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Select Word</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Go to Line...</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Go to Line</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Line</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>NewClassDialog</name>
|
<name>NewClassDialog</name>
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -784,6 +784,18 @@
|
||||||
<source>Show disassembly code in blend mode</source>
|
<source>Show disassembly code in blend mode</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Memory View</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Memory View Rows</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Memory View Columns</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>Debugger</name>
|
<name>Debugger</name>
|
||||||
|
@ -4496,6 +4508,26 @@
|
||||||
<source>untitled%1</source>
|
<source>untitled%1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Selection</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Select Word</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Go to Line...</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Go to Line</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Line</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>NewClassDialog</name>
|
<name>NewClassDialog</name>
|
||||||
|
|
|
@ -267,3 +267,17 @@ bool GCCCompilerInfo::forceUTF8InDebugger()
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GCCUTF8CompilerInfo::GCCUTF8CompilerInfo():CompilerInfo(COMPILER_GCC_UTF8)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
bool GCCUTF8CompilerInfo::supportConvertingCharset()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool GCCUTF8CompilerInfo::forceUTF8InDebugger()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
#include <QMutex>
|
#include <QMutex>
|
||||||
#define COMPILER_CLANG "Clang"
|
#define COMPILER_CLANG "Clang"
|
||||||
#define COMPILER_GCC "GCC"
|
#define COMPILER_GCC "GCC"
|
||||||
|
#define COMPILER_GCC_UTF8 "GCC_UTF8"
|
||||||
|
|
||||||
#define CC_CMD_OPT_ANSI "cc_cmd_opt_ansi"
|
#define CC_CMD_OPT_ANSI "cc_cmd_opt_ansi"
|
||||||
#define CC_CMD_OPT_NO_ASM "cc_cmd_opt_no_asm"
|
#define CC_CMD_OPT_NO_ASM "cc_cmd_opt_no_asm"
|
||||||
|
@ -122,6 +123,13 @@ public:
|
||||||
bool forceUTF8InDebugger() override;
|
bool forceUTF8InDebugger() override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class GCCUTF8CompilerInfo: public CompilerInfo{
|
||||||
|
public:
|
||||||
|
GCCUTF8CompilerInfo();
|
||||||
|
bool supportConvertingCharset() override;
|
||||||
|
bool forceUTF8InDebugger() override;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif // COMPILERINFO_H
|
#endif // COMPILERINFO_H
|
||||||
|
|
|
@ -235,7 +235,11 @@ void Debugger::refreshAll()
|
||||||
refreshWatchVars();
|
refreshWatchVars();
|
||||||
sendCommand("-stack-list-variables", "--all-values");
|
sendCommand("-stack-list-variables", "--all-values");
|
||||||
if (memoryModel()->startAddress()>0)
|
if (memoryModel()->startAddress()>0)
|
||||||
sendCommand("-data-read-memory",QString("%1 x 1 8 8 ").arg(memoryModel()->startAddress()));
|
sendCommand("-data-read-memory",QString("%1 x 1 %2 %3 ")
|
||||||
|
.arg(memoryModel()->startAddress())
|
||||||
|
.arg(pSettings->debugger().memoryViewRows())
|
||||||
|
.arg(pSettings->debugger().memoryViewColumns())
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
RegisterModel *Debugger::registerModel() const
|
RegisterModel *Debugger::registerModel() const
|
||||||
|
@ -2509,6 +2513,7 @@ MemoryModel::MemoryModel(int dataPerLine, QObject *parent):
|
||||||
|
|
||||||
void MemoryModel::updateMemory(const QStringList &value)
|
void MemoryModel::updateMemory(const QStringList &value)
|
||||||
{
|
{
|
||||||
|
int maxDataPerLine=-1;
|
||||||
QRegExp delimiter("(\\s+)");
|
QRegExp delimiter("(\\s+)");
|
||||||
QList<PMemoryLine> newModel;
|
QList<PMemoryLine> newModel;
|
||||||
for (int i=0;i<value.length();i++) {
|
for (int i=0;i<value.length();i++) {
|
||||||
|
@ -2524,6 +2529,8 @@ void MemoryModel::updateMemory(const QStringList &value)
|
||||||
bool isOk;
|
bool isOk;
|
||||||
memoryLine->startAddress = stringToHex(dataLst[0],isOk);
|
memoryLine->startAddress = stringToHex(dataLst[0],isOk);
|
||||||
if (isOk) {
|
if (isOk) {
|
||||||
|
if (dataLst.length()-1>maxDataPerLine)
|
||||||
|
maxDataPerLine = dataLst.length()-1;
|
||||||
for (int j=1;j<dataLst.length();j++) {
|
for (int j=1;j<dataLst.length();j++) {
|
||||||
qulonglong data = stringToHex(dataLst[j],isOk);
|
qulonglong data = stringToHex(dataLst[j],isOk);
|
||||||
if (isOk)
|
if (isOk)
|
||||||
|
@ -2539,7 +2546,8 @@ void MemoryModel::updateMemory(const QStringList &value)
|
||||||
newModel.append(memoryLine);
|
newModel.append(memoryLine);
|
||||||
}
|
}
|
||||||
if (newModel.count()>0 && newModel.count()== mLines.count() &&
|
if (newModel.count()>0 && newModel.count()== mLines.count() &&
|
||||||
newModel[0]->startAddress == mLines[0]->startAddress) {
|
newModel[0]->startAddress == mLines[0]->startAddress &&
|
||||||
|
maxDataPerLine==mDataPerLine) {
|
||||||
for (int i=0;i<newModel.count();i++) {
|
for (int i=0;i<newModel.count();i++) {
|
||||||
PMemoryLine newLine = newModel[i];
|
PMemoryLine newLine = newModel[i];
|
||||||
PMemoryLine oldLine = mLines[i];
|
PMemoryLine oldLine = mLines[i];
|
||||||
|
@ -2555,6 +2563,8 @@ void MemoryModel::updateMemory(const QStringList &value)
|
||||||
createIndex(mLines.count()-1,mDataPerLine-1));
|
createIndex(mLines.count()-1,mDataPerLine-1));
|
||||||
} else {
|
} else {
|
||||||
beginResetModel();
|
beginResetModel();
|
||||||
|
if (maxDataPerLine>0)
|
||||||
|
mDataPerLine=maxDataPerLine;
|
||||||
mLines = newModel;
|
mLines = newModel;
|
||||||
endResetModel();
|
endResetModel();
|
||||||
}
|
}
|
||||||
|
|
|
@ -454,6 +454,7 @@ void MainWindow::updateEditorActions()
|
||||||
ui->actionRemove_Bookmark->setEnabled(false);
|
ui->actionRemove_Bookmark->setEnabled(false);
|
||||||
ui->actionModify_Bookmark_Description->setEnabled(false);
|
ui->actionModify_Bookmark_Description->setEnabled(false);
|
||||||
|
|
||||||
|
ui->actionGo_to_Line->setEnabled(false);
|
||||||
ui->actionLocate_in_Files_View->setEnabled(false);
|
ui->actionLocate_in_Files_View->setEnabled(false);
|
||||||
} else {
|
} else {
|
||||||
ui->actionAuto_Detect->setEnabled(true);
|
ui->actionAuto_Detect->setEnabled(true);
|
||||||
|
@ -505,6 +506,7 @@ void MainWindow::updateEditorActions()
|
||||||
ui->actionRemove_Bookmark->setEnabled(e->hasBookmark(line));
|
ui->actionRemove_Bookmark->setEnabled(e->hasBookmark(line));
|
||||||
ui->actionModify_Bookmark_Description->setEnabled(e->hasBookmark(line));
|
ui->actionModify_Bookmark_Description->setEnabled(e->hasBookmark(line));
|
||||||
|
|
||||||
|
ui->actionGo_to_Line->setEnabled(true);
|
||||||
ui->actionLocate_in_Files_View->setEnabled(!e->isNew());
|
ui->actionLocate_in_Files_View->setEnabled(!e->isNew());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4040,6 +4042,8 @@ void MainWindow::onEditorContextMenu(const QPoint& pos)
|
||||||
menu.addAction(ui->actionRemove_Bookmark);
|
menu.addAction(ui->actionRemove_Bookmark);
|
||||||
menu.addAction(ui->actionModify_Bookmark_Description);
|
menu.addAction(ui->actionModify_Bookmark_Description);
|
||||||
menu.addSeparator();
|
menu.addSeparator();
|
||||||
|
menu.addAction(ui->actionGo_to_Line);
|
||||||
|
menu.addSeparator();
|
||||||
menu.addAction(ui->actionFile_Properties);
|
menu.addAction(ui->actionFile_Properties);
|
||||||
|
|
||||||
//these actions needs parser
|
//these actions needs parser
|
||||||
|
@ -4058,6 +4062,8 @@ void MainWindow::onEditorContextMenu(const QPoint& pos)
|
||||||
menu.addAction(ui->actionAdd_bookmark);
|
menu.addAction(ui->actionAdd_bookmark);
|
||||||
menu.addAction(ui->actionRemove_Bookmark);
|
menu.addAction(ui->actionRemove_Bookmark);
|
||||||
menu.addAction(ui->actionModify_Bookmark_Description);
|
menu.addAction(ui->actionModify_Bookmark_Description);
|
||||||
|
menu.addSeparator();
|
||||||
|
menu.addAction(ui->actionGo_to_Line);
|
||||||
}
|
}
|
||||||
ui->actionLocate_in_Files_View->setEnabled(!editor->isNew());
|
ui->actionLocate_in_Files_View->setEnabled(!editor->isNew());
|
||||||
ui->actionBreakpoint_property->setEnabled(editor->hasBreakpoint(line));
|
ui->actionBreakpoint_property->setEnabled(editor->hasBreakpoint(line));
|
||||||
|
@ -5227,7 +5233,11 @@ void MainWindow::onDebugMemoryAddressInput()
|
||||||
if (!s.isEmpty()) {
|
if (!s.isEmpty()) {
|
||||||
// connect(mDebugger, &Debugger::memoryExamineReady,
|
// connect(mDebugger, &Debugger::memoryExamineReady,
|
||||||
// this, &MainWindow::onMemoryExamineReady);
|
// this, &MainWindow::onMemoryExamineReady);
|
||||||
mDebugger->sendCommand("-data-read-memory",QString("%1 x 1 8 8 ").arg(s));
|
mDebugger->sendCommand("-data-read-memory",QString("%1 x 1 %2 %3 ")
|
||||||
|
.arg(s)
|
||||||
|
.arg(pSettings->debugger().memoryViewRows())
|
||||||
|
.arg(pSettings->debugger().memoryViewColumns())
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8015,3 +8025,28 @@ void MainWindow::on_actionRaylib_Manual_triggered()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void MainWindow::on_actionSelect_Word_triggered()
|
||||||
|
{
|
||||||
|
Editor* e=mEditorList->getEditor();
|
||||||
|
if (e) {
|
||||||
|
e->selectWord();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void MainWindow::on_actionGo_to_Line_triggered()
|
||||||
|
{
|
||||||
|
Editor* e=mEditorList->getEditor();
|
||||||
|
if (!e)
|
||||||
|
return;
|
||||||
|
bool ok;
|
||||||
|
int lineNo=QInputDialog::getInt(e,tr("Go to Line"),tr("Line"),
|
||||||
|
e->caretY(),1,e->document()->count(),
|
||||||
|
1,&ok);
|
||||||
|
if (ok && lineNo!=e->caretY()) {
|
||||||
|
e->setCaretPosition(lineNo,1);
|
||||||
|
e->setFocus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -695,6 +695,10 @@ private slots:
|
||||||
|
|
||||||
void on_actionRaylib_Manual_triggered();
|
void on_actionRaylib_Manual_triggered();
|
||||||
|
|
||||||
|
void on_actionSelect_Word_triggered();
|
||||||
|
|
||||||
|
void on_actionGo_to_Line_triggered();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::MainWindow *ui;
|
Ui::MainWindow *ui;
|
||||||
EditorList *mEditorList;
|
EditorList *mEditorList;
|
||||||
|
|
|
@ -182,7 +182,6 @@
|
||||||
<addaction name="actionCut"/>
|
<addaction name="actionCut"/>
|
||||||
<addaction name="actionCopy"/>
|
<addaction name="actionCopy"/>
|
||||||
<addaction name="actionPaste"/>
|
<addaction name="actionPaste"/>
|
||||||
<addaction name="actionSelectAll"/>
|
|
||||||
<addaction name="separator"/>
|
<addaction name="separator"/>
|
||||||
<addaction name="actionIndent"/>
|
<addaction name="actionIndent"/>
|
||||||
<addaction name="actionUnIndent"/>
|
<addaction name="actionUnIndent"/>
|
||||||
|
@ -193,8 +192,6 @@
|
||||||
<addaction name="actionFoldAll"/>
|
<addaction name="actionFoldAll"/>
|
||||||
<addaction name="actionUnfoldAll"/>
|
<addaction name="actionUnfoldAll"/>
|
||||||
<addaction name="separator"/>
|
<addaction name="separator"/>
|
||||||
<addaction name="actionMove_Selection_Up"/>
|
|
||||||
<addaction name="actionMove_Selection_Down"/>
|
|
||||||
<addaction name="actionDelete_Line"/>
|
<addaction name="actionDelete_Line"/>
|
||||||
<addaction name="actionDuplicate_Line"/>
|
<addaction name="actionDuplicate_Line"/>
|
||||||
<addaction name="actionDelete_Word"/>
|
<addaction name="actionDelete_Word"/>
|
||||||
|
@ -223,6 +220,7 @@
|
||||||
<addaction name="actionForward"/>
|
<addaction name="actionForward"/>
|
||||||
<addaction name="separator"/>
|
<addaction name="separator"/>
|
||||||
<addaction name="actionMatch_Bracket"/>
|
<addaction name="actionMatch_Bracket"/>
|
||||||
|
<addaction name="actionGo_to_Line"/>
|
||||||
<addaction name="separator"/>
|
<addaction name="separator"/>
|
||||||
<addaction name="actionAdd_bookmark"/>
|
<addaction name="actionAdd_bookmark"/>
|
||||||
<addaction name="actionRemove_Bookmark"/>
|
<addaction name="actionRemove_Bookmark"/>
|
||||||
|
@ -323,8 +321,19 @@
|
||||||
<addaction name="actionGit_Commit"/>
|
<addaction name="actionGit_Commit"/>
|
||||||
<addaction name="actionGit_Restore"/>
|
<addaction name="actionGit_Restore"/>
|
||||||
</widget>
|
</widget>
|
||||||
|
<widget class="QMenu" name="menuSelection">
|
||||||
|
<property name="title">
|
||||||
|
<string>Selection</string>
|
||||||
|
</property>
|
||||||
|
<addaction name="actionSelectAll"/>
|
||||||
|
<addaction name="actionSelect_Word"/>
|
||||||
|
<addaction name="separator"/>
|
||||||
|
<addaction name="actionMove_Selection_Up"/>
|
||||||
|
<addaction name="actionMove_Selection_Down"/>
|
||||||
|
</widget>
|
||||||
<addaction name="menuFile"/>
|
<addaction name="menuFile"/>
|
||||||
<addaction name="menuEdit"/>
|
<addaction name="menuEdit"/>
|
||||||
|
<addaction name="menuSelection"/>
|
||||||
<addaction name="menuView"/>
|
<addaction name="menuView"/>
|
||||||
<addaction name="menuSearch"/>
|
<addaction name="menuSearch"/>
|
||||||
<addaction name="menuCode"/>
|
<addaction name="menuCode"/>
|
||||||
|
@ -3168,6 +3177,16 @@
|
||||||
<string>Raylib Manual</string>
|
<string>Raylib Manual</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
|
<action name="actionSelect_Word">
|
||||||
|
<property name="text">
|
||||||
|
<string>Select Word</string>
|
||||||
|
</property>
|
||||||
|
</action>
|
||||||
|
<action name="actionGo_to_Line">
|
||||||
|
<property name="text">
|
||||||
|
<string>Go to Line...</string>
|
||||||
|
</property>
|
||||||
|
</action>
|
||||||
</widget>
|
</widget>
|
||||||
<customwidgets>
|
<customwidgets>
|
||||||
<customwidget>
|
<customwidget>
|
||||||
|
|
|
@ -189,15 +189,16 @@ void SynEditKeyStrokes::resetDefaults()
|
||||||
add(SynEditorCommand::ecScrollDown, Qt::Key_Down, Qt::ControlModifier);
|
add(SynEditorCommand::ecScrollDown, Qt::Key_Down, Qt::ControlModifier);
|
||||||
add(SynEditorCommand::ecLeft, Qt::Key_Left, Qt::NoModifier);
|
add(SynEditorCommand::ecLeft, Qt::Key_Left, Qt::NoModifier);
|
||||||
add(SynEditorCommand::ecSelLeft, Qt::Key_Left, Qt::ShiftModifier);
|
add(SynEditorCommand::ecSelLeft, Qt::Key_Left, Qt::ShiftModifier);
|
||||||
add(SynEditorCommand::ecSelLeft, Qt::Key_Left, Qt::ShiftModifier | Qt::AltModifier);
|
|
||||||
add(SynEditorCommand::ecWordLeft, Qt::Key_Left, Qt::ControlModifier);
|
add(SynEditorCommand::ecWordLeft, Qt::Key_Left, Qt::ControlModifier);
|
||||||
add(SynEditorCommand::ecSelWordLeft, Qt::Key_Left, Qt::ShiftModifier|Qt::ControlModifier);
|
add(SynEditorCommand::ecSelWordLeft, Qt::Key_Left, Qt::ShiftModifier|Qt::ControlModifier);
|
||||||
add(SynEditorCommand::ecRight, Qt::Key_Right, Qt::NoModifier);
|
add(SynEditorCommand::ecRight, Qt::Key_Right, Qt::NoModifier);
|
||||||
add(SynEditorCommand::ecSelRight, Qt::Key_Right, Qt::ShiftModifier);
|
add(SynEditorCommand::ecSelRight, Qt::Key_Right, Qt::ShiftModifier);
|
||||||
add(SynEditorCommand::ecSelRight, Qt::Key_Right, Qt::ShiftModifier | Qt::AltModifier);
|
|
||||||
add(SynEditorCommand::ecWordRight, Qt::Key_Right, Qt::ControlModifier);
|
add(SynEditorCommand::ecWordRight, Qt::Key_Right, Qt::ControlModifier);
|
||||||
add(SynEditorCommand::ecSelWordRight, Qt::Key_Right, Qt::ShiftModifier|Qt::ControlModifier);
|
add(SynEditorCommand::ecSelWordRight, Qt::Key_Right, Qt::ShiftModifier|Qt::ControlModifier);
|
||||||
|
|
||||||
|
// add(SynEditorCommand::ecExpandSelection, Qt::Key_Right, Qt::ShiftModifier|Qt::AltModifier);
|
||||||
|
// add(SynEditorCommand::ecShrinkSelection, Qt::Key_Left, Qt::ShiftModifier | Qt::AltModifier);
|
||||||
|
|
||||||
add(SynEditorCommand::ecPageDown, Qt::Key_PageDown, Qt::NoModifier);
|
add(SynEditorCommand::ecPageDown, Qt::Key_PageDown, Qt::NoModifier);
|
||||||
add(SynEditorCommand::ecSelPageDown, Qt::Key_PageDown, Qt::ShiftModifier);
|
add(SynEditorCommand::ecSelPageDown, Qt::Key_PageDown, Qt::ShiftModifier);
|
||||||
add(SynEditorCommand::ecPageBottom, Qt::Key_PageDown, Qt::ControlModifier);
|
add(SynEditorCommand::ecPageBottom, Qt::Key_PageDown, Qt::ControlModifier);
|
||||||
|
|
|
@ -91,6 +91,8 @@ enum class SynEditorCommand {
|
||||||
ecCopy = 201, // Copy selection to clipboard
|
ecCopy = 201, // Copy selection to clipboard
|
||||||
ecSelWord = 202,
|
ecSelWord = 202,
|
||||||
ecSelectAll = 203, // Select entire contents of editor, cursor to end
|
ecSelectAll = 203, // Select entire contents of editor, cursor to end
|
||||||
|
ecExpandSelection = 204, // expand selection
|
||||||
|
ecShrinkSelection = 205, // shrink selection
|
||||||
|
|
||||||
ecScrollUp = 211, // Scroll up one line leaving cursor position unchanged.
|
ecScrollUp = 211, // Scroll up one line leaving cursor position unchanged.
|
||||||
ecScrollDown = 212, // Scroll down one line leaving cursor position unchanged.
|
ecScrollDown = 212, // Scroll down one line leaving cursor position unchanged.
|
||||||
|
|
|
@ -367,84 +367,84 @@ int SynEdit::maxScrollWidth() const
|
||||||
return std::max(maxLen-mCharsInWindow+1, 1);
|
return std::max(maxLen-mCharsInWindow+1, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SynEdit::getHighlighterAttriAtRowCol(const BufferCoord &XY, QString &Token, PSynHighlighterAttribute &Attri)
|
bool SynEdit::getHighlighterAttriAtRowCol(const BufferCoord &pos, QString &token, PSynHighlighterAttribute &attri)
|
||||||
{
|
{
|
||||||
SynHighlighterTokenType TmpType;
|
SynHighlighterTokenType tmpType;
|
||||||
int TmpKind, TmpStart;
|
int tmpKind, tmpStart;
|
||||||
return getHighlighterAttriAtRowColEx(XY, Token, TmpType, TmpKind,TmpStart, Attri);
|
return getHighlighterAttriAtRowColEx(pos, token, tmpType, tmpKind,tmpStart, attri);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SynEdit::getHighlighterAttriAtRowCol(const BufferCoord &XY, QString &Token, bool &tokenFinished, SynHighlighterTokenType &TokenType, PSynHighlighterAttribute &Attri)
|
bool SynEdit::getHighlighterAttriAtRowCol(const BufferCoord &pos, QString &token, bool &tokenFinished, SynHighlighterTokenType &tokenType, PSynHighlighterAttribute &attri)
|
||||||
{
|
{
|
||||||
int PosX, PosY, endPos, Start;
|
int posX, posY, endPos, start;
|
||||||
QString Line;
|
QString line;
|
||||||
PosY = XY.line - 1;
|
posY = pos.line - 1;
|
||||||
if (mHighlighter && (PosY >= 0) && (PosY < mDocument->count())) {
|
if (mHighlighter && (posY >= 0) && (posY < mDocument->count())) {
|
||||||
Line = mDocument->getString(PosY);
|
line = mDocument->getString(posY);
|
||||||
if (PosY == 0) {
|
if (posY == 0) {
|
||||||
mHighlighter->resetState();
|
mHighlighter->resetState();
|
||||||
} else {
|
} else {
|
||||||
mHighlighter->setState(mDocument->ranges(PosY-1));
|
mHighlighter->setState(mDocument->ranges(posY-1));
|
||||||
}
|
}
|
||||||
mHighlighter->setLine(Line, PosY);
|
mHighlighter->setLine(line, posY);
|
||||||
PosX = XY.ch;
|
posX = pos.ch;
|
||||||
if ((PosX > 0) && (PosX <= Line.length())) {
|
if ((posX > 0) && (posX <= line.length())) {
|
||||||
while (!mHighlighter->eol()) {
|
while (!mHighlighter->eol()) {
|
||||||
Start = mHighlighter->getTokenPos() + 1;
|
start = mHighlighter->getTokenPos() + 1;
|
||||||
Token = mHighlighter->getToken();
|
token = mHighlighter->getToken();
|
||||||
endPos = Start + Token.length()-1;
|
endPos = start + token.length()-1;
|
||||||
if ((PosX >= Start) && (PosX <= endPos)) {
|
if ((posX >= start) && (posX <= endPos)) {
|
||||||
Attri = mHighlighter->getTokenAttribute();
|
attri = mHighlighter->getTokenAttribute();
|
||||||
if (PosX == endPos)
|
if (posX == endPos)
|
||||||
tokenFinished = mHighlighter->getTokenFinished();
|
tokenFinished = mHighlighter->getTokenFinished();
|
||||||
else
|
else
|
||||||
tokenFinished = false;
|
tokenFinished = false;
|
||||||
TokenType = mHighlighter->getTokenType();
|
tokenType = mHighlighter->getTokenType();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
mHighlighter->next();
|
mHighlighter->next();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Token = "";
|
token = "";
|
||||||
Attri = PSynHighlighterAttribute();
|
attri = PSynHighlighterAttribute();
|
||||||
tokenFinished = false;
|
tokenFinished = false;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SynEdit::getHighlighterAttriAtRowColEx(const BufferCoord &XY, QString &Token, SynHighlighterTokenType &TokenType, SynTokenKind &TokenKind, int &Start, PSynHighlighterAttribute &Attri)
|
bool SynEdit::getHighlighterAttriAtRowColEx(const BufferCoord &pos, QString &token, SynHighlighterTokenType &tokenType, SynTokenKind &tokenKind, int &start, PSynHighlighterAttribute &attri)
|
||||||
{
|
{
|
||||||
int PosX, PosY, endPos;
|
int posX, posY, endPos;
|
||||||
QString Line;
|
QString line;
|
||||||
PosY = XY.line - 1;
|
posY = pos.line - 1;
|
||||||
if (mHighlighter && (PosY >= 0) && (PosY < mDocument->count())) {
|
if (mHighlighter && (posY >= 0) && (posY < mDocument->count())) {
|
||||||
Line = mDocument->getString(PosY);
|
line = mDocument->getString(posY);
|
||||||
if (PosY == 0) {
|
if (posY == 0) {
|
||||||
mHighlighter->resetState();
|
mHighlighter->resetState();
|
||||||
} else {
|
} else {
|
||||||
mHighlighter->setState(mDocument->ranges(PosY-1));
|
mHighlighter->setState(mDocument->ranges(posY-1));
|
||||||
}
|
}
|
||||||
mHighlighter->setLine(Line, PosY);
|
mHighlighter->setLine(line, posY);
|
||||||
PosX = XY.ch;
|
posX = pos.ch;
|
||||||
if ((PosX > 0) && (PosX <= Line.length())) {
|
if ((posX > 0) && (posX <= line.length())) {
|
||||||
while (!mHighlighter->eol()) {
|
while (!mHighlighter->eol()) {
|
||||||
Start = mHighlighter->getTokenPos() + 1;
|
start = mHighlighter->getTokenPos() + 1;
|
||||||
Token = mHighlighter->getToken();
|
token = mHighlighter->getToken();
|
||||||
endPos = Start + Token.length()-1;
|
endPos = start + token.length()-1;
|
||||||
if ((PosX >= Start) && (PosX <= endPos)) {
|
if ((posX >= start) && (posX <= endPos)) {
|
||||||
Attri = mHighlighter->getTokenAttribute();
|
attri = mHighlighter->getTokenAttribute();
|
||||||
TokenKind = mHighlighter->getTokenKind();
|
tokenKind = mHighlighter->getTokenKind();
|
||||||
TokenType = mHighlighter->getTokenType();
|
tokenType = mHighlighter->getTokenType();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
mHighlighter->next();
|
mHighlighter->next();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Token = "";
|
token = "";
|
||||||
Attri = PSynHighlighterAttribute();
|
attri = PSynHighlighterAttribute();
|
||||||
TokenKind = 0;
|
tokenKind = 0;
|
||||||
TokenType = SynHighlighterTokenType::Default;
|
tokenType = SynHighlighterTokenType::Default;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1514,24 +1514,38 @@ void SynEdit::setSelWord()
|
||||||
setWordBlock(caretXY());
|
setWordBlock(caretXY());
|
||||||
}
|
}
|
||||||
|
|
||||||
void SynEdit::setWordBlock(BufferCoord Value)
|
void SynEdit::setWordBlock(BufferCoord value)
|
||||||
{
|
{
|
||||||
// if (mOptions.testFlag(eoScrollPastEol))
|
// if (mOptions.testFlag(eoScrollPastEol))
|
||||||
// Value.Char =
|
// Value.Char =
|
||||||
// else
|
// else
|
||||||
// Value.Char = std::max(Value.Char, 1);
|
// Value.Char = std::max(Value.Char, 1);
|
||||||
Value.line = minMax(Value.line, 1, mDocument->count());
|
value.line = minMax(value.line, 1, mDocument->count());
|
||||||
Value.ch = std::max(Value.ch, 1);
|
value.ch = std::max(value.ch, 1);
|
||||||
QString TempString = mDocument->getString(Value.line - 1); //needed for CaretX = LineLength +1
|
QString TempString = mDocument->getString(value.line - 1); //needed for CaretX = LineLength +1
|
||||||
if (Value.ch > TempString.length()) {
|
if (value.ch > TempString.length()) {
|
||||||
internalSetCaretXY(BufferCoord{TempString.length()+1, Value.line});
|
internalSetCaretXY(BufferCoord{TempString.length()+1, value.line});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
BufferCoord v_WordStart = wordStartEx(Value);
|
BufferCoord vWordStart = wordStartEx(value);
|
||||||
BufferCoord v_WordEnd = wordEndEx(Value);
|
BufferCoord vWordEnd = wordEndEx(value);
|
||||||
if ((v_WordStart.line == v_WordEnd.line) && (v_WordStart.ch < v_WordEnd.ch))
|
if ((vWordStart.line == vWordEnd.line) && (vWordStart.ch < vWordEnd.ch))
|
||||||
setCaretAndSelection(v_WordEnd, v_WordStart, v_WordEnd);
|
setCaretAndSelection(vWordEnd, vWordStart, vWordEnd);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SynEdit::doExpandSelection(const BufferCoord &pos)
|
||||||
|
{
|
||||||
|
if (selAvail()) {
|
||||||
|
//todo
|
||||||
|
} else {
|
||||||
|
setWordBlock(pos);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void SynEdit::doShrinkSelection(const BufferCoord &pos)
|
||||||
|
{
|
||||||
|
//todo
|
||||||
}
|
}
|
||||||
|
|
||||||
int SynEdit::findCommentStartLine(int searchStartLine)
|
int SynEdit::findCommentStartLine(int searchStartLine)
|
||||||
|
@ -5834,6 +5848,12 @@ void SynEdit::ExecuteCommand(SynEditorCommand Command, QChar AChar, void *pData)
|
||||||
case SynEditorCommand::ecSelectAll:
|
case SynEditorCommand::ecSelectAll:
|
||||||
doSelectAll();
|
doSelectAll();
|
||||||
break;
|
break;
|
||||||
|
case SynEditorCommand::ecExpandSelection:
|
||||||
|
doExpandSelection(caretXY());
|
||||||
|
break;
|
||||||
|
case SynEditorCommand::ecShrinkSelection:
|
||||||
|
doShrinkSelection(caretXY());
|
||||||
|
break;
|
||||||
case SynEditorCommand::ecDeleteLastChar:
|
case SynEditorCommand::ecDeleteLastChar:
|
||||||
doDeleteLastChar();
|
doDeleteLastChar();
|
||||||
break;
|
break;
|
||||||
|
@ -6332,7 +6352,7 @@ void SynEdit::mouseDoubleClickEvent(QMouseEvent *event)
|
||||||
QAbstractScrollArea::mouseDoubleClickEvent(event);
|
QAbstractScrollArea::mouseDoubleClickEvent(event);
|
||||||
QPoint ptMouse = event->pos();
|
QPoint ptMouse = event->pos();
|
||||||
if (ptMouse.x() >= mGutterWidth + 2) {
|
if (ptMouse.x() >= mGutterWidth + 2) {
|
||||||
setWordBlock(caretXY());
|
setSelWord();
|
||||||
mStateFlags.setFlag(SynStateFlag::sfDblClicked);
|
mStateFlags.setFlag(SynStateFlag::sfDblClicked);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -227,6 +227,7 @@ public:
|
||||||
BufferCoord wordEndEx(const BufferCoord& XY);
|
BufferCoord wordEndEx(const BufferCoord& XY);
|
||||||
BufferCoord prevWordPos();
|
BufferCoord prevWordPos();
|
||||||
BufferCoord prevWordPosEx(const BufferCoord& XY);
|
BufferCoord prevWordPosEx(const BufferCoord& XY);
|
||||||
|
|
||||||
void commandProcessor(SynEditorCommand Command, QChar AChar = QChar(), void * pData = nullptr);
|
void commandProcessor(SynEditorCommand Command, QChar AChar = QChar(), void * pData = nullptr);
|
||||||
//Caret
|
//Caret
|
||||||
void showCaret();
|
void showCaret();
|
||||||
|
@ -256,14 +257,14 @@ public:
|
||||||
int maxScrollWidth() const;
|
int maxScrollWidth() const;
|
||||||
int maxScrollHeight() const;
|
int maxScrollHeight() const;
|
||||||
|
|
||||||
bool getHighlighterAttriAtRowCol(const BufferCoord& XY, QString& Token,
|
bool getHighlighterAttriAtRowCol(const BufferCoord& pos, QString& token,
|
||||||
PSynHighlighterAttribute& Attri);
|
PSynHighlighterAttribute& attri);
|
||||||
bool getHighlighterAttriAtRowCol(const BufferCoord& XY, QString& Token,
|
bool getHighlighterAttriAtRowCol(const BufferCoord& pos, QString& token,
|
||||||
bool& tokenFinished, SynHighlighterTokenType& TokenType,
|
bool& tokenFinished, SynHighlighterTokenType& tokenType,
|
||||||
PSynHighlighterAttribute& Attri);
|
PSynHighlighterAttribute& attri);
|
||||||
bool getHighlighterAttriAtRowColEx(const BufferCoord& XY, QString& Token,
|
bool getHighlighterAttriAtRowColEx(const BufferCoord& pos, QString& token,
|
||||||
SynHighlighterTokenType& TokenType, SynTokenKind &TokenKind, int &Start,
|
SynHighlighterTokenType& tokenType, SynTokenKind &tokenKind, int &start,
|
||||||
PSynHighlighterAttribute& Attri);
|
PSynHighlighterAttribute& attri);
|
||||||
|
|
||||||
void beginUndoBlock();
|
void beginUndoBlock();
|
||||||
void endUndoBlock();
|
void endUndoBlock();
|
||||||
|
@ -287,6 +288,9 @@ public:
|
||||||
virtual void selectAll() {
|
virtual void selectAll() {
|
||||||
commandProcessor(SynEditorCommand::ecSelectAll);
|
commandProcessor(SynEditorCommand::ecSelectAll);
|
||||||
}
|
}
|
||||||
|
virtual void selectWord() {
|
||||||
|
commandProcessor(SynEditorCommand::ecSelWord);
|
||||||
|
}
|
||||||
virtual void tab() { commandProcessor(SynEditorCommand::ecTab);}
|
virtual void tab() { commandProcessor(SynEditorCommand::ecTab);}
|
||||||
virtual void shifttab() { commandProcessor(SynEditorCommand::ecShiftTab);}
|
virtual void shifttab() { commandProcessor(SynEditorCommand::ecShiftTab);}
|
||||||
virtual void toggleComment() { commandProcessor(SynEditorCommand::ecToggleComment);}
|
virtual void toggleComment() { commandProcessor(SynEditorCommand::ecToggleComment);}
|
||||||
|
@ -566,7 +570,10 @@ private:
|
||||||
|
|
||||||
void deleteFromTo(const BufferCoord& start, const BufferCoord& end);
|
void deleteFromTo(const BufferCoord& start, const BufferCoord& end);
|
||||||
void setSelWord();
|
void setSelWord();
|
||||||
void setWordBlock(BufferCoord Value);
|
void setWordBlock(BufferCoord value);
|
||||||
|
|
||||||
|
void doExpandSelection(const BufferCoord& pos);
|
||||||
|
void doShrinkSelection(const BufferCoord& pos);
|
||||||
|
|
||||||
|
|
||||||
int calcIndentSpaces(int line, const QString& lineText, bool addIndent);
|
int calcIndentSpaces(int line, const QString& lineText, bool addIndent);
|
||||||
|
|
|
@ -1974,6 +1974,14 @@ void Settings::CompilerSet::setProperties(const QString &binDir)
|
||||||
delimPos2++;
|
delimPos2++;
|
||||||
mVersion = output.mid(delimPos1,delimPos2-delimPos1);
|
mVersion = output.mid(delimPos1,delimPos2-delimPos1);
|
||||||
|
|
||||||
|
// //fix for mingw64 gcc
|
||||||
|
// double versionValue;
|
||||||
|
// bool ok;
|
||||||
|
// versionValue = mVersion.toDouble(&ok);
|
||||||
|
// if (ok && versionValue>=12) {
|
||||||
|
// mCompilerType=COMPILER_GCC_UTF8;
|
||||||
|
// }
|
||||||
|
|
||||||
// Find compiler builder
|
// Find compiler builder
|
||||||
delimPos1 = delimPos2;
|
delimPos1 = delimPos2;
|
||||||
while ((delimPos1 < output.length()) && !(output[delimPos1] == '('))
|
while ((delimPos1 < output.length()) && !(output[delimPos1] == '('))
|
||||||
|
@ -3376,6 +3384,26 @@ void Settings::Debugger::setGDBServerPort(int newGDBServerPort)
|
||||||
mGDBServerPort = newGDBServerPort;
|
mGDBServerPort = newGDBServerPort;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int Settings::Debugger::memoryViewRows() const
|
||||||
|
{
|
||||||
|
return mMemoryViewRows;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Settings::Debugger::setMemoryViewRows(int newMemoryViewRows)
|
||||||
|
{
|
||||||
|
mMemoryViewRows = newMemoryViewRows;
|
||||||
|
}
|
||||||
|
|
||||||
|
int Settings::Debugger::memoryViewColumns() const
|
||||||
|
{
|
||||||
|
return mMemoryViewColumns;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Settings::Debugger::setMemoryViewColumns(int newMemoryViewColumns)
|
||||||
|
{
|
||||||
|
mMemoryViewColumns = newMemoryViewColumns;
|
||||||
|
}
|
||||||
|
|
||||||
bool Settings::Debugger::autosaveBreakpoints() const
|
bool Settings::Debugger::autosaveBreakpoints() const
|
||||||
{
|
{
|
||||||
return mAutosaveBreakpoints;
|
return mAutosaveBreakpoints;
|
||||||
|
@ -3433,6 +3461,8 @@ void Settings::Debugger::doSave()
|
||||||
saveValue("open_cpu_info_when_signaled",mOpenCPUInfoWhenSignaled);
|
saveValue("open_cpu_info_when_signaled",mOpenCPUInfoWhenSignaled);
|
||||||
saveValue("use_gdb_server", mUseGDBServer);
|
saveValue("use_gdb_server", mUseGDBServer);
|
||||||
saveValue("gdb_server_port",mGDBServerPort);
|
saveValue("gdb_server_port",mGDBServerPort);
|
||||||
|
saveValue("memory_view_rows",mMemoryViewRows);
|
||||||
|
saveValue("memory_view_columns",mMemoryViewColumns);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3461,6 +3491,8 @@ void Settings::Debugger::doLoad()
|
||||||
mUseGDBServer = boolValue("use_gdb_server", true);
|
mUseGDBServer = boolValue("use_gdb_server", true);
|
||||||
#endif
|
#endif
|
||||||
mGDBServerPort = intValue("gdb_server_port",41234);
|
mGDBServerPort = intValue("gdb_server_port",41234);
|
||||||
|
mMemoryViewRows = intValue("memory_view_rows",8);
|
||||||
|
mMemoryViewColumns = intValue("memory_view_columns",8);
|
||||||
}
|
}
|
||||||
|
|
||||||
Settings::History::History(Settings *settings):_Base(settings, SETTING_HISTORY)
|
Settings::History::History(Settings *settings):_Base(settings, SETTING_HISTORY)
|
||||||
|
|
|
@ -1135,6 +1135,12 @@ public:
|
||||||
int GDBServerPort() const;
|
int GDBServerPort() const;
|
||||||
void setGDBServerPort(int newGDBServerPort);
|
void setGDBServerPort(int newGDBServerPort);
|
||||||
|
|
||||||
|
int memoryViewRows() const;
|
||||||
|
void setMemoryViewRows(int newMemoryViewRows);
|
||||||
|
|
||||||
|
int memoryViewColumns() const;
|
||||||
|
void setMemoryViewColumns(int newMemoryViewColumns);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool mEnableDebugConsole;
|
bool mEnableDebugConsole;
|
||||||
bool mShowDetailLog;
|
bool mShowDetailLog;
|
||||||
|
@ -1151,6 +1157,8 @@ public:
|
||||||
bool mOpenCPUInfoWhenSignaled;
|
bool mOpenCPUInfoWhenSignaled;
|
||||||
bool mUseGDBServer;
|
bool mUseGDBServer;
|
||||||
int mGDBServerPort;
|
int mGDBServerPort;
|
||||||
|
int mMemoryViewRows;
|
||||||
|
int mMemoryViewColumns;
|
||||||
|
|
||||||
// _Base interface
|
// _Base interface
|
||||||
protected:
|
protected:
|
||||||
|
|
|
@ -55,6 +55,8 @@ void DebugGeneralWidget::doLoad()
|
||||||
ui->grpUseGDBServer->setChecked(pSettings->debugger().useGDBServer());
|
ui->grpUseGDBServer->setChecked(pSettings->debugger().useGDBServer());
|
||||||
#endif
|
#endif
|
||||||
ui->spinGDBServerPort->setValue(pSettings->debugger().GDBServerPort());
|
ui->spinGDBServerPort->setValue(pSettings->debugger().GDBServerPort());
|
||||||
|
ui->spinMemoryViewRows->setValue(pSettings->debugger().memoryViewRows());
|
||||||
|
ui->spinMemoryViewColumns->setValue(pSettings->debugger().memoryViewColumns());
|
||||||
}
|
}
|
||||||
|
|
||||||
void DebugGeneralWidget::doSave()
|
void DebugGeneralWidget::doSave()
|
||||||
|
@ -76,6 +78,8 @@ void DebugGeneralWidget::doSave()
|
||||||
pSettings->debugger().setUseGDBServer(ui->grpUseGDBServer->isChecked());
|
pSettings->debugger().setUseGDBServer(ui->grpUseGDBServer->isChecked());
|
||||||
#endif
|
#endif
|
||||||
pSettings->debugger().setGDBServerPort(ui->spinGDBServerPort->value());
|
pSettings->debugger().setGDBServerPort(ui->spinGDBServerPort->value());
|
||||||
|
pSettings->debugger().setMemoryViewRows(ui->spinMemoryViewRows->value());
|
||||||
|
pSettings->debugger().setMemoryViewColumns(ui->spinMemoryViewColumns->value());
|
||||||
pSettings->debugger().save();
|
pSettings->debugger().save();
|
||||||
pMainWindow->updateDebuggerSettings();
|
pMainWindow->updateDebuggerSettings();
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>704</width>
|
<width>704</width>
|
||||||
<height>563</height>
|
<height>774</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
|
@ -197,6 +197,120 @@
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="groupBox">
|
||||||
|
<property name="title">
|
||||||
|
<string>Memory View</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_6">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>7</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>7</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="QWidget" name="widget_5" native="true">
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||||
|
<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="label_5">
|
||||||
|
<property name="text">
|
||||||
|
<string>Memory View Rows</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QSpinBox" name="spinMemoryViewRows">
|
||||||
|
<property name="minimum">
|
||||||
|
<number>1</number>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<number>999</number>
|
||||||
|
</property>
|
||||||
|
<property name="value">
|
||||||
|
<number>8</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer_4">
|
||||||
|
<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>
|
||||||
|
<widget class="QWidget" name="widget_6" native="true">
|
||||||
|
<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="label_6">
|
||||||
|
<property name="text">
|
||||||
|
<string>Memory View Columns</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QSpinBox" name="spinMemoryViewColumns">
|
||||||
|
<property name="minimum">
|
||||||
|
<number>1</number>
|
||||||
|
</property>
|
||||||
|
<property name="value">
|
||||||
|
<number>8</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer_5">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>437</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QGroupBox" name="groupBox_2">
|
<widget class="QGroupBox" name="groupBox_2">
|
||||||
<property name="title">
|
<property name="title">
|
||||||
|
@ -220,19 +334,19 @@
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
|
||||||
<widget class="QCheckBox" name="chkShowCPUWhenSignaled">
|
|
||||||
<property name="text">
|
|
||||||
<string>Show CPU Window when signal received</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
<item>
|
||||||
<widget class="QGroupBox" name="groupBox_3">
|
<widget class="QGroupBox" name="groupBox_3">
|
||||||
<property name="title">
|
<property name="title">
|
||||||
<string>CPU Window</string>
|
<string>CPU Window</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_4">
|
<layout class="QVBoxLayout" name="verticalLayout_4">
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="chkShowCPUWhenSignaled">
|
||||||
|
<property name="text">
|
||||||
|
<string>Show CPU Window when signal received</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QWidget" name="widget_3" native="true">
|
<widget class="QWidget" name="widget_3" native="true">
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||||
|
|
Loading…
Reference in New Issue