Skip to content

Commit b6c5106

Browse files
author
rblazek
committed
do not run Init.sh in terminal, GRASS is already started if QGIS is run from GRASS shell or everything is set by QgsGrass::openMapset
git-svn-id: http://svn.osgeo.org/qgis/trunk/qgis@12995 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent 9fd1f78 commit b6c5106

File tree

1 file changed

+16
-30
lines changed

1 file changed

+16
-30
lines changed

src/plugins/grass/qgsgrassshell.cpp

+16-30
Original file line numberDiff line numberDiff line change
@@ -46,38 +46,18 @@ QgsGrassShell::QgsGrassShell( QgsGrassTools *tools, QTabWidget *parent, const ch
4646
connect( copyShortcut, SIGNAL( activated() ), mTerminal, SLOT( copyClipboard() ) );
4747

4848
// TODO: find a better way to manage the lockfile.
49+
// Locking should not be done here, a mapset is either locked by GRASS if QGIS is started from GRASS or it is created by QgsGrass::openMapset
50+
/*
4951
mLockFilename = QgsGrass::lockFilePath();
5052
QFile::remove( mLockFilename + ".qgis" );
5153
if ( !QFile::rename( mLockFilename, mLockFilename + ".qgis" ) )
5254
{
5355
QMessageBox::warning( this, tr( "Warning" ), tr( "Cannot rename the lock file %1" ).arg( mLockFilename ) );
5456
}
57+
*/
5558

5659
mTerminal->setSize( 80, 25 );
5760
mTerminal->startShellProgram();
58-
// using -text option GRASS_GUI is owerridden so we have to reset it
59-
QgsDebugMsg ( "gisrc = " + QgsGrass::gisrcFilePath() );
60-
QFile in( QgsGrass::gisrcFilePath() );
61-
if ( in.open( QIODevice::ReadOnly ) )
62-
{
63-
char buf[1000];
64-
QString oldGui;
65-
while ( in.readLine( buf, 1000 ) != -1 )
66-
{
67-
QString line = buf;
68-
QStringList kv = line.split ( ':' );
69-
if ( kv.length() == 2 && kv.at(0) == "GRASS_GUI" )
70-
{
71-
oldGui = kv.at(1).trimmed ();
72-
break;
73-
}
74-
}
75-
if ( ! oldGui.isEmpty() )
76-
{
77-
QString cmd = QString("g.gisenv set=GRASS_GUI=") + oldGui + "\n";
78-
mTerminal->sendText( cmd );
79-
}
80-
}
8161
mTerminal->setFocus( Qt::MouseFocusReason );
8262
}
8363

@@ -91,11 +71,13 @@ void QgsGrassShell::closeShell()
9171
mTabWidget->removeTab( index );
9272

9373
// TODO: find a better way to manage the lockfile.
74+
// No locking should be done here, see above
75+
/*
9476
if ( !QFile::rename( mLockFilename + ".qgis", mLockFilename ) )
9577
{
9678
QMessageBox::warning( this, tr( "Warning" ), tr( "Cannot rename the lock file %1" ).arg( mLockFilename ) );
9779
}
98-
80+
*/
9981
this->deleteLater();
10082
}
10183

@@ -104,18 +86,22 @@ void QgsGrassShell::initTerminal( QTermWidget *terminal )
10486
QStringList env( "" );
10587
QStringList args( "" );
10688

107-
QString shellProgram = QString( "%1/etc/Init.sh" ).arg( ::getenv( "GISBASE" ) );
89+
// GRASS Init.sh should not be started here, it is either run when GRASS is started if QGIS is run from GRASS shell or everything (set environment variables and lock mapset) is done in QgsGrass::openMapset
90+
//QString shellProgram = QString( "%1/etc/Init.sh" ).arg( ::getenv( "GISBASE" ) );
10891

109-
terminal->setShellProgram( shellProgram );
92+
//terminal->setShellProgram( shellProgram );
11093
env << "TERM=vt100";
11194
env << "GISRC_MODE_MEMORY";
112-
// This is also overriden by Init.sh, it should not be run at all, either QGIS is started from shell or a mapset is open from QGIS, Init.sh opens the session second time
95+
// TODO: we should check if these environment variable were set by user before QGIS was started
11396
env << "GRASS_HTML_BROWSER=" + QgsApplication::pkgDataPath() + "/grass/bin/qgis.g.browser";
97+
env << "GRASS_WISH=wish";
98+
env << "GRASS_TCLSH=tclsh";
99+
env << "GRASS_PYTHON=python";
114100

115-
args << "-text";
116-
args << QString( "%1/%2/%3" ).arg( QgsGrass::getDefaultGisdbase() ).arg( QgsGrass::getDefaultLocation() ).arg( QgsGrass::getDefaultMapset() );
101+
//args << "-text";
102+
//args << QString( "%1/%2/%3" ).arg( QgsGrass::getDefaultGisdbase() ).arg( QgsGrass::getDefaultLocation() ).arg( QgsGrass::getDefaultMapset() );
117103

118-
terminal->setArgs( args );
104+
//terminal->setArgs( args );
119105
terminal->setEnvironment( env );
120106

121107
// Look & Feel

0 commit comments

Comments
 (0)