From 36c8cfedb76409fe1e21cd76f76da82f5845c0c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Malte=20J=C3=BCrgens?= Date: Wed, 15 Feb 2023 02:21:41 +0100 Subject: [PATCH] fix qlayout error --- src/streamdialog.cpp | 12 ++++-------- src/streamdialog.h | 4 ++-- src/userscript.cpp | 11 ++++++----- src/userscript.h | 2 +- 4 files changed, 13 insertions(+), 16 deletions(-) diff --git a/src/streamdialog.cpp b/src/streamdialog.cpp index b1ebc2b..e383dea 100644 --- a/src/streamdialog.cpp +++ b/src/streamdialog.cpp @@ -9,7 +9,7 @@ #include #include -StreamDialog::StreamDialog() : QWidget() { +StreamDialog::StreamDialog(QWidget *parent) : QDialog(parent) { setAttribute(Qt::WA_QuitOnClose, false); { @@ -22,8 +22,7 @@ StreamDialog::StreamDialog() : QWidget() { layout->addWidget(m_videoGroupBox); { - auto videoLayout = new QVBoxLayout(this); - m_videoGroupBox->setLayout(videoLayout); + auto videoLayout = new QVBoxLayout(m_videoGroupBox); auto resolutionLabel = new QLabel(this); resolutionLabel->setText("Resolution"); @@ -60,15 +59,14 @@ StreamDialog::StreamDialog() : QWidget() { layout->addWidget(m_audioGroupBox); { - auto audioLayout = new QVBoxLayout(this); - m_audioGroupBox->setLayout(audioLayout); + auto audioLayout = new QVBoxLayout(m_audioGroupBox); auto targetLabel = new QLabel(this); targetLabel->setText("Audio Source"); audioLayout->addWidget(targetLabel); { - auto targetLayout = new QHBoxLayout(this); + auto targetLayout = new QHBoxLayout(); audioLayout->addLayout(targetLayout); m_targetComboBox = new QComboBox(this); @@ -88,8 +86,6 @@ StreamDialog::StreamDialog() : QWidget() { button->setText("Start Stream"); connect(button, &QPushButton::clicked, this, &StreamDialog::startStream); layout->addWidget(button, Qt::AlignRight | Qt::AlignBottom); - - setLayout(layout); } setWindowTitle("discord-screenaudio Stream Dialog"); diff --git a/src/streamdialog.h b/src/streamdialog.h index 0154a8d..4631ea3 100644 --- a/src/streamdialog.h +++ b/src/streamdialog.h @@ -5,11 +5,11 @@ #include #include -class StreamDialog : public QWidget { +class StreamDialog : public QDialog { Q_OBJECT public: - explicit StreamDialog(); + explicit StreamDialog(QWidget *parent = nullptr); private: QComboBox *m_targetComboBox; diff --git a/src/userscript.cpp b/src/userscript.cpp index e6fc764..18e3a28 100644 --- a/src/userscript.cpp +++ b/src/userscript.cpp @@ -74,7 +74,8 @@ void UserScript::setupShortcutsDialog() { } void UserScript::setupStreamDialog() { - connect(&m_streamDialog, &StreamDialog::requestedStreamStart, this, + m_streamDialog = new StreamDialog(MainWindow::instance()); + connect(m_streamDialog, &StreamDialog::requestedStreamStart, this, &UserScript::startStream); } @@ -156,9 +157,9 @@ void UserScript::startStream(bool video, bool audio, int width, int height, } void UserScript::showStreamDialog() { - if (m_streamDialog.isHidden()) - m_streamDialog.setHidden(false); + if (m_streamDialog->isHidden()) + m_streamDialog->setHidden(false); else - m_streamDialog.activateWindow(); - m_streamDialog.updateTargets(); + m_streamDialog->activateWindow(); + m_streamDialog->updateTargets(); } \ No newline at end of file diff --git a/src/userscript.h b/src/userscript.h index ab4ba37..2eacc1d 100644 --- a/src/userscript.h +++ b/src/userscript.h @@ -30,7 +30,7 @@ public: private: QProcess m_virtmicProcess; - StreamDialog m_streamDialog; + StreamDialog *m_streamDialog; bool m_kxmlgui = false; bool m_kglobalaccel = false; #ifdef KXMLGUI