Skip to content

Commit

Permalink
Small fix to the notepad example
Browse files Browse the repository at this point in the history
- Remove misleading note about setCentralWidget()
- Connect copy/paste and undo/redo directly to the QTextEdit instead
  of routing them via window
- Add the missing "About" menu
- Check for reject of QFileDialog

Change-Id: Ia7457fbedd762028bf2bcde99dfcfb50bbc97f1d
Reviewed-by: Paul Wicking <[email protected]>
  • Loading branch information
FriedemannKleint committed May 18, 2021
1 parent 43ba451 commit 902a4d6
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 68 deletions.
7 changes: 0 additions & 7 deletions examples/widgets/tutorials/gettingstartedqt.qdoc
Original file line number Diff line number Diff line change
Expand Up @@ -320,13 +320,6 @@
\skipto Notepad::~Notepad
\printuntil }

In order to have the text edit field occupy the whole screen, we add
\c setCentralWidget to the main window.

\quotefromfile tutorials/notepad/notepad.cpp
\skipto Notepad::Notepad(QWidget *parent)
\printuntil }

\section2 Project File

The wizard generates the following project file, \c {notepad.pro}, for
Expand Down
68 changes: 21 additions & 47 deletions examples/widgets/tutorials/notepad/notepad.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -72,19 +72,24 @@ Notepad::Notepad(QWidget *parent) :
ui(new Ui::Notepad)
{
ui->setupUi(this);
this->setCentralWidget(ui->textEdit);

connect(ui->actionNew, &QAction::triggered, this, &Notepad::newDocument);
connect(ui->actionOpen, &QAction::triggered, this, &Notepad::open);
connect(ui->actionSave, &QAction::triggered, this, &Notepad::save);
connect(ui->actionSave_as, &QAction::triggered, this, &Notepad::saveAs);
connect(ui->actionPrint, &QAction::triggered, this, &Notepad::print);
connect(ui->actionExit, &QAction::triggered, this, &Notepad::exit);
connect(ui->actionCopy, &QAction::triggered, this, &Notepad::copy);
connect(ui->actionCut, &QAction::triggered, this, &Notepad::cut);
connect(ui->actionPaste, &QAction::triggered, this, &Notepad::paste);
connect(ui->actionUndo, &QAction::triggered, this, &Notepad::undo);
connect(ui->actionRedo, &QAction::triggered, this, &Notepad::redo);
connect(ui->actionExit, &QAction::triggered, this, &QWidget::close);
#if QT_CONFIG(clipboard)
connect(ui->textEdit, &QTextEdit::copyAvailable, ui->actionCopy, &QAction::setEnabled);
connect(ui->actionCopy, &QAction::triggered, ui->textEdit, &QTextEdit::copy);
connect(ui->actionCut, &QAction::triggered, ui->textEdit, &QTextEdit::cut);
connect(ui->actionPaste, &QAction::triggered, ui->textEdit, &QTextEdit::paste);
#endif
connect(ui->textEdit, &QTextEdit::undoAvailable, ui->actionUndo, &QAction::setEnabled);
connect(ui->actionUndo, &QAction::triggered, ui->textEdit, &QTextEdit::undo);
connect(ui->textEdit, &QTextEdit::redoAvailable, ui->actionRedo, &QAction::setEnabled);
connect(ui->actionRedo, &QAction::triggered, ui->textEdit, &QTextEdit::redo);

connect(ui->actionFont, &QAction::triggered, this, &Notepad::selectFont);
connect(ui->actionBold, &QAction::triggered, this, &Notepad::setFontBold);
connect(ui->actionUnderline, &QAction::triggered, this, &Notepad::setFontUnderline);
Expand Down Expand Up @@ -117,6 +122,8 @@ void Notepad::newDocument()
void Notepad::open()
{
QString fileName = QFileDialog::getOpenFileName(this, "Open the file");
if (fileName.isEmpty())
return;
QFile file(fileName);
currentFile = fileName;
if (!file.open(QIODevice::ReadOnly | QFile::Text)) {
Expand All @@ -136,6 +143,8 @@ void Notepad::save()
// If we don't have a filename from before, get one.
if (currentFile.isEmpty()) {
fileName = QFileDialog::getSaveFileName(this, "Save");
if (fileName.isEmpty())
return;
currentFile = fileName;
} else {
fileName = currentFile;
Expand All @@ -155,6 +164,8 @@ void Notepad::save()
void Notepad::saveAs()
{
QString fileName = QFileDialog::getSaveFileName(this, "Save as");
if (fileName.isEmpty())
return;
QFile file(fileName);

if (!file.open(QFile::WriteOnly | QFile::Text)) {
Expand Down Expand Up @@ -182,42 +193,6 @@ void Notepad::print()
#endif // QT_CONFIG(printer)
}

void Notepad::exit()
{
QCoreApplication::quit();
}

void Notepad::copy()
{
#if QT_CONFIG(clipboard)
ui->textEdit->copy();
#endif
}

void Notepad::cut()
{
#if QT_CONFIG(clipboard)
ui->textEdit->cut();
#endif
}

void Notepad::paste()
{
#if QT_CONFIG(clipboard)
ui->textEdit->paste();
#endif
}

void Notepad::undo()
{
ui->textEdit->undo();
}

void Notepad::redo()
{
ui->textEdit->redo();
}

void Notepad::selectFont()
{
bool fontSelected;
Expand All @@ -244,8 +219,7 @@ void Notepad::setFontBold(bool bold)

void Notepad::about()
{
QMessageBox::about(this, tr("About MDI"),
tr("The <b>Notepad</b> example demonstrates how to code a basic "
"text editor using QtWidgets"));

QMessageBox::about(this, tr("About Notepad"),
tr("The <b>Notepad</b> example demonstrates how to code a basic "
"text editor using QtWidgets"));
}
12 changes: 0 additions & 12 deletions examples/widgets/tutorials/notepad/notepad.h
Original file line number Diff line number Diff line change
Expand Up @@ -89,18 +89,6 @@ private slots:

void print();

void exit();

void copy();

void cut();

void paste();

void undo();

void redo();

void selectFont();

void setFontBold(bool bold);
Expand Down
9 changes: 7 additions & 2 deletions examples/widgets/tutorials/notepad/notepad.ui
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,15 @@
<addaction name="actionRedo"/>
<addaction name="actionFont"/>
</widget>
<widget class="QMenu" name="menuAbout">
<property name="title">
<string>About</string>
</property>
<addaction name="actionAbout"/>
</widget>
<addaction name="menuFile"/>
<addaction name="menuEdit"/>
<addaction name="menuAbout"/>
</widget>
<widget class="QToolBar" name="mainToolBar">
<attribute name="toolBarArea">
Expand Down Expand Up @@ -171,8 +178,6 @@
<property name="toolTip">
<string>Exit notepad</string>
</property>
<property name="shortcut">
</property>
</action>
<action name="actionCopy">
<property name="icon">
Expand Down

0 comments on commit 902a4d6

Please sign in to comment.