-rw-r--r-- | libkcal/phoneformat.cpp | 97 | ||||
-rw-r--r-- | libkcal/phoneformat.h | 2 |
2 files changed, 94 insertions, 5 deletions
diff --git a/libkcal/phoneformat.cpp b/libkcal/phoneformat.cpp index 178a63e..99d6a06 100644 --- a/libkcal/phoneformat.cpp +++ b/libkcal/phoneformat.cpp @@ -28,9 +28,9 @@ #include <qclipboard.h> #include <qfile.h> #include <qtextstream.h> #include <qtextcodec.h> -#include <qxml.h> +#include <qdir.h> #include <qlabel.h> #include <kdebug.h> #include <klocale.h> @@ -83,11 +83,100 @@ public: PhoneFormat::PhoneFormat(QString profileName, QString device,QString connection, QString model ) { mProfileName = profileName; - mDevice = device; - mConnection = connection; - mModel = model; + + QString fileName = QDir::homeDirPath() +"/.gammurc"; + //qDebug("save %d ", load ); + QString content; + bool write = false; + bool addPort = true, addConnection = true, addModel = true; + QFile file( fileName ); + if ( QFile::exists( fileName) ) { + if (!file.open( IO_ReadOnly ) ) { + qDebug("Error: cannot open %s ", fileName.latin1() ); + return; + } + QString line; + while ( file.readLine( line, 1024 ) > 0 ) { + //qDebug("*%s* ", line.latin1() ); + if ( line.left(7 ) == "[gammu]" ) { + ; + } else + if ( line.left(4 ) == "port" ) { + if ( line == "port = " + device+"\n" ) { + content += line ; + addPort = false; + //qDebug("port found" ); + } + + } else if ( line.left(5 ) == "model" ) { + if ( line == "model = " + model +"\n") { + content += line ; + addModel = false; + //qDebug("model found" ); + } + + } else if ( line.left( 10 ) == "connection" ) { + if ( line == "connection = " + connection +"\n") { + addConnection = false; + content += line ; + //qDebug("con found" ); + } + + } else { + content += line ; + } + } + file.close(); + } else { + if ( ! connection.isEmpty() ) { + addConnection = true; + } + if ( ! device.isEmpty() ) { + addPort = true; + + } + if ( ! model.isEmpty() ) { + addModel = true; + } + } + + if ( addConnection ) { + if ( ! write ) + content += "[gammu]\n"; + write = true; + content += "connection = "; + content += connection; + content += "\n"; + } + if ( addPort ) { + if ( ! write ) + content += "[gammu]\n"; + write = true; + content += "port = "; + content += device; + content += "\n"; + + } + if ( addModel ) { + if ( ! write ) + content += "[gammu]\n"; + write = true; + content += "model = "; + content += model; + content += "\n"; + } + if ( write ) { + if (!file.open( IO_WriteOnly ) ) { + qDebug("Error: cannot write file %s ", fileName.latin1() ); + return; + } + qDebug("Writing file %s ", fileName.latin1() ); + QTextStream ts( &file ); + ts << content ; + file.close(); + } } PhoneFormat::~PhoneFormat() { diff --git a/libkcal/phoneformat.h b/libkcal/phoneformat.h index 8286098..2d1ff79 100644 --- a/libkcal/phoneformat.h +++ b/libkcal/phoneformat.h @@ -51,9 +51,9 @@ class PhoneFormat : public QObject { private: void copyEvent( Event* to, Event* from ); void copyTodo( Todo* to, Todo* from ); //int initDevice(GSM_StateMachine *s); - QString mProfileName, mDevice, mConnection, mModel; + QString mProfileName; void afterSave( Incidence* ); }; } |