diff --git a/tools/lammps-gui/chartviewer.cpp b/tools/lammps-gui/chartviewer.cpp index 0b269a80ec..d9fedd9129 100644 --- a/tools/lammps-gui/chartviewer.cpp +++ b/tools/lammps-gui/chartviewer.cpp @@ -53,7 +53,7 @@ int ChartWindow::get_step() const { if (charts.size() > 0) { auto *v = charts[0]; - return (int)v->get_step(v->get_count()-1); + return (int)v->get_step(v->get_count() - 1); } else { return -1; } diff --git a/tools/lammps-gui/gtk-zoom-fit.png b/tools/lammps-gui/gtk-zoom-fit.png index 35994e8bc7..9132294eac 100644 Binary files a/tools/lammps-gui/gtk-zoom-fit.png and b/tools/lammps-gui/gtk-zoom-fit.png differ diff --git a/tools/lammps-gui/gtk-zoom-in.png b/tools/lammps-gui/gtk-zoom-in.png index 46604770dd..34e8f04195 100644 Binary files a/tools/lammps-gui/gtk-zoom-in.png and b/tools/lammps-gui/gtk-zoom-in.png differ diff --git a/tools/lammps-gui/gtk-zoom-out.png b/tools/lammps-gui/gtk-zoom-out.png index 72e6eb43c6..42acdd993d 100644 Binary files a/tools/lammps-gui/gtk-zoom-out.png and b/tools/lammps-gui/gtk-zoom-out.png differ diff --git a/tools/lammps-gui/imageviewer.cpp b/tools/lammps-gui/imageviewer.cpp index 3f8c5da1d9..d3db3e0d99 100644 --- a/tools/lammps-gui/imageviewer.cpp +++ b/tools/lammps-gui/imageviewer.cpp @@ -72,6 +72,7 @@ ImageViewer::ImageViewer(const QString &fileName, LammpsWrapper *_lammps, QWidge auto *rotright = new QPushButton(QIcon(":/object-rotate-right.png"), ""); auto *rotup = new QPushButton(QIcon(":/gtk-go-up.png"), ""); auto *rotdown = new QPushButton(QIcon(":/gtk-go-down.png"), ""); + auto *reset = new QPushButton(QIcon(":/gtk-zoom-fit.png"), ""); auto *combo = new QComboBox; combo->setObjectName("group"); int ngroup = lammps->id_count("group"); @@ -93,6 +94,7 @@ ImageViewer::ImageViewer(const QString &fileName, LammpsWrapper *_lammps, QWidge menuLayout->addWidget(rotright); menuLayout->addWidget(rotup); menuLayout->addWidget(rotdown); + menuLayout->addWidget(reset); menuLayout->addWidget(new QLabel(" Group: ")); menuLayout->addWidget(combo); @@ -106,26 +108,20 @@ ImageViewer::ImageViewer(const QString &fileName, LammpsWrapper *_lammps, QWidge connect(rotright, &QPushButton::released, this, &ImageViewer::do_rot_right); connect(rotup, &QPushButton::released, this, &ImageViewer::do_rot_up); connect(rotdown, &QPushButton::released, this, &ImageViewer::do_rot_down); + connect(reset, &QPushButton::released, this, &ImageViewer::reset_view); connect(combo, SIGNAL(currentIndexChanged(int)), this, SLOT(change_group(int))); mainLayout->addLayout(menuLayout); mainLayout->addWidget(scrollArea); mainLayout->addWidget(buttonBox); - setWindowTitle(QString("Image Viewer: ") + QFileInfo(fileName).completeBaseName()); - - QSettings settings; - settings.beginGroup("snapshot"); - zoom = settings.value("zoom", 1.0).toDouble(); - hrot = settings.value("hrot", 60).toInt(); - vrot = settings.value("vrot", 30).toInt(); - showbox = settings.value("box", true).toBool(); - dobox->setChecked(showbox); - showaxes = settings.value("axes", false).toBool(); - doaxes->setChecked(showaxes); - settings.endGroup(); - + setWindowTitle(QString("Image Viewer: ") + QFileInfo(fileName).fileName()); createActions(); - createImage(); + + reset_view(); + dobox->setChecked(showbox); + doaxes->setChecked(showaxes); + dossao->setChecked(usessao); + doanti->setChecked(antialias); scaleFactor = 1.0; resize(image.width() + 20, image.height() + 50); @@ -137,6 +133,37 @@ ImageViewer::ImageViewer(const QString &fileName, LammpsWrapper *_lammps, QWidge setLayout(mainLayout); } +void ImageViewer::reset_view() +{ + QSettings settings; + settings.beginGroup("snapshot"); + zoom = settings.value("zoom", 1.0).toDouble(); + hrot = settings.value("hrot", 60).toInt(); + vrot = settings.value("vrot", 30).toInt(); + showbox = settings.value("box", true).toBool(); + showaxes = settings.value("axes", false).toBool(); + usessao = settings.value("ssao", false).toBool(); + antialias = settings.value("antialias", false).toBool(); + settings.endGroup(); + + // reset state of checkable push buttons (only after main layout is set up) + auto *lo = layout(); + if (lo) { + lo = lo->itemAt(0)->layout(); + auto *button = qobject_cast(lo->itemAt(1)->widget()); + button->setChecked(usessao); + button = qobject_cast(lo->itemAt(2)->widget()); + button->setChecked(antialias); + button = qobject_cast(lo->itemAt(3)->widget()); + button->setChecked(showbox); + button = qobject_cast(lo->itemAt(4)->widget()); + button->setChecked(showaxes); + auto *cb = qobject_cast(lo->itemAt(lo->count() - 1)->widget()); + cb->setCurrentText("all"); + } + createImage(); +} + void ImageViewer::toggle_ssao() { QPushButton *button = qobject_cast(sender()); @@ -251,7 +278,8 @@ void ImageViewer::createImage() else dumpcmd += QString(" axes no 0.0 0.0"); - dumpcmd += " modify boxcolor silver"; + dumpcmd += " modify boxcolor " + settings.value("boxcolor", "yellow").toString(); + dumpcmd += " backcolor " + settings.value("background", "black").toString(); settings.endGroup(); lammps->command(dumpcmd.toLocal8Bit()); diff --git a/tools/lammps-gui/imageviewer.h b/tools/lammps-gui/imageviewer.h index 1a4327561b..b81e5b0d59 100644 --- a/tools/lammps-gui/imageviewer.h +++ b/tools/lammps-gui/imageviewer.h @@ -45,6 +45,7 @@ private slots: void normalSize(); void fitToWindow(); + void reset_view(); void toggle_ssao(); void toggle_anti(); void toggle_box(); diff --git a/tools/lammps-gui/lammpswrapper.cpp b/tools/lammps-gui/lammpswrapper.cpp index 63d95d71b2..8bc6173752 100644 --- a/tools/lammps-gui/lammpswrapper.cpp +++ b/tools/lammps-gui/lammpswrapper.cpp @@ -39,7 +39,7 @@ int LammpsWrapper::extract_setting(const char *keyword) #if defined(LAMMPS_GUI_USE_PLUGIN) val = ((liblammpsplugin_t *)plugin_handle)->extract_setting(lammps_handle, keyword); #else - val = lammps_extract_setting(lammps_handle, keyword); + val = lammps_extract_setting(lammps_handle, keyword); #endif } return val; @@ -52,7 +52,7 @@ int LammpsWrapper::id_count(const char *keyword) #if defined(LAMMPS_GUI_USE_PLUGIN) val = ((liblammpsplugin_t *)plugin_handle)->id_count(lammps_handle, keyword); #else - val = lammps_id_count(lammps_handle, keyword); + val = lammps_id_count(lammps_handle, keyword); #endif } return val; @@ -65,7 +65,7 @@ int LammpsWrapper::id_name(const char *keyword, int idx, char *buf, int len) #if defined(LAMMPS_GUI_USE_PLUGIN) val = ((liblammpsplugin_t *)plugin_handle)->id_name(lammps_handle, keyword, idx, buf, len); #else - val = lammps_id_name(lammps_handle, keyword, idx, buf, len); + val = lammps_id_name(lammps_handle, keyword, idx, buf, len); #endif } return val; @@ -78,7 +78,7 @@ double LammpsWrapper::get_thermo(const char *keyword) #if defined(LAMMPS_GUI_USE_PLUGIN) val = ((liblammpsplugin_t *)plugin_handle)->get_thermo(lammps_handle, keyword); #else - val = lammps_get_thermo(lammps_handle, keyword); + val = lammps_get_thermo(lammps_handle, keyword); #endif } return val; @@ -91,7 +91,7 @@ void *LammpsWrapper::last_thermo(const char *keyword, int index) #if defined(LAMMPS_GUI_USE_PLUGIN) ptr = ((liblammpsplugin_t *)plugin_handle)->last_thermo(lammps_handle, keyword, index); #else - ptr = lammps_last_thermo(lammps_handle, keyword, index); + ptr = lammps_last_thermo(lammps_handle, keyword, index); #endif } return ptr; @@ -104,7 +104,7 @@ bool LammpsWrapper::is_running() #if defined(LAMMPS_GUI_USE_PLUGIN) val = ((liblammpsplugin_t *)plugin_handle)->is_running(lammps_handle); #else - val = lammps_is_running(lammps_handle); + val = lammps_is_running(lammps_handle); #endif } return val != 0; diff --git a/tools/lammps-gui/preferences.cpp b/tools/lammps-gui/preferences.cpp index f003545764..45d7414140 100644 --- a/tools/lammps-gui/preferences.cpp +++ b/tools/lammps-gui/preferences.cpp @@ -120,6 +120,10 @@ void Preferences::accept() if (box) settings->setValue("box", box->isChecked()); box = tabWidget->findChild("axes"); if (box) settings->setValue("axes", box->isChecked()); + QComboBox *combo = tabWidget->findChild("background"); + if (combo) settings->setValue("background", combo->currentText()); + combo = tabWidget->findChild("boxcolor"); + if (combo) settings->setValue("boxcolor", combo->currentText()); settings->endGroup(); // general settings @@ -367,6 +371,8 @@ SnapshotTab::SnapshotTab(QSettings *_settings, QWidget *parent) : auto *ssao = new QLabel("HQ Image mode:"); auto *bbox = new QLabel("Show Box:"); auto *axes = new QLabel("Show Axes:"); + auto *cback = new QLabel("Background Color:"); + auto *cbox = new QLabel("Box Color:"); settings->beginGroup("snapshot"); auto *xval = new QLineEdit(settings->value("xsize", "800").toString()); auto *yval = new QLineEdit(settings->value("ysize", "600").toString()); @@ -383,7 +389,6 @@ SnapshotTab::SnapshotTab(QSettings *_settings, QWidget *parent) : bval->setObjectName("box"); eval->setCheckState(settings->value("axes", false).toBool() ? Qt::Checked : Qt::Unchecked); eval->setObjectName("axes"); - settings->endGroup(); auto *intval = new QIntValidator(100, 100000, this); xval->setValidator(intval); @@ -393,6 +398,26 @@ SnapshotTab::SnapshotTab(QSettings *_settings, QWidget *parent) : zval->setValidator(new QDoubleValidator(0.01, 100.0, 100, this)); zval->setObjectName("zoom"); + auto *background = new QComboBox; + background->setObjectName("background"); + background->addItem("black"); + background->addItem("white"); + background->addItem("darkgray"); + background->addItem("gray"); + background->addItem("silver"); + background->setCurrentText(settings->value("background", "black").toString()); + + auto *boxcolor = new QComboBox; + boxcolor->setObjectName("boxcolor"); + boxcolor->addItem("yellow"); + boxcolor->addItem("silver"); + boxcolor->addItem("gray"); + boxcolor->addItem("red"); + boxcolor->addItem("green"); + boxcolor->addItem("blue"); + boxcolor->setCurrentText(settings->value("boxcolor", "yellow").toString()); + settings->endGroup(); + grid->addWidget(xsize, 0, 0, Qt::AlignTop); grid->addWidget(ysize, 1, 0, Qt::AlignTop); grid->addWidget(zoom, 2, 0, Qt::AlignTop); @@ -400,6 +425,8 @@ SnapshotTab::SnapshotTab(QSettings *_settings, QWidget *parent) : grid->addWidget(ssao, 4, 0, Qt::AlignTop); grid->addWidget(bbox, 5, 0, Qt::AlignTop); grid->addWidget(axes, 6, 0, Qt::AlignTop); + grid->addWidget(cback, 7, 0, Qt::AlignTop); + grid->addWidget(cbox, 8, 0, Qt::AlignTop); grid->addWidget(xval, 0, 1, Qt::AlignTop); grid->addWidget(yval, 1, 1, Qt::AlignTop); grid->addWidget(zval, 2, 1, Qt::AlignTop); @@ -407,9 +434,12 @@ SnapshotTab::SnapshotTab(QSettings *_settings, QWidget *parent) : grid->addWidget(sval, 4, 1, Qt::AlignVCenter); grid->addWidget(bval, 5, 1, Qt::AlignVCenter); grid->addWidget(eval, 6, 1, Qt::AlignVCenter); - grid->addItem(new QSpacerItem(100, 100, QSizePolicy::Minimum, QSizePolicy::Expanding), 7, 0); - grid->addItem(new QSpacerItem(100, 100, QSizePolicy::Minimum, QSizePolicy::Expanding), 7, 1); - grid->addItem(new QSpacerItem(100, 100, QSizePolicy::Expanding, QSizePolicy::Expanding), 7, 2); + grid->addWidget(background, 7, 1, Qt::AlignVCenter); + grid->addWidget(boxcolor, 8, 1, Qt::AlignVCenter); + + grid->addItem(new QSpacerItem(100, 100, QSizePolicy::Minimum, QSizePolicy::Expanding), 9, 0); + grid->addItem(new QSpacerItem(100, 100, QSizePolicy::Minimum, QSizePolicy::Expanding), 9, 1); + grid->addItem(new QSpacerItem(100, 100, QSizePolicy::Expanding, QSizePolicy::Expanding), 9, 2); setLayout(grid); }