summaryrefslogtreecommitdiff
path: root/noncore/settings/networksettings2/nsdata.cpp
authorwimpie <wimpie>2005-01-12 01:40:53 (UTC)
committer wimpie <wimpie>2005-01-12 01:40:53 (UTC)
commitf9a83585111afa08a47176097a150d9f468bfcdf (patch) (side-by-side diff)
tree6d5a3b5f9716f7c6ca6e7fae8b0e2bac8d6c57da /noncore/settings/networksettings2/nsdata.cpp
parentb2e60aa0222b348f34aab501feb8bc854e94413c (diff)
downloadopie-f9a83585111afa08a47176097a150d9f468bfcdf.zip
opie-f9a83585111afa08a47176097a150d9f468bfcdf.tar.gz
opie-f9a83585111afa08a47176097a150d9f468bfcdf.tar.bz2
*** empty log message ***
Diffstat (limited to 'noncore/settings/networksettings2/nsdata.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/networksettings2/nsdata.cpp55
1 files changed, 50 insertions, 5 deletions
diff --git a/noncore/settings/networksettings2/nsdata.cpp b/noncore/settings/networksettings2/nsdata.cpp
index 835c7c3..6b87399 100644
--- a/noncore/settings/networksettings2/nsdata.cpp
+++ b/noncore/settings/networksettings2/nsdata.cpp
@@ -336,12 +336,23 @@ QString NetworkSettingsData::generateSettings( void ) {
// open proper file
{ SystemFile SF( (*it) );
+ QStringList SL;
- if( ! CurDevNN->openFile( SF, nniit.current()) ) {
+ if( ! CurDevNN->openFile( SF, nniit.current(), SL) ) {
// cannot open
S = qApp->translate( "NetworkSettings",
- "<p>Cannot open proper file \"%1\" for node \"%2\"</p>" ).
- arg( (*it) ).arg( CurDevNN->name() );
+ "<p>Cannot build proper file \"%1\" for node \"%2\"</p>" ).
+ arg( (*it) ).
+ arg( CurDevNN->name() );
+ return S;
+ }
+
+ if( ! createPath( SL ) ) {
+ S = qApp->translate( "NetworkSettings",
+ "<p>Cannot create path \"%1\" for proper file \"%2\" for node \"%3\"</p>" ).
+ arg( SL.join("/") ).
+ arg( (*it) ).
+ arg( CurDevNN->name() );
return S;
}
@@ -379,15 +390,26 @@ QString NetworkSettingsData::generateSettings( void ) {
if( Generated ) {
SystemFile SF( (*it) );
+ QStringList SL;
- if( CurDevNN->openFile( SF, 0 ) &&
+ if( CurDevNN->openFile( SF, 0, SL ) &&
! SF.path().isEmpty()
) {
+ if( ! createPath( SL ) ) {
+ S = qApp->translate( "NetworkSettings",
+ "<p>Cannot create path \"%1\" for proper file \"%2\" for node \"%3\"</p>" ).
+ arg( SL.join("/") ).
+ arg( (*it) ).
+ arg( CurDevNN->name() );
+ return S;
+ }
+
if( ! SF.open() ) {
S = qApp->translate( "NetworkSettings",
"<p>Cannot open proper file \"%1\" for node \"%2\"</p>" ).
- arg( (*it) ).arg( CurDevNN->name() );
+ arg( (*it) ).
+ arg( CurDevNN->name() );
return S;
}
@@ -785,3 +807,26 @@ QList<NetworkSetup> NetworkSettingsData::collectTriggered(
return PossibleTriggered;
}
+bool NetworkSettingsData::createPath( const QStringList & SL ) {
+
+ QDir D( SL[0] );
+
+ for ( QStringList::ConstIterator it = SL.begin();
+ it != SL.end();
+ ++it ) {
+
+ printf( "Create %s\n", (*it).latin1() );
+ if( it == SL.begin() )
+ continue;
+
+ if( ! D.exists( *it ) ) {
+ if( ! D.mkdir( *it ) ) {
+ printf( "Failed %s %s\n", D.path().latin1(), (*it).latin1() );
+ return 0;
+ }
+ }
+
+ D.cd( *it );
+ }
+ return 1;
+}