From b7b9c866a8695eabdaa3ae599e34ee82a9f0a673 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Wed, 13 Mar 2019 01:18:38 +1100 Subject: [PATCH] started text controls in texteditdialog --- dialogs/texteditdialog.cpp | 48 +++++++++++++++++++++++++++----------- dialogs/texteditdialog.h | 14 +++++------ 2 files changed, 41 insertions(+), 21 deletions(-) diff --git a/dialogs/texteditdialog.cpp b/dialogs/texteditdialog.cpp index 2dcc158af..de9328209 100644 --- a/dialogs/texteditdialog.cpp +++ b/dialogs/texteditdialog.cpp @@ -22,33 +22,53 @@ #include #include +#include TextEditDialog::TextEditDialog(QWidget *parent, const QString &s) : - QDialog(parent) + QDialog(parent) { - setWindowTitle(tr("Edit Text")); + setWindowTitle(tr("Edit Text")); - QVBoxLayout* layout = new QVBoxLayout(this); + QVBoxLayout* layout = new QVBoxLayout(this); - textEdit = new QPlainTextEdit(this); - textEdit->setPlainText(s); - layout->addWidget(textEdit); + QHBoxLayout* toolbar = new QHBoxLayout(); - QDialogButtonBox* buttons = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, this); - layout->addWidget(buttons); - connect(buttons, SIGNAL(accepted()), this, SLOT(save())); - connect(buttons, SIGNAL(rejected()), this, SLOT(cancel())); + QPushButton* italic_button = new QPushButton("I"); + italic_button->setCheckable(true); + toolbar->addWidget(italic_button); + + QPushButton* underline_button = new QPushButton("U"); + underline_button->setCheckable(true); + toolbar->addWidget(underline_button); + + toolbar->addStretch(); + + layout->addLayout(toolbar); + + textEdit = new QTextEdit(this); + textEdit->setHtml(s); + layout->addWidget(textEdit); + + // Connect buttons to the text field + connect(italic_button, SIGNAL(clicked(bool)), textEdit, SLOT(setFontItalic(bool))); + connect(underline_button, SIGNAL(clicked(bool)), textEdit, SLOT(setFontUnderline(bool))); + + // Create dialog buttons at the bottom + QDialogButtonBox* buttons = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, this); + layout->addWidget(buttons); + connect(buttons, SIGNAL(accepted()), this, SLOT(save())); + connect(buttons, SIGNAL(rejected()), this, SLOT(cancel())); } const QString& TextEditDialog::get_string() { - return result_str; + return result_str; } void TextEditDialog::save() { - result_str = textEdit->toPlainText(); - accept(); + result_str = textEdit->toHtml(); + accept(); } void TextEditDialog::cancel() { - reject(); + reject(); } diff --git a/dialogs/texteditdialog.h b/dialogs/texteditdialog.h index 6e7b29567..28a682d90 100644 --- a/dialogs/texteditdialog.h +++ b/dialogs/texteditdialog.h @@ -25,16 +25,16 @@ #include class TextEditDialog : public QDialog { - Q_OBJECT + Q_OBJECT public: - TextEditDialog(QWidget* parent = nullptr, const QString& s = nullptr); - const QString& get_string(); + TextEditDialog(QWidget* parent = nullptr, const QString& s = nullptr); + const QString& get_string(); private slots: - void save(); - void cancel(); + void save(); + void cancel(); private: - QString result_str; - QPlainTextEdit* textEdit; + QString result_str; + QTextEdit* textEdit; }; #endif // TEXTEDITDIALOG_H