From fcea9d4b72a207f1a416a8f11c74b99e1a1b1078 Mon Sep 17 00:00:00 2001 From: Nico Vertriest Date: Wed, 5 Aug 2020 11:18:33 +0200 Subject: Doc: Make Qt Gui snippets compilable - textdocument-lists MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Task-number: QTBUG-81486 Change-Id: I5f8017c7dc7fc735af83279ac340e3dfde68af89 Reviewed-by: Topi Reiniƶ --- .../doc/snippets/textdocument-lists/mainwindow.cpp | 144 ++------------------- .../textdocument-lists/textdocument-lists.pro | 6 + 2 files changed, 16 insertions(+), 134 deletions(-) create mode 100644 src/gui/doc/snippets/textdocument-lists/textdocument-lists.pro (limited to 'src/gui/doc/snippets/textdocument-lists') diff --git a/src/gui/doc/snippets/textdocument-lists/mainwindow.cpp b/src/gui/doc/snippets/textdocument-lists/mainwindow.cpp index 785f7ebcc9..5cb81c8721 100644 --- a/src/gui/doc/snippets/textdocument-lists/mainwindow.cpp +++ b/src/gui/doc/snippets/textdocument-lists/mainwindow.cpp @@ -47,138 +47,23 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ +#include +#include -#include - -#include "mainwindow.h" - -MainWindow::MainWindow() -{ - QMenu *fileMenu = new QMenu(tr("&File")); - - fileMenu->addAction(tr("E&xit"), this, SLOT(close()), - QKeySequence(tr("Ctrl+Q", "File|Exit"))); - - QMenu *editMenu = new QMenu(tr("&Edit")); - - cutAction = editMenu->addAction(tr("Cu&t"), this, SLOT(cutSelection()), - QKeySequence(tr("Ctrl+X", "Edit|Cut"))); - copyAction = editMenu->addAction(tr("&Copy"), this, SLOT(copySelection()), - QKeySequence(tr("Ctrl+C", "Edit|Copy"))); - pasteAction = editMenu->addAction(tr("&Paste"), this, - SLOT(pasteSelection()), QKeySequence(tr("Ctrl+V", "Edit|Paste"))); - - QMenu *selectMenu = new QMenu(tr("&Select")); - selectMenu->addAction(tr("&Word"), this, SLOT(selectWord())); - selectMenu->addAction(tr("&Line"), this, SLOT(selectLine())); - selectMenu->addAction(tr("&Block"), this, SLOT(selectBlock())); - selectMenu->addAction(tr("&Frame"), this, SLOT(selectFrame())); - - QMenu *insertMenu = new QMenu(tr("&Insert")); - - insertMenu->addAction(tr("&List"), this, SLOT(insertList()), - QKeySequence(tr("Ctrl+L", "Insert|List"))); - - menuBar()->addMenu(fileMenu); - menuBar()->addMenu(editMenu); - menuBar()->addMenu(selectMenu); - menuBar()->addMenu(insertMenu); - - editor = new QTextEdit(this); - document = new QTextDocument(this); - editor->setDocument(document); - - connect(editor, &QTextEdit::selectionChanged, - this, &MainWindow::updateMenus); - - updateMenus(); - - setCentralWidget(editor); - setWindowTitle(tr("Text Document Writer")); -} - -void MainWindow::cutSelection() -{ - QTextCursor cursor = editor->textCursor(); - if (cursor.hasSelection()) { - selection = cursor.selection(); - cursor.removeSelectedText(); - } -} - -void MainWindow::copySelection() -{ - QTextCursor cursor = editor->textCursor(); - if (cursor.hasSelection()) { - selection = cursor.selection(); - cursor.clearSelection(); - } -} - -void MainWindow::pasteSelection() -{ - QTextCursor cursor = editor->textCursor(); - cursor.insertFragment(selection); -} - -void MainWindow::selectWord() -{ - QTextCursor cursor = editor->textCursor(); - QTextBlock block = cursor.block(); - - cursor.beginEditBlock(); - cursor.movePosition(QTextCursor::StartOfWord); - cursor.movePosition(QTextCursor::EndOfWord, QTextCursor::KeepAnchor); - cursor.endEditBlock(); - - editor->setTextCursor(cursor); -} - -void MainWindow::selectLine() +namespace textdocument_lists { +struct MainWindow { - QTextCursor cursor = editor->textCursor(); - QTextBlock block = cursor.block(); + void insertList(); - cursor.beginEditBlock(); - cursor.movePosition(QTextCursor::StartOfLine); - cursor.movePosition(QTextCursor::EndOfLine, QTextCursor::KeepAnchor); - cursor.endEditBlock(); - - editor->setTextCursor(cursor); -} - -void MainWindow::selectBlock() -{ - QTextCursor cursor = editor->textCursor(); - QTextBlock block = cursor.block(); - - cursor.beginEditBlock(); - cursor.movePosition(QTextCursor::StartOfBlock); - cursor.movePosition(QTextCursor::EndOfBlock, QTextCursor::KeepAnchor); - cursor.endEditBlock(); - - editor->setTextCursor(cursor); -} - -void MainWindow::selectFrame() -{ - QTextCursor cursor = editor->textCursor(); - QTextFrame *frame = cursor.currentFrame(); - - cursor.beginEditBlock(); - cursor.setPosition(frame->firstPosition()); - cursor.setPosition(frame->lastPosition(), QTextCursor::KeepAnchor); - cursor.endEditBlock(); - - editor->setTextCursor(cursor); -} +private: + QTextEdit *editor = nullptr; +}; void MainWindow::insertList() { QTextCursor cursor = editor->textCursor(); - cursor.beginEditBlock(); - QTextList *list = cursor.currentList(); + //! [0] QTextListFormat listFormat; if (list) { @@ -189,15 +74,6 @@ void MainWindow::insertList() listFormat.setStyle(QTextListFormat::ListDisc); cursor.insertList(listFormat); //! [0] - - cursor.endEditBlock(); } -void MainWindow::updateMenus() -{ - QTextCursor cursor = editor->textCursor(); - cutAction->setEnabled(cursor.hasSelection()); - copyAction->setEnabled(cursor.hasSelection()); - - pasteAction->setEnabled(!selection.isEmpty()); -} +} //textdocument_lists diff --git a/src/gui/doc/snippets/textdocument-lists/textdocument-lists.pro b/src/gui/doc/snippets/textdocument-lists/textdocument-lists.pro new file mode 100644 index 0000000000..c37654876c --- /dev/null +++ b/src/gui/doc/snippets/textdocument-lists/textdocument-lists.pro @@ -0,0 +1,6 @@ +TEMPLATE = lib +TARGET = textdocument-lists +QT += core gui widgets + +SOURCES = \ + mainwindow.cpp -- cgit v1.2.3