Main Page   Class Hierarchy   Alphabetical List   Compound List   File List  

main.cpp

00001 /*
00002  * Copyright (C) 2003 Hans Karlsson <karlsson.h@home.se>
00003  */
00004 
00005 
00006 #include <kapplication.h>
00007 #include <kfiledialog.h>
00008 #include <kaboutdata.h>
00009 #include <kcmdlineargs.h>
00010 #include <klocale.h>
00011 #include <kconfig.h>
00012 #include <ksimpleconfig.h>
00013 #include <qurl.h>
00014 
00015 #include <qfileinfo.h>
00016 #include <qstringlist.h>
00017 
00018 #include "karamba.h"
00019 
00020 
00021 static const char *description = I18N_NOOP("A KDE Eye-candy Application");
00022 
00023 static const char *version = "0.17";
00024 
00025 static KCmdLineOptions options[] =
00026     {
00027         //    { "+[URL]", I18N_NOOP( "Document to open." ), 0 },
00028         { "+file", I18N_NOOP("A required argument 'file'."), 0 },
00029         { 0, 0, 0 }
00030 
00031     };
00032 
00033 int main(int argc, char **argv)
00034 {
00035     KAboutData about("karamba", I18N_NOOP("karamba"), version, description,
00036     KAboutData::License_GPL, "(C) 2003 Hans Karlsson", 0, 0, "karlsson.h@home.se");
00037     about.addAuthor( "Hans Karlsson", 0, "karlsson.h@home.se" );
00038     about.addAuthor( "Bosselut Cyril",I18N_NOOP("XMMS Sensor") , "bosselut@b1project.com" );
00039     KCmdLineArgs::init(argc, argv, &about);
00040     KCmdLineArgs::addCmdLineOptions( options );
00041 
00042     KApplication app;
00043     karamba *mainWin = 0;
00044 
00045     KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
00046 
00047     KSimpleConfig conf("karambarc",true);
00048     conf.setGroup("karamba");
00049     QString dDir =  conf.readEntry("ThemeDir", "/usr/share/apps/karamba/themes/");
00050     QString dTheme =  conf.readEntry("DefaultTheme", "");
00051 
00052 
00053     bool OK = false;
00054     if(args->count() > 0)
00055     {
00056         for (int i = 0; i < (args->count()); i++)
00057         {
00058             if( args->arg(i) != "" )
00059             {
00060                 QFileInfo file( args->arg(i) );
00061                 //qDebug( file.dirPath(true) );
00062                 if( file.exists() && !file.isDir() )
00063                 {
00064                     //qDebug( "File exists" );
00065                     mainWin = new karamba( ( args->arg(i) ));
00066                     mainWin->show();
00067                     OK = true;
00068                 }
00069             }
00070         }
00071 
00072         //app.setMainWidget( mainWin );
00073         int ret = 0;
00074         if( OK )
00075             ret = app.exec();
00076         return ret;
00077     }
00078     else if(dTheme != ""){
00079       QUrl url(dTheme); //make QUrl from QString
00080       QString dir = url.dirPath (); //resolve the absolute path
00081       QString fn = (dir == ".")?dDir + "/" + dTheme:dTheme; //verify if the theme is in default dir
00082       QFileInfo file( fn );
00083       if( file.exists() && !file.isDir() ){ //verify if theme exist
00084         mainWin = new karamba( fn );
00085         mainWin->show();
00086         OK = true;
00087       }
00088       int ret = 0;
00089       if( OK ){
00090           ret = app.exec();
00091       }
00092       return ret;
00093     }
00094     else
00095     {
00096         QStringList fileNames;
00097         fileNames = KFileDialog::getOpenFileNames(dDir, "*.theme", 0, "Open configurations");
00098         for ( QStringList::Iterator it = fileNames.begin(); it != fileNames.end(); ++it )
00099         {
00100             QFileInfo file( *it );
00101             if( file.exists() && !file.isDir() )
00102             {
00103                 mainWin = new karamba( *it );
00104                 mainWin->show();
00105                 OK = true;
00106             }
00107         }
00108         int ret = 0;
00109         if( OK ){
00110             ret = app.exec();
00111         }
00112         return ret;
00113     }
00114 
00115     args->clear();
00116     return 0;
00117 
00118 
00119 
00120 }

Generated on Tue Apr 29 19:56:58 2003 for karamba by doxygen1.2.18