www.pudn.com > qt_mysql.zip > 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(); 
}