diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index d3cfd82271..de5beca6f2 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -143,7 +143,9 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : connect(ui->action_Help, &QAction::triggered, this, &LammpsGui::help); connect(ui->actionLAMMPS_Manual, &QAction::triggered, this, &LammpsGui::manual); connect(ui->actionPreferences, &QAction::triggered, this, &LammpsGui::preferences); - connect(ui->actionDefaults, &QAction::triggered, this, &LammpsGui::defaults); + connect(ui->actionView_Log_Window, &QAction::triggered, this, &LammpsGui::view_log); + connect(ui->actionView_Graph_Window, &QAction::triggered, this, &LammpsGui::view_chart); + connect(ui->textEdit->document(), &QTextDocument::modificationChanged, this, &LammpsGui::modified); @@ -404,7 +406,7 @@ void LammpsGui::logupdate() } } - // extract chache thermo data + // extract cached thermo data if (chartwindow) { void *ptr = lammps.last_thermo("step", 0); if (ptr) { @@ -567,7 +569,10 @@ void LammpsGui::run_buffer() QObject::connect(shortcut, &QShortcut::activated, logwindow, &LogWindow::close); shortcut = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Slash), logwindow); QObject::connect(shortcut, &QShortcut::activated, this, &LammpsGui::stop_run); - logwindow->show(); + if (settings.value("viewlog",true).toBool()) + logwindow->show(); + else + logwindow->hide(); // if configured, delete old log window before opening new one if (settings.value("chartreplace", false).toBool()) delete chartwindow; @@ -580,7 +585,10 @@ void LammpsGui::run_buffer() QObject::connect(shortcut, &QShortcut::activated, chartwindow, &ChartWindow::close); shortcut = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Slash), chartwindow); QObject::connect(shortcut, &QShortcut::activated, this, &LammpsGui::stop_run); - chartwindow->show(); + if (settings.value("viewchart",true).toBool()) + chartwindow->show(); + else + chartwindow->hide(); logupdater = new QTimer(this); connect(logupdater, &QTimer::timeout, this, &LammpsGui::logupdate); @@ -637,6 +645,34 @@ void LammpsGui::clear() ui->textEdit->moveCursor(QTextCursor::Start, QTextCursor::MoveAnchor); } +void LammpsGui::view_chart() +{ + QSettings settings; + if (chartwindow) { + if (chartwindow->isVisible()) { + chartwindow->hide(); + settings.setValue("viewchart", false); + } else { + chartwindow->show(); + settings.setValue("viewchart", true); + } + } +} + +void LammpsGui::view_log() +{ + QSettings settings; + if (logwindow) { + if (logwindow->isVisible()) { + logwindow->hide(); + settings.setValue("viewlog", false); + } else { + logwindow->show(); + settings.setValue("viewlog", true); + } + } +} + void LammpsGui::about() { std::string version = "This is LAMMPS-GUI version " LAMMPS_GUI_VERSION; diff --git a/tools/lammps-gui/lammpsgui.h b/tools/lammps-gui/lammpsgui.h index a36dca2757..8a365adfcb 100644 --- a/tools/lammps-gui/lammpsgui.h +++ b/tools/lammps-gui/lammpsgui.h @@ -71,6 +71,8 @@ private slots: void run_buffer(); void stop_run(); void view_image(); + void view_chart(); + void view_log(); void about(); void help(); void manual(); diff --git a/tools/lammps-gui/lammpsgui.ui b/tools/lammps-gui/lammpsgui.ui index 14f354b3c0..cab83abcf6 100644 --- a/tools/lammps-gui/lammpsgui.ui +++ b/tools/lammps-gui/lammpsgui.ui @@ -27,7 +27,7 @@ 0 0 600 - 24 + 23 @@ -73,9 +73,17 @@ + + + &View + + + + + @@ -346,6 +354,22 @@ Reset to &Defaults + + + + + + &Log Window + + + + + + + + &Chart Window + + diff --git a/tools/lammps-gui/preferences.cpp b/tools/lammps-gui/preferences.cpp index ca476d1b10..eb7745dc45 100644 --- a/tools/lammps-gui/preferences.cpp +++ b/tools/lammps-gui/preferences.cpp @@ -117,6 +117,10 @@ void Preferences::accept() if (box) settings->setValue("logreplace", box->isChecked()); box = tabWidget->findChild("chartreplace"); if (box) settings->setValue("chartreplace", box->isChecked()); + box = tabWidget->findChild("viewlog"); + if (box) settings->setValue("viewlog", box->isChecked()); + box = tabWidget->findChild("viewchart"); + if (box) settings->setValue("viewchart", box->isChecked()); QDialog::accept(); } @@ -131,6 +135,12 @@ GeneralTab::GeneralTab(QSettings *_settings, LammpsWrapper *_lammps, QWidget *pa auto *cite = new QCheckBox("Include citation details"); cite->setObjectName("cite"); cite->setCheckState(settings->value("cite", false).toBool() ? Qt::Checked : Qt::Unchecked); + auto *logv = new QCheckBox("Show log window by default"); + logv->setObjectName("viewlog"); + logv->setCheckState(settings->value("viewlog", true).toBool() ? Qt::Checked : Qt::Unchecked); + auto *pltv = new QCheckBox("Show chart window by default"); + pltv->setObjectName("viewchart"); + pltv->setCheckState(settings->value("viewchart", true).toBool() ? Qt::Checked : Qt::Unchecked); auto *logr = new QCheckBox("Replace log window on new run"); logr->setObjectName("logreplace"); logr->setCheckState(settings->value("logreplace", false).toBool() ? Qt::Checked @@ -164,6 +174,8 @@ GeneralTab::GeneralTab(QSettings *_settings, LammpsWrapper *_lammps, QWidget *pa #endif layout->addWidget(echo); layout->addWidget(cite); + layout->addWidget(logv); + layout->addWidget(pltv); layout->addWidget(logr); layout->addWidget(pltr); #if !defined(__APPLE__)