From 917d7e0007ea278c638bf7d6dff10b1f481d2018 Mon Sep 17 00:00:00 2001 From: hjk Date: Fri, 8 Jul 2022 18:09:57 +0200 Subject: [PATCH] ImageViewer: Inline imageviewertoolbar.ui Change-Id: Ie7b4c77477ce78107c5f55edccdcbd4db74b010b Reviewed-by: Leena Miettinen Reviewed-by: Eike Ziller Reviewed-by: --- src/plugins/imageviewer/CMakeLists.txt | 1 - src/plugins/imageviewer/imageviewer.cpp | 207 ++++++++++++------ src/plugins/imageviewer/imageviewer.h | 7 +- src/plugins/imageviewer/imageviewer.qbs | 1 - src/plugins/imageviewer/imageviewertoolbar.ui | 146 ------------ 5 files changed, 145 insertions(+), 217 deletions(-) delete mode 100644 src/plugins/imageviewer/imageviewertoolbar.ui diff --git a/src/plugins/imageviewer/CMakeLists.txt b/src/plugins/imageviewer/CMakeLists.txt index 5317e9321de..24619db7c74 100644 --- a/src/plugins/imageviewer/CMakeLists.txt +++ b/src/plugins/imageviewer/CMakeLists.txt @@ -14,7 +14,6 @@ add_qtc_plugin(ImageViewer imageviewerfactory.cpp imageviewerfactory.h imageviewerfile.cpp imageviewerfile.h imageviewerplugin.cpp imageviewerplugin.h - imageviewertoolbar.ui multiexportdialog.cpp multiexportdialog.h EXPLICIT_MOC imageviewer.h ) diff --git a/src/plugins/imageviewer/imageviewer.cpp b/src/plugins/imageviewer/imageviewer.cpp index 399ae70f5fe..7b933839380 100644 --- a/src/plugins/imageviewer/imageviewer.cpp +++ b/src/plugins/imageviewer/imageviewer.cpp @@ -25,18 +25,21 @@ ****************************************************************************/ #include "imageviewer.h" + #include "imageviewerfile.h" #include "imageviewerconstants.h" #include "imageview.h" -#include "ui_imageviewertoolbar.h" #include #include #include #include -#include +#include + +#include #include #include +#include #include #include @@ -44,6 +47,14 @@ #include #include #include +#include +#include +#include +#include +#include + +using namespace Core; +using namespace Utils; namespace ImageViewer { namespace Internal { @@ -54,7 +65,19 @@ struct ImageViewerPrivate QSharedPointer file; ImageView *imageView; QWidget *toolbar; - Ui::ImageViewerToolbar ui_toolbar; + + CommandButton *toolButtonExportImage; + CommandButton *toolButtonMultiExportImages; + CommandButton *toolButtonCopyDataUrl; + CommandButton *toolButtonBackground; + CommandButton *toolButtonOutline; + CommandButton *toolButtonFitToScreen; + CommandButton *toolButtonOriginalSize; + CommandButton *toolButtonZoomIn; + CommandButton *toolButtonZoomOut; + CommandButton *toolButtonPlayPause; + QLabel *labelImageSize; + QLabel *labelInfo; }; /*! @@ -64,7 +87,6 @@ struct ImageViewerPrivate */ static bool updateButtonIconByTheme(QAbstractButton *button, const QString &name) { - QTC_ASSERT(button, return false); QTC_ASSERT(!name.isEmpty(), return false); if (QIcon::hasThemeIcon(name)) { @@ -98,61 +120,116 @@ void ImageViewer::ctor() setDuplicateSupported(true); // toolbar - d->toolbar = new QWidget(); - d->ui_toolbar.setupUi(d->toolbar); - d->ui_toolbar.toolButtonExportImage->setIcon(Utils::Icons::EXPORTFILE_TOOLBAR.icon()); - d->ui_toolbar.toolButtonMultiExportImages->setIcon(Utils::Icons::MULTIEXPORTFILE_TOOLBAR.icon()); - d->ui_toolbar.toolButtonCopyDataUrl->setIcon(Utils::Icons::COPY_TOOLBAR.icon()); - const Utils::Icon backgroundIcon({ - {":/utils/images/desktopdevicesmall.png", Utils::Theme::IconsBaseColor}}); - d->ui_toolbar.toolButtonBackground->setIcon(backgroundIcon.icon()); - d->ui_toolbar.toolButtonOutline->setIcon(Utils::Icons::BOUNDING_RECT.icon()); - d->ui_toolbar.toolButtonZoomIn->setIcon( - Core::ActionManager::command(Core::Constants::ZOOM_IN)->action()->icon()); - d->ui_toolbar.toolButtonZoomOut->setIcon( - Core::ActionManager::command(Core::Constants::ZOOM_OUT)->action()->icon()); - d->ui_toolbar.toolButtonOriginalSize->setIcon( - Core::ActionManager::command(Core::Constants::ZOOM_RESET)->action()->icon()); - d->ui_toolbar.toolButtonFitToScreen->setIcon(Utils::Icons::FITTOVIEW_TOOLBAR.icon()); + d->toolbar = new QWidget; + + d->toolButtonExportImage = new CommandButton; + d->toolButtonMultiExportImages = new CommandButton; + d->toolButtonCopyDataUrl = new CommandButton; + d->toolButtonBackground = new CommandButton; + d->toolButtonOutline = new CommandButton; + d->toolButtonFitToScreen = new CommandButton; + d->toolButtonOriginalSize = new CommandButton; + d->toolButtonZoomIn = new CommandButton; + d->toolButtonZoomOut = new CommandButton; + d->toolButtonPlayPause = new CommandButton; + + d->toolButtonBackground->setCheckable(true); + d->toolButtonBackground->setChecked(false); + + d->toolButtonOutline->setCheckable(true); + d->toolButtonOutline->setChecked(true); + + d->toolButtonFitToScreen->setCheckable(false); + + d->toolButtonZoomIn->setAutoRepeat(true); + + d->toolButtonZoomOut->setAutoRepeat(true); + + d->toolButtonExportImage->setToolTipBase(tr("Export as Image")); + d->toolButtonMultiExportImages->setToolTipBase(tr("Export Images of Multiple Sizes")); + d->toolButtonOutline->setToolTipBase(tr("Show Outline")); + d->toolButtonFitToScreen->setToolTipBase(tr("Fit to Screen")); + d->toolButtonOriginalSize->setToolTipBase(tr("Original Size")); + d->toolButtonZoomIn->setToolTipBase(tr("Zoom In")); + d->toolButtonZoomOut->setToolTipBase(tr("Zoom Out")); + + d->toolButtonExportImage->setIcon(Icons::EXPORTFILE_TOOLBAR.icon()); + d->toolButtonMultiExportImages->setIcon(Icons::MULTIEXPORTFILE_TOOLBAR.icon()); + d->toolButtonCopyDataUrl->setIcon(Icons::COPY_TOOLBAR.icon()); + const Icon backgroundIcon({{":/utils/images/desktopdevicesmall.png", Theme::IconsBaseColor}}); + d->toolButtonBackground->setIcon(backgroundIcon.icon()); + d->toolButtonOutline->setIcon(Icons::BOUNDING_RECT.icon()); + d->toolButtonZoomIn->setIcon( + ActionManager::command(Core::Constants::ZOOM_IN)->action()->icon()); + d->toolButtonZoomOut->setIcon( + ActionManager::command(Core::Constants::ZOOM_OUT)->action()->icon()); + d->toolButtonOriginalSize->setIcon( + ActionManager::command(Core::Constants::ZOOM_RESET)->action()->icon()); + d->toolButtonFitToScreen->setIcon(Icons::FITTOVIEW_TOOLBAR.icon()); + // icons update - try to use system theme - updateButtonIconByTheme(d->ui_toolbar.toolButtonFitToScreen, QLatin1String("zoom-fit-best")); + updateButtonIconByTheme(d->toolButtonFitToScreen, QLatin1String("zoom-fit-best")); // a display - something is on the background - updateButtonIconByTheme(d->ui_toolbar.toolButtonBackground, QLatin1String("video-display")); + updateButtonIconByTheme(d->toolButtonBackground, QLatin1String("video-display")); // "emblem to specify the directory where the user stores photographs" // (photograph has outline - piece of paper) - updateButtonIconByTheme(d->ui_toolbar.toolButtonOutline, QLatin1String("emblem-photos")); + updateButtonIconByTheme(d->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.toolButtonCopyDataUrl->setCommandId(Constants::ACTION_COPY_DATA_URL); - 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); - d->ui_toolbar.toolButtonFitToScreen->setCommandId(Constants::ACTION_FIT_TO_SCREEN); - d->ui_toolbar.toolButtonBackground->setCommandId(Constants::ACTION_BACKGROUND); - d->ui_toolbar.toolButtonOutline->setCommandId(Constants::ACTION_OUTLINE); - d->ui_toolbar.toolButtonPlayPause->setCommandId(Constants::ACTION_TOGGLE_ANIMATION); + d->toolButtonExportImage->setCommandId(Constants::ACTION_EXPORT_IMAGE); + d->toolButtonMultiExportImages->setCommandId(Constants::ACTION_EXPORT_MULTI_IMAGES); + d->toolButtonCopyDataUrl->setCommandId(Constants::ACTION_COPY_DATA_URL); + d->toolButtonZoomIn->setCommandId(Core::Constants::ZOOM_IN); + d->toolButtonZoomOut->setCommandId(Core::Constants::ZOOM_OUT); + d->toolButtonOriginalSize->setCommandId(Core::Constants::ZOOM_RESET); + d->toolButtonFitToScreen->setCommandId(Constants::ACTION_FIT_TO_SCREEN); + d->toolButtonBackground->setCommandId(Constants::ACTION_BACKGROUND); + d->toolButtonOutline->setCommandId(Constants::ACTION_OUTLINE); + d->toolButtonPlayPause->setCommandId(Constants::ACTION_TOGGLE_ANIMATION); + + d->labelImageSize = new QLabel; + d->labelInfo = new QLabel; + + auto horizontalLayout = new QHBoxLayout(d->toolbar); + horizontalLayout->setSpacing(0); + horizontalLayout->setContentsMargins(0, 0, 0, 0); + horizontalLayout->addWidget(d->toolButtonExportImage); + horizontalLayout->addWidget(d->toolButtonMultiExportImages); + horizontalLayout->addWidget(d->toolButtonCopyDataUrl); + horizontalLayout->addWidget(d->toolButtonBackground); + horizontalLayout->addWidget(d->toolButtonOutline); + horizontalLayout->addWidget(d->toolButtonFitToScreen); + horizontalLayout->addWidget(d->toolButtonOriginalSize); + horizontalLayout->addWidget(d->toolButtonZoomIn); + horizontalLayout->addWidget(d->toolButtonZoomOut); + horizontalLayout->addWidget(d->toolButtonPlayPause); + horizontalLayout->addWidget(d->toolButtonPlayPause); + horizontalLayout->addWidget(new StyledSeparator); + horizontalLayout->addItem(new QSpacerItem(315, 20, QSizePolicy::Expanding, QSizePolicy::Minimum)); + horizontalLayout->addWidget(new StyledSeparator); + horizontalLayout->addWidget(d->labelImageSize); + horizontalLayout->addWidget(new StyledSeparator); + horizontalLayout->addWidget(d->labelInfo); // connections - connect(d->ui_toolbar.toolButtonExportImage, &QAbstractButton::clicked, + connect(d->toolButtonExportImage, &QAbstractButton::clicked, d->imageView, &ImageView::exportImage); - connect(d->ui_toolbar.toolButtonMultiExportImages, &QAbstractButton::clicked, + connect(d->toolButtonMultiExportImages, &QAbstractButton::clicked, d->imageView, &ImageView::exportMultiImages); - connect(d->ui_toolbar.toolButtonCopyDataUrl, &QAbstractButton::clicked, + connect(d->toolButtonCopyDataUrl, &QAbstractButton::clicked, d->imageView, &ImageView::copyDataUrl); - connect(d->ui_toolbar.toolButtonZoomIn, &QAbstractButton::clicked, + connect(d->toolButtonZoomIn, &QAbstractButton::clicked, d->imageView, &ImageView::zoomIn); - connect(d->ui_toolbar.toolButtonZoomOut, &QAbstractButton::clicked, + connect(d->toolButtonZoomOut, &QAbstractButton::clicked, d->imageView, &ImageView::zoomOut); - connect(d->ui_toolbar.toolButtonFitToScreen, &QAbstractButton::clicked, + connect(d->toolButtonFitToScreen, &QAbstractButton::clicked, d->imageView, &ImageView::fitToScreen); - connect(d->ui_toolbar.toolButtonOriginalSize, &QAbstractButton::clicked, + connect(d->toolButtonOriginalSize, &QAbstractButton::clicked, d->imageView, &ImageView::resetToOriginalSize); - connect(d->ui_toolbar.toolButtonBackground, &QAbstractButton::toggled, + connect(d->toolButtonBackground, &QAbstractButton::toggled, d->imageView, &ImageView::setViewBackground); - connect(d->ui_toolbar.toolButtonOutline, &QAbstractButton::toggled, + connect(d->toolButtonOutline, &QAbstractButton::toggled, d->imageView, &ImageView::setViewOutline); - connect(d->ui_toolbar.toolButtonPlayPause, &Core::CommandButton::clicked, + connect(d->toolButtonPlayPause, &CommandButton::clicked, this, &ImageViewer::playToggled); connect(d->file.data(), &ImageViewerFile::imageSizeChanged, this, &ImageViewer::imageSizeUpdated); @@ -177,7 +254,7 @@ ImageViewer::~ImageViewer() delete d; } -Core::IDocument *ImageViewer::document() const +IDocument *ImageViewer::document() const { return d->file.data(); } @@ -187,12 +264,12 @@ QWidget *ImageViewer::toolBar() return d->toolbar; } -Core::IEditor *ImageViewer::duplicate() +IEditor *ImageViewer::duplicate() { auto other = new ImageViewer(d->file); other->d->imageView->createScene(); other->updateToolButtons(); - other->d->ui_toolbar.labelImageSize->setText(d->ui_toolbar.labelImageSize->text()); + other->d->labelImageSize->setText(d->labelImageSize->text()); emit editorDuplicated(other); @@ -202,18 +279,18 @@ Core::IEditor *ImageViewer::duplicate() void ImageViewer::exportImage() { if (d->file->type() == ImageViewerFile::TypeSvg) - d->ui_toolbar.toolButtonExportImage->click(); + d->toolButtonExportImage->click(); } void ImageViewer::exportMultiImages() { if (d->file->type() == ImageViewerFile::TypeSvg) - d->ui_toolbar.toolButtonMultiExportImages->click(); + d->toolButtonMultiExportImages->click(); } void ImageViewer::copyDataUrl() { - d->ui_toolbar.toolButtonCopyDataUrl->click(); + d->toolButtonCopyDataUrl->click(); } void ImageViewer::imageSizeUpdated(const QSize &size) @@ -221,56 +298,56 @@ void ImageViewer::imageSizeUpdated(const QSize &size) QString imageSizeText; if (size.isValid()) imageSizeText = QString::fromLatin1("%1x%2").arg(size.width()).arg(size.height()); - d->ui_toolbar.labelImageSize->setText(imageSizeText); + d->labelImageSize->setText(imageSizeText); } void ImageViewer::scaleFactorUpdate(qreal factor) { const QString info = QString::number(factor * 100, 'f', 2) + QLatin1Char('%'); - d->ui_toolbar.labelInfo->setText(info); + d->labelInfo->setText(info); } void ImageViewer::switchViewBackground() { - d->ui_toolbar.toolButtonBackground->click(); + d->toolButtonBackground->click(); } void ImageViewer::switchViewOutline() { - d->ui_toolbar.toolButtonOutline->click(); + d->toolButtonOutline->click(); } void ImageViewer::zoomIn() { - d->ui_toolbar.toolButtonZoomIn->click(); + d->toolButtonZoomIn->click(); } void ImageViewer::zoomOut() { - d->ui_toolbar.toolButtonZoomOut->click(); + d->toolButtonZoomOut->click(); } void ImageViewer::resetToOriginalSize() { - d->ui_toolbar.toolButtonOriginalSize->click(); + d->toolButtonOriginalSize->click(); } void ImageViewer::fitToScreen() { - d->ui_toolbar.toolButtonFitToScreen->click(); + d->toolButtonFitToScreen->click(); } void ImageViewer::updateToolButtons() { const bool isSvg = d->file->type() == ImageViewerFile::TypeSvg; - d->ui_toolbar.toolButtonExportImage->setEnabled(isSvg); - d->ui_toolbar.toolButtonMultiExportImages->setEnabled(isSvg); + d->toolButtonExportImage->setEnabled(isSvg); + d->toolButtonMultiExportImages->setEnabled(isSvg); updatePauseAction(); } void ImageViewer::togglePlay() { - d->ui_toolbar.toolButtonPlayPause->click(); + d->toolButtonPlayPause->click(); } void ImageViewer::playToggled() @@ -282,12 +359,12 @@ void ImageViewer::updatePauseAction() { bool isMovie = d->file->type() == ImageViewerFile::TypeMovie; if (isMovie && !d->file->isPaused()) { - d->ui_toolbar.toolButtonPlayPause->setToolTipBase(tr("Pause Animation")); - d->ui_toolbar.toolButtonPlayPause->setIcon(Utils::Icons::INTERRUPT_SMALL_TOOLBAR.icon()); + d->toolButtonPlayPause->setToolTipBase(tr("Pause Animation")); + d->toolButtonPlayPause->setIcon(Icons::INTERRUPT_SMALL_TOOLBAR.icon()); } else { - d->ui_toolbar.toolButtonPlayPause->setToolTipBase(tr("Play Animation")); - d->ui_toolbar.toolButtonPlayPause->setIcon(Utils::Icons::RUN_SMALL_TOOLBAR.icon()); - d->ui_toolbar.toolButtonPlayPause->setEnabled(isMovie); + d->toolButtonPlayPause->setToolTipBase(tr("Play Animation")); + d->toolButtonPlayPause->setIcon(Icons::RUN_SMALL_TOOLBAR.icon()); + d->toolButtonPlayPause->setEnabled(isMovie); } } diff --git a/src/plugins/imageviewer/imageviewer.h b/src/plugins/imageviewer/imageviewer.h index 5077b1521a4..41cdc4119d2 100644 --- a/src/plugins/imageviewer/imageviewer.h +++ b/src/plugins/imageviewer/imageviewer.h @@ -37,8 +37,8 @@ class QAbstractButton; class QAction; QT_END_NAMESPACE -namespace ImageViewer { -namespace Internal { +namespace ImageViewer::Internal { + class ImageViewerFile; class ImageViewer : public Core::IEditor @@ -78,5 +78,4 @@ private: struct ImageViewerPrivate *d; }; -} // namespace Internal -} // namespace ImageViewer +} // ImageViewer::Internal diff --git a/src/plugins/imageviewer/imageviewer.qbs b/src/plugins/imageviewer/imageviewer.qbs index ff6c6f977f0..017094fd903 100644 --- a/src/plugins/imageviewer/imageviewer.qbs +++ b/src/plugins/imageviewer/imageviewer.qbs @@ -29,6 +29,5 @@ QtcPlugin { "imageviewerfile.h", "imageviewerplugin.cpp", "imageviewerplugin.h", - "imageviewertoolbar.ui", ] } diff --git a/src/plugins/imageviewer/imageviewertoolbar.ui b/src/plugins/imageviewer/imageviewertoolbar.ui deleted file mode 100644 index 6ad9334ea78..00000000000 --- a/src/plugins/imageviewer/imageviewertoolbar.ui +++ /dev/null @@ -1,146 +0,0 @@ - - - ImageViewer::Internal::ImageViewerToolbar - - - - 0 - 0 - 482 - 28 - - - - - 0 - - - 0 - - - - - Export as Image - - - - - - - Export Images of Multiple Sizes - - - - - - - - - - - true - - - false - - - - - - - Show Outline - - - true - - - true - - - - - - - Fit to Screen - - - false - - - - - - - Original Size - - - - - - - Zoom In - - - true - - - - - - - Zoom Out - - - true - - - - - - - - - - - - - - Qt::Horizontal - - - - 315 - 20 - - - - - - - - - - - - - - - - - - - - - Utils::StyledSeparator - QWidget -
utils/styledbar.h
- 1 -
- - Core::CommandButton - QToolButton -
coreplugin/actionmanager/commandbutton.h
-
-
- -