add support for shortcuts CTRL-/ (stop run) and CTRL-Q (quit) to most windows

This commit is contained in:
Axel Kohlmeyer
2023-10-03 21:13:06 -04:00
parent 6ff7050d2d
commit a3c843f590
10 changed files with 104 additions and 17 deletions

View File

@ -13,7 +13,10 @@
#include "logwindow.h"
#include "lammpsgui.h"
#include <QAction>
#include <QApplication>
#include <QDir>
#include <QFile>
#include <QFileDialog>
@ -32,8 +35,12 @@ LogWindow::LogWindow(const QString &_filename, QWidget *parent) :
QSettings settings;
resize(settings.value("logx", 500).toInt(), settings.value("logy", 320).toInt());
auto action = new QShortcut(QKeySequence("Ctrl+S"), this);
auto action = new QShortcut(QKeySequence::fromString("Ctrl+S"), this);
connect(action, &QShortcut::activated, this, &LogWindow::save_as);
action = new QShortcut(QKeySequence::fromString("Ctrl+Q"), this);
connect(action, &QShortcut::activated, this, &LogWindow::quit);
action = new QShortcut(QKeySequence(Qt::Key_Slash, Qt::CTRL), this);
connect(action, &QShortcut::activated, this, &LogWindow::stop_run);
}
void LogWindow::closeEvent(QCloseEvent *event)
@ -46,6 +53,22 @@ void LogWindow::closeEvent(QCloseEvent *event)
QPlainTextEdit::closeEvent(event);
}
void LogWindow::quit()
{
LammpsGui *main;
for (QWidget *widget : QApplication::topLevelWidgets())
if (widget->objectName() == "LammpsGui") main = dynamic_cast<LammpsGui *>(widget);
main->quit();
}
void LogWindow::stop_run()
{
LammpsGui *main;
for (QWidget *widget : QApplication::topLevelWidgets())
if (widget->objectName() == "LammpsGui") main = dynamic_cast<LammpsGui *>(widget);
main->stop_run();
}
void LogWindow::save_as()
{
QString defaultname = filename + ".log";