86 lines
2.2 KiB
C++
86 lines
2.2 KiB
C++
|
|
#include "CodeEdtUI.h"
|
|||
|
|
|
|||
|
|
#include <QPlainTextEdit>
|
|||
|
|
#include <QMenuBar>
|
|||
|
|
#include <QAction>
|
|||
|
|
#include <QStatusBar>
|
|||
|
|
#include <QFileDialog>
|
|||
|
|
#include <QTextStream>
|
|||
|
|
#include <QVBoxLayout>
|
|||
|
|
#include <QFont>
|
|||
|
|
#include <qdebug.h>
|
|||
|
|
|
|||
|
|
#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"));
|
|||
|
|
QAction* openAction = new QAction(tr("&Import the template"), this);
|
|||
|
|
QAction* saveAction = new QAction(tr("&save"), this);
|
|||
|
|
fileMenu->addAction(openAction);
|
|||
|
|
fileMenu->addAction(saveAction);
|
|||
|
|
|
|||
|
|
connect(openAction, &QAction::triggered, this, &CodeEdtUI::openFile);
|
|||
|
|
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);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CodeEdtUI::openFile() {
|
|||
|
|
QString fileName = QFileDialog::getOpenFileName(this, "Open File", "", "Matlab Files (*.m)");
|
|||
|
|
if (!fileName.isEmpty()) {
|
|||
|
|
QFile file(fileName);
|
|||
|
|
if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
|
|||
|
|
QTextStream in(&file);
|
|||
|
|
editor->setPlainText(in.readAll());
|
|||
|
|
file.close();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CodeEdtUI::saveFile() {
|
|||
|
|
QString fileName = QFileDialog::getSaveFileName(this, "Save File", "", "Matlab Files (*.m)");
|
|||
|
|
if (!fileName.isEmpty()) {
|
|||
|
|
QFile file(fileName);
|
|||
|
|
if (file.open(QIODevice::WriteOnly | QIODevice::Text)) {
|
|||
|
|
QTextStream out(&file);
|
|||
|
|
out << editor->toPlainText();
|
|||
|
|
file.close();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|