path.cpp

00001 /**************
00002 FILE          : path.cpp
00003 ***************
00004 PROJECT       : SaX2 - library interface
00005               :
00006 AUTHOR        : Marcus Schäfer <ms@suse.de>
00007               :
00008 BELONGS TO    : SaX2 - SuSE advanced X11 configuration 
00009               : 
00010               :
00011 DESCRIPTION   : native C++ class library to access SaX2
00012               : functionality. Easy to use interface for
00013               : //.../
00014               : - importing/exporting X11 configurations
00015               : - modifying/creating X11 configurations 
00016               : ---
00017               :
00018               :
00019 STATUS        : Status: Development
00020 **************/
00021 #include "path.h"
00022 
00023 namespace SaX {
00024 //====================================
00025 // Constructor...
00026 //------------------------------------
00027 SaXManipulatePath::SaXManipulatePath (SaXImport* in, int path) {
00028         // .../
00033         // ----
00034         if ( ! in ) {
00035                 excNullPointerArgument ();
00036                 qError (errorString(),EXC_NULLPOINTERARGUMENT);
00037                 return;
00038         }
00039         if ( in->getSectionID() != SAX_PATH ) {
00040                 excPathImportBindFailed ( in->getSectionID() );
00041                 qError (errorString(),EXC_PATHIMPORTBINDFAILED);
00042                 return;
00043         }
00044         mImport = in;
00045         mPath   = path;
00046         mImport -> setID ( mPath );
00047 }
00048 
00049 //====================================
00050 // setFontPath
00051 //------------------------------------
00052 void SaXManipulatePath::setFontPath (const QString& path) {
00053         // .../
00056         // ----
00057         if (! mImport) {
00058                 return;
00059         }
00060         mImport -> setItem ( "FontPath",path );
00061 }
00062 
00063 //====================================
00064 // addFontPath
00065 //------------------------------------
00066 void SaXManipulatePath::addFontPath (const QString& path) {
00067         // .../
00070         // ----
00071         if (! mImport) {
00072                 return;
00073         }
00074         QString val;
00075         QString key ("FontPath");
00076         if (! mImport -> getItem (key).isEmpty()) {
00077                 val = mImport -> getItem (key);
00078         }
00079         QTextOStream (&val) << val << "," << path;
00080         mImport -> setItem ( key,val );
00081 }
00082 
00083 //====================================
00084 // removeFontPath
00085 //------------------------------------
00086 void SaXManipulatePath::removeFontPath (const QString& path) {
00087         // .../
00091         // ----
00092         if (! mImport) {
00093                 return;
00094         }
00095         QString val (path);
00096         QString key ("FontPath");
00097         if (! mImport -> getItem (key).isEmpty()) {
00098                 mImport -> removeItem (key,val);
00099         }
00100 }
00101 
00102 //====================================
00103 // setLoadableModule
00104 //------------------------------------
00105 void SaXManipulatePath::setLoadableModule (const QString& module) {
00106         // .../
00109         // ----
00110         if (! mImport) {
00111                 return;
00112         }
00113         mImport -> setItem ( "ModuleLoad",module );
00114 }
00115 
00116 //====================================
00117 // addLoadableModule
00118 //------------------------------------
00119 void SaXManipulatePath::addLoadableModule (const QString& module) {
00120         // .../
00123         // ----
00124         if (! mImport) {
00125                 return;
00126         }
00127         QString val;
00128         QString key ("ModuleLoad");
00129         if (! mImport -> getItem (key).isEmpty()) {
00130                 val = mImport -> getItem (key);
00131         }
00132         QTextOStream (&val) << val << "," << module;
00133         mImport -> setItem ( key,val );
00134 }
00135 
00136 //====================================
00137 // removeLoadableModule
00138 //------------------------------------
00139 void SaXManipulatePath::removeLoadableModule (const QString& module) {
00140         // .../
00144         // ----
00145         if (! mImport) {
00146                 return;
00147         }
00148         QString val (module);
00149         QString key ("ModuleLoad");
00150         if (! mImport -> getItem (key).isEmpty()) {
00151                 mImport -> removeItem (key,val);
00152         }
00153 }
00154 
00155 //====================================
00156 // setServerFlag
00157 //------------------------------------
00158 void SaXManipulatePath::setServerFlag (const QString& flag) {
00159         // .../
00162         // ----
00163         if (! mImport) {
00164                 return;
00165         }
00166         mImport -> setItem ( "ServerFlags",flag );
00167 }
00168 
00169 //====================================
00170 // addServerFlag
00171 //------------------------------------
00172 void SaXManipulatePath::addServerFlag (const QString& flag) {
00173         // .../
00176         // ----
00177         if (! mImport) {
00178                 return;
00179         }
00180         QString val;
00181         QString key ("ServerFlags");
00182         if (! mImport -> getItem (key).isEmpty()) {
00183                 val = mImport -> getItem (key);
00184         }
00185         QTextOStream (&val) << val << "," << flag;
00186         mImport -> setItem ( key,val );
00187 }
00188 
00189 //====================================
00190 // removeServerFlag
00191 //------------------------------------
00192 void SaXManipulatePath::removeServerFlag (const QString& flag) {
00193         // .../
00197         // ----
00198         if (! mImport) {
00199                 return;
00200         }
00201         QString val (flag);
00202         QString key ("ServerFlags");
00203         if (! mImport -> getItem (key).isEmpty()) {
00204                 mImport -> removeItem (key,val);
00205         }
00206 }
00207 
00208 //====================================
00209 // getFontPaths
00210 //------------------------------------
00211 QList<QString> SaXManipulatePath::getFontPaths (void) {
00212         // .../
00215         // ----
00216         if (! mImport) {
00217                 return QList<QString>();
00218         }
00219         QString paths = mImport -> getItem ("FontPath");
00220         return createList (paths);
00221 }
00222 
00223 //====================================
00224 // getModules
00225 //------------------------------------
00226 QList<QString> SaXManipulatePath::getModules (void) {
00227         // .../
00230         // ----
00231         if (! mImport) {
00232                 return QList<QString>();
00233         }
00234         QString modules = mImport -> getItem ("ModuleLoad");
00235         return createList (modules);
00236 }
00237 
00238 //====================================
00239 // getServerFlags 
00240 //------------------------------------
00241 QList<QString> SaXManipulatePath::getServerFlags (void) {
00242         // .../
00245         // ----
00246         if (! mImport) {
00247                 return QList<QString>();
00248         }
00249         QString modules = mImport -> getItem ("ServerFlags");
00250         return createList (modules);
00251 }
00252 
00253 //====================================
00254 // transform string to Qlist
00255 //------------------------------------
00256 QList<QString> SaXManipulatePath::createList ( const QString& data) {
00257         // .../
00260         // ----
00261         if (data.isEmpty()) {
00262                 return QList<QString>();
00263         }
00264         QList<QString> result; 
00265         QStringList dataList = QStringList::split ( ",", data );
00266         for (QStringList::Iterator it=dataList.begin(); it!=dataList.end();++ it) {
00267                 QString* item = new QString (*it);
00268                 result.append (item);
00269         }
00270         return result;
00271 }
00272 } // end namespace

Generated on Mon Jun 19 12:42:49 2006 for libsax by  doxygen 1.4.6