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 static bool exists_ext(const QString &fullPath, int mode);
00588 static bool exists_exe(const QString &fullPath);
00589
00598 static QString realPath(const QString &dirname);
00599
00608 static QString realFilePath(const QString &filename);
00609
00610 private:
00611
00612 QStringList prefixes;
00613
00614
00615 QDict<QStringList> absolutes;
00616 QDict<QStringList> relatives;
00617
00618 mutable QDict<QStringList> dircache;
00619 mutable QDict<QString> savelocations;
00620
00621
00622 KStandardDirs( const KStandardDirs& );
00623 KStandardDirs& operator= ( const KStandardDirs& );
00624
00625 bool addedCustoms;
00626
00627 class KStandardDirsPrivate;
00628 KStandardDirsPrivate *d;
00629
00630 void checkConfig() const;
00631 void applyDataRestrictions(const QString &) const;
00632 void createSpecialResource(const char*);
00633
00634
00635
00636
00637 void addPrefix( const QString& dir, bool priority );
00638 void addXdgConfigPrefix( const QString& dir, bool priority );
00639 void addXdgDataPrefix( const QString& dir, bool priority );
00640
00641
00642
00643 bool addResourceType( const char *type,
00644 const QString& relativename, bool priority );
00645 bool addResourceDir( const char *type,
00646 const QString& absdir, bool priority);
00647 };
00648
00705 KDECORE_EXPORT QString locate( const char *type, const QString& filename, const KInstance* instance = KGlobal::instance() );
00706
00716 KDECORE_EXPORT QString locateLocal( const char *type, const QString& filename, const KInstance* instance = KGlobal::instance() );
00717
00727 KDECORE_EXPORT QString locateLocal( const char *type, const QString& filename, bool createDir, const KInstance* instance = KGlobal::instance() );
00728
00731 #endif // SSK_KSTDDIRS_H