insilmaril@432: #include "simplescripteditor.h" insilmaril@432: insilmaril@432: insilmaril@432: #include insilmaril@432: #include insilmaril@432: #include insilmaril@432: insilmaril@432: insilmaril@432: extern QString vymName; insilmaril@432: insilmaril@432: SimpleScriptEditor::SimpleScriptEditor (QWidget *parent):QDialog(parent) insilmaril@432: { insilmaril@432: ui.setupUi (this); insilmaril@432: insilmaril@438: connect ( ui.openButton, SIGNAL (clicked() ), this, SLOT (openClicked() )); insilmaril@438: connect ( ui.saveButton, SIGNAL (clicked() ), this, SLOT (saveClicked() )); insilmaril@438: connect ( ui.saveAsButton, SIGNAL (clicked() ), this, SLOT (saveAsClicked() )); insilmaril@438: connect ( ui.runButton, SIGNAL (clicked() ), this, SLOT (runClicked() )); insilmaril@434: insilmaril@434: insilmaril@434: // Initialize Editor insilmaril@434: QFont font; insilmaril@434: font.setFamily("Courier"); insilmaril@434: font.setFixedPitch(true); insilmaril@438: font.setPointSize(12); insilmaril@434: ui.editor->setFont(font); insilmaril@434: insilmaril@434: highlighter = new Highlighter(ui.editor->document()); insilmaril@432: } insilmaril@432: insilmaril@432: void SimpleScriptEditor::saveScript() insilmaril@432: { insilmaril@432: QFile f( filename ); insilmaril@432: if ( !f.open( QIODevice::WriteOnly ) ) insilmaril@432: { insilmaril@432: return; insilmaril@432: } insilmaril@432: insilmaril@432: QTextStream t( &f ); insilmaril@432: t << ui.editor->text(); insilmaril@432: f.close(); insilmaril@432: } insilmaril@432: insilmaril@434: void SimpleScriptEditor::setScript(const QString &s) insilmaril@434: { insilmaril@434: ui.editor->setText(s); insilmaril@434: } insilmaril@434: insilmaril@438: void SimpleScriptEditor::saveClicked() insilmaril@438: { insilmaril@438: if (filename.isEmpty() ) insilmaril@438: saveAsClicked(); insilmaril@438: else insilmaril@438: saveScript(); insilmaril@438: } insilmaril@438: insilmaril@438: void SimpleScriptEditor::saveAsClicked() insilmaril@432: { insilmaril@432: QString fn = QFileDialog::getSaveFileName( insilmaril@432: this, insilmaril@432: QString (vymName + " - " +tr("Save script")), insilmaril@432: QString (), insilmaril@432: "VYM script (HTML) (*.vys);;All files (*)", insilmaril@432: 0, insilmaril@432: QFileDialog::DontConfirmOverwrite); insilmaril@432: insilmaril@432: if ( !fn.isEmpty() ) insilmaril@432: { insilmaril@432: QFile file (fn); insilmaril@432: if (file.exists()) insilmaril@432: { insilmaril@432: QMessageBox mb( vymName, insilmaril@432: tr("The file %1\nexists already.\nDo you want to overwrite it?","dialog 'save as'").arg(fn), insilmaril@432: QMessageBox::Warning, insilmaril@432: QMessageBox::Yes | QMessageBox::Default, insilmaril@432: QMessageBox::Cancel | QMessageBox::Escape, insilmaril@432: Qt::NoButton ); insilmaril@432: mb.setButtonText( QMessageBox::Yes, tr("Overwrite") ); insilmaril@432: mb.setButtonText( QMessageBox::No, tr("Cancel")); insilmaril@432: switch( mb.exec() ) insilmaril@432: { insilmaril@432: case QMessageBox::Yes: insilmaril@432: // save insilmaril@432: filename = fn; insilmaril@432: saveScript(); insilmaril@432: return; insilmaril@432: case QMessageBox::Cancel: insilmaril@432: // do nothing insilmaril@432: return; insilmaril@432: } insilmaril@432: } insilmaril@432: filename=fn; insilmaril@432: saveScript(); insilmaril@432: } insilmaril@432: } insilmaril@432: insilmaril@438: void SimpleScriptEditor::openClicked() insilmaril@432: { insilmaril@432: QFileDialog *fd=new QFileDialog( this); insilmaril@432: QStringList types; insilmaril@432: types<< "VYM scripts (*.vys)" << insilmaril@432: "All (*)" ; insilmaril@432: fd->setFilters (types); insilmaril@432: fd->setDirectory (QDir().current()); insilmaril@432: fd->setCaption (vymName + " - " + tr("Load script")); insilmaril@432: fd->show(); insilmaril@432: if ( fd->exec() == QDialog::Accepted ) insilmaril@438: filename = fd->selectedFile(); insilmaril@432: insilmaril@438: if ( !filename.isEmpty() ) insilmaril@432: { insilmaril@438: QFile f( filename ); insilmaril@432: if ( !f.open( QIODevice::ReadOnly ) ) insilmaril@432: { insilmaril@432: QMessageBox::warning(0, insilmaril@432: tr("Error"), insilmaril@438: tr("Couldn't open %1.\n").arg(filename)); insilmaril@432: return; insilmaril@432: } insilmaril@432: insilmaril@432: QTextStream ts( &f ); insilmaril@432: ui.editor->setText( ts.read() ); insilmaril@432: f.close(); insilmaril@432: } insilmaril@432: } insilmaril@432: insilmaril@438: void SimpleScriptEditor::runClicked() insilmaril@432: { insilmaril@432: emit runScript (ui.editor->text() ); insilmaril@432: }