⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gbkedit.cpp

📁 使用Qt与MySQL C API开发MySQL查询器
💻 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 + -