Changeset 108 in tspsg-svn


Ignore:
Timestamp:
Apr 25, 2010, 10:09:26 PM (15 years ago)
Author:
laleppa
Message:

+ Implemented saving the solution graph when saving solution as HTML (in SVG format).

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/globals.h

    r107 r108  
    3232#include <QtCore>
    3333#include <QtGui>
     34#include <QtSvg>
    3435
    3536// Version info
  • trunk/src/main.cpp

    r99 r108  
    3434
    3535#ifdef STATIC_BUILD
    36 //      Q_IMPORT_PLUGIN(qjpeg)
    37 //      Q_IMPORT_PLUGIN(qsvg)
     36        Q_IMPORT_PLUGIN(qjpeg)
     37        Q_IMPORT_PLUGIN(qsvg)
    3838#endif
    3939
  • trunk/src/mainwindow.cpp

    r107 r108  
    218218        }
    219219#endif
     220        if (selectedFile.endsWith(".htm", Qt::CaseInsensitive) || selectedFile.endsWith(".html", Qt::CaseInsensitive)) {
     221QFile file(selectedFile);
     222                if (!file.open(QFile::WriteOnly)) {
     223                        QApplication::restoreOverrideCursor();
     224                        QMessageBox::critical(this, tr("Solution Save"), tr("Unable to save the solution.\nError: %1").arg(file.errorString()));
     225                        return;
     226                }
     227QFileInfo fi(selectedFile);
     228QString html = solutionText->document()->toHtml("UTF-8"),
     229                img = fi.completeBaseName() + ".svg";
     230                html.replace(QRegExp("<img\\s+src=\"tspsg://graph.pic\""), QString("<img src=\"%1\" width=\"%2\" height=\"%3\" alt=\"%4\"").arg(img).arg(graph.width() + 1).arg(graph.height() + 1).arg(tr("Solution Graph")));
     231                // Saving solution text as HTML
     232QTextStream ts(&file);
     233                ts.setCodec(QTextCodec::codecForName("UTF-8"));
     234                ts << html;
     235                file.close();
     236                // Saving solution graph as SVG
     237QSvgGenerator svg;
     238                svg.setFileName(fi.path() + "/" + img);
     239                svg.setTitle(tr("Solution Graph"));
     240QPainter p;
     241                p.begin(&svg);
     242                graph.play(&p);
     243                p.end();
     244
     245// Qt < 4.5 has no QTextDocumentWriter class
    220246#if QT_VERSION >= 0x040500
     247        } else {
    221248QTextDocumentWriter dw(selectedFile);
    222         if (!(selectedFile.endsWith(".htm",Qt::CaseInsensitive) || selectedFile.endsWith(".html",Qt::CaseInsensitive) || selectedFile.endsWith(".odt",Qt::CaseInsensitive) || selectedFile.endsWith(".txt",Qt::CaseInsensitive)))
    223                 dw.setFormat("plaintext");
    224         if (!dw.write(solutionText->document()))
    225                 QMessageBox::critical(this, tr("Solution Save"), tr("Unable to save the solution.\nError: %1").arg(dw.device()->errorString()));
    226 #else // QT_VERSION >= 0x040500
    227         // Qt < 4.5 has no QTextDocumentWriter class
    228 QFile file(selectedFile);
    229         if (!file.open(QFile::WriteOnly)) {
    230                 QApplication::restoreOverrideCursor();
    231                 QMessageBox::critical(this, tr("Solution Save"), tr("Unable to save the solution.\nError: %1").arg(file->errorString()));
    232                 return;
    233         }
    234 QTextStream ts(&file);
    235         ts.setCodec(QTextCodec::codecForName("UTF-8"));
    236         ts << solutionText->document()->toHtml("UTF-8");
    237         file.close();
     249                if (!selectedFile.endsWith(".odt",Qt::CaseInsensitive))
     250                        dw.setFormat("plaintext");
     251                if (!dw.write(solutionText->document()))
     252                        QMessageBox::critical(this, tr("Solution Save"), tr("Unable to save the solution.\nError: %1").arg(dw.device()->errorString()));
    238253#endif // QT_VERSION >= 0x040500
     254        }
    239255        QApplication::restoreOverrideCursor();
    240256}
  • trunk/tspsg.pro

    r104 r108  
    1111######################################################################
    1212
    13 #QT += svg
     13QT += svg
    1414
    1515TEMPLATE = app
     
    5050contains(QMAKE_PRL_CONFIG, static) {
    5151# We "embed" SVG and JPEG support on static build
    52 #       QTPLUGIN += qjpeg qsvg
     52        QTPLUGIN += qjpeg qsvg
    5353        DEFINES += STATIC_BUILD
    5454}
     
    113113        share.files = $$[QT_INSTALL_BINS]/QtCore$${D}4.dll \
    114114                $$[QT_INSTALL_BINS]/QtGui$${D}4.dll
    115 #               $$[QT_INSTALL_BINS]/QtSvg$${D}4.dll
     115                $$[QT_INSTALL_BINS]/QtSvg$${D}4.dll
    116116        l10n.files += $$[QT_INSTALL_TRANSLATIONS]/*.qm
    117117        win32-g++ {
     
    134134
    135135        DEPLOYMENT += target share l10n docs
    136 #       DEPLOYMENT_PLUGIN += qjpeg qsvg
     136        DEPLOYMENT_PLUGIN += qjpeg qsvg
    137137}
    138138
     
    160160                "\"COPYING\" - \"\", FILETEXT, TEXTEXIT"
    161161        DEPLOYMENT += share l10n docs
    162 #       DEPLOYMENT_PLUGIN += qjpeg qsvg
     162        DEPLOYMENT_PLUGIN += qjpeg qsvg
    163163
    164164        ICON = resources/tspsg.svg
Note: See TracChangeset for help on using the changeset viewer.