blob: c1ddc11f1453a13dad1587cb3e6f8d08c8f7fe9e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
#include "environment.h"
#include <QHash>
#include <QProcess>
#include <QProcessEnvironment>
using namespace KDUpdater;
class Environment::Private {
public:
static Environment* s_instance;
QHash<QString, QString> tempValues;
};
Environment* Environment::Private::s_instance = 0;
Environment::Environment()
: d( new Private )
{
}
Environment::~Environment() {
delete d;
}
Environment* Environment::instance() {
if ( !Private::s_instance )
Private::s_instance = new Environment;
return Private::s_instance;
}
QString Environment::value( const QString& key, const QString& defvalue ) const {
const QHash<QString,QString>::ConstIterator it = d->tempValues.constFind( key );
if ( it != d->tempValues.constEnd() )
return *it;
else
return QProcessEnvironment::systemEnvironment().value( key, defvalue );
}
void Environment::setTemporaryValue( const QString& key, const QString& value ) {
d->tempValues.insert( key, value );
}
QProcessEnvironment Environment::applyTo( const QProcessEnvironment& qpe_ ) const {
QProcessEnvironment qpe( qpe_ );
QHash<QString, QString>::ConstIterator it = d->tempValues.constBegin();
const QHash<QString, QString>::ConstIterator end = d->tempValues.constEnd();
for ( ; it != end; ++it )
qpe.insert( it.key(), it.value() );
return qpe;
}
void Environment::applyTo( QProcess* proc ) {
proc->setProcessEnvironment( applyTo( proc->processEnvironment() ) );
}
|