• Friedemann Kleint's avatar
    Polish rich text example. · fe1ea010
    Friedemann Kleint authored
    
    - Introduce Qt 5 signals & slot syntax.
    - Use mime types in the file dialogs.
    - Streamline the code creating the actions.
    - Introduce QCommandLineParser.
    - Query the available size when determining
      the initial size instead of using hard-coded values
      for High-DPI screens.
    
    Change-Id: Ifc84a41ed55a4a674b6eafdb6120ac42441405b6
    Reviewed-by: default avatarTopi Reiniö <topi.reinio@digia.com>
    fe1ea010
textedit.h 3.53 KiB
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
**
** This file is part of the demonstration applications of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL21$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see http://www.qt.io/terms-conditions. For further
** information use the contact form at http://www.qt.io/contact-us.
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
** As a special exception, The Qt Company gives you certain additional
** rights. These rights are described in The Qt Company LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
** $QT_END_LICENSE$
****************************************************************************/
#ifndef TEXTEDIT_H
#define TEXTEDIT_H
#include <QMainWindow>
#include <QMap>
#include <QPointer>
QT_BEGIN_NAMESPACE
class QAction;
class QComboBox;
class QFontComboBox;
class QTextEdit;
class QTextCharFormat;
class QMenu;
class QPrinter;
QT_END_NAMESPACE
class TextEdit : public QMainWindow
    Q_OBJECT
public:
    TextEdit(QWidget *parent = 0);
    bool load(const QString &f);
public slots:
    void fileNew();
protected:
    virtual void closeEvent(QCloseEvent *e) Q_DECL_OVERRIDE;
private slots:
    void fileOpen();
    bool fileSave();
    bool fileSaveAs();
    void filePrint();
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
void filePrintPreview(); void filePrintPdf(); void textBold(); void textUnderline(); void textItalic(); void textFamily(const QString &f); void textSize(const QString &p); void textStyle(int styleIndex); void textColor(); void textAlign(QAction *a); void currentCharFormatChanged(const QTextCharFormat &format); void cursorPositionChanged(); void clipboardDataChanged(); void about(); void printPreview(QPrinter *); private: void setupFileActions(); void setupEditActions(); void setupTextActions(); bool maybeSave(); void setCurrentFileName(const QString &fileName); void mergeFormatOnWordOrSelection(const QTextCharFormat &format); void fontChanged(const QFont &f); void colorChanged(const QColor &c); void alignmentChanged(Qt::Alignment a); QAction *actionSave; QAction *actionTextBold; QAction *actionTextUnderline; QAction *actionTextItalic; QAction *actionTextColor; QAction *actionAlignLeft; QAction *actionAlignCenter; QAction *actionAlignRight; QAction *actionAlignJustify; QAction *actionUndo; QAction *actionRedo; QAction *actionCut; QAction *actionCopy; QAction *actionPaste; QComboBox *comboStyle; QFontComboBox *comboFont; QComboBox *comboSize; QToolBar *tb; QString fileName; QTextEdit *textEdit; }; #endif // TEXTEDIT_H