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("
");
+ 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: "<name();
- if(type->name().contains("image"))
+ if(m_imagePath.isEmpty()||type->name().contains("image")||path.endsWith(".png")||path.endsWith(".gif"))
{
- kDebug()<<"adding file "<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 "<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)