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