#include
"mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
this->setWindowTitle("Untitled");
QObject::connect(ui->action_N,SIGNAL(triggered()),this,SLOT(newFileSlot()));
QObject::connect(ui->action_O,SIGNAL(triggered()),this,SLOT(openFileSlot()));
QObject::connect(ui->action_4,SIGNAL(triggered()),this,SLOT(close()));
QObject::connect(ui->colorAction,SIGNAL(triggered()),this,SLOT(setColorSlot()));
QObject::connect(ui->fontAction,SIGNAL(triggered()),this,SLOT(setFontSlot()));
QObject::connect(ui->copyAction,SIGNAL(triggered()),ui->textEdit,SLOT(copy()));
QObject::connect(ui->cutAction,SIGNAL(triggered()),ui->textEdit,SLOT(cut()));
QObject::connect(ui->pasteAction,SIGNAL(triggered()),ui->textEdit,SLOT(paste()));
QObject::connect(ui->selectAction,SIGNAL(triggered()),ui->textEdit,SLOT(select()));
QObject::connect(ui->undoAction,SIGNAL(triggered()),ui->textEdit,SLOT(undo()));
QObject::connect(ui->redoAction,SIGNAL(triggered()),ui->textEdit,SLOT(redo()));
QObject::connect(ui->datetimeAction,SIGNAL(triggered()),this,SLOT(currentDateTimeSlot()));
QObject::connect(ui->action_S,SIGNAL(triggered()),this,SLOT(saveFileSlot()));
QObject::connect(ui->action_A,SIGNAL(triggered()),this,SLOT(saveAsFileSlot()));
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::newFileSlot()
{
if(ui->textEdit->document()->isModified())
{
qDebug()<<"current file modified";
}
else
{
qDebug()<<"not modified";
ui->textEdit->clear();
this->setWindowTitle("Untitled.txt");
}
}
void MainWindow::openFileSlot()
{
QString fileName = QFileDialog::getOpenFileName(this,"Open File",QDir::currentPath());
//qDebug()<<"fileName is"<<fileName;
if(fileName.isEmpty())
{
QMessageBox::information(this,"Error Message","Please Select a Text File");
return ;
}
QFile *file = new QFile;
file->setFileName(fileName);
bool ok=file->open(QIODevice::ReadOnly);
if(ok)
{
QTextStream in(file);
ui->textEdit->setText(in.readAll());
file->close();
delete file;
}
else
{
QMessageBox::information(this,"Error message","File Open Error"+file->errorString());
return ;
}
}
void MainWindow::saveFileSlot()
{
if(saveFileName.isEmpty())
{
this->saveAsFileSlot();
}
else
{
QFile *file = new QFile;
file->setFileName(saveFileName);
bool ok = file->open(QIODevice::WriteOnly);
if(ok)
{
QTextStream out(file);
out<<ui->textEdit->toPlainText();//将文本编辑器中的内容以纯文本的形式输出到流对象中
file->close();
delete file;
}
}
}
void MainWindow::saveAsFileSlot()
{
QString saveFileName=QFileDialog::getSaveFileName(this,"Save File",QDir::currentPath());
if(saveFileName.isEmpty())
{
QMessageBox::information(this,"Error Message","Please Select A File");
return;
}
QFile *file = new QFile;
file->setFileName(saveFileName);
bool ok = file->open(QIODevice::WriteOnly);
if(ok)
{
QTextStream out(file);
out<<ui->textEdit->toPlainText();
file->close();
this->setWindowTitle(saveFileName+"-----notepad");
delete file;
}
else
{
QMessageBox::information(this,"Error Message","Save File Error");
return;
}
}
void MainWindow::printFileSlot()
{
}
void MainWindow::setFontSlot()
{
bool ok;
QFont font = QFontDialog::getFont(&ok,this);
if(ok)
{
ui->textEdit->setFont(font);
}
else
{
QMessageBox::information(this,"Error Message","Error set Font");
return ;
}
}
void MainWindow::setColorSlot()
{
QColor color = QColorDialog::getColor(Qt::red,this);
if(color.isValid())
{
ui->textEdit->setTextColor(color);
//ui->textEdit->backgroundRole();
}
else
{
QMessageBox::information(this,"Error Message","Color is unvalid");
return ;
}
}
void MainWindow::undo()
{
}
void MainWindow::redo()
{
}
void MainWindow::select()
{
}
void MainWindow::paste()
{
}
void MainWindow::cut()
{
}
void MainWindow::copy()
{
}
void MainWindow::currentDateTimeSlot()
{
QDateTime current = QDateTime::currentDateTime();
QString time = current.toString("yyyy-M-dd hh:mm:ss");
ui->textEdit->append(time);
}