Show setup/calibration info in statusbar

This commit is contained in:
Jan Käberich 2022-01-21 22:33:58 +01:00
parent fa481e2062
commit 392b06f0eb
6 changed files with 58 additions and 1 deletions

View File

@ -127,6 +127,7 @@ VNA::VNA(AppWindow *window)
connect(saveCal, &QAction::triggered, [=](){
if(cal.saveToFile()) {
calEdited = false;
UpdateStatusbar();
}
});
@ -431,6 +432,8 @@ VNA::VNA(AppWindow *window)
};
// Calibration connections
connect(this, &VNA::CalibrationApplied, this, &VNA::UpdateStatusbar);
connect(this, &VNA::CalibrationDisabled, this, &VNA::UpdateStatusbar);
connect(cbEnableCal, &QCheckBox::stateChanged, calToolbarLambda);
connect(cbType, qOverload<int>(&QComboBox::currentIndexChanged), calToolbarLambda);
connect(this, &VNA::CalibrationDisabled, [=](){
@ -1525,3 +1528,17 @@ VNA::SweepType VNA::SweepTypeFromString(QString s)
return SweepType::Last;
}
void VNA::UpdateStatusbar()
{
if(calValid) {
QFileInfo fi(cal.getCurrentCalibrationFile());
auto filename = fi.fileName();
if(filename.isEmpty()) {
filename = "Unsaved";
}
setStatusbarMessage("Calibration: "+filename);
} else {
setStatusbarMessage("Calibration: -");
}
}

View File

@ -107,6 +107,7 @@ private:
void UpdateCalWidget();
private slots:
void EnableDeembedding(bool enable);
void UpdateStatusbar();
private:
Settings settings;
unsigned int averages;

View File

@ -151,6 +151,8 @@ AppWindow::AppWindow(QWidget *parent)
file.open(filename.toStdString());
file << setw(4) << SaveSetup() << endl;
file.close();
QFileInfo fi(filename);
lSetupName.setText("Setup: "+fi.fileName());
});
connect(ui->actionLoad_setup, &QAction::triggered, [=](){
auto filename = QFileDialog::getOpenFileName(nullptr, "Load setup data", "", "Setup files (*.setup)", nullptr, QFileDialog::DontUseNativeDialog);
@ -173,11 +175,20 @@ AppWindow::AppWindow(QWidget *parent)
}
file.close();
LoadSetup(j);
QFileInfo fi(filename);
lSetupName.setText("Setup: "+fi.fileName());
});
connect(ui->actionSave_image, &QAction::triggered, [=](){
Mode::getActiveMode()->saveSreenshot();
});
auto setModeStatusbar = [=](QString msg) {
lModeInfo.setText(msg);
};
connect(vna, &Mode::statusbarMessage, setModeStatusbar);
connect(generator, &Mode::statusbarMessage, setModeStatusbar);
connect(spectrumAnalyzer, &Mode::statusbarMessage, setModeStatusbar);
connect(ui->actionManual_Control, &QAction::triggered, this, &AppWindow::StartManualControl);
connect(ui->actionFirmware_Update, &QAction::triggered, this, &AppWindow::StartFirmwareUpdateDialog);
connect(ui->actionSource_Calibration, &QAction::triggered, this, &AppWindow::SourceCalibrationDialog);
@ -988,6 +999,16 @@ void AppWindow::SetupStatusBar()
ui->statusbar->addWidget(&lDeviceInfo);
ui->statusbar->addWidget(new QLabel, 1);
ui->statusbar->addWidget(&lSetupName);
lSetupName.setText("Setup: -");
auto div2 = new QFrame;
div2->setFrameShape(QFrame::VLine);
ui->statusbar->addWidget(div2);
ui->statusbar->addWidget(&lModeInfo);
auto div3 = new QFrame;
div3->setFrameShape(QFrame::VLine);
ui->statusbar->addWidget(div3);
lADCOverload.setStyleSheet("color : red");
lADCOverload.setText("ADC overload");
lADCOverload.setVisible(false);
@ -1028,4 +1049,5 @@ void AppWindow::UpdateStatusBar(DeviceStatusBar status)
break;
}
}

View File

@ -103,6 +103,9 @@ private:
// Status bar widgets
QLabel lConnectionStatus;
QLabel lDeviceInfo;
QLabel lModeInfo;
QLabel lSetupName;
// Error flag labels
QLabel lADCOverload;
QLabel lUnlevel;

View File

@ -101,6 +101,8 @@ void Mode::activate()
if(window->getDevice()) {
initializeDevice();
}
emit statusbarMessage(statusbarMsg);
}
void Mode::deactivate()
@ -174,6 +176,14 @@ void Mode::finalize(QWidget *centralWidget)
}
}
void Mode::setStatusbarMessage(QString msg)
{
statusbarMsg = msg;
if(this == activeMode) {
emit statusbarMessage(msg);
}
}
QString Mode::getName() const
{
return name;

View File

@ -13,6 +13,7 @@
class Mode : public QObject, public Savable
{
Q_OBJECT
public:
Mode(AppWindow *window, QString name);
@ -26,8 +27,10 @@ public:
virtual void deviceDisconnected(){};
virtual void saveSreenshot();
signals:
void statusbarMessage(QString msg);
protected:
void setStatusbarMessage(QString msg);
// call once the derived class is fully initialized
void finalize(QWidget *centralWidget);
AppWindow *window;
@ -40,6 +43,7 @@ private:
static QWidget *cornerWidget;
static QButtonGroup *modeButtonGroup;
const QString name;
QString statusbarMsg;
QWidget *central;
};