KDECore
kstandarddirs.h
Go to the documentation of this file.00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 #ifndef SSK_KSTDDIRS_H
00024 #define SSK_KSTDDIRS_H
00025 
00026 #include <qstring.h>
00027 #include <qdict.h>
00028 #include <qstringlist.h>
00029 #include <kglobal.h>
00030 
00031 class KConfig;
00032 class KStandardDirsPrivate;
00033 
00125 class KDECORE_EXPORT KStandardDirs
00126 {
00127 public:
00131     KStandardDirs( );
00132 
00136     virtual ~KStandardDirs();
00137 
00147     void addPrefix( const QString& dir );
00148 
00156     void addXdgConfigPrefix( const QString& dir );
00157 
00165     void addXdgDataPrefix( const QString& dir );
00166 
00186     bool addResourceType( const char *type,
00187                   const QString& relativename );
00188 
00204     bool addResourceDir( const char *type,
00205                  const QString& absdir);
00206 
00225     QString findResource( const char *type,
00226                   const QString& filename ) const;
00227 
00243     bool isRestrictedResource( const char *type,
00244                   const QString& relPath=QString::null ) const;
00245 
00258     Q_UINT32 calcResourceHash( const char *type,
00259                   const QString& filename, bool deep) const;
00260 
00277     QStringList findDirs( const char *type,
00278                               const QString& reldir ) const;
00279 
00300     QString findResourceDir( const char *type,
00301                  const QString& filename) const;
00302 
00303 
00323     QStringList findAllResources( const char *type,
00324                        const QString& filter = QString::null,
00325                        bool recursive = false,
00326                        bool unique = false) const;
00327 
00350     QStringList findAllResources( const char *type,
00351                        const QString& filter,
00352                        bool recursive,
00353                        bool unique,
00354                        QStringList &relPaths) const;
00355 
00365     static QStringList systemPaths( const QString& pstr=QString::null );
00366 
00384     static QString findExe( const QString& appname,
00385                 const QString& pathstr=QString::null,
00386                 bool ignoreExecBit=false );
00387 
00406     static int findAllExe( QStringList& list, const QString& appname,
00407                    const QString& pathstr=QString::null,
00408                    bool ignoreExecBit=false );
00409 
00419     void addKDEDefaults();
00420 
00430     bool addCustomized(KConfig *config);
00431 
00443     QStringList resourceDirs(const char *type) const;
00444 
00451     QStringList allTypes() const;
00452 
00470      QString saveLocation(const char *type,
00471                   const QString& suffix = QString::null,
00472                   bool create = true) const;
00473 
00489          QString relativeLocation(const char *type, const QString &absPath);
00490 
00501     static bool makeDir(const QString& dir, int mode = 0755);
00502 
00530     static QString kde_default(const char *type);
00531 
00535     QString kfsstnd_prefixes();
00536 
00540     QString kfsstnd_xdg_conf_prefixes();
00541 
00545     QString kfsstnd_xdg_data_prefixes();
00546 
00553     QString localkdedir() const;
00554 
00559     static QString kfsstnd_defaultprefix();
00560 
00565     static QString kfsstnd_defaultbindir();
00566 
00571     QString localxdgdatadir() const;
00572 
00577     QString localxdgconfdir() const;
00578 
00586     static bool exists(const QString &fullPath);
00587 
00596     static QString realPath(const QString &dirname);
00597 
00606     static QString realFilePath(const QString &filename);
00607 
00608  private:
00609 
00610     QStringList prefixes;
00611 
00612     
00613     QDict<QStringList> absolutes;
00614     QDict<QStringList> relatives;
00615 
00616     mutable QDict<QStringList> dircache;
00617     mutable QDict<QString> savelocations;
00618 
00619     
00620     KStandardDirs( const KStandardDirs& );
00621     KStandardDirs& operator= ( const KStandardDirs& );
00622 
00623     bool addedCustoms;
00624 
00625     class KStandardDirsPrivate;
00626     KStandardDirsPrivate *d;
00627 
00628     void checkConfig() const;
00629     void applyDataRestrictions(const QString &) const;
00630     void createSpecialResource(const char*);
00631 
00632         
00633         
00634         
00635     void addPrefix( const QString& dir, bool priority );
00636     void addXdgConfigPrefix( const QString& dir, bool priority );
00637     void addXdgDataPrefix( const QString& dir, bool priority );
00638 
00639     
00640     
00641     bool addResourceType( const char *type,
00642                   const QString& relativename, bool priority );
00643     bool addResourceDir( const char *type,
00644                  const QString& absdir, bool priority);
00645 };
00646 
00703 KDECORE_EXPORT QString locate( const char *type, const QString& filename, const KInstance* instance = KGlobal::instance() );
00704 
00714 KDECORE_EXPORT QString locateLocal( const char *type, const QString& filename, const KInstance* instance = KGlobal::instance() );
00715 
00725 KDECORE_EXPORT QString locateLocal( const char *type, const QString& filename, bool createDir, const KInstance* instance = KGlobal::instance() );
00726 
00729 #endif // SSK_KSTDDIRS_H