MuseScore/mscore/svggenerator.h
Dmitri Ovodok f42109180c Use the original image file in SVG output if this saves SVG file size
The issue appears if cover page contains jpeg image. Generating SVG led to encoding jpeg to png and oversizing in some cases.
2019-06-18 11:45:27 +02:00

117 lines
3.7 KiB
C++

/****************************************************************************
**
** 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 QtSvg module 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$
**
****************************************************************************/
#ifndef SVGGENERATOR_H
#define SVGGENERATOR_H
#include <QtGui/qpaintdevice.h>
#include <QtCore/qnamespace.h>
#include <QtCore/qiodevice.h>
#include <QtCore/qobjectdefs.h>
#include <QtCore/qscopedpointer.h>
namespace Ms {
class Element;
};
class SvgGeneratorPrivate;
//---------------------------------------------------------
// @@ SvgGenerator
// @P size QSize
// @P viewBox QRectF
// @P title QString
// @P description QString
// @P fileName QString
// @P outputDevice QIODevice
// @P resolution int
//---------------------------------------------------------
class SvgGenerator : public QPaintDevice
{
Q_DECLARE_PRIVATE(SvgGenerator)
Q_PROPERTY(QSize size READ size WRITE setSize)
Q_PROPERTY(QRectF viewBox READ viewBoxF WRITE setViewBox)
Q_PROPERTY(QString title READ title WRITE setTitle)
Q_PROPERTY(QString description READ description WRITE setDescription)
Q_PROPERTY(QString fileName READ fileName WRITE setFileName)
Q_PROPERTY(QIODevice* outputDevice READ outputDevice WRITE setOutputDevice)
Q_PROPERTY(int resolution READ resolution WRITE setResolution)
public:
SvgGenerator();
~SvgGenerator();
QString title() const;
void setTitle(const QString &title);
QString description() const;
void setDescription(const QString &description);
QSize size() const;
void setSize(const QSize &size);
QRect viewBox() const;
QRectF viewBoxF() const;
void setViewBox(const QRect &viewBox);
void setViewBox(const QRectF &viewBox);
QString fileName() const;
void setFileName(const QString &fileName);
QIODevice *outputDevice() const;
void setOutputDevice(QIODevice *outputDevice);
void setResolution(int dpi);
int resolution() const;
void setElement(const Ms::Element* e);
protected:
QPaintEngine *paintEngine() const;
int metric(QPaintDevice::PaintDeviceMetric metric) const;
private:
QScopedPointer<SvgGeneratorPrivate> d_ptr;
};
#endif // QSVGGENERATOR_H