simplescripteditor.cpp
changeset 432 f867269ab8a1
child 434 c585be63ec69
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/simplescripteditor.cpp	Mon Mar 05 23:22:51 2007 +0000
     1.3 @@ -0,0 +1,109 @@
     1.4 +#include "simplescripteditor.h"
     1.5 +
     1.6 +
     1.7 +#include <QFileDialog>
     1.8 +#include <QMessageBox>
     1.9 +#include <QTextStream>
    1.10 +
    1.11 +
    1.12 +extern QString vymName;
    1.13 +
    1.14 +SimpleScriptEditor::SimpleScriptEditor (QWidget *parent):QDialog(parent)
    1.15 +{
    1.16 +	ui.setupUi (this);
    1.17 +
    1.18 +	connect ( ui.loadButton, SIGNAL (clicked() ), this, SLOT (loadScriptClicked() ));
    1.19 +	connect ( ui.saveButton, SIGNAL (clicked() ), this, SLOT (saveScriptClicked() ));
    1.20 +	connect ( ui.runButton,  SIGNAL (clicked() ), this, SLOT (runScriptClicked() ));
    1.21 +}
    1.22 +
    1.23 +
    1.24 +void SimpleScriptEditor::saveScript()
    1.25 +{
    1.26 +	QFile f( filename );
    1.27 +	if ( !f.open( QIODevice::WriteOnly ) ) 
    1.28 +	{
    1.29 +		return;
    1.30 +	}
    1.31 +
    1.32 +	QTextStream t( &f );
    1.33 +	t << ui.editor->text();
    1.34 +	f.close();
    1.35 +}
    1.36 +
    1.37 +void SimpleScriptEditor::saveScriptClicked()
    1.38 +{
    1.39 +	QString fn = QFileDialog::getSaveFileName( 
    1.40 +		this, 
    1.41 +		QString (vymName + " - " +tr("Save script")),
    1.42 +		QString (),
    1.43 +		"VYM script (HTML) (*.vys);;All files (*)",
    1.44 +		0,
    1.45 +		QFileDialog::DontConfirmOverwrite);
    1.46 +		
    1.47 +    if ( !fn.isEmpty() ) 
    1.48 +	{
    1.49 +		QFile file (fn);
    1.50 +		if (file.exists())
    1.51 +		{
    1.52 +			QMessageBox mb( vymName,
    1.53 +				tr("The file %1\nexists already.\nDo you want to overwrite it?","dialog 'save as'").arg(fn),
    1.54 +			QMessageBox::Warning,
    1.55 +			QMessageBox::Yes | QMessageBox::Default,
    1.56 +			QMessageBox::Cancel | QMessageBox::Escape,
    1.57 +			Qt::NoButton );
    1.58 +			mb.setButtonText( QMessageBox::Yes, tr("Overwrite") );
    1.59 +			mb.setButtonText( QMessageBox::No, tr("Cancel"));
    1.60 +			switch( mb.exec() ) 
    1.61 +			{
    1.62 +				case QMessageBox::Yes:
    1.63 +					// save 
    1.64 +					filename = fn;
    1.65 +					saveScript();
    1.66 +					return;
    1.67 +				case QMessageBox::Cancel:
    1.68 +					// do nothing
    1.69 +					return;
    1.70 +			}
    1.71 +		} 
    1.72 +		filename=fn;
    1.73 +		saveScript();
    1.74 +    }
    1.75 +}
    1.76 +
    1.77 +void SimpleScriptEditor::loadScriptClicked()
    1.78 +{
    1.79 +	QFileDialog *fd=new QFileDialog( this);
    1.80 +	QStringList types;
    1.81 +	types<< "VYM scripts (*.vys)" <<
    1.82 +	        "All         (*)" ;
    1.83 +	fd->setFilters (types);
    1.84 +	fd->setDirectory (QDir().current());
    1.85 +	fd->setCaption (vymName + " - " + tr("Load script"));
    1.86 +	fd->show();
    1.87 +	QString fn;
    1.88 +	if ( fd->exec() == QDialog::Accepted )
    1.89 +		fn = fd->selectedFile();
    1.90 +
    1.91 +	if ( !fn.isEmpty() )
    1.92 +	{
    1.93 +		QFile f( fn );
    1.94 +		if ( !f.open( QIODevice::ReadOnly ) )
    1.95 +		{
    1.96 +			QMessageBox::warning(0, 
    1.97 +				tr("Error"),
    1.98 +				tr("Couldn't open %1.\n").arg(fn));
    1.99 +			return;
   1.100 +		}	
   1.101 +
   1.102 +		QTextStream ts( &f );
   1.103 +		ui.editor->setText( ts.read() );
   1.104 +		f.close();
   1.105 +	}
   1.106 +
   1.107 +}
   1.108 +
   1.109 +void SimpleScriptEditor::runScriptClicked()
   1.110 +{
   1.111 +	emit runScript (ui.editor->text() );
   1.112 +}