file viewer can be called from File menu or context menu in editor if word under cursor is a file

This commit is contained in:
Axel Kohlmeyer
2024-07-21 18:37:06 -04:00
parent 97ffabda0e
commit 7dc0ace48f
5 changed files with 80 additions and 2 deletions

View File

@ -14,6 +14,7 @@
#include "lammpsgui.h"
#include "chartviewer.h"
#include "fileviewer.h"
#include "helpers.h"
#include "highlighter.h"
#include "imageviewer.h"
@ -193,6 +194,7 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) :
connect(ui->actionOpen, &QAction::triggered, this, &LammpsGui::open);
connect(ui->actionSave, &QAction::triggered, this, &LammpsGui::save);
connect(ui->actionSave_As, &QAction::triggered, this, &LammpsGui::save_as);
connect(ui->actionView, &QAction::triggered, this, &LammpsGui::view);
connect(ui->actionQuit, &QAction::triggered, this, &LammpsGui::quit);
connect(ui->actionCopy, &QAction::triggered, this, &LammpsGui::copy);
connect(ui->actionCut, &QAction::triggered, this, &LammpsGui::cut);
@ -394,6 +396,12 @@ void LammpsGui::open()
open_file(fileName);
}
void LammpsGui::view()
{
QString fileName = QFileDialog::getOpenFileName(this, "Open the file");
view_file(fileName);
}
void LammpsGui::open_recent()
{
auto *act = qobject_cast<QAction *>(sender());
@ -640,6 +648,20 @@ void LammpsGui::open_file(const QString &fileName)
lammps.close();
}
// open file in read-only mode for viewing in separate window
void LammpsGui::view_file(const QString &fileName)
{
QFile file(fileName);
if (!file.open(QIODevice::ReadOnly | QFile::Text)) {
QMessageBox::warning(this, "Warning",
"Cannot open file " + fileName + ": " + file.errorString() + ".\n");
} else {
file.close();
auto *viewer = new FileViewer(fileName);
viewer->show();
}
}
// write file and update CWD to its folder
void LammpsGui::write_file(const QString &fileName)