Skip to content
Extraits de code Groupes Projets
Vérifiée Valider 2f2aead0 rédigé par Kubat's avatar Kubat
Parcourir les fichiers

UI: Force 4 tabs insertion and more methods are noexcept

parent b10e0f00
Branches
Étiquettes
1 requête de fusion!11Change a bit the UI + Add simple scripts support
...@@ -3,10 +3,11 @@ ...@@ -3,10 +3,11 @@
#include <QTextCursor> #include <QTextCursor>
#include <QBrush> #include <QBrush>
#include <QKeyEvent>
using namespace Vivy; using namespace Vivy;
ScriptEditor::LineNumberArea::LineNumberArea(ScriptEditor *editor) ScriptEditor::LineNumberArea::LineNumberArea(ScriptEditor *editor) noexcept
: QWidget(editor) : QWidget(editor)
, scriptEditor(editor) , scriptEditor(editor)
{ {
...@@ -24,7 +25,7 @@ ScriptEditor::LineNumberArea::paintEvent(QPaintEvent *event) noexcept ...@@ -24,7 +25,7 @@ ScriptEditor::LineNumberArea::paintEvent(QPaintEvent *event) noexcept
scriptEditor->lineNumberAreaPaintEvent(event); scriptEditor->lineNumberAreaPaintEvent(event);
} }
ScriptEditor::ScriptEditor(QWidget *parent) ScriptEditor::ScriptEditor(QWidget *parent) noexcept
: QPlainTextEdit(parent) : QPlainTextEdit(parent)
{ {
setStyleSheet(QStringLiteral("* { font-family: \"FiraCode\"; font-size: 10pt}")); setStyleSheet(QStringLiteral("* { font-family: \"FiraCode\"; font-size: 10pt}"));
...@@ -36,8 +37,22 @@ ScriptEditor::ScriptEditor(QWidget *parent) ...@@ -36,8 +37,22 @@ ScriptEditor::ScriptEditor(QWidget *parent)
updateLineNumberAreaWidth(0); updateLineNumberAreaWidth(0);
} }
void
ScriptEditor::keyPressEvent(QKeyEvent *e) noexcept
{
if (e->key() == Qt::Key_Tab) {
QTextCursor cursor = textCursor();
cursor.insertText(" ");
e->accept();
}
else {
QPlainTextEdit::keyPressEvent(e);
}
}
int int
ScriptEditor::lineNumberAreaWidth() ScriptEditor::lineNumberAreaWidth() noexcept
{ {
int digits = 1; int digits = 1;
int max = qMax(1, blockCount()); int max = qMax(1, blockCount());
...@@ -53,13 +68,13 @@ ScriptEditor::lineNumberAreaWidth() ...@@ -53,13 +68,13 @@ ScriptEditor::lineNumberAreaWidth()
} }
void void
ScriptEditor::updateLineNumberAreaWidth([[maybe_unused]] int newBlockCount) ScriptEditor::updateLineNumberAreaWidth([[maybe_unused]] int newBlockCount) noexcept
{ {
setViewportMargins(lineNumberAreaWidth(), 0, 0, 0); setViewportMargins(lineNumberAreaWidth(), 0, 0, 0);
} }
void void
ScriptEditor::updateLineNumberArea(const QRect &rect, int dy) ScriptEditor::updateLineNumberArea(const QRect &rect, int dy) noexcept
{ {
if (dy) if (dy)
lineNumberArea->scroll(0, dy); lineNumberArea->scroll(0, dy);
...@@ -71,7 +86,7 @@ ScriptEditor::updateLineNumberArea(const QRect &rect, int dy) ...@@ -71,7 +86,7 @@ ScriptEditor::updateLineNumberArea(const QRect &rect, int dy)
} }
void void
ScriptEditor::resizeEvent(QResizeEvent *e) ScriptEditor::resizeEvent(QResizeEvent *e) noexcept
{ {
QPlainTextEdit::resizeEvent(e); QPlainTextEdit::resizeEvent(e);
const QRect cr = contentsRect(); const QRect cr = contentsRect();
...@@ -79,7 +94,7 @@ ScriptEditor::resizeEvent(QResizeEvent *e) ...@@ -79,7 +94,7 @@ ScriptEditor::resizeEvent(QResizeEvent *e)
} }
void void
ScriptEditor::lineNumberAreaPaintEvent(QPaintEvent *event) ScriptEditor::lineNumberAreaPaintEvent(QPaintEvent *event) noexcept
{ {
QPainter painter(lineNumberArea); QPainter painter(lineNumberArea);
painter.fillRect(event->rect(), QColor::fromRgb(69, 83, 100)); painter.fillRect(event->rect(), QColor::fromRgb(69, 83, 100));
......
...@@ -17,7 +17,7 @@ class ScriptEditor final : public QPlainTextEdit { ...@@ -17,7 +17,7 @@ class ScriptEditor final : public QPlainTextEdit {
class LineNumberArea final : public QWidget { class LineNumberArea final : public QWidget {
VIVY_UNMOVABLE_OBJECT(LineNumberArea) VIVY_UNMOVABLE_OBJECT(LineNumberArea)
public: public:
LineNumberArea(ScriptEditor *editor); LineNumberArea(ScriptEditor *editor) noexcept;
QSize sizeHint() const noexcept override; QSize sizeHint() const noexcept override;
...@@ -25,23 +25,24 @@ class ScriptEditor final : public QPlainTextEdit { ...@@ -25,23 +25,24 @@ class ScriptEditor final : public QPlainTextEdit {
void paintEvent(QPaintEvent *event) noexcept override; void paintEvent(QPaintEvent *event) noexcept override;
private: private:
ScriptEditor *scriptEditor; ScriptEditor *scriptEditor{ nullptr };
}; };
public: public:
ScriptEditor(QWidget *parent = nullptr); ScriptEditor(QWidget *parent) noexcept;
void lineNumberAreaPaintEvent(QPaintEvent *event); void lineNumberAreaPaintEvent(QPaintEvent *event) noexcept;
int lineNumberAreaWidth(); int lineNumberAreaWidth() noexcept;
protected: protected:
void resizeEvent(QResizeEvent *event) override; void resizeEvent(QResizeEvent *event) noexcept override;
void keyPressEvent(QKeyEvent *e) noexcept override;
private slots: private slots:
void updateLineNumberAreaWidth(int newBlockCount); void updateLineNumberAreaWidth(int newBlockCount) noexcept;
void updateLineNumberArea(const QRect &rect, int dy); void updateLineNumberArea(const QRect &rect, int dy) noexcept;
private: private:
QWidget *lineNumberArea; QWidget *lineNumberArea{ nullptr };
}; };
} }
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter