| /**************************************************************************** |
| ** |
| ** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). |
| ** All rights reserved. |
| ** Contact: Nokia Corporation (qt-info@nokia.com) |
| ** |
| ** This file is part of the tools applications of the Qt Toolkit. |
| ** |
| ** $QT_BEGIN_LICENSE:LGPL$ |
| ** GNU Lesser General Public License Usage |
| ** This file may be used under the terms of the GNU Lesser General Public |
| ** License version 2.1 as published by the Free Software Foundation and |
| ** appearing in the file LICENSE.LGPL included in the packaging of this |
| ** file. Please review the following information to ensure the GNU Lesser |
| ** General Public License version 2.1 requirements will be met: |
| ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. |
| ** |
| ** In addition, as a special exception, Nokia gives you certain additional |
| ** rights. These rights are described in the Nokia Qt LGPL Exception |
| ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. |
| ** |
| ** GNU General Public License Usage |
| ** Alternatively, this file may be used under the terms of the GNU General |
| ** Public License version 3.0 as published by the Free Software Foundation |
| ** and appearing in the file LICENSE.GPL included in the packaging of this |
| ** file. Please review the following information to ensure the GNU General |
| ** Public License version 3.0 requirements will be met: |
| ** http://www.gnu.org/copyleft/gpl.html. |
| ** |
| ** Other Usage |
| ** Alternatively, this file may be used in accordance with the terms and |
| ** conditions contained in a signed written agreement between you and Nokia. |
| ** |
| ** |
| ** |
| ** |
| ** |
| ** $QT_END_LICENSE$ |
| ** |
| ****************************************************************************/ |
| |
| #include "docuwindow.h" |
| #include <QTextBrowser> |
| #include <QTextDocument> |
| #include <QToolBar> |
| #include <QToolButton> |
| #include <QFileDialog> |
| #include <QFile> |
| #include <QStatusBar> |
| #include <QPrinter> |
| #include <QPainter> |
| #include <QPrintDialog> |
| #include <QTextStream> |
| |
| QT_BEGIN_NAMESPACE |
| |
| static const char *filesave[] = { |
| " 14 14 4 1", |
| ". c #040404", |
| "# c #808304", |
| "a c #bfc2bf", |
| "b c None", |
| "..............", |
| ".#.aaaaaaaa.a.", |
| ".#.aaaaaaaa...", |
| ".#.aaaaaaaa.#.", |
| ".#.aaaaaaaa.#.", |
| ".#.aaaaaaaa.#.", |
| ".#.aaaaaaaa.#.", |
| ".##........##.", |
| ".############.", |
| ".##.........#.", |
| ".##......aa.#.", |
| ".##......aa.#.", |
| ".##......aa.#.", |
| "b............." |
| }; |
| |
| static const char *fileprint[] = { |
| " 16 14 6 1", |
| ". c #000000", |
| "# c #848284", |
| "a c #c6c3c6", |
| "b c #ffff00", |
| "c c #ffffff", |
| "d c None", |
| "ddddd.........dd", |
| "dddd.cccccccc.dd", |
| "dddd.c.....c.ddd", |
| "ddd.cccccccc.ddd", |
| "ddd.c.....c....d", |
| "dd.cccccccc.a.a.", |
| "d..........a.a..", |
| ".aaaaaaaaaa.a.a.", |
| ".............aa.", |
| ".aaaaaa###aa.a.d", |
| ".aaaaaabbbaa...d", |
| ".............a.d", |
| "d.aaaaaaaaa.a.dd", |
| "dd...........ddd" |
| }; |
| |
| |
| DocuWindow::DocuWindow(const QString& docu, QWidget *parent, QWidget *source) |
| : QMainWindow(parent) |
| { |
| setAttribute(Qt::WA_DeleteOnClose); |
| setWindowTitle(tr("%1 - Documentation").arg(source->windowTitle())); |
| |
| browser = new QTextBrowser(this); |
| browser->setHtml(docu); |
| |
| setCentralWidget(browser); |
| |
| QToolBar *fileTools = new QToolBar(tr("File Operations"), this); |
| fileTools->addAction(QPixmap(filesave), tr("Save File"), this, SLOT(save())); |
| fileTools->addAction(QPixmap(fileprint), tr("Print"), this, SLOT(print())); |
| |
| addToolBar(fileTools); |
| statusBar(); |
| } |
| |
| void DocuWindow::save() |
| { |
| QString filename = QFileDialog::getSaveFileName(this); |
| |
| if (filename.isEmpty()) |
| return; |
| |
| QString text = browser->document()->toHtml(); |
| QFile f(filename); |
| if (!f.open(QIODevice::WriteOnly)) { |
| statusBar()->showMessage(tr("Could not write to %1").arg(filename), 2000); |
| return; |
| } |
| |
| QTextStream t(&f); |
| t << text; |
| f.close(); |
| |
| statusBar()->showMessage(tr("File %1 saved").arg(filename), 2000); |
| } |
| |
| void DocuWindow::print() |
| { |
| QPrinter printer; |
| if (printer.printerName().isEmpty()) { |
| statusBar()->showMessage(tr("No printer installed"), 2000); |
| return; |
| } |
| |
| QPrintDialog printDialog(&printer, this); |
| if (!printDialog.exec()) { |
| statusBar()->showMessage(tr("Printing aborted"), 2000); |
| return; |
| } |
| |
| browser->document()->print(&printer); |
| } |
| |
| QT_END_NAMESPACE |