Add SVG multi export

Add a second SVG export option that allows for exporting
a series of icons of various size in one go. A dialog is shown
that allows for entering a file name pattern with place holders
and a list of sizes.

Change-Id: Ic644a9d402aa44af5899c29cf83051fdd7bba3d1
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Diana de Sousa <diana.desousa@theqtcompany.com>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
Friedemann Kleint
2018-01-12 15:32:10 +01:00
parent 43936b1e86
commit cd85d3aba5
20 changed files with 612 additions and 35 deletions

View File

@@ -102,9 +102,8 @@ void ImageViewer::ctor()
// toolbar
d->toolbar = new QWidget();
d->ui_toolbar.setupUi(d->toolbar);
d->ui_toolbar.toolButtonExportImage->setIcon(
QIcon::fromTheme(QLatin1String("document-save"),
Utils::Icons::SAVEFILE_TOOLBAR.icon()));
d->ui_toolbar.toolButtonExportImage->setIcon(Utils::Icons::EXPORTFILE_TOOLBAR.icon());
d->ui_toolbar.toolButtonMultiExportImages->setIcon(Utils::Icons::MULTIEXPORTFILE_TOOLBAR.icon());
const Utils::Icon backgroundIcon({
{QLatin1String(":/utils/images/desktopdevicesmall.png"), Utils::Theme::IconsBaseColor}});
d->ui_toolbar.toolButtonBackground->setIcon(backgroundIcon.icon());
@@ -125,6 +124,7 @@ void ImageViewer::ctor()
updateButtonIconByTheme(d->ui_toolbar.toolButtonOutline, QLatin1String("emblem-photos"));
d->ui_toolbar.toolButtonExportImage->setCommandId(Constants::ACTION_EXPORT_IMAGE);
d->ui_toolbar.toolButtonMultiExportImages->setCommandId(Constants::ACTION_EXPORT_MULTI_IMAGES);
d->ui_toolbar.toolButtonZoomIn->setCommandId(Core::Constants::ZOOM_IN);
d->ui_toolbar.toolButtonZoomOut->setCommandId(Core::Constants::ZOOM_OUT);
d->ui_toolbar.toolButtonOriginalSize->setCommandId(Core::Constants::ZOOM_RESET);
@@ -136,6 +136,8 @@ void ImageViewer::ctor()
// connections
connect(d->ui_toolbar.toolButtonExportImage, &QAbstractButton::clicked,
d->imageView, &ImageView::exportImage);
connect(d->ui_toolbar.toolButtonMultiExportImages, &QAbstractButton::clicked,
d->imageView, &ImageView::exportMultiImages);
connect(d->ui_toolbar.toolButtonZoomIn, &QAbstractButton::clicked,
d->imageView, &ImageView::zoomIn);
connect(d->ui_toolbar.toolButtonZoomOut, &QAbstractButton::clicked,
@@ -198,6 +200,12 @@ void ImageViewer::exportImage()
d->ui_toolbar.toolButtonExportImage->click();
}
void ImageViewer::exportMultiImages()
{
if (d->file->type() == ImageViewerFile::TypeSvg)
d->ui_toolbar.toolButtonMultiExportImages->click();
}
void ImageViewer::imageSizeUpdated(const QSize &size)
{
QString imageSizeText;
@@ -244,7 +252,9 @@ void ImageViewer::fitToScreen()
void ImageViewer::updateToolButtons()
{
d->ui_toolbar.toolButtonExportImage->setEnabled(d->file->type() == ImageViewerFile::TypeSvg);
const bool isSvg = d->file->type() == ImageViewerFile::TypeSvg;
d->ui_toolbar.toolButtonExportImage->setEnabled(isSvg);
d->ui_toolbar.toolButtonMultiExportImages->setEnabled(isSvg);
updatePauseAction();
}