From 65e391412e8f81160331dc925f741ab65e686007 Mon Sep 17 00:00:00 2001 From: Giovanni JOSSERAND Date: Fri, 20 Jun 2025 11:54:36 +0200 Subject: [PATCH 1/7] 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)); } } From fe5623b8049767c0d9a8851e7f2be1b9192fd56e Mon Sep 17 00:00:00 2001 From: Giovanni JOSSERAND Date: Fri, 20 Jun 2025 16:30:24 +0200 Subject: [PATCH 2/7] add of color selector --- mainwindow.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/mainwindow.cpp b/mainwindow.cpp index 6eb2ac8..02454c0 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -7,6 +7,7 @@ #include #include #include +#include MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) @@ -286,14 +287,16 @@ void MainWindow::setColor(){ QTextEdit* textEdit = qobject_cast(focused); if (textEdit) { + QColor color = QColorDialog::getColor(Qt::black, this, "Choisir une couleur"); QTextCursor cursor = textEdit->textCursor(); if (cursor.hasSelection()) { - QTextCharFormat format; - format.setForeground(QBrush(QColor(255,0,0))); - cursor.mergeCharFormat(format); + if (color.isValid()) { + QTextCharFormat format; + format.setForeground(color); + cursor.mergeCharFormat(format); + } } } - } void MainWindow::on_actionColor_triggered() From b9aa141763c1b0407be6db0b49f9a38c0384b2a3 Mon Sep 17 00:00:00 2001 From: Giovanni JOSSERAND Date: Fri, 20 Jun 2025 22:18:33 +0200 Subject: [PATCH 3/7] adapt style function to work with PlainTextEdit --- mainwindow.cpp | 31 +++++------ mainwindow.ui | 42 +++++++-------- pages/parcours0.html | 124 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 160 insertions(+), 37 deletions(-) create mode 100644 pages/parcours0.html diff --git a/mainwindow.cpp b/mainwindow.cpp index 02454c0..d844a2e 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -8,6 +8,7 @@ #include #include #include +#include MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) @@ -216,13 +217,13 @@ void MainWindow::on_actionEditCut_triggered() void MainWindow::setBold(){ QWidget *focused = QApplication::focusWidget(); - QTextEdit* textEdit = qobject_cast(focused); + QPlainTextEdit* plainTextEdit = qobject_cast(focused); - if (textEdit) { - QTextCursor cursor = textEdit->textCursor(); + if (plainTextEdit) { + QTextCursor cursor = plainTextEdit->textCursor(); if (cursor.hasSelection()) { QTextCharFormat format; - QFont font = textEdit->currentFont(); + QFont font = plainTextEdit->currentCharFormat().font(); font.setBold(!font.bold()); format.setFont(font); cursor.mergeCharFormat(format); @@ -239,13 +240,13 @@ void MainWindow::on_actionBold_triggered() void MainWindow::setItalic(){ QWidget *focused = QApplication::focusWidget(); - QTextEdit* textEdit = qobject_cast(focused); + QPlainTextEdit* plainTextEdit = qobject_cast(focused); - if (textEdit) { - QTextCursor cursor = textEdit->textCursor(); + if (plainTextEdit) { + QTextCursor cursor = plainTextEdit->textCursor(); if (cursor.hasSelection()) { QTextCharFormat format; - QFont font = textEdit->currentFont(); + QFont font = plainTextEdit->currentCharFormat().font(); font.setItalic(!font.italic()); format.setFont(font); cursor.mergeCharFormat(format); @@ -261,13 +262,13 @@ void MainWindow::on_actionItalic_triggered() void MainWindow::setUnderline(){ QWidget *focused = QApplication::focusWidget(); - QTextEdit* textEdit = qobject_cast(focused); + QPlainTextEdit* plainTextEdit = qobject_cast(focused); - if (textEdit) { - QTextCursor cursor = textEdit->textCursor(); + if (plainTextEdit) { + QTextCursor cursor = plainTextEdit->textCursor(); if (cursor.hasSelection()) { QTextCharFormat format; - QFont font = textEdit->currentFont(); + QFont font = plainTextEdit->currentCharFormat().font(); font.setUnderline(!font.underline()); format.setFont(font); cursor.mergeCharFormat(format); @@ -284,11 +285,11 @@ void MainWindow::on_actionUnderline_triggered() void MainWindow::setColor(){ QWidget *focused = QApplication::focusWidget(); - QTextEdit* textEdit = qobject_cast(focused); + QPlainTextEdit* plainTextEdit = qobject_cast(focused); - if (textEdit) { + if (plainTextEdit) { QColor color = QColorDialog::getColor(Qt::black, this, "Choisir une couleur"); - QTextCursor cursor = textEdit->textCursor(); + QTextCursor cursor = plainTextEdit->textCursor(); if (cursor.hasSelection()) { if (color.isValid()) { QTextCharFormat format; diff --git a/mainwindow.ui b/mainwindow.ui index 29a3dc8..36948eb 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -246,7 +246,7 @@ ... - + :/data/images/data/images/add.png:/data/images/data/images/add.png @@ -280,13 +280,13 @@ QFrame::NoFrame - + - 250 - 100 + 200 + 80 391 - 121 + 101 @@ -373,7 +373,7 @@ - + :/data/images/data/images/new.png:/data/images/data/images/new.png @@ -385,7 +385,7 @@ - + :/data/images/data/images/save_as.png:/data/images/data/images/save_as.png @@ -397,7 +397,7 @@ - + :/data/images/data/images/save.png:/data/images/data/images/save.png @@ -409,7 +409,7 @@ - + :/data/images/data/images/print.png:/data/images/data/images/print.png @@ -421,7 +421,7 @@ - + :/data/images/data/images/copy.png:/data/images/data/images/copy.png @@ -433,7 +433,7 @@ - + :/data/images/data/images/paste.png:/data/images/data/images/paste.png @@ -445,7 +445,7 @@ - + :/data/images/data/images/cut.png:/data/images/data/images/cut.png @@ -457,7 +457,7 @@ - + :/data/images/data/images/edit_undo.png:/data/images/data/images/edit_undo.png @@ -469,7 +469,7 @@ - + :/data/images/data/images/edit_redo.png:/data/images/data/images/edit_redo.png @@ -481,7 +481,7 @@ - + :/data/images/data/images/open.png:/data/images/data/images/open.png @@ -493,7 +493,7 @@ - + :/data/images/data/images/bold.png:/data/images/data/images/bold.png @@ -502,7 +502,7 @@ - + :/data/images/data/images/italic.png:/data/images/data/images/italic.png @@ -511,7 +511,7 @@ - + :/data/images/data/images/underline.png:/data/images/data/images/underline.png @@ -520,7 +520,7 @@ - + :/data/images/data/images/font-color.png:/data/images/data/images/font-color.png @@ -528,8 +528,6 @@ - - - + diff --git a/pages/parcours0.html b/pages/parcours0.html new file mode 100644 index 0000000..7f4959a --- /dev/null +++ b/pages/parcours0.html @@ -0,0 +1,124 @@ + + + + + Carte du parcours + + + + + +

Fiche du parcours

+
+
+
+

parcous123

+

Ville : Bourg en bresse

+

Département : 0

+

Difficulté : 2

+

Durée (heures) : 2.3

+

Longueur (km) : 17.3

+ +

Étape 1

+

Personnages :

+
  • Quentin
  • +
+

Dialogues :

+
  • ok c'est cool
  • +
+

Étape 2

+

Personnages :

+
  • Quentin
  • +
+

Dialogues :

+
  • ok c'est cool
  • +
+ +
+
+ + + + + From 0b4f2a172c58ae51256d7ff9092dfc0575ef20aa Mon Sep 17 00:00:00 2001 From: Giovanni JOSSERAND Date: Fri, 20 Jun 2025 22:40:18 +0200 Subject: [PATCH 4/7] add of overline function --- data.qrc | 1 + data/images/overline.png | Bin 0 -> 4815 bytes mainwindow.cpp | 20 ++++++++++++++++++ mainwindow.h | 3 +++ mainwindow.ui | 44 +++++++++++++++++++++++++-------------- 5 files changed, 52 insertions(+), 16 deletions(-) create mode 100644 data/images/overline.png diff --git a/data.qrc b/data.qrc index e712d32..9a9c3b4 100644 --- a/data.qrc +++ b/data.qrc @@ -20,5 +20,6 @@ data/images/underline.png data/images/add.png data/images/font-color.png + data/images/overline.png diff --git a/data/images/overline.png b/data/images/overline.png new file mode 100644 index 0000000000000000000000000000000000000000..e8bc7680a472041c46ae1826dea91f2ccdbac64d GIT binary patch literal 4815 zcmeHKdr(tX8V^2r3W`KQ%Q_*T2y&B~cXB0AAOup0vJfj+biBE_fdF}!Tu7iweNZcC zQSgNdL&X>M0ir^6#HB(26}N6zSA3(WW!3VkC`H|}CjkMco!N0_`ya{N+7;tA=E_++>J1cl&CAc+a%HoI^)JW0kwMtbgP9ZXM zI0ZMUlq8brwmSMVmwL*iH|^y4?PRq8y4zTS>sDDJD7|K%ET%9EO%ikI^i9lr3EBkGaM(%q`hMK`={ zuD>`--VwQ%f2FK5u{n&wN-_kLBwuQAt?ula`+|S)bbnUyK*p}k9e;7{(%Bd12n*wt z&d+o5K3X?H9O~4=A>(k*Ob4g_?+#Dw8z12qe>ZPhS2KxZldTF1iI#WZIVZ=GESqpbVC1iPJY-;nU6u z2}U+P`OICL(nT9mFPD=`rv*%3+sAr+C=g!dH0fBz>Xed4y*3wPD*nm){(=|0y!7X^ z5@VmSucLKO`al+G#S4826XpB}lxI=_g~dsu5KOD4p$e@Wrtf*Ks;7-&KOfEp)IibTwF2#-_ngxJi}Hqy{-s0`&?d5+f21L4Y?Q zHHjc}2%T;;8fiurO{-6&GXw$w9cI#*ObB>Dh71jXnjnqA+X69&A;JxqUZo>cS`Ed5 ziORKUgpf)F@jjF3p9ha)T$B&yUpYZM^+ zJx@ZV93kty+$nBpL&OYB1aa1;A-4fFnTpEUr?{f-nxu z2M~M|lCv2wgs~X{1q)^3d^T$o#3H>4s1i*bos|Vj0iZCHC%`Zc3j!H2AvPvwKmq|O zfCL;Clh5TaIT&{kN`WC_tzM0ScB<59B2L$760LJs2uDJqB|<8b29H>xQ&B<*0)*5k zl_t$JG9Xi_@mK=2u*u+YU^a)rXR$djkHKY+IDLxi4M2$&Oa@G24USmaf`DQGv8Y9- z0KggnYC*#EI7(>sGOadMNVTLyu|y6JOTltdpad#H2^@gJOb!Bb5hg5SG7%OJVX)@G zOava~uT`j&8UM@MvUn(ggDsC#8NmD*R@2~$ip5tBz74*ns;o|1k;1O^IjPszd3(+8?ZR&BI6At zlIIP}WfMj9-3N?zghU!{_tch5p6zn>d+#4eq;csIQHU(*e#fn5t@N*C+wRtm`u(4X zyrrVDOc6M?t?_`puXuES5gC=1ozrCgN0iTjskY+6)Ai!Qq-a+M{~i7zRnMw9Cw#u{ zExP}?;p%yHG5yx1OF_5ZtZKcVQqdIj_+q|ylRR|aI>xe_I~Wxy(b09 zasG#@6xr;>u+n}D>nG0ka}}Nod~7-U8AalKxrT~_Nj5KQZ$CX*ANpttkMMvIkv_x>XEk?Ufc8UiaV&fIJ|U9_I%ycrna+!haZL4G=<%5 zbXqkzKW+YI=cK0i8pqIvsVDDH8@pYWoJiZ*y=T8`@tK?-Zx-vXy?n~QzMAi$jC*nH z?08}2$!h~sigJIux^kAdEh8YL+vjyXN-gnq38?p~k?d|K zAb+#7!+%(3^1gdv-XIBVDDGY^k+a+jMEY^Yo>SR^MxFOMY_WgKC)t~Qdk5-v-Q3+D zZFZ}PG6fg3mOc*Ed%bjLE^eS6_iI?Gpefk1+ji~kt(x6Cxg|7mPs-g`<&jg+!+T#X zEyQ9KCk+RuFKI4pm(_Vzq-0cQ#uPLb&)%%8-1^ARp_RlvxOv$YI|s~n zLBhr(rM&PfEoBj}BK+>=jpvuhce2jNCb!(1v0GF1Ta3_g+fk?V6(=02oh`BER9@zB z^PO#Hi|S`M{p^ylAfaQsT(h3setColor(); } +void MainWindow::setOverline(){ + QWidget *focused = QApplication::focusWidget(); + QPlainTextEdit* plainTextEdit = qobject_cast(focused); + + if (plainTextEdit) { + QTextCursor cursor = plainTextEdit->textCursor(); + if (cursor.hasSelection()) { + QTextCharFormat format; + QFont font = plainTextEdit->currentCharFormat().font(); + font.setOverline(!font.overline()); + format.setFont(font); + cursor.mergeCharFormat(format); + } + } +} +void MainWindow::on_actionOverline_triggered() +{ + this->setOverline(); +} + diff --git a/mainwindow.h b/mainwindow.h index 39d3414..a3e7c94 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -30,6 +30,7 @@ public: void setItalic(); void setUnderline(); void setColor(); + void setOverline(); private slots: void on_pushButton_clicked(); @@ -55,6 +56,8 @@ private slots: void on_actionColor_triggered(); + void on_actionOverline_triggered(); + private: Ui::MainWindow *ui; QString currentFile; diff --git a/mainwindow.ui b/mainwindow.ui index 36948eb..56a0bdf 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -246,7 +246,7 @@ ... - + :/data/images/data/images/add.png:/data/images/data/images/add.png @@ -346,6 +346,7 @@ + @@ -373,7 +374,7 @@ - + :/data/images/data/images/new.png:/data/images/data/images/new.png @@ -385,7 +386,7 @@ - + :/data/images/data/images/save_as.png:/data/images/data/images/save_as.png @@ -397,7 +398,7 @@ - + :/data/images/data/images/save.png:/data/images/data/images/save.png @@ -409,7 +410,7 @@ - + :/data/images/data/images/print.png:/data/images/data/images/print.png @@ -421,7 +422,7 @@ - + :/data/images/data/images/copy.png:/data/images/data/images/copy.png @@ -433,7 +434,7 @@ - + :/data/images/data/images/paste.png:/data/images/data/images/paste.png @@ -445,7 +446,7 @@ - + :/data/images/data/images/cut.png:/data/images/data/images/cut.png @@ -457,7 +458,7 @@ - + :/data/images/data/images/edit_undo.png:/data/images/data/images/edit_undo.png @@ -469,7 +470,7 @@ - + :/data/images/data/images/edit_redo.png:/data/images/data/images/edit_redo.png @@ -481,7 +482,7 @@ - + :/data/images/data/images/open.png:/data/images/data/images/open.png @@ -493,7 +494,7 @@ - + :/data/images/data/images/bold.png:/data/images/data/images/bold.png @@ -502,7 +503,7 @@ - + :/data/images/data/images/italic.png:/data/images/data/images/italic.png @@ -511,7 +512,7 @@ - + :/data/images/data/images/underline.png:/data/images/data/images/underline.png @@ -520,14 +521,25 @@ - + :/data/images/data/images/font-color.png:/data/images/data/images/font-color.png Color + + + + :/data/images/data/images/overline.png:/data/images/data/images/overline.png + + + Overline + + - + + + From 2f6b7d44d8611e139751f4ec953c952748c7c185 Mon Sep 17 00:00:00 2001 From: Giovanni JOSSERAND Date: Fri, 20 Jun 2025 23:10:11 +0200 Subject: [PATCH 5/7] add of fontSize and font functions --- data.qrc | 1 + data/images/font-size.png | Bin 0 -> 10964 bytes mainwindow.cpp | 49 ++++++++++++++++++++++++++++++++++++++ mainwindow.h | 6 +++++ mainwindow.ui | 20 ++++++++++++++++ 5 files changed, 76 insertions(+) create mode 100644 data/images/font-size.png diff --git a/data.qrc b/data.qrc index 9a9c3b4..0eeacf3 100644 --- a/data.qrc +++ b/data.qrc @@ -21,5 +21,6 @@ data/images/add.png data/images/font-color.png data/images/overline.png + data/images/font-size.png diff --git a/data/images/font-size.png b/data/images/font-size.png new file mode 100644 index 0000000000000000000000000000000000000000..b38bc84789839c1805ca0a312ac72546d3a4921d GIT binary patch literal 10964 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 literal 0 HcmV?d00001 diff --git a/mainwindow.cpp b/mainwindow.cpp index 8e15730..83b7574 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -9,6 +9,8 @@ #include #include #include +#include +#include MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) @@ -325,3 +327,50 @@ void MainWindow::on_actionOverline_triggered() this->setOverline(); } +void MainWindow::setSize(){ + QWidget *focused = QApplication::focusWidget(); + QPlainTextEdit* plainTextEdit = qobject_cast(focused); + + if (plainTextEdit) { + QTextCursor cursor = plainTextEdit->textCursor(); + if (cursor.hasSelection()) { + bool ok; + int size = QInputDialog::getInt(this, "Taille de la police", "Entrez la taille de la police:", cursor.charFormat().font().pointSize(), 1, 100, 1, &ok); + + if (ok) { + QTextCharFormat format; + QFont font = cursor.charFormat().font(); + font.setPointSize(size); + format.setFont(font); + cursor.mergeCharFormat(format); + } + } + } +} +void MainWindow::on_actionSize_triggered() +{ + this->setSize(); +} + +void MainWindow::setFont(){ + QWidget *focused = QApplication::focusWidget(); + QPlainTextEdit* plainTextEdit = qobject_cast(focused); + + if (plainTextEdit) { + QTextCursor cursor = plainTextEdit->textCursor(); + if (cursor.hasSelection()) { + bool ok; + QFont font = QFontDialog::getFont(&ok, cursor.charFormat().font(), this, "Choisir une police"); + if (ok) { + QTextCharFormat format; + format.setFont(font); + cursor.mergeCharFormat(format); + } + } + } +} +void MainWindow::on_actionFont_triggered() +{ + this->setFont(); +} + diff --git a/mainwindow.h b/mainwindow.h index a3e7c94..ce4d9ac 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -31,6 +31,8 @@ public: void setUnderline(); void setColor(); void setOverline(); + void setSize(); + void setFont(); private slots: void on_pushButton_clicked(); @@ -58,6 +60,10 @@ private slots: void on_actionOverline_triggered(); + void on_actionSize_triggered(); + + void on_actionFont_triggered(); + private: Ui::MainWindow *ui; QString currentFile; diff --git a/mainwindow.ui b/mainwindow.ui index 56a0bdf..769efb3 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -343,6 +343,8 @@ + + @@ -537,6 +539,24 @@ Overline + + + + :/data/images/data/images/font.png:/data/images/data/images/font.png + + + Font + + + + + + :/data/images/data/images/font-size.png:/data/images/data/images/font-size.png + + + Size + + From a609d4f4137a43c7d8f82d3a1fd9d559b1c573e2 Mon Sep 17 00:00:00 2001 From: Giovanni JOSSERAND Date: Fri, 20 Jun 2025 23:26:30 +0200 Subject: [PATCH 6/7] update style functions to work without selection --- mainwindow.cpp | 90 +++++++++++++++++++++----------------------------- 1 file changed, 38 insertions(+), 52 deletions(-) diff --git a/mainwindow.cpp b/mainwindow.cpp index 83b7574..c9dc9a5 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -223,13 +223,11 @@ void MainWindow::setBold(){ if (plainTextEdit) { QTextCursor cursor = plainTextEdit->textCursor(); - if (cursor.hasSelection()) { - QTextCharFormat format; - QFont font = plainTextEdit->currentCharFormat().font(); - font.setBold(!font.bold()); - format.setFont(font); - cursor.mergeCharFormat(format); - } + QTextCharFormat format; + QFont font = cursor.charFormat().font(); + font.setBold(!font.bold()); + format.setFont(font); + plainTextEdit->mergeCurrentCharFormat(format); } } @@ -246,13 +244,11 @@ void MainWindow::setItalic(){ if (plainTextEdit) { QTextCursor cursor = plainTextEdit->textCursor(); - if (cursor.hasSelection()) { - QTextCharFormat format; - QFont font = plainTextEdit->currentCharFormat().font(); - font.setItalic(!font.italic()); - format.setFont(font); - cursor.mergeCharFormat(format); - } + QTextCharFormat format; + QFont font = cursor.charFormat().font(); + font.setItalic(!font.italic()); + format.setFont(font); + plainTextEdit->mergeCurrentCharFormat(format); } } @@ -268,13 +264,11 @@ void MainWindow::setUnderline(){ if (plainTextEdit) { QTextCursor cursor = plainTextEdit->textCursor(); - if (cursor.hasSelection()) { - QTextCharFormat format; - QFont font = plainTextEdit->currentCharFormat().font(); - font.setUnderline(!font.underline()); - format.setFont(font); - cursor.mergeCharFormat(format); - } + QTextCharFormat format; + QFont font = cursor.charFormat().font(); + font.setUnderline(!font.underline()); + format.setFont(font); + plainTextEdit->mergeCurrentCharFormat(format); } } @@ -292,12 +286,10 @@ void MainWindow::setColor(){ if (plainTextEdit) { QColor color = QColorDialog::getColor(Qt::black, this, "Choisir une couleur"); QTextCursor cursor = plainTextEdit->textCursor(); - if (cursor.hasSelection()) { - if (color.isValid()) { - QTextCharFormat format; - format.setForeground(color); - cursor.mergeCharFormat(format); - } + if (color.isValid()) { + QTextCharFormat format; + format.setForeground(color); + plainTextEdit->mergeCurrentCharFormat(format); } } } @@ -313,13 +305,11 @@ void MainWindow::setOverline(){ if (plainTextEdit) { QTextCursor cursor = plainTextEdit->textCursor(); - if (cursor.hasSelection()) { - QTextCharFormat format; - QFont font = plainTextEdit->currentCharFormat().font(); - font.setOverline(!font.overline()); - format.setFont(font); - cursor.mergeCharFormat(format); - } + QTextCharFormat format; + QFont font = cursor.charFormat().font(); + font.setOverline(!font.overline()); + format.setFont(font); + plainTextEdit->mergeCurrentCharFormat(format); } } void MainWindow::on_actionOverline_triggered() @@ -333,17 +323,15 @@ void MainWindow::setSize(){ if (plainTextEdit) { QTextCursor cursor = plainTextEdit->textCursor(); - if (cursor.hasSelection()) { - bool ok; - int size = QInputDialog::getInt(this, "Taille de la police", "Entrez la taille de la police:", cursor.charFormat().font().pointSize(), 1, 100, 1, &ok); + bool ok; + int size = QInputDialog::getInt(this, "Taille de la police", "Entrez la taille de la police:", cursor.charFormat().font().pointSize(), 1, 100, 1, &ok); - if (ok) { - QTextCharFormat format; - QFont font = cursor.charFormat().font(); - font.setPointSize(size); - format.setFont(font); - cursor.mergeCharFormat(format); - } + if (ok) { + QTextCharFormat format; + QFont font = cursor.charFormat().font(); + font.setPointSize(size); + format.setFont(font); + plainTextEdit->mergeCurrentCharFormat(format); } } } @@ -358,14 +346,12 @@ void MainWindow::setFont(){ if (plainTextEdit) { QTextCursor cursor = plainTextEdit->textCursor(); - if (cursor.hasSelection()) { - bool ok; - QFont font = QFontDialog::getFont(&ok, cursor.charFormat().font(), this, "Choisir une police"); - if (ok) { - QTextCharFormat format; - format.setFont(font); - cursor.mergeCharFormat(format); - } + bool ok; + QFont font = QFontDialog::getFont(&ok, cursor.charFormat().font(), this, "Choisir une police"); + if (ok) { + QTextCharFormat format; + format.setFont(font); + plainTextEdit->mergeCurrentCharFormat(format); } } } From a74c419c5d535bee985632f7c6a28e84f3f74864 Mon Sep 17 00:00:00 2001 From: Giovanni JOSSERAND Date: Fri, 20 Jun 2025 23:38:12 +0200 Subject: [PATCH 7/7] add of shortcut for style tools --- mainwindow.cpp | 42 ++++++++++++++++++++++++++++++++++++ mainwindow.h | 14 ++++++++++++ mainwindow.ui | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 114 insertions(+) diff --git a/mainwindow.cpp b/mainwindow.cpp index c9dc9a5..8b88f75 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -360,3 +360,45 @@ void MainWindow::on_actionFont_triggered() this->setFont(); } + +void MainWindow::on_actionFont_color_triggered() +{ + this->setColor(); +} + + +void MainWindow::on_actionFont_2_triggered() +{ + this->setFont(); +} + + +void MainWindow::on_actionBold_2_triggered() +{ + this->setBold(); +} + + +void MainWindow::on_actionItalic_2_triggered() +{ + this->setItalic(); +} + + +void MainWindow::on_actionUnderline_2_triggered() +{ + this->setUnderline(); +} + + +void MainWindow::on_actionOverline_2_triggered() +{ + this->setOverline(); +} + + +void MainWindow::on_actionFont_size_triggered() +{ + this->setSize(); +} + diff --git a/mainwindow.h b/mainwindow.h index ce4d9ac..2b41a0a 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -64,6 +64,20 @@ private slots: void on_actionFont_triggered(); + void on_actionFont_color_triggered(); + + void on_actionFont_2_triggered(); + + void on_actionBold_2_triggered(); + + void on_actionItalic_2_triggered(); + + void on_actionUnderline_2_triggered(); + + void on_actionOverline_2_triggered(); + + void on_actionFont_size_triggered(); + private: Ui::MainWindow *ui; QString currentFile; diff --git a/mainwindow.ui b/mainwindow.ui index 769efb3..28ebdf3 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -316,8 +316,22 @@ Edit + + + Font + + + + + + + + + + + @@ -557,6 +571,50 @@ Size + + + Font color + + + + + Font + + + + + Font size + + + + + Bold + + + Ctrl+B + + + + + Italic + + + Ctrl+I + + + + + Underline + + + Ctrl+U + + + + + Overline + +