pinwidget: allow copying to clipboard and saving to file (#2519)

Co-authored-by: zhangfuwen <zhangfuwen@foxmail.com>
This commit is contained in:
Dean
2022-04-07 09:53:25 +08:00
committed by GitHub
parent 850260dff6
commit db5f8a762c
2 changed files with 41 additions and 0 deletions

View File

@@ -6,10 +6,12 @@
#include "pinwidget.h"
#include "qguiappcurrentscreen.h"
#include "screenshotsaver.h"
#include "src/utils/confighandler.h"
#include "src/utils/globalvalues.h"
#include <QLabel>
#include <QMenu>
#include <QScreen>
#include <QShortcut>
#include <QVBoxLayout>
@@ -83,6 +85,13 @@ PinWidget::PinWidget(const QPixmap& pixmap,
}
#endif
grabGesture(Qt::PinchGesture);
this->setContextMenuPolicy(Qt::CustomContextMenu);
connect(this,
SIGNAL(customContextMenuRequested(const QPoint&)),
this,
SLOT(showContextMenu(const QPoint&)));
}
bool PinWidget::scrollEvent(QWheelEvent* event)
@@ -209,3 +218,30 @@ void PinWidget::pinchTriggered(QPinchGesture* gesture)
m_sizeChanged = true;
update();
}
void PinWidget::showContextMenu(const QPoint& pos)
{
QMenu contextMenu(tr("Context menu"), this);
QAction copy2ClipboardAction("Copy to clipboard", this);
connect(&copy2ClipboardAction,
SIGNAL(triggered()),
this,
SLOT(copyToClipboard()));
contextMenu.addAction(&copy2ClipboardAction);
QAction saveToFileAction("Save to file", this);
connect(&saveToFileAction, SIGNAL(triggered()), this, SLOT(saveToFile()));
contextMenu.addAction(&saveToFileAction);
contextMenu.exec(mapToGlobal(pos));
}
void PinWidget::copyToClipboard()
{
saveToClipboard(m_pixmap);
}
void PinWidget::saveToFile()
{
saveToFilesystemGUI(m_pixmap);
}

View File

@@ -46,4 +46,9 @@ private:
qreal m_scaleFactor{ 1 };
qreal m_currentStepScaleFactor{ 1 };
bool m_sizeChanged{ false };
private slots:
void showContextMenu(const QPoint& pos);
void copyToClipboard();
void saveToFile();
};