diff --git a/avogadro/qtplugins/lineformatinput/lineformatinput.cpp b/avogadro/qtplugins/lineformatinput/lineformatinput.cpp index ca5837e798..916fd17888 100644 --- a/avogadro/qtplugins/lineformatinput/lineformatinput.cpp +++ b/avogadro/qtplugins/lineformatinput/lineformatinput.cpp @@ -25,8 +25,8 @@ using Avogadro::QtGui::FileFormatDialog; namespace Avogadro::QtPlugins { LineFormatInput::LineFormatInput(QObject* parent_) - : Avogadro::QtGui::ExtensionPlugin(parent_), - m_molecule(nullptr), m_reader(nullptr) + : Avogadro::QtGui::ExtensionPlugin(parent_), m_molecule(nullptr), + m_reader(nullptr) { auto* action = new QAction(tr("SMILES…"), this); action->setProperty("menu priority", 800); @@ -98,7 +98,8 @@ void LineFormatInput::showDialog() dlg.exec(); // check if the reply is empty - if (dlg.descriptor().isEmpty()) + if (dlg.result() != LineFormatInputDialog::Accepted || + dlg.descriptor().isEmpty()) return; // nothing to do // Resolve any format conflicts: @@ -137,4 +138,4 @@ void LineFormatInput::showDialog() m_reader = nullptr; } -} // namespace Avogadro +} // namespace Avogadro::QtPlugins diff --git a/avogadro/qtplugins/lineformatinput/lineformatinputdialog.cpp b/avogadro/qtplugins/lineformatinput/lineformatinputdialog.cpp index d05c6ff6f0..e4b0ad3a88 100644 --- a/avogadro/qtplugins/lineformatinput/lineformatinputdialog.cpp +++ b/avogadro/qtplugins/lineformatinput/lineformatinputdialog.cpp @@ -14,6 +14,12 @@ LineFormatInputDialog::LineFormatInputDialog(QWidget* aParent) : QDialog(aParent), m_ui(new Ui::LineFormatInputDialog) { m_ui->setupUi(this); + + QSettings settings; + // set the last used descriptor + QString lastDescriptor = + settings.value("lineformatinput/lastDescriptor").toString(); + setDescriptor(lastDescriptor); } LineFormatInputDialog::~LineFormatInputDialog() @@ -45,6 +51,11 @@ void LineFormatInputDialog::setCurrentFormat(const QString& format) m_ui->formats->setCurrentIndex(index); } +void LineFormatInputDialog::setDescriptor(const QString& descriptor) +{ + m_ui->descriptor->setText(descriptor); +} + QString LineFormatInputDialog::descriptor() const { return m_ui->descriptor->text(); @@ -54,7 +65,8 @@ void LineFormatInputDialog::accept() { QSettings settings; settings.setValue("lineformatinput/lastUsed", format()); + settings.setValue("lineformatinput/lastDescriptor", descriptor()); QDialog::accept(); } -} // namespace Avogadro +} // namespace Avogadro::QtPlugins diff --git a/avogadro/qtplugins/lineformatinput/lineformatinputdialog.h b/avogadro/qtplugins/lineformatinput/lineformatinputdialog.h index a072d2c907..6363fc3c91 100644 --- a/avogadro/qtplugins/lineformatinput/lineformatinputdialog.h +++ b/avogadro/qtplugins/lineformatinput/lineformatinputdialog.h @@ -31,6 +31,8 @@ class LineFormatInputDialog : public QDialog void setCurrentFormat(const QString& format); + void setDescriptor(const QString& descriptor); + QString descriptor() const; protected slots: