remove scrollwheel support, add prototype buttons
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.1.4 LANGUAGES CXX)
|
project(lammps-gui VERSION 1.1.5 LANGUAGES CXX)
|
||||||
|
|
||||||
set(CMAKE_AUTOUIC ON)
|
set(CMAKE_AUTOUIC ON)
|
||||||
set(CMAKE_AUTOMOC ON)
|
set(CMAKE_AUTOMOC ON)
|
||||||
|
|||||||
@ -6,6 +6,7 @@ LAMMPS-GUI TODO list:
|
|||||||
add checkbutton for HQ rendering (i.e. SSAO)
|
add checkbutton for HQ rendering (i.e. SSAO)
|
||||||
also move the image setting preferences there and remove scrollwheel zoom support.
|
also move the image setting preferences there and remove scrollwheel zoom support.
|
||||||
- use qgetenv, qputenv for portability
|
- use qgetenv, qputenv for portability
|
||||||
|
- use QFile/QDir/QFileInto for portable file and directory operations.
|
||||||
- write LAMMPS GUI Howto showing/explaining options -> simplify docs and readme
|
- write LAMMPS GUI Howto showing/explaining options -> simplify docs and readme
|
||||||
- rewrite syntax highlighting to be line oriented instead of word oriented.
|
- rewrite syntax highlighting to be line oriented instead of word oriented.
|
||||||
handle first part of line based on regular expressions, then advance and only highlight strings and numbers.
|
handle first part of line based on regular expressions, then advance and only highlight strings and numbers.
|
||||||
|
|||||||
@ -12,6 +12,7 @@
|
|||||||
------------------------------------------------------------------------- */
|
------------------------------------------------------------------------- */
|
||||||
|
|
||||||
#include "imageviewer.h"
|
#include "imageviewer.h"
|
||||||
|
#include "lammpswrapper.h"
|
||||||
|
|
||||||
#include <QAction>
|
#include <QAction>
|
||||||
#include <QDialogButtonBox>
|
#include <QDialogButtonBox>
|
||||||
@ -25,15 +26,18 @@
|
|||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
#include <QPalette>
|
#include <QPalette>
|
||||||
#include <QPoint>
|
#include <QPoint>
|
||||||
|
#include <QPushButton>
|
||||||
#include <QScreen>
|
#include <QScreen>
|
||||||
#include <QScrollArea>
|
#include <QScrollArea>
|
||||||
#include <QScrollBar>
|
#include <QScrollBar>
|
||||||
#include <QStatusBar>
|
#include <QStatusBar>
|
||||||
#include <QVBoxLayout>
|
#include <QVBoxLayout>
|
||||||
#include <QWheelEvent>
|
#include <QWheelEvent>
|
||||||
|
#include <QWidgetAction>
|
||||||
|
|
||||||
ImageViewer::ImageViewer(const QString &fileName, QWidget *parent) :
|
ImageViewer::ImageViewer(const QString &fileName, LammpsWrapper *_lammps, QWidget *parent) :
|
||||||
QDialog(parent), imageLabel(new QLabel), scrollArea(new QScrollArea), menuBar(new QMenuBar)
|
QDialog(parent), imageLabel(new QLabel), scrollArea(new QScrollArea), menuBar(new QMenuBar),
|
||||||
|
lammps(_lammps), group("all")
|
||||||
{
|
{
|
||||||
imageLabel->setBackgroundRole(QPalette::Base);
|
imageLabel->setBackgroundRole(QPalette::Base);
|
||||||
imageLabel->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
|
imageLabel->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
|
||||||
@ -42,8 +46,6 @@ ImageViewer::ImageViewer(const QString &fileName, QWidget *parent) :
|
|||||||
|
|
||||||
scrollArea->setBackgroundRole(QPalette::Dark);
|
scrollArea->setBackgroundRole(QPalette::Dark);
|
||||||
scrollArea->setWidget(imageLabel);
|
scrollArea->setWidget(imageLabel);
|
||||||
scrollArea->setMouseTracking(true);
|
|
||||||
scrollArea->installEventFilter(this);
|
|
||||||
scrollArea->setVisible(false);
|
scrollArea->setVisible(false);
|
||||||
|
|
||||||
buttonBox = new QDialogButtonBox(QDialogButtonBox::Close);
|
buttonBox = new QDialogButtonBox(QDialogButtonBox::Close);
|
||||||
@ -52,7 +54,17 @@ ImageViewer::ImageViewer(const QString &fileName, QWidget *parent) :
|
|||||||
connect(buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject);
|
connect(buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject);
|
||||||
|
|
||||||
QVBoxLayout *mainLayout = new QVBoxLayout;
|
QVBoxLayout *mainLayout = new QVBoxLayout;
|
||||||
mainLayout->addWidget(menuBar);
|
QHBoxLayout *menuLayout = new QHBoxLayout;
|
||||||
|
menuLayout->addWidget(menuBar);
|
||||||
|
menuLayout->addWidget(new QPushButton("Zoom Out"));
|
||||||
|
menuLayout->addWidget(new QPushButton("Zoom In"));
|
||||||
|
menuLayout->addWidget(new QPushButton("Rotate Left"));
|
||||||
|
menuLayout->addWidget(new QPushButton("Rotate Right"));
|
||||||
|
menuLayout->addWidget(new QPushButton("Rotate Up"));
|
||||||
|
menuLayout->addWidget(new QPushButton("Rotate Down"));
|
||||||
|
menuLayout->addWidget(new QComboBox);
|
||||||
|
|
||||||
|
mainLayout->addLayout(menuLayout);
|
||||||
mainLayout->addWidget(scrollArea);
|
mainLayout->addWidget(scrollArea);
|
||||||
mainLayout->addWidget(buttonBox);
|
mainLayout->addWidget(buttonBox);
|
||||||
setWindowTitle(QString("Image Viewer: ") + QFileInfo(fileName).completeBaseName());
|
setWindowTitle(QString("Image Viewer: ") + QFileInfo(fileName).completeBaseName());
|
||||||
@ -90,12 +102,12 @@ void ImageViewer::copy() {}
|
|||||||
|
|
||||||
void ImageViewer::zoomIn()
|
void ImageViewer::zoomIn()
|
||||||
{
|
{
|
||||||
scaleImage(1.1);
|
scaleImage(1.25);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ImageViewer::zoomOut()
|
void ImageViewer::zoomOut()
|
||||||
{
|
{
|
||||||
scaleImage(0.9);
|
scaleImage(0.8);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ImageViewer::normalSize()
|
void ImageViewer::normalSize()
|
||||||
@ -133,16 +145,16 @@ void ImageViewer::createActions()
|
|||||||
|
|
||||||
QMenu *viewMenu = menuBar->addMenu(tr("&View"));
|
QMenu *viewMenu = menuBar->addMenu(tr("&View"));
|
||||||
|
|
||||||
zoomInAct = viewMenu->addAction(tr("Zoom &In (10%)"), this, &ImageViewer::zoomIn);
|
zoomInAct = viewMenu->addAction(tr("Image Zoom &In (25%)"), this, &ImageViewer::zoomIn);
|
||||||
zoomInAct->setShortcut(QKeySequence::ZoomIn);
|
zoomInAct->setShortcut(QKeySequence::ZoomIn);
|
||||||
zoomInAct->setEnabled(false);
|
zoomInAct->setEnabled(false);
|
||||||
|
|
||||||
zoomOutAct = viewMenu->addAction(tr("Zoom &Out (10%)"), this, &ImageViewer::zoomOut);
|
zoomOutAct = viewMenu->addAction(tr("Image Zoom &Out (25%)"), this, &ImageViewer::zoomOut);
|
||||||
zoomOutAct->setShortcut(QKeySequence::ZoomOut);
|
zoomOutAct->setShortcut(QKeySequence::ZoomOut);
|
||||||
zoomOutAct->setEnabled(false);
|
zoomOutAct->setEnabled(false);
|
||||||
|
|
||||||
normalSizeAct = viewMenu->addAction(tr("&Normal Size"), this, &ImageViewer::normalSize);
|
normalSizeAct = viewMenu->addAction(tr("&Reset Image Size"), this, &ImageViewer::normalSize);
|
||||||
normalSizeAct->setShortcut(tr("Ctrl+S"));
|
normalSizeAct->setShortcut(tr("Ctrl+0"));
|
||||||
normalSizeAct->setEnabled(false);
|
normalSizeAct->setEnabled(false);
|
||||||
|
|
||||||
viewMenu->addSeparator();
|
viewMenu->addSeparator();
|
||||||
@ -150,7 +162,7 @@ void ImageViewer::createActions()
|
|||||||
fitToWindowAct = viewMenu->addAction(tr("&Fit to Window"), this, &ImageViewer::fitToWindow);
|
fitToWindowAct = viewMenu->addAction(tr("&Fit to Window"), this, &ImageViewer::fitToWindow);
|
||||||
fitToWindowAct->setEnabled(false);
|
fitToWindowAct->setEnabled(false);
|
||||||
fitToWindowAct->setCheckable(true);
|
fitToWindowAct->setCheckable(true);
|
||||||
fitToWindowAct->setShortcut(tr("Ctrl+F"));
|
fitToWindowAct->setShortcut(tr("Ctrl+="));
|
||||||
}
|
}
|
||||||
|
|
||||||
void ImageViewer::updateActions()
|
void ImageViewer::updateActions()
|
||||||
@ -183,27 +195,6 @@ void ImageViewer::adjustScrollBar(QScrollBar *scrollBar, double factor)
|
|||||||
int(factor * scrollBar->value() + ((factor - 1) * scrollBar->pageStep() / 2)));
|
int(factor * scrollBar->value() + ((factor - 1) * scrollBar->pageStep() / 2)));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ImageViewer::eventFilter(QObject *, QEvent *event)
|
|
||||||
{
|
|
||||||
if (event->type() == QEvent::Wheel) {
|
|
||||||
wheelEvent((QWheelEvent *)event);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ImageViewer::wheelEvent(QWheelEvent *event)
|
|
||||||
{
|
|
||||||
QPoint num = event->angleDelta();
|
|
||||||
if (!num.isNull()) {
|
|
||||||
if (num.y() > 0)
|
|
||||||
zoomIn();
|
|
||||||
else
|
|
||||||
zoomOut();
|
|
||||||
}
|
|
||||||
event->accept();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Local Variables:
|
// Local Variables:
|
||||||
// c-basic-offset: 4
|
// c-basic-offset: 4
|
||||||
// End:
|
// End:
|
||||||
|
|||||||
@ -14,8 +14,10 @@
|
|||||||
#ifndef IMAGEVIEWER_H
|
#ifndef IMAGEVIEWER_H
|
||||||
#define IMAGEVIEWER_H
|
#define IMAGEVIEWER_H
|
||||||
|
|
||||||
|
#include <QComboBox>
|
||||||
#include <QDialog>
|
#include <QDialog>
|
||||||
#include <QImage>
|
#include <QImage>
|
||||||
|
#include <QString>
|
||||||
|
|
||||||
class QAction;
|
class QAction;
|
||||||
class QMenuBar;
|
class QMenuBar;
|
||||||
@ -25,13 +27,15 @@ class QObject;
|
|||||||
class QScrollArea;
|
class QScrollArea;
|
||||||
class QScrollBar;
|
class QScrollBar;
|
||||||
class QStatusBar;
|
class QStatusBar;
|
||||||
class QWheelEvent;
|
class LammpsWrapper;
|
||||||
|
class QComboBox;
|
||||||
|
|
||||||
class ImageViewer : public QDialog {
|
class ImageViewer : public QDialog {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit ImageViewer(const QString &fileName, QWidget *parent = nullptr);
|
explicit ImageViewer(const QString &fileName, LammpsWrapper *_lammps,
|
||||||
|
QWidget *parent = nullptr);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void saveAs();
|
void saveAs();
|
||||||
@ -47,8 +51,6 @@ private:
|
|||||||
void saveFile(const QString &fileName);
|
void saveFile(const QString &fileName);
|
||||||
void scaleImage(double factor);
|
void scaleImage(double factor);
|
||||||
void adjustScrollBar(QScrollBar *scrollBar, double factor);
|
void adjustScrollBar(QScrollBar *scrollBar, double factor);
|
||||||
bool eventFilter(QObject *object, QEvent *event);
|
|
||||||
void wheelEvent(QWheelEvent *event);
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QImage image;
|
QImage image;
|
||||||
@ -64,6 +66,9 @@ private:
|
|||||||
QAction *zoomOutAct;
|
QAction *zoomOutAct;
|
||||||
QAction *normalSizeAct;
|
QAction *normalSizeAct;
|
||||||
QAction *fitToWindowAct;
|
QAction *fitToWindowAct;
|
||||||
|
|
||||||
|
LammpsWrapper *lammps;
|
||||||
|
QString group;
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@ -736,12 +736,8 @@ void LammpsGui::view_image()
|
|||||||
settings.endGroup();
|
settings.endGroup();
|
||||||
|
|
||||||
lammps.command(dumpcmd.toLocal8Bit());
|
lammps.command(dumpcmd.toLocal8Bit());
|
||||||
imagewindow = new ImageViewer(dumpfile);
|
imagewindow = new ImageViewer(dumpfile, &lammps);
|
||||||
#if defined(_WIN32)
|
QFile::remove(dumpfile);
|
||||||
_unlink(dumpfile.toLocal8Bit());
|
|
||||||
#else
|
|
||||||
unlink(dumpfile.toLocal8Bit());
|
|
||||||
#endif
|
|
||||||
} else {
|
} else {
|
||||||
QMessageBox::warning(this, "ImageViewer Error",
|
QMessageBox::warning(this, "ImageViewer Error",
|
||||||
"Cannot create snapshot image while LAMMPS is running");
|
"Cannot create snapshot image while LAMMPS is running");
|
||||||
|
|||||||
Reference in New Issue
Block a user