Added DAC to Library

pull/4/head
Alexander Diamadis 5 years ago
parent d5ec272f65
commit 055b2fdafa
Signed by: alex
GPG Key ID: 6A1609EFA141FD70

@ -11,6 +11,7 @@ CONFIG += c++11
SOURCES += \
camp.cpp \
campmode.cpp \
cdac.cpp \
cspeaker.cpp \
library.cpp \
main.cpp \
@ -19,6 +20,7 @@ SOURCES += \
HEADERS += \
camp.h \
campmode.h \
cdac.h \
cspeaker.h \
library.h \
mainwindow.h

@ -0,0 +1,43 @@
#include "cdac.h"
#include <QString>
cdac::cdac()
{
}
const std::string &cdac::name() const
{
return m_name;
}
void cdac::setName(const std::string &newName)
{
m_name = newName;
}
double cdac::outputLevel() const
{
return m_outputLevel;
}
void cdac::setOutputLevel(double newOutputLevel)
{
m_outputLevel = newOutputLevel;
}
QDataStream& operator >>(QDataStream& in, cdac& dac){
QString name;
in >> name;
dac.m_name=name.toStdString();
qreal outputLevel;
in >>outputLevel;
dac.setOutputLevel((double)outputLevel);
return in;
}
QDataStream& operator <<(QDataStream& out,cdac& dac){
out << QString::fromStdString(dac.name());
out << qreal(dac.outputLevel());
return out;
}

@ -0,0 +1,26 @@
#ifndef CDAC_H
#define CDAC_H
#include <iostream>
#include <QDataStream>
class cdac
{
public:
cdac();
cdac(std::string name,double outputLevel);
const std::string &name() const;
void setName(const std::string &newName);
double outputLevel() const;
void setOutputLevel(double newOutputLevel);
friend QDataStream& operator <<(QDataStream& out,cdac& speaker);
friend QDataStream& operator >>(QDataStream& in,cdac& speaker);
private:
std::string m_name;
double m_outputLevel; // in dBu
};
#endif // CDAC_H

@ -5,6 +5,7 @@
#include <QSettings>
#include <QFileDialog>
#include <QDebug>
#include "cdac.h"
library::library(QWidget *parent) :
QDialog(parent),
@ -13,6 +14,7 @@ library::library(QWidget *parent) :
ui->setupUi(this);
unsaved=false;
speakerUnsaved=false;
dacUnsaved=false;
}
library::~library()
@ -51,6 +53,22 @@ cSpeaker *library::getSpeaker()
return m_pSpeaker;
}
void library::setDacPoint(cdac *dac, unsigned int dacCount)
{
m_pDac=dac;
m_dacCount=dacCount;
}
unsigned int library::getDacCount()
{
return m_dacCount;
}
cdac *library::getDacs()
{
return m_pDac;
}
void library::open()
{
@ -62,23 +80,15 @@ void library::open()
//qDebug() << settings.value("library/path","none").toString();
refreshAmpView();
refreshSpeakerView();
refreshDacView();
this->exec();
if (unsaved or speakerUnsaved){
QMessageBox::StandardButton reply;
reply = QMessageBox::question(this, "Unsaved Changes", "Save unsaved Changes?",
QMessageBox::Yes|QMessageBox::No);
if (reply == QMessageBox::Yes) {
on_pushButton_applyChanges_clicked();
on_pushButton_applySpeaker_clicked();
}
}
saveLibraryToFile();
}
void library::on_pushButton_addAmp_clicked()
{
confirmAmpChanges();
m_cAmpCount+=1;
cAmp* tempAmps=new cAmp[m_cAmpCount];
for (unsigned int i=0;i<m_cAmpCount-1;i++){
@ -133,6 +143,14 @@ void library::refreshSpeakerView()
}
}
void library::refreshDacView()
{
ui->listWidget_dacView->clear();
for (unsigned int i=0;i<m_dacCount;i++){
ui->listWidget_dacView->addItem(QString::fromStdString(m_pDac[i].name()));
}
}
int library::getCurrentAmpIndex()
{
return ui->listWidget_ampView->currentRow();
@ -148,6 +166,83 @@ int library::getCurrentSpeakerIndex()
return ui->listWidget_speakerView->currentRow();
}
int library::getCurrentDacIndex()
{
return ui->listWidget_dacView->currentRow();
}
void library::ampEdited()
{
if(unsaved==false){
ui->listWidget_ampView->currentItem()->setText(ui->listWidget_ampView->currentItem()->text()+QString::fromStdString("*"));
unsaved =true;
}
}
void library::speakerEdited()
{
if (speakerUnsaved==false){
ui->listWidget_speakerView->currentItem()->setText(ui->listWidget_speakerView->currentItem()->text()+QString::fromStdString("*"));
speakerUnsaved =true;
}
}
void library::dacEdited()
{
if (dacUnsaved==false){
ui->listWidget_dacView->currentItem()->setText(ui->listWidget_dacView->currentItem()->text()+QString::fromStdString("*"));
dacUnsaved =true;
}
}
void library::confirmAmpChanges()
{
if (unsaved){
int selectedRow=getCurrentAmpIndex();
ui->tabWidget->setCurrentIndex(0);
QMessageBox::StandardButton reply;
reply = QMessageBox::question(this, "Unsaved Changes", "Save unsaved Changes?",
QMessageBox::Yes|QMessageBox::No);
if (reply == QMessageBox::Yes) {
on_pushButton_applyChanges_clicked();
}
refreshAmpView();
ui->listWidget_ampView->setCurrentRow(selectedRow);
}
}
void library::confirmSpeakerChanges()
{
if (speakerUnsaved){
int selectedRow=getCurrentSpeakerIndex();
ui->tabWidget->setCurrentIndex(1);
QMessageBox::StandardButton reply;
reply = QMessageBox::question(this, "Unsaved Changes", "Save unsaved Changes?",
QMessageBox::Yes|QMessageBox::No);
if (reply == QMessageBox::Yes) {
on_pushButton_applySpeaker_clicked();
}
refreshSpeakerView();
ui->listWidget_speakerView->setCurrentRow(selectedRow);
}
}
void library::confirmDacChanges()
{
if (dacUnsaved){
int selectedRow=getCurrentDacIndex();
ui->tabWidget->setCurrentIndex(2);
QMessageBox::StandardButton reply;
reply = QMessageBox::question(this, "Unsaved Changes", "Save unsaved Changes?",
QMessageBox::Yes|QMessageBox::No);
if (reply == QMessageBox::Yes) {
on_pushButton_Apply_clicked();
}
refreshDacView();
ui->listWidget_dacView->setCurrentRow(selectedRow);
}
}
void library::printAllAmps()
{
std::cout << "Number of Amps: "<<m_cAmpCount<<std::endl<<std::endl;
@ -157,33 +252,6 @@ void library::printAllAmps()
}
}
void library::saveLibraryToFile()
{
QSettings settings("DKM-Tech","Pa-Calculator");
QString fileName = settings.value("library/path",QString::fromStdString("")).toString();
if (fileName.isEmpty())
return;
else {
QFile file(fileName);
if (!file.open(QIODevice::WriteOnly)) {
QMessageBox::information(this, tr("Unable to open file"),
file.errorString());
return;
}
QDataStream out(&file);
out.setVersion(QDataStream::Qt_4_5);
out << (uint)m_cAmpCount;
for (unsigned int j=0;j<m_cAmpCount;j++){
out << m_pCamp[j];
}
out << (uint)m_SpeakerCount;
for (unsigned int j=0;j<m_SpeakerCount;j++){
out << m_pSpeaker[j];
}
}
}
void library::on_listWidget_ampView_currentRowChanged(int currentRow)
{
@ -227,6 +295,7 @@ void library::on_pushButton_applyChanges_clicked()
void library::on_comboBox_sensUnit_currentIndexChanged(int index)
{
ampEdited();
double oldValue=ui->doubleSpinBox_inputSensitivity->value();
if (index==0){
ui->doubleSpinBox_inputSensitivity->setSuffix(QString(" V"));
@ -257,7 +326,7 @@ void library::on_pushButton_deleteAmp_clicked()
m_pCamp=tempAmps;
refreshAmpView();
if (selectedRow-1<0 && m_cAmpCount>0){
if ((selectedRow<1) and (m_cAmpCount>0)){
ui->listWidget_ampView->setCurrentRow(0);
}else
{
@ -302,7 +371,7 @@ void library::on_pushButton_deleteMode_clicked()
int selectedRow=getCurrentAmpModeIndex();
m_pCamp[getCurrentAmpIndex()].deleteAmpMode(getCurrentAmpModeIndex());
refreshModeOverview();
if (selectedRow-1<0 && m_pCamp[getCurrentAmpIndex()].getAmpModesCount()){
if ((selectedRow<1) && (m_pCamp[getCurrentAmpIndex()].getAmpModesCount())>0){
ui->listWidget_modeSelector->setCurrentRow(0);
}else
{
@ -329,15 +398,13 @@ void library::on_pushButton_applyMode_clicked()
void library::on_lineEdit_ampName_textEdited(const QString &arg1)
{
if (unsaved==false){
ui->listWidget_ampView->currentItem()->setText(ui->listWidget_ampView->currentItem()->text()+QString::fromStdString("*"));
unsaved =true;
}
ampEdited();
}
void library::on_pushButton_addSpeaker_clicked()
{
confirmSpeakerChanges();
m_SpeakerCount+=1;
cSpeaker* tempSpeaker=new cSpeaker[m_SpeakerCount];
for (unsigned int i=0;i<m_SpeakerCount-1;i++){
@ -373,7 +440,7 @@ void library::on_listWidget_speakerView_currentRowChanged(int currentRow)
//ui->spinBox_speakerHPF->setEnabled(true);
}else {
//ui->lineEdit_speakerName->setEnabled(false);
ui->lineEdit_speakerName->setEnabled(false);
//ui->spinBox_speakerImp->setEnabled(false);
//ui->spinBox_speakerRMSPower->setEnabled(false);
//ui->spinBox_speakerPeakPower->setEnabled(false);
@ -399,7 +466,7 @@ void library::on_pushButton_deleteSpeaker_clicked()
m_pSpeaker=tempSpeaker;
refreshSpeakerView();
if (selectedRow-1<0 && m_SpeakerCount>0){
if ((selectedRow<1) and (m_SpeakerCount>0)){
ui->listWidget_speakerView->setCurrentRow(0);
}else
{
@ -430,9 +497,123 @@ void library::on_pushButton_applySpeaker_clicked()
void library::on_lineEdit_speakerName_textEdited(const QString &arg1)
{
if (speakerUnsaved==false){
ui->listWidget_speakerView->currentItem()->setText(ui->listWidget_speakerView->currentItem()->text()+QString::fromStdString("*"));
speakerUnsaved =true;
speakerEdited();
}
void library::on_pushButton_dacAdd_clicked()
{
confirmDacChanges();
m_dacCount+=1;
cdac* tempDac=new cdac[m_dacCount];
for (unsigned int i=0;i<m_dacCount-1;i++){
tempDac[i].setName(m_pDac[i].name());
tempDac[i].setOutputLevel(m_pDac[i].outputLevel());
}
delete [] m_pDac;
m_pDac=tempDac;
m_pDac[m_dacCount-1].setName("Unnamed DAC");
m_pDac[m_dacCount-1].setOutputLevel(0);
refreshDacView();
ui->listWidget_dacView->setCurrentRow(m_dacCount-1);
ui->lineEdit_dacName->setFocus();
ui->lineEdit_dacName->selectAll();
}
void library::on_pushButton_deleteDac_clicked()
{
if (getCurrentDacIndex()>=0){
m_dacCount-=1;
cdac* tempdac=new cdac[m_dacCount];
unsigned int selectedRow=getCurrentDacIndex();
for (unsigned int i=0;i<selectedRow;i++){
tempdac[i]=m_pDac[i];
}
for (unsigned int i=selectedRow+1;i<m_dacCount+1;i++){
tempdac[i-1]=m_pDac[i];
}
delete [] m_pDac;
m_pDac=tempdac;
refreshDacView();
if ((selectedRow<1) and (m_dacCount>0)){
ui->listWidget_dacView->setCurrentRow(0);
}else
{
ui->listWidget_dacView->setCurrentRow(selectedRow-1);
}
}
}
void library::on_pushButton_Apply_clicked()
{
if (getCurrentDacIndex()>=0){
dacUnsaved =false;
m_pDac[getCurrentDacIndex()].setName(ui->lineEdit_dacName->text().toStdString());
m_pDac[getCurrentDacIndex()].setOutputLevel(ui->spinBox_dacOutputLevel->value());
int selectedRow=getCurrentDacIndex();
refreshDacView();
ui->listWidget_dacView->setCurrentRow(selectedRow);
}
}
void library::on_listWidget_dacView_currentRowChanged(int currentRow)
{
if (currentRow>=0){
ui->lineEdit_dacName->setText(QString::fromStdString(m_pDac[currentRow].name()));
ui->spinBox_dacOutputLevel->setValue(m_pDac[currentRow].outputLevel());
ui->lineEdit_dacName->setEnabled(true);
}else{
ui->lineEdit_dacName->setEnabled(false);
}
}
void library::on_lineEdit_dacName_textEdited(const QString &arg1)
{
//dacEdited();
}
void library::on_spinBox_dacOutputLevel_editingFinished()
{
//dacEdited();
}
void library::on_spinBox_speakerImp_editingFinished()
{
//speakerEdited();
}
void library::on_spinBox_speakerRMSPower_editingFinished()
{
//speakerEdited();
}
void library::on_spinBox_speakerPeakPower_editingFinished()
{
//speakerEdited();
}
void library::on_spinBox_speakerHPF_editingFinished()
{
//speakerEdited();
}
void library::on_doubleSpinBox_inputSensitivity_editingFinished()
{
//ampEdited();
}

@ -4,6 +4,8 @@
#include <QDialog>
#include "camp.h"
#include "cspeaker.h"
#include "cdac.h"
#include <QListWidget>
namespace Ui {
class library;
@ -15,6 +17,7 @@ class library : public QDialog
public:
explicit library(QWidget *parent = nullptr);
void setAmpPointer(cAmp* pAmp,unsigned int ampCount);
unsigned int getAmpCount();
cAmp* getAmps();
@ -23,6 +26,10 @@ public:
unsigned int getSpeakerCount();
cSpeaker* getSpeaker();
void setDacPoint(cdac* dac, unsigned int dacCount);
unsigned int getDacCount();
cdac* getDacs();
void open();
~library();
@ -63,6 +70,28 @@ private slots:
void on_lineEdit_speakerName_textEdited(const QString &arg1);
void on_pushButton_dacAdd_clicked();
void on_pushButton_deleteDac_clicked();
void on_pushButton_Apply_clicked();
void on_listWidget_dacView_currentRowChanged(int currentRow);
void on_lineEdit_dacName_textEdited(const QString &arg1);
void on_spinBox_dacOutputLevel_editingFinished();
void on_spinBox_speakerImp_editingFinished();
void on_spinBox_speakerRMSPower_editingFinished();
void on_spinBox_speakerPeakPower_editingFinished();
void on_spinBox_speakerHPF_editingFinished();
void on_doubleSpinBox_inputSensitivity_editingFinished();
private:
Ui::library *ui;
cAmp* m_pCamp;
@ -71,20 +100,34 @@ private:
cSpeaker* m_pSpeaker;
unsigned int m_SpeakerCount;
cdac* m_pDac;
unsigned int m_dacCount;
void refreshAmpView();
void refreshModeOverview();
void refreshSpeakerView();
void refreshDacView();
int getCurrentAmpIndex();
int getCurrentAmpModeIndex();
int getCurrentSpeakerIndex();
int getCurrentDacIndex();
void ampEdited();
void speakerEdited();
void dacEdited();
void confirmAmpChanges();
void confirmSpeakerChanges();
void confirmDacChanges();
void printAllAmps();
bool unsaved;
bool speakerUnsaved;
bool dacUnsaved;
void saveLibraryToFile();
};
#endif // LIBRARY_H

@ -20,14 +20,14 @@
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Save</set>
<set>QDialogButtonBox::Close</set>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QTabWidget" name="tabWidget">
<property name="currentIndex">
<number>0</number>
<number>2</number>
</property>
<widget class="QWidget" name="amps">
<attribute name="title">
@ -367,6 +367,80 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_dac">
<attribute name="title">
<string>Mixer/DAC</string>
</attribute>
<layout class="QHBoxLayout" name="horizontalLayout_7">
<item>
<layout class="QVBoxLayout" name="verticalLayout_5">
<item>
<widget class="QListWidget" name="listWidget_dacView"/>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_6">
<item>
<widget class="QPushButton" name="pushButton_dacAdd">
<property name="text">
<string>Add</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_deleteDac">
<property name="text">
<string>Delete</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_Apply">
<property name="text">
<string>Apply</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
<item>
<layout class="QFormLayout" name="formLayout_3">
<item row="0" column="0">
<widget class="QLabel" name="label_11">
<property name="text">
<string>Name</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="lineEdit_dacName">
<property name="enabled">
<bool>false</bool>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_12">
<property name="text">
<string>Nominal Output Level (at -18 dBFS)</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QDoubleSpinBox" name="spinBox_dacOutputLevel">
<property name="suffix">
<string> dBU</string>
</property>
<property name="minimum">
<double>-100.000000000000000</double>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</widget>
</item>
</layout>

@ -8,15 +8,7 @@ int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTranslator translator;
const QStringList uiLanguages = QLocale::system().uiLanguages();
for (const QString &locale : uiLanguages) {
const QString baseName = "PA_Calculator_" + QLocale(locale).name();
if (translator.load(":/i18n/" + baseName)) {
a.installTranslator(&translator);
break;
}
}
MainWindow w;
w.show();
return a.exec();

@ -20,10 +20,14 @@ MainWindow::MainWindow(QWidget *parent)
m_speakerCount=0;
m_pSpeaker=Q_NULLPTR;
m_dacCount=0;
m_pDac=Q_NULLPTR;
loadLibrary();
refreshLibraryAmps();
refreshLibraryAmpModes();
refreshLibrarySpeaker();
refreshLibraryDacs();
}
MainWindow::~MainWindow()
@ -127,17 +131,23 @@ void MainWindow::on_actionEditLibrary_triggered()
library* dialog=new library;
dialog->setAmpPointer(m_pCAmp,m_ampCount);
dialog->setSpeakerPointer(m_pSpeaker,m_speakerCount);
dialog->setDacPoint(m_pDac,m_dacCount);
dialog->open();
m_ampCount=dialog->getAmpCount();
m_pCAmp=dialog->getAmps();
m_pSpeaker=dialog->getSpeaker();
m_speakerCount=dialog->getSpeakerCount();
m_pDac=dialog->getDacs();
m_dacCount=dialog->getDacCount();
refreshLibraryAmps();
refreshLibraryAmpModes();
refreshLibrarySpeaker();
refreshLibraryDacs();
delete dialog;
saveLibrary();
}
void MainWindow::refreshLibraryAmps()
@ -166,6 +176,14 @@ void MainWindow::refreshLibrarySpeaker()
}
}
void MainWindow::refreshLibraryDacs()
{
ui->comboBox_dacPreset->clear();
for (unsigned int i=0;i<m_dacCount;i++){
ui->comboBox_dacPreset->addItem(QString::fromStdString(m_pDac[i].name()));
}
}
void MainWindow::loadLibrary()
{
QSettings settings("DKM-Tech","Pa-Calculator");
@ -200,6 +218,16 @@ void MainWindow::loadLibrary()
for (unsigned int j=0;j<m_speakerCount;j++){
in >> m_pSpeaker[j];
}
in >> count;
m_dacCount=count;
if (m_dacCount>0){
delete [] m_pDac;
m_pDac=new cdac[m_dacCount];
}
for (unsigned int j=0;j<m_dacCount;j++){
in >> m_pDac[j];
}
}
}
@ -222,6 +250,14 @@ void MainWindow::saveLibrary()
for (unsigned int j=0;j<m_ampCount;j++){
out << m_pCAmp[j];
}
out << (uint)m_speakerCount;
for (unsigned int j=0;j<m_speakerCount;j++){
out << m_pSpeaker[j];
}
out << (uint)m_dacCount;
for (unsigned int j=0;j<m_dacCount;j++){
out << m_pDac[j];
}
}
}
@ -273,3 +309,13 @@ void MainWindow::on_pushButton_loadSpeaker_clicked()
}
}
void MainWindow::on_pushButton_loadDac_clicked()
{
if (ui->comboBox_dacPreset->currentIndex()>=0){
ui->spinBox_digitalNominalLevel->setValue(m_pDac[ui->comboBox_dacPreset->currentIndex()].outputLevel());
}
}

@ -4,6 +4,7 @@
#include <QMainWindow>
#include "camp.h"
#include "cspeaker.h"
#include <cdac.h>
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
@ -34,6 +35,9 @@ private slots:
void on_pushButton_loadSpeaker_clicked();
void on_pushButton_loadDac_clicked();
private:
Ui::MainWindow *ui;
cAmp* m_pCAmp;
@ -42,12 +46,16 @@ private:
cSpeaker* m_pSpeaker;
unsigned int m_speakerCount;
cdac* m_pDac;
unsigned int m_dacCount;
void refreshLibraryAmps();
void refreshLibraryAmpModes();
void refreshLibrarySpeaker();
void refreshLibraryDacs();
void loadLibrary();
void saveLibrary();

@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>1167</width>
<height>608</height>
<width>1230</width>
<height>611</height>
</rect>
</property>
<property name="windowTitle">
@ -19,6 +19,12 @@
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QGroupBox" name="groupBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>14</pointsize>
@ -174,6 +180,12 @@
</item>
<item>
<widget class="QGroupBox" name="groupBox_2">
<property name="minimumSize">
<size>
<width>408</width>
<height>0</height>
</size>
</property>
<property name="font">
<font>
<pointsize>14</pointsize>
@ -302,6 +314,12 @@
</item>
<item row="6" column="1">
<widget class="QPushButton" name="pushButton_loadSpeaker">
<property name="minimumSize">
<size>
<width>179</width>
<height>33</height>
</size>
</property>
<property name="text">
<string>Load Speaker-Preset</string>
</property>
@ -320,7 +338,7 @@
</font>
</property>
<property name="title">
<string>DA-Converter Specifications</string>
<string>Mixer/DAC specifications</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
@ -328,7 +346,7 @@
<item row="0" column="0">
<widget class="QLabel" name="label_8">
<property name="text">
<string>Nominal Output Level (at -18 dBFS)</string>
<string>Nominal Output Level</string>
</property>
</widget>
</item>
@ -345,6 +363,43 @@
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_22">
<property name="text">
<string>Load DAC from library</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QComboBox" name="comboBox_dacPreset"/>
</item>
<item row="4" column="1">
<widget class="QPushButton" name="pushButton_loadDac">
<property name="text">
<string>Load DAC-Preset</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_23">
<property name="text">
<string>(at -18 dBFS)</string>
</property>
</widget>
</item>
<item row="2" column="1">
<spacer name="verticalSpacer_5">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
@ -354,6 +409,11 @@
</item>
<item>
<widget class="QPushButton" name="pushButton_requestLimiter">
<property name="font">
<font>
<pointsize>16</pointsize>
</font>
</property>
<property name="text">
<string>Request Limiter Settings</string>
</property>
@ -612,7 +672,7 @@
<rect>
<x>0</x>
<y>0</y>
<width>1167</width>
<width>1230</width>
<height>24</height>
</rect>
</property>

Loading…
Cancel
Save