mirror of https://github.com/vitalif/openscad
Implement indent/unindent and comment/uncomment.
parent
99bc04c9ab
commit
c5c5a02163
|
@ -176,10 +176,6 @@ MainWindow::MainWindow(const QString &filename)
|
|||
#ifdef USE_SCINTILLA_EDITOR
|
||||
if (useScintilla) {
|
||||
editor = new ScintillaEditor(editorDockContents);
|
||||
this->editActionIndent->setVisible(false);
|
||||
this->editActionUnindent->setVisible(false);
|
||||
this->editActionComment->setVisible(false);
|
||||
this->editActionUncomment->setVisible(false);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
|
|
|
@ -269,24 +269,57 @@ void ScintillaEditor::replaceSelectedText(const QString &newText)
|
|||
if (qsci->selectedText() != newText) qsci->replaceSelectedText(newText);
|
||||
}
|
||||
|
||||
void ScintillaEditor::get_range(int *lineFrom, int *lineTo)
|
||||
{
|
||||
int indexFrom, indexTo;
|
||||
if (qsci->hasSelectedText()) {
|
||||
qsci->getSelection(lineFrom, &indexFrom, lineTo, &indexTo);
|
||||
} else {
|
||||
qsci->getCursorPosition(lineFrom, &indexFrom);
|
||||
*lineTo = *lineFrom;
|
||||
}
|
||||
}
|
||||
|
||||
void ScintillaEditor::indentSelection()
|
||||
{
|
||||
// FIXME: Implement
|
||||
int lineFrom, lineTo;
|
||||
get_range(&lineFrom, &lineTo);
|
||||
for (int line = lineFrom;line <= lineTo;line++) {
|
||||
qsci->indent(line);
|
||||
}
|
||||
}
|
||||
|
||||
void ScintillaEditor::unindentSelection()
|
||||
{
|
||||
// FIXME: Implement
|
||||
int lineFrom, lineTo;
|
||||
get_range(&lineFrom, &lineTo);
|
||||
for (int line = lineFrom;line <= lineTo;line++) {
|
||||
qsci->unindent(line);
|
||||
}
|
||||
}
|
||||
|
||||
void ScintillaEditor::commentSelection()
|
||||
{
|
||||
// FIXME: Implement
|
||||
int lineFrom, lineTo;
|
||||
get_range(&lineFrom, &lineTo);
|
||||
for (int line = lineFrom;line <= lineTo;line++) {
|
||||
qsci->insertAt("//", line, 0);
|
||||
}
|
||||
qsci->setSelection(lineFrom, 0, lineTo, std::max(0, qsci->lineLength(lineTo) - 1));
|
||||
}
|
||||
|
||||
void ScintillaEditor::uncommentSelection()
|
||||
{
|
||||
// FIXME: Implement
|
||||
int lineFrom, lineTo;
|
||||
get_range(&lineFrom, &lineTo);
|
||||
for (int line = lineFrom;line <= lineTo;line++) {
|
||||
QString lineText = qsci->text(line);
|
||||
if (lineText.startsWith("//")) {
|
||||
qsci->setSelection(line, 0, line, 2);
|
||||
qsci->removeSelectedText();
|
||||
}
|
||||
}
|
||||
qsci->setSelection(lineFrom, 0, lineTo, std::max(0, qsci->lineLength(lineTo) - 1));
|
||||
}
|
||||
|
||||
QString ScintillaEditor::selectedText()
|
||||
|
|
|
@ -26,6 +26,9 @@ public:
|
|||
QString selectedText();
|
||||
bool find(const QString &, bool findNext = false, bool findBackwards = false);
|
||||
void replaceSelectedText(const QString&);
|
||||
|
||||
private:
|
||||
void get_range(int *lineFrom, int *lineTo);
|
||||
|
||||
public slots:
|
||||
void zoomIn();
|
||||
|
|
Loading…
Reference in New Issue