DYTSrouce/src/ui/Layout/CodeEdtUI.cpp

146 lines
4.1 KiB
C++
Raw Normal View History

2025-01-04 04:12:51 +00:00
#include "CodeEdtUI.h"
#include <QPlainTextEdit>
#include <QMenuBar>
#include <QAction>
#include <QStatusBar>
#include <QFileDialog>
#include <QTextStream>
#include <QVBoxLayout>
#include <QFont>
#include <qdebug.h>
2025-01-05 14:29:59 +00:00
#include "../../workspace/WorkSpaceManager.h"
2025-01-04 04:12:51 +00:00
#include "SyntaxHighlighter.h"
#include "../DockTitleBar.h"
#include "../DockWidget.h"
CodeEdtUI::CodeEdtUI(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0BCAD>
editor = new QPlainTextEdit(this);
QFont serifFont("Times", 20, QFont::Bold);
editor->setFont(serifFont);
syntaxHighlighter = new SyntaxHighlighter(editor->document());
setCentralWidget(editor);
// <20><><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>
QMenu* fileMenu = menuBar()->addMenu(tr("&file"));
2025-01-07 15:45:23 +00:00
QAction* openMainAction = new QAction(tr("&Import the template"), this);
/* QAction* openLDAction = new QAction(tr("&Import the LD template"), this);
QAction* openSeekerSimAction = new QAction(tr("&Import the SeekerSim template"), this);*/
2025-01-04 04:12:51 +00:00
QAction* saveAction = new QAction(tr("&save"), this);
2025-01-05 14:29:59 +00:00
fileMenu->addAction(openMainAction);
2025-01-07 15:45:23 +00:00
//fileMenu->addAction(openLDAction);
//fileMenu->addAction(openSeekerSimAction);
2025-01-04 04:12:51 +00:00
fileMenu->addAction(saveAction);
2025-01-05 14:29:59 +00:00
connect(openMainAction, &QAction::triggered, this, &CodeEdtUI::openMainFile);
2025-01-07 15:45:23 +00:00
/* connect(openLDAction, &QAction::triggered, this, &CodeEdtUI::openLDFile);
connect(openSeekerSimAction, &QAction::triggered, this, &CodeEdtUI::openSeekerSimFile);*/
2025-01-05 14:29:59 +00:00
2025-01-04 04:12:51 +00:00
connect(saveAction, &QAction::triggered, this, &CodeEdtUI::saveFile);
// ״̬<D7B4><CCAC>
statusBar();
}
void CodeEdtUI::AttachDock(DockWidget* dockWidget)
{
if (nullptr == dockWidget) {
qDebug() << __FUNCTION__ << "dockwidget is nullptr";
return;
}
dockWidget->SetDockWidgetTitleBar(nullptr);
dockWidget->setWidget(this);
DockTitleBar* dockTitleBar = new DockTitleBar;
dockTitleBar->SetTitle(tr("matlab editor"));
dockWidget->SetDockWidgetTitleBar(dockTitleBar);
}
2025-01-05 14:29:59 +00:00
void CodeEdtUI::openMainFile() {
2025-01-07 15:45:23 +00:00
QString fileName = ""; //QFileDialog::getOpenFileName(this, "Open File", "", "Matlab Files (*.m)");
2025-01-05 14:29:59 +00:00
if (fileName.isEmpty())
{
fileName = QFileDialog::getOpenFileName(this, "Open File", "", "Matlab Files (*.m)");
}
2025-01-04 04:12:51 +00:00
if (!fileName.isEmpty()) {
QFile file(fileName);
if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
2025-01-05 14:29:59 +00:00
editor->clear();
2025-01-04 04:12:51 +00:00
QTextStream in(&file);
editor->setPlainText(in.readAll());
file.close();
}
}
}
2025-01-05 14:29:59 +00:00
void CodeEdtUI::openLDFile()
{
2025-01-07 15:45:23 +00:00
QString fileName = ""; //QFileDialog::getOpenFileName(this, "Open File", "", "Matlab Files (*.m)");
2025-01-05 14:29:59 +00:00
if (fileName.isEmpty())
{
fileName = QFileDialog::getOpenFileName(this, "Open File", "", "Matlab Files (*.m)");
}
if (!fileName.isEmpty()) {
QFile file(fileName);
if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
editor->clear();
QTextStream in(&file);
editor->setPlainText(in.readAll());
file.close();
m_strCurOpenFile = fileName;
}
}
}
void CodeEdtUI::openSeekerSimFile()
{
2025-01-07 15:45:23 +00:00
QString fileName = ""; //QFileDialog::getOpenFileName(this, "Open File", "", "Matlab Files (*.m)");
2025-01-05 14:29:59 +00:00
if (fileName.isEmpty())
{
fileName = QFileDialog::getOpenFileName(this, "Open File", "", "Matlab Files (*.m)");
}
2025-01-04 04:12:51 +00:00
if (!fileName.isEmpty()) {
QFile file(fileName);
2025-01-05 14:29:59 +00:00
if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
editor->clear();
QTextStream in(&file);
editor->setPlainText(in.readAll());
file.close();
m_strCurOpenFile = fileName;
}
}
}
void CodeEdtUI::saveFile() {
2025-01-07 15:45:23 +00:00
QString fileName = QFileDialog::getSaveFileName(this, "Save File", "", "Matlab Files (*.m)");
if (!fileName.isEmpty()) {
QFile file(fileName);
2025-01-04 04:12:51 +00:00
if (file.open(QIODevice::WriteOnly | QIODevice::Text)) {
QTextStream out(&file);
out << editor->toPlainText();
file.close();
}
}
}