diff options
Diffstat (limited to 'extra/kdeedu-cantor/sage58.patch')
-rw-r--r-- | extra/kdeedu-cantor/sage58.patch | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/extra/kdeedu-cantor/sage58.patch b/extra/kdeedu-cantor/sage58.patch new file mode 100644 index 000000000..d17b55a99 --- /dev/null +++ b/extra/kdeedu-cantor/sage58.patch @@ -0,0 +1,123 @@ +diff --git a/src/backends/sage/sagecompletionobject.cpp b/src/backends/sage/sagecompletionobject.cpp +index dec0c8f..a132295 100644 +--- a/src/backends/sage/sagecompletionobject.cpp ++++ b/src/backends/sage/sagecompletionobject.cpp +@@ -52,7 +52,7 @@ void SageCompletionObject::fetchCompletions() + + //cache the value of the "_" variable into __hist_tmp__, so we can restore the previous result + //after complete() was evaluated +- m_expression=session()->evaluateExpression("__hist_tmp__=_; __IPYTHON__.complete(\""+command()+"\");_=__hist_tmp__"); ++ m_expression=session()->evaluateExpression("__hist_tmp__=_; __CANTOR_IPYTHON_SHELL__.complete(\""+command()+"\");_=__hist_tmp__"); + connect(m_expression, SIGNAL(gotResult()), this, + SLOT(extractCompletions())); + +@@ -71,11 +71,19 @@ void SageCompletionObject::extractCompletions() + kDebug()<<"something went wrong fetching tab completion"; + return; + } +- ++ + //the result looks like "['comp1', 'comp2']" parse it ++ ++ //for sage version 5.7 this looks like ++ //('s1', ['comp1','comp2']) where s1 is the string we called complete with ++ + QString txt=res->toHtml().trimmed(); ++ txt.remove("<br/>"); ++ txt=txt.mid(txt.indexOf(command())+command().length()+2).trimmed(); + txt=txt.mid(1); //remove [ +- txt.chop(1); //remove ] ++ txt.chop(2); //remove ] ++ ++ kDebug()<<"completion string: "<<txt; + + QStringList tmp=txt.split(','); + QStringList completions; +diff --git a/src/backends/sage/sageexpression.cpp b/src/backends/sage/sageexpression.cpp +index eabdda2..fbde7c1 100644 +--- a/src/backends/sage/sageexpression.cpp ++++ b/src/backends/sage/sageexpression.cpp +@@ -122,7 +122,7 @@ void SageExpression::parseOutput(const QString& text) + //reset the indices + index=index2=-1; + } +- ++ + m_outputCache+=output; + + if(m_promptCount<=0) +@@ -160,11 +160,9 @@ void SageExpression::addFileResult( const QString& path ) + { + KUrl url( path ); + KMimeType::Ptr type=KMimeType::findByUrl(url); +- kDebug()<<"MimeType: "<<type->name(); +- if(type->name().contains("image")) ++ if(m_imagePath.isEmpty()||type->name().contains("image")||path.endsWith(".png")||path.endsWith(".gif")) + { +- kDebug()<<"adding file "<<path<<" "<<url; +- m_imagePath=path; ++ m_imagePath=path; + } + } + +@@ -172,8 +170,11 @@ void SageExpression::evalFinished() + { + kDebug()<<"evaluation finished"; + kDebug()<<m_outputCache; ++ ++ //check if our image path contains a valid image that we can try to show ++ bool hasImage=!m_imagePath.isNull(); + +- if ( m_imagePath.isNull() ) //If this result contains a file, drop the text information ++ if ( !hasImage ) //If this result contains a file, drop the text information + { + Cantor::TextResult* result=0; + +@@ -219,7 +220,7 @@ void SageExpression::evalFinished() + } + else + { +- KMimeType::Ptr type=KMimeType::findByUrl(m_imagePath); ++ KMimeType::Ptr type=KMimeType::findByUrl(m_imagePath); + if(type->is("image/gif")) + setResult( new Cantor::AnimationResult( KUrl(m_imagePath ),i18n("Result of %1" , command() ) ) ); + else +diff --git a/src/backends/sage/sagesession.cpp b/src/backends/sage/sagesession.cpp +index a535277..d8ac325 100644 +--- a/src/backends/sage/sagesession.cpp ++++ b/src/backends/sage/sagesession.cpp +@@ -38,10 +38,13 @@ const QByteArray SageSession::SageAlternativePrompt="....: "; //Text, sage outpu + static QByteArray initCmd="os.environ['PAGER'] = 'cat' \n "\ + "sage.misc.pager.EMBEDDED_MODE = True \n "\ + "sage.misc.viewer.BROWSER='' \n "\ ++ "sage.misc.viewer.viewer.png_viewer('') \n" \ + "sage.plot.plot3d.base.SHOW_DEFAULTS['viewer'] = 'tachyon' \n"\ + "sage.misc.latex.EMBEDDED_MODE = True \n "\ + "os.environ['PAGER'] = 'cat' \n "\ +- " __IPYTHON__.shell.autoindent=False \n "\ ++ "%colors nocolor \n "\ ++ "__CANTOR_IPYTHON_SHELL__=get_ipython() \n "\ ++ "__CANTOR_IPYTHON_SHELL__.autoindent=False \n "\ + "print '____TMP_DIR____', sage.misc.misc.SAGE_TMP\n"\ + "print '____END_OF_INIT____' \n "; + +@@ -277,6 +280,7 @@ void SageSession::waitForNextPrompt() + + void SageSession::fileCreated( const QString& path ) + { ++ kDebug()<<"got a file "<<path; + SageExpression* expr=m_expressionQueue.first(); + if ( expr ) + expr->addFileResult( path ); +@@ -290,9 +294,9 @@ void SageSession::setTypesettingEnabled(bool enable) + //the _ and __IP.outputcache() are needed to keep the + // _ operator working + if (enable) +- evaluateExpression("sage.misc.latex.pretty_print_default(true);_;__IP.outputcache()", Cantor::Expression::DeleteOnFinish); ++ evaluateExpression("sage.misc.latex.pretty_print_default(true)", Cantor::Expression::DeleteOnFinish); + else +- evaluateExpression("sage.misc.latex.pretty_print_default(false);_;__IP.outputcache()", Cantor::Expression::DeleteOnFinish); ++ evaluateExpression("sage.misc.latex.pretty_print_default(false)", Cantor::Expression::DeleteOnFinish); + } + + Cantor::CompletionObject* SageSession::completionFor(const QString& command, int index) |