From ad424bf3d836befa97c6d9080742930b4da8cd44 Mon Sep 17 00:00:00 2001 From: Iwbnwif Yiw Date: Sat, 26 Oct 2024 18:20:56 +0100 Subject: [PATCH] Save the position / size of ExternSimDialog on exit. --- qucs/extsimkernels/externsimdialog.cpp | 21 +++++++++++++++++---- qucs/extsimkernels/externsimdialog.h | 1 + 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/qucs/extsimkernels/externsimdialog.cpp b/qucs/extsimkernels/externsimdialog.cpp index 1b51d3be1..731ed0e4b 100644 --- a/qucs/extsimkernels/externsimdialog.cpp +++ b/qucs/extsimkernels/externsimdialog.cpp @@ -31,6 +31,12 @@ ExternSimDialog::ExternSimDialog(Schematic *sch, bool netlist_mode) : wasSimulated = false; hasError = false; + QSettings settings("qucs", "qucs_s"); + restoreGeometry(settings.value("ExternSimDialog/geometry").toByteArray()); + + setWindowTitle(tr("Simulate with external simulator")); + setMinimumWidth(500); + workdir = QucsSettings.S4Qworkdir; QFileInfo inf(workdir); if (!inf.exists()) { @@ -50,7 +56,7 @@ ExternSimDialog::ExternSimDialog(Schematic *sch, bool netlist_mode) : connect(buttonSaveNetlist,SIGNAL(clicked()),this,SLOT(slotSaveNetlist())); buttonExit = new QPushButton(tr("Exit"),this); - connect(buttonExit,SIGNAL(clicked()),this,SLOT(reject())); + connect(buttonExit,SIGNAL(clicked()),this,SLOT(slotExit())); connect(buttonExit,SIGNAL(clicked()),ngspice,SLOT(killThemAll())); connect(buttonExit,SIGNAL(clicked()),xyce,SLOT(killThemAll())); @@ -83,9 +89,7 @@ ExternSimDialog::ExternSimDialog(Schematic *sch, bool netlist_mode) : hl1->addWidget(buttonSaveNetlist); hl1->addWidget(buttonExit); vl_top->addLayout(hl1); - this->setLayout(vl_top); - this->setWindowTitle(tr("Simulate with external simulator")); - this->setMinimumWidth(500); + setLayout(vl_top); slotSetSimulator(); if (!netlist_mode && !QucsMain->TuningMode && Sch->showBias != 0) @@ -305,6 +309,15 @@ void ExternSimDialog::slotSaveNetlist() } } +void ExternSimDialog::slotExit() +{ + // Save window size / position and close this dialog. + QSettings settings("qucs","qucs_s"); + settings.setValue("ExternSimDialog/geometry", saveGeometry()); + + accept(); +} + void ExternSimDialog::saveLog() { QString filename = QucsSettings.tempFilesDir.filePath("log.txt"); diff --git a/qucs/extsimkernels/externsimdialog.h b/qucs/extsimkernels/externsimdialog.h index 66406c800..53883ba82 100644 --- a/qucs/extsimkernels/externsimdialog.h +++ b/qucs/extsimkernels/externsimdialog.h @@ -76,6 +76,7 @@ private slots: void slotNgspiceStartError(QProcess::ProcessError err); void slotStop(); void slotSetSimulator(); + void slotExit(); };