add non-functional slide show window to GUI
# Conflicts: # tools/lammps-gui/CMakeLists.txt # tools/lammps-gui/lammpsgui.cpp # tools/lammps-gui/lammpsgui.qrc # tools/lammps-gui/lammpsgui.ui
This commit is contained in:
@ -1,6 +1,6 @@
|
|||||||
cmake_minimum_required(VERSION 3.16)
|
cmake_minimum_required(VERSION 3.16)
|
||||||
|
|
||||||
project(lammps-gui VERSION 1.3.1 LANGUAGES CXX)
|
project(lammps-gui VERSION 1.4.0 LANGUAGES CXX)
|
||||||
|
|
||||||
set(CMAKE_AUTOUIC ON)
|
set(CMAKE_AUTOUIC ON)
|
||||||
set(CMAKE_AUTOMOC ON)
|
set(CMAKE_AUTOMOC ON)
|
||||||
@ -72,17 +72,17 @@ find_package(Qt5 5.12 REQUIRED COMPONENTS Widgets Charts)
|
|||||||
|
|
||||||
set(PROJECT_SOURCES
|
set(PROJECT_SOURCES
|
||||||
main.cpp
|
main.cpp
|
||||||
|
lammpsgui.cpp
|
||||||
|
lammpsgui.h
|
||||||
|
lammpsgui.ui
|
||||||
|
chartviewer.cpp
|
||||||
|
chartviewer.h
|
||||||
codeeditor.cpp
|
codeeditor.cpp
|
||||||
codeeditor.h
|
codeeditor.h
|
||||||
highlighter.cpp
|
highlighter.cpp
|
||||||
highlighter.h
|
highlighter.h
|
||||||
imageviewer.cpp
|
imageviewer.cpp
|
||||||
imageviewer.h
|
imageviewer.h
|
||||||
chartviewer.cpp
|
|
||||||
chartviewer.h
|
|
||||||
lammpsgui.cpp
|
|
||||||
lammpsgui.h
|
|
||||||
lammpsgui.ui
|
|
||||||
lammpsrunner.h
|
lammpsrunner.h
|
||||||
lammpswrapper.cpp
|
lammpswrapper.cpp
|
||||||
lammpswrapper.h
|
lammpswrapper.h
|
||||||
@ -93,6 +93,8 @@ set(PROJECT_SOURCES
|
|||||||
preferences.h
|
preferences.h
|
||||||
setvariables.cpp
|
setvariables.cpp
|
||||||
setvariables.h
|
setvariables.h
|
||||||
|
slideshow.h
|
||||||
|
slideshow.cpp
|
||||||
stdcapture.cpp
|
stdcapture.cpp
|
||||||
${PLUGIN_LOADER_SRC}
|
${PLUGIN_LOADER_SRC}
|
||||||
${ICON_RC_FILE}
|
${ICON_RC_FILE}
|
||||||
|
|||||||
BIN
tools/lammps-gui/image-x-generic.png
Normal file
BIN
tools/lammps-gui/image-x-generic.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.8 KiB |
@ -20,6 +20,7 @@
|
|||||||
#include "logwindow.h"
|
#include "logwindow.h"
|
||||||
#include "preferences.h"
|
#include "preferences.h"
|
||||||
#include "setvariables.h"
|
#include "setvariables.h"
|
||||||
|
#include "slideshow.h"
|
||||||
#include "stdcapture.h"
|
#include "stdcapture.h"
|
||||||
#include "ui_lammpsgui.h"
|
#include "ui_lammpsgui.h"
|
||||||
|
|
||||||
@ -96,8 +97,8 @@ static bool has_exe(const QString &exe)
|
|||||||
LammpsGui::LammpsGui(QWidget *parent, const char *filename) :
|
LammpsGui::LammpsGui(QWidget *parent, const char *filename) :
|
||||||
QMainWindow(parent), ui(new Ui::LammpsGui), highlighter(nullptr), capturer(nullptr),
|
QMainWindow(parent), ui(new Ui::LammpsGui), highlighter(nullptr), capturer(nullptr),
|
||||||
status(nullptr), logwindow(nullptr), imagewindow(nullptr), chartwindow(nullptr),
|
status(nullptr), logwindow(nullptr), imagewindow(nullptr), chartwindow(nullptr),
|
||||||
logupdater(nullptr), dirstatus(nullptr), progress(nullptr), prefdialog(nullptr),
|
slideshow(nullptr), logupdater(nullptr), dirstatus(nullptr), progress(nullptr),
|
||||||
lammpsstatus(nullptr), varwindow(nullptr)
|
prefdialog(nullptr), lammpsstatus(nullptr), varwindow(nullptr)
|
||||||
{
|
{
|
||||||
// enforce using the plain ASCII C locale within the GUI.
|
// enforce using the plain ASCII C locale within the GUI.
|
||||||
QLocale::setDefault(QLocale("C"));
|
QLocale::setDefault(QLocale("C"));
|
||||||
@ -239,6 +240,7 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) :
|
|||||||
connect(ui->actionView_Log_Window, &QAction::triggered, this, &LammpsGui::view_log);
|
connect(ui->actionView_Log_Window, &QAction::triggered, this, &LammpsGui::view_log);
|
||||||
connect(ui->actionView_Graph_Window, &QAction::triggered, this, &LammpsGui::view_chart);
|
connect(ui->actionView_Graph_Window, &QAction::triggered, this, &LammpsGui::view_chart);
|
||||||
connect(ui->actionView_Image_Window, &QAction::triggered, this, &LammpsGui::view_image);
|
connect(ui->actionView_Image_Window, &QAction::triggered, this, &LammpsGui::view_image);
|
||||||
|
connect(ui->actionView_Slide_Show, &QAction::triggered, this, &LammpsGui::view_slides);
|
||||||
connect(ui->actionView_Variable_Window, &QAction::triggered, this, &LammpsGui::view_variables);
|
connect(ui->actionView_Variable_Window, &QAction::triggered, this, &LammpsGui::view_variables);
|
||||||
connect(ui->action_1, &QAction::triggered, this, &LammpsGui::open_recent);
|
connect(ui->action_1, &QAction::triggered, this, &LammpsGui::open_recent);
|
||||||
connect(ui->action_2, &QAction::triggered, this, &LammpsGui::open_recent);
|
connect(ui->action_2, &QAction::triggered, this, &LammpsGui::open_recent);
|
||||||
@ -265,15 +267,19 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) :
|
|||||||
auto *lammpsrun = new QPushButton(QIcon(":/system-run.png"), "");
|
auto *lammpsrun = new QPushButton(QIcon(":/system-run.png"), "");
|
||||||
auto *lammpsstop = new QPushButton(QIcon(":/process-stop.png"), "");
|
auto *lammpsstop = new QPushButton(QIcon(":/process-stop.png"), "");
|
||||||
auto *lammpsimage = new QPushButton(QIcon(":/emblem-photos.png"), "");
|
auto *lammpsimage = new QPushButton(QIcon(":/emblem-photos.png"), "");
|
||||||
|
auto *lammpsslide = new QPushButton(QIcon(":/image-x-generic.png"), "");
|
||||||
lammpsrun->setToolTip("Run LAMMPS on input");
|
lammpsrun->setToolTip("Run LAMMPS on input");
|
||||||
lammpsstop->setToolTip("Stop LAMMPS");
|
lammpsstop->setToolTip("Stop LAMMPS");
|
||||||
lammpsimage->setToolTip("Create snapshot image");
|
lammpsimage->setToolTip("Create snapshot image");
|
||||||
|
lammpsslide->setToolTip("View Slide Show");
|
||||||
ui->statusbar->addWidget(lammpsrun);
|
ui->statusbar->addWidget(lammpsrun);
|
||||||
ui->statusbar->addWidget(lammpsstop);
|
ui->statusbar->addWidget(lammpsstop);
|
||||||
ui->statusbar->addWidget(lammpsimage);
|
ui->statusbar->addWidget(lammpsimage);
|
||||||
|
ui->statusbar->addWidget(lammpsslide);
|
||||||
connect(lammpsrun, &QPushButton::released, this, &LammpsGui::run_buffer);
|
connect(lammpsrun, &QPushButton::released, this, &LammpsGui::run_buffer);
|
||||||
connect(lammpsstop, &QPushButton::released, this, &LammpsGui::stop_run);
|
connect(lammpsstop, &QPushButton::released, this, &LammpsGui::stop_run);
|
||||||
connect(lammpsimage, &QPushButton::released, this, &LammpsGui::render_image);
|
connect(lammpsimage, &QPushButton::released, this, &LammpsGui::render_image);
|
||||||
|
connect(lammpsslide, &QPushButton::released, this, &LammpsGui::view_slides);
|
||||||
|
|
||||||
status = new QLabel("Ready.");
|
status = new QLabel("Ready.");
|
||||||
status->setFixedWidth(300);
|
status->setFixedWidth(300);
|
||||||
@ -307,6 +313,7 @@ LammpsGui::~LammpsGui()
|
|||||||
delete chartwindow;
|
delete chartwindow;
|
||||||
delete dirstatus;
|
delete dirstatus;
|
||||||
delete varwindow;
|
delete varwindow;
|
||||||
|
delete slideshow;
|
||||||
}
|
}
|
||||||
|
|
||||||
void LammpsGui::new_document()
|
void LammpsGui::new_document()
|
||||||
@ -982,6 +989,15 @@ void LammpsGui::render_image()
|
|||||||
imagewindow->show();
|
imagewindow->show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void LammpsGui::view_slides()
|
||||||
|
{
|
||||||
|
if (!slideshow) slideshow = new SlideShow(current_file, &lammps);
|
||||||
|
if (slideshow->isVisible())
|
||||||
|
slideshow->hide();
|
||||||
|
else
|
||||||
|
slideshow->show();
|
||||||
|
}
|
||||||
|
|
||||||
void LammpsGui::view_chart()
|
void LammpsGui::view_chart()
|
||||||
{
|
{
|
||||||
QSettings settings;
|
QSettings settings;
|
||||||
|
|||||||
@ -45,6 +45,7 @@ class StdCapture;
|
|||||||
class Preferences;
|
class Preferences;
|
||||||
class ImageViewer;
|
class ImageViewer;
|
||||||
class ChartWindow;
|
class ChartWindow;
|
||||||
|
class SlideShow;
|
||||||
|
|
||||||
class LammpsGui : public QMainWindow {
|
class LammpsGui : public QMainWindow {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
@ -84,6 +85,7 @@ private slots:
|
|||||||
void stop_run();
|
void stop_run();
|
||||||
void edit_variables();
|
void edit_variables();
|
||||||
void render_image();
|
void render_image();
|
||||||
|
void view_slides();
|
||||||
void view_image();
|
void view_image();
|
||||||
void view_chart();
|
void view_chart();
|
||||||
void view_log();
|
void view_log();
|
||||||
@ -107,6 +109,7 @@ private:
|
|||||||
LogWindow *logwindow;
|
LogWindow *logwindow;
|
||||||
ImageViewer *imagewindow;
|
ImageViewer *imagewindow;
|
||||||
ChartWindow *chartwindow;
|
ChartWindow *chartwindow;
|
||||||
|
SlideShow *slideshow;
|
||||||
QTimer *logupdater;
|
QTimer *logupdater;
|
||||||
QLabel *dirstatus;
|
QLabel *dirstatus;
|
||||||
QProgressBar *progress;
|
QProgressBar *progress;
|
||||||
|
|||||||
@ -29,6 +29,7 @@
|
|||||||
<file>help-browser.png</file>
|
<file>help-browser.png</file>
|
||||||
<file>help-faq.png</file>
|
<file>help-faq.png</file>
|
||||||
<file>help_index.table</file>
|
<file>help_index.table</file>
|
||||||
|
<file>image-x-generic.png</file>
|
||||||
<file>object-rotate-left.png</file>
|
<file>object-rotate-left.png</file>
|
||||||
<file>object-rotate-right.png</file>
|
<file>object-rotate-right.png</file>
|
||||||
<file>ovito.png</file>
|
<file>ovito.png</file>
|
||||||
|
|||||||
@ -93,6 +93,7 @@
|
|||||||
<addaction name="actionView_Log_Window"/>
|
<addaction name="actionView_Log_Window"/>
|
||||||
<addaction name="actionView_Graph_Window"/>
|
<addaction name="actionView_Graph_Window"/>
|
||||||
<addaction name="actionView_Image_Window"/>
|
<addaction name="actionView_Image_Window"/>
|
||||||
|
<addaction name="actionView_Slide_Show"/>
|
||||||
<addaction name="actionView_Variable_Window"/>
|
<addaction name="actionView_Variable_Window"/>
|
||||||
</widget>
|
</widget>
|
||||||
<addaction name="menuFile"/>
|
<addaction name="menuFile"/>
|
||||||
@ -352,6 +353,17 @@
|
|||||||
<string>Ctrl+Shift+C</string>
|
<string>Ctrl+Shift+C</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
|
<action name="actionView_Slide_Show">
|
||||||
|
<property name="icon">
|
||||||
|
<iconset theme=":/image-x-generic.png"/>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>&Slide Show Window</string>
|
||||||
|
</property>
|
||||||
|
<property name="shortcut">
|
||||||
|
<string>Ctrl+Shift+W</string>
|
||||||
|
</property>
|
||||||
|
</action>
|
||||||
<action name="action_1">
|
<action name="action_1">
|
||||||
<property name="icon">
|
<property name="icon">
|
||||||
<iconset theme=":/document-open-recent.png"/>
|
<iconset theme=":/document-open-recent.png"/>
|
||||||
|
|||||||
190
tools/lammps-gui/slideshow.cpp
Normal file
190
tools/lammps-gui/slideshow.cpp
Normal file
@ -0,0 +1,190 @@
|
|||||||
|
/* ----------------------------------------------------------------------
|
||||||
|
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||||
|
https://www.lammps.org/, Sandia National Laboratories
|
||||||
|
LAMMPS development team: developers@lammps.org
|
||||||
|
|
||||||
|
Copyright (2003) Sandia Corporation. Under the terms of Contract
|
||||||
|
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
|
||||||
|
certain rights in this software. This software is distributed under
|
||||||
|
the GNU General Public License.
|
||||||
|
|
||||||
|
See the README file in the top-level LAMMPS directory.
|
||||||
|
------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
#include "slideshow.h"
|
||||||
|
#include "lammpswrapper.h"
|
||||||
|
|
||||||
|
#include <QAction>
|
||||||
|
#include <QDialogButtonBox>
|
||||||
|
#include <QDir>
|
||||||
|
#include <QFileDialog>
|
||||||
|
#include <QGuiApplication>
|
||||||
|
#include <QImage>
|
||||||
|
#include <QImageReader>
|
||||||
|
#include <QLabel>
|
||||||
|
#include <QMenuBar>
|
||||||
|
#include <QMessageBox>
|
||||||
|
#include <QPalette>
|
||||||
|
#include <QPoint>
|
||||||
|
#include <QPushButton>
|
||||||
|
#include <QScreen>
|
||||||
|
#include <QScrollArea>
|
||||||
|
#include <QScrollBar>
|
||||||
|
#include <QSettings>
|
||||||
|
#include <QStatusBar>
|
||||||
|
#include <QVBoxLayout>
|
||||||
|
#include <QWidgetAction>
|
||||||
|
|
||||||
|
#include <cmath>
|
||||||
|
|
||||||
|
static const QString blank(" ");
|
||||||
|
|
||||||
|
SlideShow::SlideShow(const QString &fileName, LammpsWrapper *_lammps, QWidget *parent) :
|
||||||
|
QDialog(parent), imageLabel(new QLabel), scrollArea(new QScrollArea), menuBar(new QMenuBar),
|
||||||
|
lammps(_lammps)
|
||||||
|
{
|
||||||
|
imageLabel->setBackgroundRole(QPalette::Base);
|
||||||
|
imageLabel->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
|
||||||
|
imageLabel->setScaledContents(true);
|
||||||
|
imageLabel->minimumSizeHint();
|
||||||
|
|
||||||
|
scrollArea->setBackgroundRole(QPalette::Dark);
|
||||||
|
scrollArea->setWidget(imageLabel);
|
||||||
|
scrollArea->setVisible(false);
|
||||||
|
|
||||||
|
buttonBox = new QDialogButtonBox(QDialogButtonBox::Close);
|
||||||
|
|
||||||
|
connect(buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept);
|
||||||
|
connect(buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject);
|
||||||
|
|
||||||
|
QVBoxLayout *mainLayout = new QVBoxLayout;
|
||||||
|
QSettings settings;
|
||||||
|
|
||||||
|
mainLayout->addWidget(scrollArea);
|
||||||
|
mainLayout->addWidget(buttonBox);
|
||||||
|
setWindowTitle(QString("Slide Show: ") + QFileInfo(fileName).fileName());
|
||||||
|
createActions();
|
||||||
|
|
||||||
|
scaleFactor = 1.0;
|
||||||
|
resize(image.width() + 20, image.height() + 50);
|
||||||
|
|
||||||
|
scrollArea->setVisible(true);
|
||||||
|
fitToWindowAct->setEnabled(true);
|
||||||
|
updateActions();
|
||||||
|
if (!fitToWindowAct->isChecked()) imageLabel->adjustSize();
|
||||||
|
setLayout(mainLayout);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SlideShow::saveAs()
|
||||||
|
{
|
||||||
|
QString fileName = QFileDialog::getSaveFileName(this, "Save Image File As", QString(),
|
||||||
|
"Image Files (*.jpg *.png *.bmp *.ppm)");
|
||||||
|
saveFile(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SlideShow::copy() {}
|
||||||
|
|
||||||
|
void SlideShow::zoomIn()
|
||||||
|
{
|
||||||
|
scaleImage(1.25);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SlideShow::zoomOut()
|
||||||
|
{
|
||||||
|
scaleImage(0.8);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SlideShow::normalSize()
|
||||||
|
{
|
||||||
|
imageLabel->adjustSize();
|
||||||
|
scaleFactor = 1.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SlideShow::fitToWindow()
|
||||||
|
{
|
||||||
|
bool fitToWindow = fitToWindowAct->isChecked();
|
||||||
|
scrollArea->setWidgetResizable(fitToWindow);
|
||||||
|
if (!fitToWindow) normalSize();
|
||||||
|
updateActions();
|
||||||
|
}
|
||||||
|
|
||||||
|
void SlideShow::saveFile(const QString &fileName)
|
||||||
|
{
|
||||||
|
if (!fileName.isEmpty()) image.save(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SlideShow::createActions()
|
||||||
|
{
|
||||||
|
QMenu *fileMenu = menuBar->addMenu("&File");
|
||||||
|
|
||||||
|
saveAsAct = fileMenu->addAction("&Save As...", this, &SlideShow::saveAs);
|
||||||
|
saveAsAct->setIcon(QIcon(":/document-save-as.png"));
|
||||||
|
saveAsAct->setEnabled(false);
|
||||||
|
fileMenu->addSeparator();
|
||||||
|
copyAct = fileMenu->addAction("&Copy", this, &SlideShow::copy);
|
||||||
|
copyAct->setIcon(QIcon(":/edit-copy.png"));
|
||||||
|
copyAct->setShortcut(QKeySequence::Copy);
|
||||||
|
copyAct->setEnabled(false);
|
||||||
|
fileMenu->addSeparator();
|
||||||
|
QAction *exitAct = fileMenu->addAction("&Close", this, &QWidget::close);
|
||||||
|
exitAct->setIcon(QIcon(":/window-close.png"));
|
||||||
|
exitAct->setShortcut(QKeySequence::fromString("Ctrl+W"));
|
||||||
|
|
||||||
|
QMenu *viewMenu = menuBar->addMenu("&View");
|
||||||
|
|
||||||
|
zoomInAct = viewMenu->addAction("Image Zoom &In (25%)", this, &SlideShow::zoomIn);
|
||||||
|
zoomInAct->setShortcut(QKeySequence::ZoomIn);
|
||||||
|
zoomInAct->setIcon(QIcon(":/gtk-zoom-in.png"));
|
||||||
|
zoomInAct->setEnabled(false);
|
||||||
|
|
||||||
|
zoomOutAct = viewMenu->addAction("Image Zoom &Out (25%)", this, &SlideShow::zoomOut);
|
||||||
|
zoomOutAct->setShortcut(QKeySequence::ZoomOut);
|
||||||
|
zoomOutAct->setIcon(QIcon(":/gtk-zoom-out.png"));
|
||||||
|
zoomOutAct->setEnabled(false);
|
||||||
|
|
||||||
|
normalSizeAct = viewMenu->addAction("&Reset Image Size", this, &SlideShow::normalSize);
|
||||||
|
normalSizeAct->setShortcut(QKeySequence::fromString("Ctrl+0"));
|
||||||
|
normalSizeAct->setIcon(QIcon(":/gtk-zoom-fit.png"));
|
||||||
|
normalSizeAct->setEnabled(false);
|
||||||
|
|
||||||
|
viewMenu->addSeparator();
|
||||||
|
|
||||||
|
fitToWindowAct = viewMenu->addAction("&Fit to Window", this, &SlideShow::fitToWindow);
|
||||||
|
fitToWindowAct->setEnabled(false);
|
||||||
|
fitToWindowAct->setCheckable(true);
|
||||||
|
fitToWindowAct->setShortcut(QKeySequence::fromString("Ctrl+="));
|
||||||
|
}
|
||||||
|
|
||||||
|
void SlideShow::updateActions()
|
||||||
|
{
|
||||||
|
saveAsAct->setEnabled(!image.isNull());
|
||||||
|
copyAct->setEnabled(!image.isNull());
|
||||||
|
zoomInAct->setEnabled(!fitToWindowAct->isChecked());
|
||||||
|
zoomOutAct->setEnabled(!fitToWindowAct->isChecked());
|
||||||
|
normalSizeAct->setEnabled(!fitToWindowAct->isChecked());
|
||||||
|
}
|
||||||
|
|
||||||
|
void SlideShow::scaleImage(double factor)
|
||||||
|
{
|
||||||
|
scaleFactor *= factor;
|
||||||
|
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
|
||||||
|
imageLabel->resize(scaleFactor * imageLabel->pixmap()->size());
|
||||||
|
#else
|
||||||
|
imageLabel->resize(scaleFactor * imageLabel->pixmap(Qt::ReturnByValue).size());
|
||||||
|
#endif
|
||||||
|
|
||||||
|
adjustScrollBar(scrollArea->horizontalScrollBar(), factor);
|
||||||
|
adjustScrollBar(scrollArea->verticalScrollBar(), factor);
|
||||||
|
zoomInAct->setEnabled(scaleFactor < 3.0);
|
||||||
|
zoomOutAct->setEnabled(scaleFactor > 0.333);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SlideShow::adjustScrollBar(QScrollBar *scrollBar, double factor)
|
||||||
|
{
|
||||||
|
scrollBar->setValue(
|
||||||
|
int(factor * scrollBar->value() + ((factor - 1) * scrollBar->pageStep() / 2)));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Local Variables:
|
||||||
|
// c-basic-offset: 4
|
||||||
|
// End:
|
||||||
76
tools/lammps-gui/slideshow.h
Normal file
76
tools/lammps-gui/slideshow.h
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
/* -*- c++ -*- ----------------------------------------------------------
|
||||||
|
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||||
|
https://www.lammps.org/, Sandia National Laboratories
|
||||||
|
LAMMPS development team: developers@lammps.org
|
||||||
|
|
||||||
|
Copyright (2003) Sandia Corporation. Under the terms of Contract
|
||||||
|
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
|
||||||
|
certain rights in this software. This software is distributed under
|
||||||
|
the GNU General Public License.
|
||||||
|
|
||||||
|
See the README file in the top-level LAMMPS directory.
|
||||||
|
------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
#ifndef SLIDESHOW_H
|
||||||
|
#define SLIDESHOW_H
|
||||||
|
|
||||||
|
#include <QComboBox>
|
||||||
|
#include <QDialog>
|
||||||
|
#include <QImage>
|
||||||
|
#include <QString>
|
||||||
|
|
||||||
|
class QAction;
|
||||||
|
class QMenuBar;
|
||||||
|
class QDialogButtonBox;
|
||||||
|
class QLabel;
|
||||||
|
class QObject;
|
||||||
|
class QScrollArea;
|
||||||
|
class QScrollBar;
|
||||||
|
class QStatusBar;
|
||||||
|
class LammpsWrapper;
|
||||||
|
class QComboBox;
|
||||||
|
|
||||||
|
class SlideShow : public QDialog {
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit SlideShow(const QString &fileName, LammpsWrapper *_lammps,
|
||||||
|
QWidget *parent = nullptr);
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void saveAs();
|
||||||
|
void copy();
|
||||||
|
void zoomIn();
|
||||||
|
void zoomOut();
|
||||||
|
void normalSize();
|
||||||
|
void fitToWindow();
|
||||||
|
|
||||||
|
private:
|
||||||
|
void createActions();
|
||||||
|
void updateActions();
|
||||||
|
void saveFile(const QString &fileName);
|
||||||
|
void scaleImage(double factor);
|
||||||
|
void adjustScrollBar(QScrollBar *scrollBar, double factor);
|
||||||
|
|
||||||
|
private:
|
||||||
|
QImage image;
|
||||||
|
QMenuBar *menuBar;
|
||||||
|
QLabel *imageLabel;
|
||||||
|
QScrollArea *scrollArea;
|
||||||
|
QDialogButtonBox *buttonBox;
|
||||||
|
double scaleFactor = 1.0;
|
||||||
|
|
||||||
|
QAction *saveAsAct;
|
||||||
|
QAction *copyAct;
|
||||||
|
QAction *zoomInAct;
|
||||||
|
QAction *zoomOutAct;
|
||||||
|
QAction *normalSizeAct;
|
||||||
|
QAction *fitToWindowAct;
|
||||||
|
|
||||||
|
LammpsWrapper *lammps;
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Local Variables:
|
||||||
|
// c-basic-offset: 4
|
||||||
|
// End:
|
||||||
Reference in New Issue
Block a user