27 #include "../../../common/StringUtils.h"
37 #include <boost/filesystem.hpp>
38 #include <boost/format.hpp>
41 #include <QtCore/QFile>
42 #include <QtCore/QTextStream>
43 #include <QtGui/QApplication>
44 #include <QtGui/QFileDialog>
45 #include <QtGui/QMessageBox>
46 #include <QtGui/QVBoxLayout>
49 #include <Qsci/qsciscintilla.h>
60 m_txtEditor->setAutoCompletionSource(QsciScintilla::AcsAll);
64 m_txtEditor->setFolding(QsciScintilla::PlainFoldStyle, 2);
66 QVBoxLayout* mainLayout =
new QVBoxLayout;
70 setLayout(mainLayout);
86 return QString(tr(
"lang-unknown"));
88 boost::filesystem::path fpath(m_fileName->toStdString());
93 std::string::size_type pos = fext.find(
'.');
95 if(pos != std::string::npos)
96 return QString(fext.substr(pos + 1).c_str());
98 return QString(fext.c_str());
104 return QString(tr(
"New-Script"));
106 boost::filesystem::path fpath(m_fileName->toStdString());
108 return QString(fpath.filename().string().c_str());
116 QFile file(fileName);
118 if(!file.open(QFile::ReadOnly))
120 QMessageBox::warning(
this,
122 tr(
"Cannot read file %1:\n%2.").arg(fileName).arg(file.errorString()));
126 QTextStream ifile(&file);
128 QApplication::setOverrideCursor(Qt::WaitCursor);
130 m_txtEditor->setText(ifile.readAll());
132 QApplication::restoreOverrideCursor();
134 m_fileName =
new QString(fileName);
138 m_hasChanged =
false;
146 saveFile(*m_fileName);
148 m_hasChanged =
false;
153 QString fileName = QFileDialog::getSaveFileName(
this);
155 if(fileName.isEmpty())
160 m_fileName =
new QString(fileName);
166 m_hasChanged =
false;
176 m_txtEditor->clear();
184 m_hasChanged =
false;
192 else if(!m_hasChanged && (m_fileName == 0))
235 m_txtEditor->zoomIn();
236 m_txtEditor->setMarginWidth(1, QString(
"0000"));
241 m_txtEditor->zoomOut();
242 m_txtEditor->setMarginWidth(1, QString(
"0000"));
252 QFile file(fileName);
254 if(!file.open(QFile::WriteOnly))
256 QMessageBox::warning(
this,
257 tr(
"TerraLib Code Editor"),
258 tr(
"Cannot write file %1:\n%2.").arg(fileName).arg(file.errorString()));
262 QTextStream ofile(&file);
264 QApplication::setOverrideCursor(Qt::WaitCursor);
266 ofile << m_txtEditor->text();
268 QApplication::restoreOverrideCursor();
285 QString lang = getScriptType();
289 m_txtEditor->setLexer(m_lexer);
QString getScriptName() const
void saveFile(const QString &fileName)
A widget that can be used to show and control he execution of a script.
QString getScriptType() const
std::string Convert2UCase(const std::string &value)
It converts a string to upper case.
ScriptWidget(QWidget *parent)
static QsciLexer * make(const QString &lang, QObject *parent=0)
void open(const QString &fileName)
A factory method for language lexers.
QsciScintilla * m_txtEditor