📄 gbkedit.cpp
字号:
// GBKEdit.cpp: implementation of the QGBKEdit class.
//
//////////////////////////////////////////////////////////////////////
#include "GBKEdit.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
QGBKEdit::QGBKEdit(QWidget *parent, const char *name)
:QTextEdit( parent, name )
{
m_buserCancel=FALSE;
}
QGBKEdit::~QGBKEdit()
{
}
///////////////////////////////////////////////////////////////////////
////
//// 关于文件的操作,包括打开,保存,关闭。
////
///////////////////////////////////////////////////////////////////////
void QGBKEdit::newFile()
{
closeFile();
}
void QGBKEdit::openFile()
{
if (isModified()){
switch (QMessageBox::warning(this,"MyQuery",
QString("The text is modify.Do you want save it?"),
QMessageBox::Yes ,
QMessageBox::No,QMessageBox::Cancel|QMessageBox::Default)){
case QMessageBox::Yes:
saveFile();
if (m_buserCancel){
m_buserCancel=FALSE;
return;
}
break;
case QMessageBox::No:
clear();
//m_fileName="";
break;
case QMessageBox::Cancel:
return;
break;
default:
break;
}
}
if (length()>0)
clear();
m_fileName= QFileDialog::getOpenFileName( QString::null, "SQL script file(*.sql)",
this,0,"Open File" );
QFile* file=new QFile(m_fileName);
QString s;
if ( file->open(IO_ReadOnly) ) {
QTextStream t(file);
s = t.read();
insert(s,TRUE);
file->close();
}
setModified(FALSE);
}
void QGBKEdit::saveFile()
{
if ( m_fileName.isEmpty() ) {
saveasFile();
return;
}
QString text = this->text();
QFile f( m_fileName );
if (!f.open(IO_WriteOnly))
return;
QTextStream t( &f );
t << text;
f.close();
setModified(FALSE);
}
void QGBKEdit::saveasFile()
{
QString fn = QFileDialog::getSaveFileName( QString::null, "SQL script file(*.sql)",
this,0,"Save As File" );
if ( fn.isEmpty()){
m_buserCancel=TRUE;
return;
}
if (fn.right(4)==".sql"){
m_fileName=fn;
}else{
m_fileName = fn+".sql";
}
if (QFile::exists(m_fileName)){
if (QMessageBox::warning(this,"MyQuery",
QString("This file \"%1\" is exist.\nDo you want overwrite it?").arg(m_fileName),
QMessageBox::Yes ,
QMessageBox::No|QMessageBox::Default)==QMessageBox::No){
return;
}
}
saveFile();
}
void QGBKEdit::closeFile()
{
/*
如果文本已改变,则询问是否保存或放弃。
然后清空文本,并将私有变量m_fileName置为空字符串,
并设是否改变属性为FALSE。
*/
if (isModified()){
switch (QMessageBox::warning(this,"MyQuery",
QString("The text is modify.Do you want save it?"),
QMessageBox::Yes ,
QMessageBox::No,QMessageBox::Cancel|QMessageBox::Default)){
case QMessageBox::Yes:
saveFile();
break;
case QMessageBox::No:
clear();
m_fileName="";
setModified(FALSE);
break;
case QMessageBox::Cancel:
return;
break;
default:
break;
}
}
}
///////////////////////////////////////////////////////////////////////
////
//// 关于文本的编辑,查找、替换。
////
///////////////////////////////////////////////////////////////////////
void QGBKEdit::findEdit()
{
MyFindDlg dlg;
dlg.setEdit(this);
dlg.exec();
}
void QGBKEdit::replaceEdit()
{
MyReplaceDlg dlg;
dlg.setEdit(this);
dlg.exec();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -