forked from qt-creator/qt-creator
ImageViewer: Update toolbar items for split/duplicated editors
The "export" button in a split/duplicated view was enabled for other image formats than svg. The image size label was empty. Fixes for all views (not just the split ones): The play button is now disabled instead of "empty" for non-movies. The size of svgs is displayed. Change-Id: I1f6a2c47f3aa06ed052ba78e5e2d1edd51a0ec69 Reviewed-by: Alessandro Portale <alessandro.portale@theqtcompany.com>
This commit is contained in:
@@ -151,6 +151,8 @@ void ImageViewer::ctor()
|
|||||||
this, &ImageViewer::imageSizeUpdated);
|
this, &ImageViewer::imageSizeUpdated);
|
||||||
connect(d->file.data(), &ImageViewerFile::openFinished,
|
connect(d->file.data(), &ImageViewerFile::openFinished,
|
||||||
d->imageView, &ImageView::createScene);
|
d->imageView, &ImageView::createScene);
|
||||||
|
connect(d->file.data(), &ImageViewerFile::openFinished,
|
||||||
|
this, &ImageViewer::updateToolButtons);
|
||||||
connect(d->file.data(), &ImageViewerFile::aboutToReload,
|
connect(d->file.data(), &ImageViewerFile::aboutToReload,
|
||||||
d->imageView, &ImageView::reset);
|
d->imageView, &ImageView::reset);
|
||||||
connect(d->file.data(), &ImageViewerFile::reloadFinished,
|
connect(d->file.data(), &ImageViewerFile::reloadFinished,
|
||||||
@@ -159,12 +161,6 @@ void ImageViewer::ctor()
|
|||||||
this, &ImageViewer::updatePauseAction);
|
this, &ImageViewer::updatePauseAction);
|
||||||
connect(d->imageView, &ImageView::scaleFactorChanged,
|
connect(d->imageView, &ImageView::scaleFactorChanged,
|
||||||
this, &ImageViewer::scaleFactorUpdate);
|
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()
|
ImageViewer::~ImageViewer()
|
||||||
@@ -188,6 +184,8 @@ Core::IEditor *ImageViewer::duplicate()
|
|||||||
{
|
{
|
||||||
auto other = new ImageViewer(d->file);
|
auto other = new ImageViewer(d->file);
|
||||||
other->d->imageView->createScene();
|
other->d->imageView->createScene();
|
||||||
|
other->updateToolButtons();
|
||||||
|
other->d->ui_toolbar.labelImageSize->setText(d->ui_toolbar.labelImageSize->text());
|
||||||
return other;
|
return other;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -241,6 +239,12 @@ void ImageViewer::fitToScreen()
|
|||||||
d->ui_toolbar.toolButtonFitToScreen->click();
|
d->ui_toolbar.toolButtonFitToScreen->click();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ImageViewer::updateToolButtons()
|
||||||
|
{
|
||||||
|
d->ui_toolbar.toolButtonExportImage->setEnabled(d->file->type() == ImageViewerFile::TypeSvg);
|
||||||
|
updatePauseAction();
|
||||||
|
}
|
||||||
|
|
||||||
void ImageViewer::togglePlay()
|
void ImageViewer::togglePlay()
|
||||||
{
|
{
|
||||||
d->ui_toolbar.toolButtonPlayPause->click();
|
d->ui_toolbar.toolButtonPlayPause->click();
|
||||||
@@ -254,15 +258,13 @@ void ImageViewer::playToggled()
|
|||||||
void ImageViewer::updatePauseAction()
|
void ImageViewer::updatePauseAction()
|
||||||
{
|
{
|
||||||
bool isMovie = d->file->type() == ImageViewerFile::TypeMovie;
|
bool isMovie = d->file->type() == ImageViewerFile::TypeMovie;
|
||||||
d->ui_toolbar.toolButtonPlayPause->setVisible(isMovie);
|
if (isMovie && !d->file->isPaused()) {
|
||||||
if (isMovie) {
|
d->ui_toolbar.toolButtonPlayPause->setToolTipBase(tr("Pause Animation"));
|
||||||
if (d->file->isPaused()) {
|
d->ui_toolbar.toolButtonPlayPause->setIcon(Core::Icons::INTERRUPT_SMALL.icon());
|
||||||
d->ui_toolbar.toolButtonPlayPause->setToolTipBase(tr("Play Animation"));
|
} else {
|
||||||
d->ui_toolbar.toolButtonPlayPause->setIcon(Core::Icons::RUN_SMALL.pixmap());
|
d->ui_toolbar.toolButtonPlayPause->setToolTipBase(tr("Play Animation"));
|
||||||
} else {
|
d->ui_toolbar.toolButtonPlayPause->setIcon(Core::Icons::RUN_SMALL.icon());
|
||||||
d->ui_toolbar.toolButtonPlayPause->setToolTipBase(tr("Pause Animation"));
|
d->ui_toolbar.toolButtonPlayPause->setEnabled(isMovie);
|
||||||
d->ui_toolbar.toolButtonPlayPause->setIcon(Core::Icons::INTERRUPT_SMALL.pixmap());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -66,6 +66,7 @@ public slots:
|
|||||||
void zoomOut();
|
void zoomOut();
|
||||||
void resetToOriginalSize();
|
void resetToOriginalSize();
|
||||||
void fitToScreen();
|
void fitToScreen();
|
||||||
|
void updateToolButtons();
|
||||||
void togglePlay();
|
void togglePlay();
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
|
|||||||
@@ -108,7 +108,7 @@ Core::IDocument::OpenResult ImageViewerFile::openImpl(QString *errorString, cons
|
|||||||
if (format.startsWith("svg")) {
|
if (format.startsWith("svg")) {
|
||||||
m_tempSvgItem = new QGraphicsSvgItem(fileName);
|
m_tempSvgItem = new QGraphicsSvgItem(fileName);
|
||||||
QRectF bound = m_tempSvgItem->boundingRect();
|
QRectF bound = m_tempSvgItem->boundingRect();
|
||||||
if (bound.width() == 0 && bound.height() == 0) {
|
if (qFuzzyIsNull(bound.width()) && qFuzzyIsNull(bound.height())) {
|
||||||
delete m_tempSvgItem;
|
delete m_tempSvgItem;
|
||||||
m_tempSvgItem = 0;
|
m_tempSvgItem = 0;
|
||||||
if (errorString)
|
if (errorString)
|
||||||
@@ -116,7 +116,7 @@ Core::IDocument::OpenResult ImageViewerFile::openImpl(QString *errorString, cons
|
|||||||
return OpenResult::CannotHandle;
|
return OpenResult::CannotHandle;
|
||||||
}
|
}
|
||||||
m_type = TypeSvg;
|
m_type = TypeSvg;
|
||||||
emit imageSizeChanged(QSize());
|
emit imageSizeChanged(m_tempSvgItem->boundingRect().size().toSize());
|
||||||
} else
|
} else
|
||||||
#endif
|
#endif
|
||||||
if (QMovie::supportedFormats().contains(format)) {
|
if (QMovie::supportedFormats().contains(format)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user