From 65e391412e8f81160331dc925f741ab65e686007 Mon Sep 17 00:00:00 2001 From: Giovanni JOSSERAND Date: Fri, 20 Jun 2025 11:54:36 +0200 Subject: [PATCH] add of setbold, setItalic, setUnderlined and setFontColor functions --- data.qrc | 1 + data/images/font-color.png | Bin 0 -> 5454 bytes mainwindow.cpp | 89 +++++++++++++++++++++++++++++++++++++ mainwindow.h | 12 +++++ mainwindow.ui | 88 +++++++++++++++++++++++++----------- path.cpp | 2 +- 6 files changed, 166 insertions(+), 26 deletions(-) create mode 100644 data/images/font-color.png diff --git a/data.qrc b/data.qrc index 9c654af..e712d32 100644 --- a/data.qrc +++ b/data.qrc @@ -19,5 +19,6 @@ data/images/save_as.png data/images/underline.png data/images/add.png + data/images/font-color.png diff --git a/data/images/font-color.png b/data/images/font-color.png new file mode 100644 index 0000000000000000000000000000000000000000..9cbbd4391af0dd6bce971dbff05a3f7ae62ef48e GIT binary patch literal 5454 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 #include #include +#include MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) @@ -212,3 +213,91 @@ void MainWindow::on_actionEditCut_triggered() } } +void MainWindow::setBold(){ + QWidget *focused = QApplication::focusWidget(); + QTextEdit* textEdit = qobject_cast(focused); + + if (textEdit) { + QTextCursor cursor = textEdit->textCursor(); + if (cursor.hasSelection()) { + QTextCharFormat format; + QFont font = textEdit->currentFont(); + font.setBold(!font.bold()); + format.setFont(font); + cursor.mergeCharFormat(format); + } + } +} + +void MainWindow::on_actionBold_triggered() +{ + this->setBold(); +} + + + +void MainWindow::setItalic(){ + QWidget *focused = QApplication::focusWidget(); + QTextEdit* textEdit = qobject_cast(focused); + + if (textEdit) { + QTextCursor cursor = textEdit->textCursor(); + if (cursor.hasSelection()) { + QTextCharFormat format; + QFont font = textEdit->currentFont(); + font.setItalic(!font.italic()); + format.setFont(font); + cursor.mergeCharFormat(format); + } + } +} + +void MainWindow::on_actionItalic_triggered() +{ + this->setItalic(); +} + + +void MainWindow::setUnderline(){ + QWidget *focused = QApplication::focusWidget(); + QTextEdit* textEdit = qobject_cast(focused); + + if (textEdit) { + QTextCursor cursor = textEdit->textCursor(); + if (cursor.hasSelection()) { + QTextCharFormat format; + QFont font = textEdit->currentFont(); + font.setUnderline(!font.underline()); + format.setFont(font); + cursor.mergeCharFormat(format); + } + } +} + +void MainWindow::on_actionUnderline_triggered() +{ + this->setUnderline(); +} + + + +void MainWindow::setColor(){ + QWidget *focused = QApplication::focusWidget(); + QTextEdit* textEdit = qobject_cast(focused); + + if (textEdit) { + QTextCursor cursor = textEdit->textCursor(); + if (cursor.hasSelection()) { + QTextCharFormat format; + format.setForeground(QBrush(QColor(255,0,0))); + cursor.mergeCharFormat(format); + } + } + +} + +void MainWindow::on_actionColor_triggered() +{ + this->setColor(); +} + diff --git a/mainwindow.h b/mainwindow.h index 7c78516..39d3414 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -26,6 +26,10 @@ public: void addNewPath(); void addNewStep(); void exportHTMLMap(); + void setBold(); + void setItalic(); + void setUnderline(); + void setColor(); private slots: void on_pushButton_clicked(); @@ -43,6 +47,14 @@ private slots: void on_actionEditCut_triggered(); + void on_actionBold_triggered(); + + void on_actionItalic_triggered(); + + void on_actionUnderline_triggered(); + + void on_actionColor_triggered(); + private: Ui::MainWindow *ui; QString currentFile; diff --git a/mainwindow.ui b/mainwindow.ui index 2f533da..29a3dc8 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -38,9 +38,6 @@ Path information - - Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop - @@ -52,10 +49,7 @@ - QFrame::Shape::StyledPanel - - - QFrame::Shadow::Raised + QFrame::NoFrame @@ -279,19 +273,23 @@ Step information - - Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop - - QFrame::Shape::StyledPanel - - - QFrame::Shadow::Raised + QFrame::NoFrame + + + + 250 + 100 + 391 + 121 + + + @@ -302,7 +300,7 @@ 0 0 800 - 23 + 21 @@ -344,6 +342,10 @@ + + + + @@ -378,7 +380,7 @@ New File - QAction::MenuRole::NoRole + QAction::NoRole @@ -390,7 +392,7 @@ Save - QAction::MenuRole::NoRole + QAction::NoRole @@ -402,7 +404,7 @@ Save as - QAction::MenuRole::NoRole + QAction::NoRole @@ -414,7 +416,7 @@ Print - QAction::MenuRole::NoRole + QAction::NoRole @@ -426,7 +428,7 @@ Copy - QAction::MenuRole::NoRole + QAction::NoRole @@ -438,7 +440,7 @@ Paste - QAction::MenuRole::NoRole + QAction::NoRole @@ -450,7 +452,7 @@ Cut - QAction::MenuRole::NoRole + QAction::NoRole @@ -462,7 +464,7 @@ Undo - QAction::MenuRole::NoRole + QAction::NoRole @@ -474,7 +476,7 @@ Redo - QAction::MenuRole::NoRole + QAction::NoRole @@ -486,7 +488,43 @@ Open file - QAction::MenuRole::NoRole + QAction::NoRole + + + + + + :/data/images/data/images/bold.png:/data/images/data/images/bold.png + + + Bold + + + + + + :/data/images/data/images/italic.png:/data/images/data/images/italic.png + + + Italic + + + + + + :/data/images/data/images/underline.png:/data/images/data/images/underline.png + + + Underline + + + + + + :/data/images/data/images/font-color.png:/data/images/data/images/font-color.png + + + Color diff --git a/path.cpp b/path.cpp index 7a421f7..26a2558 100644 --- a/path.cpp +++ b/path.cpp @@ -75,7 +75,7 @@ Path::Path(QFile *file){ QJsonArray stepsArray = json["steps"].toArray(); for (const QJsonValue &stepValue : stepsArray) { QJsonObject stepObj = stepValue.toObject(); - //step.append(Step(stepObj)); + step.append(Step(stepObj)); } }