From 1839b4b28eade74b1db31960323fc8376c798281 Mon Sep 17 00:00:00 2001 From: Yannik Schmidt Date: Mon, 7 Sep 2020 19:25:01 +0200 Subject: [PATCH] implement server config remove button --- pushbuttonwithposition.cpp | 1 + pushbuttonwithposition.h | 17 +++++++++++++++++ serverconfig.cpp | 22 ++++++++++++++++++++-- serverconfig.h | 2 ++ speech-server-client-qt.pro | 6 ++++-- 5 files changed, 44 insertions(+), 4 deletions(-) create mode 100644 pushbuttonwithposition.cpp create mode 100644 pushbuttonwithposition.h diff --git a/pushbuttonwithposition.cpp b/pushbuttonwithposition.cpp new file mode 100644 index 0000000..e98ab29 --- /dev/null +++ b/pushbuttonwithposition.cpp @@ -0,0 +1 @@ +#include "pushbuttonwithposition.h" diff --git a/pushbuttonwithposition.h b/pushbuttonwithposition.h new file mode 100644 index 0000000..177d1bf --- /dev/null +++ b/pushbuttonwithposition.h @@ -0,0 +1,17 @@ +#ifndef PUSHBUTTONWITHPOSITION_H +#define PUSHBUTTONWITHPOSITION_H + +#include + + + +class PushButtonWithPosition : public QPushButton +{ +public: + PushButtonWithPosition(int row, QString text) : QPushButton(text){ + this->row = row; + } + int row; +}; + +#endif // PUSHBUTTONWITHPOSITION_H diff --git a/serverconfig.cpp b/serverconfig.cpp index fb3fee5..7be770a 100644 --- a/serverconfig.cpp +++ b/serverconfig.cpp @@ -9,6 +9,7 @@ #include "multivalueinputdialog.h" #include "urls.h" +#include "pushbuttonwithposition.h" ServerConfig::ServerConfig(QWidget *parent, QSettings *settings) : QMainWindow(parent) { @@ -78,6 +79,19 @@ ServerConfig::ServerConfig(QWidget *parent, QSettings *settings) : QMainWindow(p this->setCentralWidget(mainWidget); } +void ServerConfig::removePP(){ + PushButtonWithPosition* pButton = static_cast(sender()); + auto key = ppTable->item(pButton->row, 0); + auto repl = ppTable->item(pButton->row, 1); + sc->submitPostProcessorChange(key->text(), repl->text(), true); +} + +void ServerConfig::removeContext(){ + PushButtonWithPosition* pButton = static_cast(sender()); + auto label = contextTable->item(pButton->row, 0); + sc->submitSpeechContextPhraseChange(label->text(), true); +} + void ServerConfig::addNewPP(){ QStringList *sl = new QStringList(); @@ -185,7 +199,9 @@ void ServerConfig::finishedRequest(QNetworkReply *reply){ contextTable->setItem(i, 0, new QTableWidgetItem(phrases.at(i).toString())); auto *deleteButtonLayout = new QGridLayout(); auto *deleteCell = new QWidget(); - auto *deleteButton = new QPushButton("Entfernen"); + auto *deleteButton = new PushButtonWithPosition(i, "Entfernen"); + connect(deleteButton, SIGNAL (released()), this, SLOT (removeContext())); + deleteButton->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); deleteButtonLayout->addWidget(deleteButton); deleteButtonLayout->setContentsMargins(0,0,0,0); @@ -201,7 +217,9 @@ void ServerConfig::finishedRequest(QNetworkReply *reply){ ppTable->setItem(i, 1, new QTableWidgetItem(keywordMap[key].toString())); auto *deleteButtonLayout = new QGridLayout(); auto *deleteCell = new QWidget(); - auto *deleteButton = new QPushButton("Entfernen"); + auto *deleteButton = new PushButtonWithPosition(i, "Entfernen"); + connect(deleteButton, SIGNAL (released()), this, SLOT (removePP())); + deleteButton->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); deleteButtonLayout->addWidget(deleteButton); deleteButtonLayout->setContentsMargins(0,0,0,0); diff --git a/serverconfig.h b/serverconfig.h index 6c291f5..7ea64f2 100644 --- a/serverconfig.h +++ b/serverconfig.h @@ -23,6 +23,8 @@ private slots: void finishedRequest(QNetworkReply*); void addNewPP(); void addNewContext(); + void removePP(); + void removeContext(); private: QGridLayout* mainLayout; QSettings* mySettings; diff --git a/speech-server-client-qt.pro b/speech-server-client-qt.pro index 0912b9b..d87189f 100644 --- a/speech-server-client-qt.pro +++ b/speech-server-client-qt.pro @@ -39,7 +39,8 @@ SOURCES += \ about.cpp \ serverconnection.cpp \ serverconfig.cpp \ - multivalueinputdialog.cpp + multivalueinputdialog.cpp \ + pushbuttonwithposition.cpp HEADERS += \ mainwindow.h \ @@ -50,7 +51,8 @@ HEADERS += \ serverconnection.h \ serverconfig.h \ urls.h \ - multivalueinputdialog.h + multivalueinputdialog.h \ + pushbuttonwithposition.h FORMS += \ mainwindow.ui \