diff --git a/src/widgets/capture/capturewidget.cpp b/src/widgets/capture/capturewidget.cpp index b4259d00..96b13482 100644 --- a/src/widgets/capture/capturewidget.cpp +++ b/src/widgets/capture/capturewidget.cpp @@ -265,7 +265,7 @@ void CaptureWidget::initButtons() // Add all buttons but hide those that were disabled in the Interface config // This will allow keyboard shortcuts for those buttons to work - for (const CaptureTool::Type& t : allButtonTypes) { + for (CaptureTool::Type t : allButtonTypes) { CaptureToolButton* b = new CaptureToolButton(t, this); if (t == CaptureTool::TYPE_SELECTIONINDICATOR) { m_sizeIndButton = b; @@ -298,6 +298,8 @@ void CaptureWidget::initButtons() break; } + m_tools[t] = b->tool(); + connect(b->tool(), &CaptureTool::requestAction, this, @@ -320,7 +322,10 @@ void CaptureWidget::initHelpMessage() keyMap << QPair("Mouse", "Select screenshot area"); using CT = CaptureTool; for (auto toolType : { CT::TYPE_ACCEPT, CT::TYPE_SAVE, CT::TYPE_COPY }) { - auto* tool = ToolFactory().CreateTool(toolType); + if (!m_tools.contains(toolType)) { + continue; + } + auto* tool = m_tools[toolType]; QString shortcut = ConfigHandler().shortcut(QVariant::fromValue(toolType).toString()); if (!shortcut.isEmpty()) { diff --git a/src/widgets/capture/capturewidget.h b/src/widgets/capture/capturewidget.h index d3e7b156..07931823 100644 --- a/src/widgets/capture/capturewidget.h +++ b/src/widgets/capture/capturewidget.h @@ -176,6 +176,7 @@ private: SelectionWidget::SideType m_mouseOverHandle; uint m_id; + QMap m_tools; CaptureToolObjects m_captureToolObjects; CaptureToolObjects m_captureToolObjectsBackup;