provide default file name when writing log window text to file
This commit is contained in:
@ -1021,7 +1021,7 @@ void LammpsGui::do_run(bool use_buffer)
|
|||||||
|
|
||||||
// if configured, delete old log window before opening new one
|
// if configured, delete old log window before opening new one
|
||||||
if (settings.value("logreplace", true).toBool()) delete logwindow;
|
if (settings.value("logreplace", true).toBool()) delete logwindow;
|
||||||
logwindow = new LogWindow();
|
logwindow = new LogWindow(current_file);
|
||||||
logwindow->setReadOnly(true);
|
logwindow->setReadOnly(true);
|
||||||
logwindow->setCenterOnScroll(true);
|
logwindow->setCenterOnScroll(true);
|
||||||
logwindow->moveCursor(QTextCursor::End);
|
logwindow->moveCursor(QTextCursor::End);
|
||||||
|
|||||||
@ -18,13 +18,15 @@
|
|||||||
#include <QFile>
|
#include <QFile>
|
||||||
#include <QFileDialog>
|
#include <QFileDialog>
|
||||||
#include <QIcon>
|
#include <QIcon>
|
||||||
|
#include <QKeySequence>
|
||||||
#include <QMenu>
|
#include <QMenu>
|
||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
#include <QString>
|
#include <QString>
|
||||||
#include <QTextStream>
|
#include <QTextStream>
|
||||||
|
|
||||||
LogWindow::LogWindow(QWidget *parent) : QPlainTextEdit(parent)
|
LogWindow::LogWindow(const QString &_filename, QWidget *parent) :
|
||||||
|
QPlainTextEdit(parent), filename(_filename)
|
||||||
{
|
{
|
||||||
QSettings settings;
|
QSettings settings;
|
||||||
resize(settings.value("logx", 500).toInt(), settings.value("logy", 320).toInt());
|
resize(settings.value("logx", 500).toInt(), settings.value("logy", 320).toInt());
|
||||||
@ -42,10 +44,13 @@ void LogWindow::closeEvent(QCloseEvent *event)
|
|||||||
|
|
||||||
void LogWindow::save_as()
|
void LogWindow::save_as()
|
||||||
{
|
{
|
||||||
QString fileName = QFileDialog::getSaveFileName(this, "Save Log to File");
|
QString defaultname = filename + ".log";
|
||||||
if (fileName.isEmpty()) return;
|
if (filename.isEmpty()) defaultname = "lammps.log";
|
||||||
|
QString logFileName = QFileDialog::getSaveFileName(this, "Save Log to File", defaultname,
|
||||||
|
"Log files (*.log *.out *.txt)");
|
||||||
|
if (logFileName.isEmpty()) return;
|
||||||
|
|
||||||
QFileInfo path(fileName);
|
QFileInfo path(logFileName);
|
||||||
QFile file(path.absoluteFilePath());
|
QFile file(path.absoluteFilePath());
|
||||||
|
|
||||||
if (!file.open(QIODevice::WriteOnly | QFile::Text)) {
|
if (!file.open(QIODevice::WriteOnly | QFile::Text)) {
|
||||||
@ -68,6 +73,9 @@ void LogWindow::contextMenuEvent(QContextMenuEvent *event)
|
|||||||
auto action = menu->addAction(QString("Save Log to File ..."));
|
auto action = menu->addAction(QString("Save Log to File ..."));
|
||||||
action->setIcon(QIcon(":/icons/document-save-as.png"));
|
action->setIcon(QIcon(":/icons/document-save-as.png"));
|
||||||
connect(action, &QAction::triggered, this, &LogWindow::save_as);
|
connect(action, &QAction::triggered, this, &LogWindow::save_as);
|
||||||
|
action = menu->addAction("&Close Window", this, &QWidget::close);
|
||||||
|
action->setIcon(QIcon(":/icons/window-close.png"));
|
||||||
|
action->setShortcut(QKeySequence::fromString("Ctrl+W"));
|
||||||
menu->exec(event->globalPos());
|
menu->exec(event->globalPos());
|
||||||
delete menu;
|
delete menu;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -20,7 +20,7 @@ class LogWindow : public QPlainTextEdit {
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
LogWindow(QWidget *parent = nullptr);
|
LogWindow(const QString &filename, QWidget *parent = nullptr);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void save_as();
|
void save_as();
|
||||||
@ -28,6 +28,9 @@ private slots:
|
|||||||
protected:
|
protected:
|
||||||
void closeEvent(QCloseEvent *event) override;
|
void closeEvent(QCloseEvent *event) override;
|
||||||
void contextMenuEvent(QContextMenuEvent *event) override;
|
void contextMenuEvent(QContextMenuEvent *event) override;
|
||||||
|
|
||||||
|
private:
|
||||||
|
QString filename;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user