Unify zooming actions of image viewer and model editor

Change-Id: I5761ab579beda5b2cd0b725869ed216cb97e900c
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
Eike Ziller
2018-01-31 12:41:04 +01:00
parent d110b2f4db
commit e1d2d35c20
8 changed files with 49 additions and 30 deletions

View File

@@ -77,6 +77,9 @@ const char CUT[] = "QtCreator.Cut";
const char SELECTALL[] = "QtCreator.SelectAll"; const char SELECTALL[] = "QtCreator.SelectAll";
const char GOTO[] = "QtCreator.Goto"; const char GOTO[] = "QtCreator.Goto";
const char ZOOM_IN[] = "QtCreator.ZoomIn";
const char ZOOM_OUT[] = "QtCreator.ZoomOut";
const char ZOOM_RESET[] = "QtCreator.ZoomReset";
const char NEW[] = "QtCreator.New"; const char NEW[] = "QtCreator.New";
const char OPEN[] = "QtCreator.Open"; const char OPEN[] = "QtCreator.Open";

View File

@@ -637,6 +637,30 @@ void MainWindow::registerDefaultActions()
medit->addAction(cmd, Constants::G_EDIT_OTHER); medit->addAction(cmd, Constants::G_EDIT_OTHER);
tmpaction->setEnabled(false); tmpaction->setEnabled(false);
// Zoom In Action
icon = QIcon::hasThemeIcon("zoom-in") ? QIcon::fromTheme("zoom-in")
: Utils::Icons::ZOOMIN_TOOLBAR.icon();
tmpaction = new QAction(icon, tr("Zoom In"), this);
cmd = ActionManager::registerAction(tmpaction, Constants::ZOOM_IN);
cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl++")));
tmpaction->setEnabled(false);
// Zoom Out Action
icon = QIcon::hasThemeIcon("zoom-out") ? QIcon::fromTheme("zoom-out")
: Utils::Icons::ZOOMOUT_TOOLBAR.icon();
tmpaction = new QAction(icon, tr("Zoom Out"), this);
cmd = ActionManager::registerAction(tmpaction, Constants::ZOOM_OUT);
cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+-")));
tmpaction->setEnabled(false);
// Zoom Reset Action
icon = QIcon::hasThemeIcon("zoom-original") ? QIcon::fromTheme("zoom-original")
: Utils::Icons::EYE_OPEN_TOOLBAR.icon();
tmpaction = new QAction(icon, tr("Original Size"), this);
cmd = ActionManager::registerAction(tmpaction, Constants::ZOOM_RESET);
cmd->setDefaultKeySequence(QKeySequence(Core::UseMacShortcuts ? tr("Meta+0") : tr("Ctrl+0")));
tmpaction->setEnabled(false);
// Options Action // Options Action
mtools->appendGroup(Constants::G_TOOLS_OPTIONS); mtools->appendGroup(Constants::G_TOOLS_OPTIONS);
mtools->addSeparator(Constants::G_TOOLS_OPTIONS); mtools->addSeparator(Constants::G_TOOLS_OPTIONS);

View File

@@ -33,6 +33,7 @@
#include <coreplugin/icore.h> #include <coreplugin/icore.h>
#include <coreplugin/actionmanager/actionmanager.h> #include <coreplugin/actionmanager/actionmanager.h>
#include <coreplugin/actionmanager/command.h> #include <coreplugin/actionmanager/command.h>
#include <coreplugin/coreconstants.h>
#include <utils/fileutils.h> #include <utils/fileutils.h>
#include <utils/qtcassert.h> #include <utils/qtcassert.h>
#include <utils/utilsicons.h> #include <utils/utilsicons.h>
@@ -107,14 +108,14 @@ void ImageViewer::ctor()
{QLatin1String(":/utils/images/desktopdevicesmall.png"), Utils::Theme::IconsBaseColor}}); {QLatin1String(":/utils/images/desktopdevicesmall.png"), Utils::Theme::IconsBaseColor}});
d->ui_toolbar.toolButtonBackground->setIcon(backgroundIcon.icon()); d->ui_toolbar.toolButtonBackground->setIcon(backgroundIcon.icon());
d->ui_toolbar.toolButtonOutline->setIcon(Utils::Icons::BOUNDING_RECT.icon()); d->ui_toolbar.toolButtonOutline->setIcon(Utils::Icons::BOUNDING_RECT.icon());
d->ui_toolbar.toolButtonZoomIn->setIcon(Utils::Icons::ZOOMIN_TOOLBAR.icon()); d->ui_toolbar.toolButtonZoomIn->setIcon(
d->ui_toolbar.toolButtonZoomOut->setIcon(Utils::Icons::ZOOMOUT_TOOLBAR.icon()); 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->ui_toolbar.toolButtonFitToScreen->setIcon(Utils::Icons::FITTOVIEW_TOOLBAR.icon());
d->ui_toolbar.toolButtonOriginalSize->setIcon(Utils::Icons::EYE_OPEN_TOOLBAR.icon());
// icons update - try to use system theme // icons update - try to use system theme
updateButtonIconByTheme(d->ui_toolbar.toolButtonZoomIn, QLatin1String("zoom-in"));
updateButtonIconByTheme(d->ui_toolbar.toolButtonZoomOut, QLatin1String("zoom-out"));
updateButtonIconByTheme(d->ui_toolbar.toolButtonOriginalSize, QLatin1String("zoom-original"));
updateButtonIconByTheme(d->ui_toolbar.toolButtonFitToScreen, QLatin1String("zoom-fit-best")); updateButtonIconByTheme(d->ui_toolbar.toolButtonFitToScreen, QLatin1String("zoom-fit-best"));
// a display - something is on the background // a display - something is on the background
updateButtonIconByTheme(d->ui_toolbar.toolButtonBackground, QLatin1String("video-display")); updateButtonIconByTheme(d->ui_toolbar.toolButtonBackground, QLatin1String("video-display"));
@@ -123,9 +124,9 @@ void ImageViewer::ctor()
updateButtonIconByTheme(d->ui_toolbar.toolButtonOutline, QLatin1String("emblem-photos")); updateButtonIconByTheme(d->ui_toolbar.toolButtonOutline, QLatin1String("emblem-photos"));
d->ui_toolbar.toolButtonExportImage->setCommandId(Constants::ACTION_EXPORT_IMAGE); d->ui_toolbar.toolButtonExportImage->setCommandId(Constants::ACTION_EXPORT_IMAGE);
d->ui_toolbar.toolButtonZoomIn->setCommandId(Constants::ACTION_ZOOM_IN); d->ui_toolbar.toolButtonZoomIn->setCommandId(Core::Constants::ZOOM_IN);
d->ui_toolbar.toolButtonZoomOut->setCommandId(Constants::ACTION_ZOOM_OUT); d->ui_toolbar.toolButtonZoomOut->setCommandId(Core::Constants::ZOOM_OUT);
d->ui_toolbar.toolButtonOriginalSize->setCommandId(Constants::ACTION_ORIGINAL_SIZE); d->ui_toolbar.toolButtonOriginalSize->setCommandId(Core::Constants::ZOOM_RESET);
d->ui_toolbar.toolButtonFitToScreen->setCommandId(Constants::ACTION_FIT_TO_SCREEN); d->ui_toolbar.toolButtonFitToScreen->setCommandId(Constants::ACTION_FIT_TO_SCREEN);
d->ui_toolbar.toolButtonBackground->setCommandId(Constants::ACTION_BACKGROUND); d->ui_toolbar.toolButtonBackground->setCommandId(Constants::ACTION_BACKGROUND);
d->ui_toolbar.toolButtonOutline->setCommandId(Constants::ACTION_OUTLINE); d->ui_toolbar.toolButtonOutline->setCommandId(Constants::ACTION_OUTLINE);

View File

@@ -33,9 +33,6 @@ const char IMAGEVIEWER_ID[] = "Editors.ImageViewer";
const char IMAGEVIEWER_DISPLAY_NAME[] = QT_TRANSLATE_NOOP("OpenWith::Editors", "Image Viewer"); const char IMAGEVIEWER_DISPLAY_NAME[] = QT_TRANSLATE_NOOP("OpenWith::Editors", "Image Viewer");
const char ACTION_EXPORT_IMAGE[] = "ImageViewer.ExportImage"; const char ACTION_EXPORT_IMAGE[] = "ImageViewer.ExportImage";
const char ACTION_ZOOM_IN[] = "ImageViewer.ZoomIn";
const char ACTION_ZOOM_OUT[] = "ImageViewer.ZoomOut";
const char ACTION_ORIGINAL_SIZE[] = "ImageViewer.OriginalSize";
const char ACTION_FIT_TO_SCREEN[] = "ImageViewer.FitToScreen"; const char ACTION_FIT_TO_SCREEN[] = "ImageViewer.FitToScreen";
const char ACTION_BACKGROUND[] = "ImageViewer.Background"; const char ACTION_BACKGROUND[] = "ImageViewer.Background";
const char ACTION_OUTLINE[] = "ImageViewer.Outline"; const char ACTION_OUTLINE[] = "ImageViewer.Outline";

View File

@@ -36,6 +36,7 @@
#include <coreplugin/icore.h> #include <coreplugin/icore.h>
#include <coreplugin/actionmanager/actionmanager.h> #include <coreplugin/actionmanager/actionmanager.h>
#include <coreplugin/actionmanager/command.h> #include <coreplugin/actionmanager/command.h>
#include <coreplugin/coreconstants.h>
#include <coreplugin/editormanager/editormanager.h> #include <coreplugin/editormanager/editormanager.h>
#include <coreplugin/id.h> #include <coreplugin/id.h>
#include <extensionsystem/pluginmanager.h> #include <extensionsystem/pluginmanager.h>
@@ -62,22 +63,19 @@ static inline ImageViewer *currentImageViewer()
void ImageViewerPlugin::extensionsInitialized() void ImageViewerPlugin::extensionsInitialized()
{ {
QAction *a = registerNewAction(Constants::ACTION_ZOOM_IN, tr("Zoom In"), QAction *a = registerNewAction(Core::Constants::ZOOM_IN);
QKeySequence(tr("Ctrl++")));
connect(a, &QAction::triggered, this, []() { connect(a, &QAction::triggered, this, []() {
if (ImageViewer *iv = currentImageViewer()) if (ImageViewer *iv = currentImageViewer())
iv->zoomIn(); iv->zoomIn();
}); });
a = registerNewAction(Constants::ACTION_ZOOM_OUT, tr("Zoom Out"), a = registerNewAction(Core::Constants::ZOOM_OUT);
QKeySequence(tr("Ctrl+-")));
connect(a, &QAction::triggered, this, []() { connect(a, &QAction::triggered, this, []() {
if (ImageViewer *iv = currentImageViewer()) if (ImageViewer *iv = currentImageViewer())
iv->zoomOut(); iv->zoomOut();
}); });
a = registerNewAction(Constants::ACTION_ORIGINAL_SIZE, tr("Original Size"), a = registerNewAction(Core::Constants::ZOOM_RESET);
QKeySequence(Core::UseMacShortcuts ? tr("Meta+0") : tr("Ctrl+0")));
connect(a, &QAction::triggered, this, []() { connect(a, &QAction::triggered, this, []() {
if (ImageViewer *iv = currentImageViewer()) if (ImageViewer *iv = currentImageViewer())
iv->resetToOriginalSize(); iv->resetToOriginalSize();
@@ -125,7 +123,8 @@ QAction *ImageViewerPlugin::registerNewAction(Core::Id id,
Core::Context context(Constants::IMAGEVIEWER_ID); Core::Context context(Constants::IMAGEVIEWER_ID);
QAction *action = new QAction(title, this); QAction *action = new QAction(title, this);
Core::Command *command = Core::ActionManager::registerAction(action, id, context); Core::Command *command = Core::ActionManager::registerAction(action, id, context);
command->setDefaultKeySequence(key); if (!key.isEmpty())
command->setDefaultKeySequence(key);
return action; return action;
} }

View File

@@ -28,12 +28,12 @@
#include <extensionsystem/iplugin.h> #include <extensionsystem/iplugin.h>
#include <QKeySequence>
#include <QPointer> #include <QPointer>
#include <QtPlugin> #include <QtPlugin>
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
class QAction; class QAction;
class QKeySequence;
QT_END_NAMESPACE QT_END_NAMESPACE
namespace Core { class Id; } namespace Core { class Id; }
@@ -55,7 +55,8 @@ public:
void extensionsInitialized(); void extensionsInitialized();
private: private:
QAction *registerNewAction(Core::Id id, const QString &title, const QKeySequence &key); QAction *registerNewAction(Core::Id id, const QString &title = QString(),
const QKeySequence &key = QKeySequence());
QPointer<ImageViewerFactory> m_factory; QPointer<ImageViewerFactory> m_factory;
}; };

View File

@@ -173,18 +173,15 @@ void ActionHandler::createActions()
menuModelEditor->addSeparator(d->context); menuModelEditor->addSeparator(d->context);
Core::Command *zoomInCommand = registerCommand( Core::Command *zoomInCommand = registerCommand(
Constants::ZOOM_IN, &ModelEditor::zoomIn, d->context, true, Core::Constants::ZOOM_IN, &ModelEditor::zoomIn, d->context);
tr("Zoom In"), QKeySequence("Ctrl++"));
menuModelEditor->addAction(zoomInCommand); menuModelEditor->addAction(zoomInCommand);
Core::Command *zoomOutCommand = registerCommand( Core::Command *zoomOutCommand = registerCommand(
Constants::ZOOM_OUT, &ModelEditor::zoomOut, d->context, true, Core::Constants::ZOOM_OUT, &ModelEditor::zoomOut, d->context);
tr("Zoom Out"), QKeySequence("Ctrl+-"));
menuModelEditor->addAction(zoomOutCommand); menuModelEditor->addAction(zoomOutCommand);
Core::Command *resetZoomCommand = registerCommand( Core::Command *resetZoomCommand = registerCommand(
Constants::RESET_ZOOM, &ModelEditor::resetZoom, d->context, true, Core::Constants::ZOOM_RESET, &ModelEditor::resetZoom, d->context);
tr("Reset Zoom"), QKeySequence("Ctrl+0"));
menuModelEditor->addAction(resetZoomCommand); menuModelEditor->addAction(resetZoomCommand);
d->openParentDiagramAction = registerCommand( d->openParentDiagramAction = registerCommand(

View File

@@ -37,9 +37,6 @@ const char OPEN_PARENT_DIAGRAM[] = "ModelEditor.OpenParentDiagram";
const char MENU_ID[] = "ModelEditor.Menu"; const char MENU_ID[] = "ModelEditor.Menu";
const char EXPORT_DIAGRAM[] = "ModelEditor.ExportDiagram"; const char EXPORT_DIAGRAM[] = "ModelEditor.ExportDiagram";
const char EXPORT_SELECTED_ELEMENTS[] = "ModelEditor.ExportSelectedElements"; const char EXPORT_SELECTED_ELEMENTS[] = "ModelEditor.ExportSelectedElements";
const char ZOOM_IN[] = "ModelEditor.ZoomIn";
const char ZOOM_OUT[] = "ModelEditor.ZoomOut";
const char RESET_ZOOM[] = "ModelEditor.ResetZoom";
const char ACTION_ADD_PACKAGE[] = "ModelEditor.Action.AddPackage"; const char ACTION_ADD_PACKAGE[] = "ModelEditor.Action.AddPackage";
const char ACTION_ADD_COMPONENT[] = "ModelEditor.Action.AddComponent"; const char ACTION_ADD_COMPONENT[] = "ModelEditor.Action.AddComponent";
const char ACTION_ADD_CLASS[] = "ModelEditor.Action.AddClass"; const char ACTION_ADD_CLASS[] = "ModelEditor.Action.AddClass";