00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef KSTANDARDDIRS_H
00024 #define KSTANDARDDIRS_H
00025
00026 #include <QtCore/QStringList>
00027 #include <kglobal.h>
00028 #include <QtCore/QMap>
00029
00030 class KConfig;
00031
00175 class KDECORE_EXPORT KStandardDirs
00176 {
00177 public:
00192 KStandardDirs();
00193
00194 enum SearchOption { NoSearchOptions = 0,
00195 Recursive = 1,
00196 NoDuplicates = 2,
00197 IgnoreExecBit = 4 };
00198 Q_DECLARE_FLAGS( SearchOptions, SearchOption )
00199
00200
00203 virtual ~KStandardDirs();
00204
00214 void addPrefix( const QString& dir );
00215
00223 void addXdgConfigPrefix( const QString& dir );
00224
00232 void addXdgDataPrefix( const QString& dir );
00233
00257 KDE_DEPRECATED bool addResourceType( const char *type,
00258 const QString& relativename, bool priority = true );
00259
00281 bool addResourceType( const char *type, const char *basetype,
00282 const QString& relativename, bool priority = true );
00283
00285 bool addResourceType( const char *type, const char *basetype,
00286 const char* relativename, bool priority = true )
00287 {
00288 return addResourceType(type, basetype, QLatin1String(relativename), priority);
00289 }
00290
00308 bool addResourceDir( const char *type,
00309 const QString& absdir, bool priority = true );
00310
00329 QString findResource( const char *type,
00330 const QString& filename ) const;
00331
00346 bool isRestrictedResource( const char *type,
00347 const QString& relPath=QString() ) const;
00348
00362 quint32 calcResourceHash( const char *type,
00363 const QString& filename,
00364 SearchOptions options = NoSearchOptions) const;
00365
00382 QStringList findDirs( const char *type,
00383 const QString& reldir ) const;
00384
00405 QString findResourceDir( const char *type,
00406 const QString& filename) const;
00407
00408
00429 QStringList findAllResources( const char *type,
00430 const QString& filter = QString(),
00431 SearchOptions options = NoSearchOptions ) const;
00432
00457 QStringList findAllResources( const char *type,
00458 const QString& filter,
00459 SearchOptions options,
00460 QStringList &relPaths) const;
00461
00471 static QStringList systemPaths( const QString& pstr=QString() );
00472
00493 static QString findExe( const QString& appname,
00494 const QString& pathstr = QString(),
00495 SearchOptions options = NoSearchOptions );
00496
00515 static int findAllExe( QStringList& list, const QString& appname,
00516 const QString& pathstr=QString(),
00517 SearchOptions options = NoSearchOptions );
00518
00528 bool addCustomized(KConfig *config);
00529
00541 QStringList resourceDirs(const char *type) const;
00542
00549 QStringList allTypes() const;
00550
00568 QString saveLocation(const char *type,
00569 const QString& suffix = QString(),
00570 bool create = true) const;
00571
00587 QString relativeLocation(const char *type, const QString &absPath);
00588
00599 static bool makeDir(const QString& dir, int mode = 0755);
00600
00639 static KDE_DEPRECATED QString kde_default(const char *type);
00640
00644 QString kfsstnd_prefixes();
00645
00649 QString kfsstnd_xdg_conf_prefixes();
00650
00654 QString kfsstnd_xdg_data_prefixes();
00655
00662 QString localkdedir() const;
00663
00668 QString localxdgdatadir() const;
00669
00674 QString localxdgconfdir() const;
00675
00680 static QString installPath(const char *type);
00681
00689 static bool exists(const QString &fullPath);
00690
00698 static QString realPath(const QString &dirname);
00699
00707 static QString realFilePath(const QString &filename);
00708
00720 static QString locate( const char *type, const QString& filename, const KComponentData &cData = KGlobal::mainComponent() );
00721
00736 static QString locateLocal( const char *type, const QString& filename, const KComponentData &cData = KGlobal::mainComponent() );
00737
00754 static QString locateLocal( const char *type, const QString& filename, bool createDir, const KComponentData &cData = KGlobal::mainComponent() );
00755
00772 static bool checkAccess(const QString& pathname, int mode);
00773
00774 private:
00775
00776 KStandardDirs( const KStandardDirs& );
00777 KStandardDirs& operator= ( const KStandardDirs& );
00778
00779 class KStandardDirsPrivate;
00780 KStandardDirsPrivate* const d;
00781
00782
00783
00784
00785 void addPrefix( const QString& dir, bool priority );
00786 void addXdgConfigPrefix( const QString& dir, bool priority );
00787 void addXdgDataPrefix( const QString& dir, bool priority );
00788 void addKDEDefaults();
00789
00790 void addResourcesFrom_krcdirs();
00791 };
00792
00793 Q_DECLARE_OPERATORS_FOR_FLAGS(KStandardDirs::SearchOptions)
00794
00795 #endif // KSTANDARDDIRS_H