ImageViewer: Add option to export images from SVG.

Add a tool button showing a dialog with file name
and size for exporting images from SVG.

[ChangeLog][ImageViewer] Added option to export images from SVG.

Change-Id: I84e04dc166e70b0359eba0f19703a75b882a2bc2
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
Reviewed-by: Alessandro Portale <alessandro.portale@theqtcompany.com>
This commit is contained in:
Friedemann Kleint
2016-03-17 16:02:20 +01:00
parent e5262fba5f
commit 44820dae13
10 changed files with 371 additions and 2 deletions

View File

@@ -100,10 +100,11 @@ void ImageViewer::ctor()
// toolbar
d->toolbar = new QWidget();
d->ui_toolbar.setupUi(d->toolbar);
d->ui_toolbar.toolButtonExportImage->setIcon(QIcon::fromTheme(QLatin1String("document-save"),
Core::Icons::SAVEFILE.icon()));
d->ui_toolbar.toolButtonZoomIn->setIcon(Core::Icons::PLUS.icon());
d->ui_toolbar.toolButtonZoomOut->setIcon(Core::Icons::MINUS.icon());
d->ui_toolbar.toolButtonFitToScreen->setIcon(Core::Icons::ZOOM.icon());
// icons update - try to use system theme
updateButtonIconByTheme(d->ui_toolbar.toolButtonZoomIn, QLatin1String("zoom-in"));
updateButtonIconByTheme(d->ui_toolbar.toolButtonZoomOut, QLatin1String("zoom-out"));
@@ -115,6 +116,7 @@ void ImageViewer::ctor()
// (photograph has outline - piece of paper)
updateButtonIconByTheme(d->ui_toolbar.toolButtonOutline, QLatin1String("emblem-photos"));
d->ui_toolbar.toolButtonExportImage->setCommandId(Constants::ACTION_EXPORT_IMAGE);
d->ui_toolbar.toolButtonZoomIn->setCommandId(Constants::ACTION_ZOOM_IN);
d->ui_toolbar.toolButtonZoomOut->setCommandId(Constants::ACTION_ZOOM_OUT);
d->ui_toolbar.toolButtonOriginalSize->setCommandId(Constants::ACTION_ORIGINAL_SIZE);
@@ -124,6 +126,8 @@ void ImageViewer::ctor()
d->ui_toolbar.toolButtonPlayPause->setCommandId(Constants::ACTION_TOGGLE_ANIMATION);
// connections
connect(d->ui_toolbar.toolButtonExportImage, &QAbstractButton::clicked,
d->imageView, &ImageView::exportImage);
connect(d->ui_toolbar.toolButtonZoomIn, &QAbstractButton::clicked,
d->imageView, &ImageView::zoomIn);
connect(d->ui_toolbar.toolButtonZoomOut, &QAbstractButton::clicked,
@@ -150,6 +154,12 @@ void ImageViewer::ctor()
this, &ImageViewer::updatePauseAction);
connect(d->imageView, &ImageView::scaleFactorChanged,
this, &ImageViewer::scaleFactorUpdate);
connect(d->file.data(), &ImageViewerFile::openFinished,
this, [this](bool success)
{
d->ui_toolbar.toolButtonExportImage->setEnabled(success && d->file->type() == ImageViewerFile::TypeSvg);
});
}
ImageViewer::~ImageViewer()
@@ -176,6 +186,12 @@ Core::IEditor *ImageViewer::duplicate()
return other;
}
void ImageViewer::exportImage()
{
if (d->file->type() == ImageViewerFile::TypeSvg)
d->ui_toolbar.toolButtonExportImage->click();
}
void ImageViewer::imageSizeUpdated(const QSize &size)
{
QString imageSizeText;