Simple screenshot functionality
This commit is contained in:
parent
62939ff882
commit
e66fc0131a
@ -7,6 +7,7 @@
|
||||
#include "preferences.h"
|
||||
#include "ui_smithchartdialog.h"
|
||||
#include "unit.h"
|
||||
#include "QFileDialog"
|
||||
|
||||
using namespace std;
|
||||
|
||||
@ -291,6 +292,21 @@ void TraceSmithChart::updateContextMenu()
|
||||
contextmenu->addAction(action);
|
||||
}
|
||||
contextmenu->addSeparator();
|
||||
auto image = new QAction("Save image...", contextmenu);
|
||||
contextmenu->addAction(image);
|
||||
connect(image, &QAction::triggered, [=]() {
|
||||
auto filename = QFileDialog::getSaveFileName(nullptr, "Save plot image", "", "PNG image files (*.png)", nullptr, QFileDialog::DontUseNativeDialog);
|
||||
if(filename.isEmpty()) {
|
||||
// aborted selection
|
||||
return;
|
||||
}
|
||||
if(filename.endsWith(".png")) {
|
||||
filename.chop(4);
|
||||
}
|
||||
filename += ".png";
|
||||
grab().save(filename);
|
||||
});
|
||||
contextmenu->addSeparator();
|
||||
auto close = new QAction("Close", contextmenu);
|
||||
contextmenu->addAction(close);
|
||||
connect(close, &QAction::triggered, [=]() {
|
||||
|
@ -11,6 +11,7 @@
|
||||
#include "unit.h"
|
||||
#include <QDebug>
|
||||
#include "CustomWidgets/informationbox.h"
|
||||
#include <QFileDialog>
|
||||
|
||||
using namespace std;
|
||||
|
||||
@ -255,6 +256,21 @@ void TraceXYPlot::updateContextMenu()
|
||||
}
|
||||
}
|
||||
contextmenu->addSeparator();
|
||||
auto image = new QAction("Save image...", contextmenu);
|
||||
contextmenu->addAction(image);
|
||||
connect(image, &QAction::triggered, [=]() {
|
||||
auto filename = QFileDialog::getSaveFileName(nullptr, "Save plot image", "", "PNG image files (*.png)", nullptr, QFileDialog::DontUseNativeDialog);
|
||||
if(filename.isEmpty()) {
|
||||
// aborted selection
|
||||
return;
|
||||
}
|
||||
if(filename.endsWith(".png")) {
|
||||
filename.chop(4);
|
||||
}
|
||||
filename += ".png";
|
||||
grab().save(filename);
|
||||
});
|
||||
contextmenu->addSeparator();
|
||||
auto close = new QAction("Close", contextmenu);
|
||||
contextmenu->addAction(close);
|
||||
connect(close, &QAction::triggered, [=]() {
|
||||
|
@ -177,6 +177,9 @@ AppWindow::AppWindow(QWidget *parent)
|
||||
file.close();
|
||||
LoadSetup(j);
|
||||
});
|
||||
connect(ui->actionSave_image, &QAction::triggered, [=](){
|
||||
Mode::getActiveMode()->saveSreenshot();
|
||||
});
|
||||
|
||||
connect(ui->actionManual_Control, &QAction::triggered, this, &AppWindow::StartManualControl);
|
||||
connect(ui->actionFirmware_Update, &QAction::triggered, this, &AppWindow::StartFirmwareUpdateDialog);
|
||||
|
@ -29,6 +29,7 @@
|
||||
</property>
|
||||
<addaction name="actionSave_setup"/>
|
||||
<addaction name="actionLoad_setup"/>
|
||||
<addaction name="actionSave_image"/>
|
||||
<addaction name="actionQuit"/>
|
||||
</widget>
|
||||
<widget class="QMenu" name="menuDevice">
|
||||
@ -190,6 +191,14 @@
|
||||
<string>Load setup</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionSave_image">
|
||||
<property name="icon">
|
||||
<iconset theme="camera-photo"/>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Save image...</string>
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
<resources>
|
||||
<include location="icons.qrc"/>
|
||||
|
@ -4,6 +4,7 @@
|
||||
#include <QSettings>
|
||||
#include "ui_main.h"
|
||||
#include <QDebug>
|
||||
#include <QFileDialog>
|
||||
|
||||
Mode* Mode::activeMode = nullptr;
|
||||
QWidget* Mode::cornerWidget = nullptr;
|
||||
@ -127,6 +128,20 @@ Mode *Mode::getActiveMode()
|
||||
return activeMode;
|
||||
}
|
||||
|
||||
void Mode::saveSreenshot()
|
||||
{
|
||||
auto filename = QFileDialog::getSaveFileName(nullptr, "Save plot image", "", "PNG image files (*.png)", nullptr, QFileDialog::DontUseNativeDialog);
|
||||
if(filename.isEmpty()) {
|
||||
// aborted selection
|
||||
return;
|
||||
}
|
||||
if(filename.endsWith(".png")) {
|
||||
filename.chop(4);
|
||||
}
|
||||
filename += ".png";
|
||||
central->grab().save(filename);
|
||||
}
|
||||
|
||||
void Mode::finalize(QWidget *centralWidget)
|
||||
{
|
||||
central = centralWidget;
|
||||
|
@ -24,6 +24,8 @@ public:
|
||||
virtual void initializeDevice() = 0;
|
||||
virtual void deviceDisconnected(){};
|
||||
|
||||
virtual void saveSreenshot();
|
||||
|
||||
protected:
|
||||
// call once the derived class is fully initialized
|
||||
void finalize(QWidget *centralWidget);
|
||||
|
Loading…
Reference in New Issue
Block a user