17 #include <QtCore/QVariant>
18 #include <QtGui/QPainter>
26 #include <QtGui/QMessageBox>
27 #include <QtCore/QRegExp>
30 # include <qtmmlwidget.h>
44 #include <QtCore/QtDebug>
60 mpScrollView->setFrameShape(QFrame::Panel);
61 mpScrollView->setFrameStyle(QFrame::Panel | QFrame::Plain);
77 comboBoxFunctions->setCurrentIndex(1);
85 ofile <<
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>" << std::endl;
86 ofile <<
"<!DOCTYPE math PUBLIC \"-//W3C//DTD MathML 2.0//EN\" \"http://www.w3.org/Math/DTD/mathml2/mathml2.dtd\">" << std::endl;
87 ofile <<
"<math xmlns=\"http://www.w3.org/1998/Math/MathML\">" << std::endl;
91 ofile <<
"</math>" << std::endl;
98 bool hasContents =
true;
102 bool expand, expandAll;
104 switch (comboBoxFunctions->currentIndex())
122 bool parameterAsNumbers =
false;
124 if (comboBoxParameters->currentIndex() == 0)
125 parameterAsNumbers =
true;
130 QWidget* tmp =
dynamic_cast<QWidget*
>(parent());
132 if (tmp) tmp->setCursor(Qt::WaitCursor);
135 mpMMLWidget->setBaseFontPointSize(qApp->font().pointSize());
136 mpMMLWidget->setFontName(QtMmlWidget::NormalFont, qApp->font().family());
137 mpMMLWidget->setFixedSize(mpMMLWidget->sizeHint().expandedTo(QSize(0, 0)));
139 if (tmp) tmp->unsetCursor();
141 mpSaveButton->setEnabled(hasContents);
158 qDebug() << latexStr;
172 doc.setBaseFontPointSize(20);
173 doc.setFontName(QtMmlWidget::NormalFont, qApp->font().family());
176 const QSize &size = doc.size();
177 QPixmap pixmap(size.width(), size.height());
178 QPainter painter(&pixmap);
179 painter.setRenderHint(QPainter::Antialiasing);
180 painter.setRenderHint(QPainter::SmoothPixmapTransform);
181 painter.setRenderHint(QPainter::HighQualityAntialiasing);
182 painter.fillRect(0, 0, size.width(), size.height(), Qt::white);
183 doc.paint(&painter, QPoint(0, 0));
184 pixmap.save(outfilename,
"PNG");
191 C_INT32 Answer = QMessageBox::No;
193 while (Answer == QMessageBox::No)
199 "MathML (*.mml);;TeX (*.tex);;PNG (*.png)",
200 "Save Formula to Disk",
new QString);
202 if (outfilename.isEmpty())
return;
207 if (Answer == QMessageBox::Cancel)
212 qDebug() <<
"outfilename = " << outfilename;
215 QApplication::setOverrideCursor(Qt::WaitCursor);
217 if (outfilename.contains(
".tex"))
221 else if (outfilename.contains(
".png"))
230 QApplication::restoreOverrideCursor();
CQDifferentialEquations(QWidget *parent=0, const char *name=0)
virtual bool enterProtected()
static void convert(QString &text)
convert to TeX
C_INT32 checkSelection(const QString &file)
virtual void savePNG(const QString filename)
virtual void slotUpdateWidget()
static CCopasiVector< CCopasiDataModel > * getDatamodelList()
virtual void newFunction()
virtual void saveMML(const QString filename)
virtual void saveTeX(const QString filename)
~CQDifferentialEquations()
static CLocaleString fromUtf8(const std::string &utf8)
static void writeDifferentialEquations(std::ostream &mml, CModel *model, bool localParameterNumbers, bool expand, bool expandFull)
static QString getSaveFileName(QWidget *parent=0, const char *name=0, const QString &startWith=QString::null, const QString &filter=QString::null, const QString &caption=QString::null, QString *pSelectedFilter=NULL, QFileDialog::Options options=0)