author | Michael Krelin <hacker@klever.net> | 2007-07-04 11:23:42 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2007-07-04 11:23:42 (UTC) |
commit | a08aff328d4393031d5ba7d622c2b05705a89d73 (patch) (unidiff) | |
tree | 8ee90d686081c52e7c69b5ce946e9b1a7d690001 /microkde/kdecore/kstandarddirs.h | |
parent | 11edc920afe4f274c0964436633aa632c8288a40 (diff) | |
download | kdepimpi-p1.zip kdepimpi-p1.tar.gz kdepimpi-p1.tar.bz2 |
initial public commit of qt4 portp1
Diffstat (limited to 'microkde/kdecore/kstandarddirs.h') (more/less context) (ignore whitespace changes)
-rw-r--r-- | microkde/kdecore/kstandarddirs.h | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/microkde/kdecore/kstandarddirs.h b/microkde/kdecore/kstandarddirs.h index 901384e..f0e28fc 100644 --- a/microkde/kdecore/kstandarddirs.h +++ b/microkde/kdecore/kstandarddirs.h | |||
@@ -1,75 +1,75 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of the KDE libraries | 2 | This file is part of the KDE libraries |
3 | Copyright (C) 1999 Sirtaj Singh Kang <taj@kde.org> | 3 | Copyright (C) 1999 Sirtaj Singh Kang <taj@kde.org> |
4 | Stephan Kulow <coolo@kde.org> | 4 | Stephan Kulow <coolo@kde.org> |
5 | Waldo Bastian <bastian@kde.org> | 5 | Waldo Bastian <bastian@kde.org> |
6 | 6 | ||
7 | This library is free software; you can redistribute it and/or | 7 | This library is free software; you can redistribute it and/or |
8 | modify it under the terms of the GNU Library General Public | 8 | modify it under the terms of the GNU Library General Public |
9 | License as published by the Free Software Foundation; either | 9 | License as published by the Free Software Foundation; either |
10 | version 2 of the License, or (at your option) any later version. | 10 | version 2 of the License, or (at your option) any later version. |
11 | 11 | ||
12 | This library is distributed in the hope that it will be useful, | 12 | This library is distributed in the hope that it will be useful, |
13 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
15 | Library General Public License for more details. | 15 | Library General Public License for more details. |
16 | 16 | ||
17 | You should have received a copy of the GNU Library General Public License | 17 | You should have received a copy of the GNU Library General Public License |
18 | along with this library; see the file COPYING.LIB. If not, write to | 18 | along with this library; see the file COPYING.LIB. If not, write to |
19 | the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | 19 | the Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
20 | Boston, MA 02111-1307, USA. | 20 | Boston, MA 02111-1307, USA. |
21 | */ | 21 | */ |
22 | 22 | ||
23 | #ifndef SSK_KSTDDIRS_H | 23 | #ifndef SSK_KSTDDIRS_H |
24 | #define SSK_KSTDDIRS_H | 24 | #define SSK_KSTDDIRS_H |
25 | 25 | ||
26 | #include <qstring.h> | 26 | #include <qstring.h> |
27 | #include <qdict.h> | 27 | #include <q3dict.h> |
28 | #include <qstringlist.h> | 28 | #include <qstringlist.h> |
29 | #include <kglobal.h> | 29 | #include <kglobal.h> |
30 | 30 | ||
31 | class KConfig; | 31 | class KConfig; |
32 | class KStandardDirsPrivate; | 32 | class KStandardDirsPrivate; |
33 | 33 | ||
34 | 34 | ||
35 | /** | 35 | /** |
36 | * @short Site-independent access to standard KDE directories. | 36 | * @short Site-independent access to standard KDE directories. |
37 | * @author Stephan Kulow <coolo@kde.org> and Sirtaj Singh Kang <taj@kde.org> | 37 | * @author Stephan Kulow <coolo@kde.org> and Sirtaj Singh Kang <taj@kde.org> |
38 | * @version $Id$ | 38 | * @version $Id$ |
39 | * | 39 | * |
40 | * This is one of the most central classes in kdelibs as | 40 | * This is one of the most central classes in kdelibs as |
41 | * it provides a basic service: It knows where the files | 41 | * it provides a basic service: It knows where the files |
42 | * reside on the user's hard disk. And it's meant to be the | 42 | * reside on the user's hard disk. And it's meant to be the |
43 | * only one that knows -- to make the real location as | 43 | * only one that knows -- to make the real location as |
44 | * transparent as possible to both the user and the applications. | 44 | * transparent as possible to both the user and the applications. |
45 | * | 45 | * |
46 | * To this end it insulates the application from all information | 46 | * To this end it insulates the application from all information |
47 | * and applications always refer to a file with a resource type | 47 | * and applications always refer to a file with a resource type |
48 | * (e.g. icon) and a filename (e.g. khexdit.xpm). In an ideal world | 48 | * (e.g. icon) and a filename (e.g. khexdit.xpm). In an ideal world |
49 | * the application would make no assumption where this file is and | 49 | * the application would make no assumption where this file is and |
50 | * leave it up to @ref KStandardDirs::findResource("apps", "Home.desktop") | 50 | * leave it up to @ref KStandardDirs::findResource("apps", "Home.desktop") |
51 | * to apply this knowledge to return /opt/kde/share/applnk/Home.desktop | 51 | * to apply this knowledge to return /opt/kde/share/applnk/Home.desktop |
52 | * or ::locate("data", "kgame/background.jpg") to return | 52 | * or ::locate("data", "kgame/background.jpg") to return |
53 | * /opt/kde/share/apps/kgame/background.jpg | 53 | * /opt/kde/share/apps/kgame/background.jpg |
54 | * | 54 | * |
55 | * The main idea behind KStandardDirs is that there are several | 55 | * The main idea behind KStandardDirs is that there are several |
56 | * toplevel prefixes below which the files lie. One of these prefixes is | 56 | * toplevel prefixes below which the files lie. One of these prefixes is |
57 | * the one where the user installed kdelibs, one is where the | 57 | * the one where the user installed kdelibs, one is where the |
58 | * application was installed, and one is $HOME/.kde, but there | 58 | * application was installed, and one is $HOME/.kde, but there |
59 | * may be even more. Under these prefixes there are several well | 59 | * may be even more. Under these prefixes there are several well |
60 | * defined suffixes where specific resource types are to be found. | 60 | * defined suffixes where specific resource types are to be found. |
61 | * For example, for the resource type "html" the suffixes could be | 61 | * For example, for the resource type "html" the suffixes could be |
62 | * share/doc/HTML and share/doc/kde/HTML. | 62 | * share/doc/HTML and share/doc/kde/HTML. |
63 | * So the search algorithm basicly appends to each prefix each registered | 63 | * So the search algorithm basicly appends to each prefix each registered |
64 | * suffix and tries to locate the file there. | 64 | * suffix and tries to locate the file there. |
65 | * To make the thing even more complex, it's also possible to register | 65 | * To make the thing even more complex, it's also possible to register |
66 | * absolute paths that KStandardDirs looks up after not finding anything | 66 | * absolute paths that KStandardDirs looks up after not finding anything |
67 | * in the former steps. They can be useful if the user wants to provide | 67 | * in the former steps. They can be useful if the user wants to provide |
68 | * specific directories that aren't in his $HOME/.kde directory for, | 68 | * specific directories that aren't in his $HOME/.kde directory for, |
69 | * for example, icons. | 69 | * for example, icons. |
70 | * | 70 | * |
71 | * @sect Standard resources that kdelibs allocates are: | 71 | * @sect Standard resources that kdelibs allocates are: |
72 | * | 72 | * |
73 | * @li apps - Applications menu (.desktop files). | 73 | * @li apps - Applications menu (.desktop files). |
74 | * @li cache - Cached information (e.g. favicons, web-pages) | 74 | * @li cache - Cached information (e.g. favicons, web-pages) |
75 | * @li cgi - CGIs to run from kdehelp. | 75 | * @li cgi - CGIs to run from kdehelp. |
@@ -529,101 +529,101 @@ public: | |||
529 | QString kfsstnd_prefixes(); | 529 | QString kfsstnd_prefixes(); |
530 | 530 | ||
531 | /** | 531 | /** |
532 | * Returns the toplevel directory in which KStandardDirs | 532 | * Returns the toplevel directory in which KStandardDirs |
533 | * will store things. Most likely $HOME/.kde | 533 | * will store things. Most likely $HOME/.kde |
534 | * Don't use this function if you can use locateLocal | 534 | * Don't use this function if you can use locateLocal |
535 | * @return the toplevel directory | 535 | * @return the toplevel directory |
536 | */ | 536 | */ |
537 | QString localkdedir() const; | 537 | QString localkdedir() const; |
538 | 538 | ||
539 | /** | 539 | /** |
540 | * @return $XDG_DATA_HOME | 540 | * @return $XDG_DATA_HOME |
541 | * See also http://www.freedesktop.org/standards/basedir/draft/basedir-spec/basedir-spec.html | 541 | * See also http://www.freedesktop.org/standards/basedir/draft/basedir-spec/basedir-spec.html |
542 | */ | 542 | */ |
543 | QString localxdgdatadir() const; | 543 | QString localxdgdatadir() const; |
544 | 544 | ||
545 | /** | 545 | /** |
546 | * @return $XDG_CONFIG_HOME | 546 | * @return $XDG_CONFIG_HOME |
547 | * See also http://www.freedesktop.org/standards/basedir/draft/basedir-spec/basedir-spec.html | 547 | * See also http://www.freedesktop.org/standards/basedir/draft/basedir-spec/basedir-spec.html |
548 | */ | 548 | */ |
549 | QString localxdgconfdir() const; | 549 | QString localxdgconfdir() const; |
550 | 550 | ||
551 | /** | 551 | /** |
552 | * Checks for existence and accessability. | 552 | * Checks for existence and accessability. |
553 | * Faster than creating a QFileInfo first. | 553 | * Faster than creating a QFileInfo first. |
554 | * @param fullPath the path to check | 554 | * @param fullPath the path to check |
555 | * @return true if the directory exists | 555 | * @return true if the directory exists |
556 | */ | 556 | */ |
557 | static bool exists(const QString &fullPath); | 557 | static bool exists(const QString &fullPath); |
558 | 558 | ||
559 | /** | 559 | /** |
560 | * Expands all symbolic links and resolves references to | 560 | * Expands all symbolic links and resolves references to |
561 | * '/./', '/../' and extra '/' characters in @p dirname | 561 | * '/./', '/../' and extra '/' characters in @p dirname |
562 | * and returns the canonicalized absolute pathname. | 562 | * and returns the canonicalized absolute pathname. |
563 | * The resulting path will have no symbolic link, '/./' | 563 | * The resulting path will have no symbolic link, '/./' |
564 | * or '/../' components. | 564 | * or '/../' components. |
565 | * @since 3.1 | 565 | * @since 3.1 |
566 | */ | 566 | */ |
567 | static QString realPath(const QString &dirname); | 567 | static QString realPath(const QString &dirname); |
568 | 568 | ||
569 | static void setAppDir( const QString & ); | 569 | static void setAppDir( const QString & ); |
570 | static QString appDir(); | 570 | static QString appDir(); |
571 | 571 | ||
572 | private: | 572 | private: |
573 | 573 | ||
574 | QStringList prefixes; | 574 | QStringList prefixes; |
575 | 575 | ||
576 | // Directory dictionaries | 576 | // Directory dictionaries |
577 | QDict<QStringList> absolutes; | 577 | Q3Dict<QStringList> absolutes; |
578 | QDict<QStringList> relatives; | 578 | Q3Dict<QStringList> relatives; |
579 | 579 | ||
580 | mutable QDict<QStringList> dircache; | 580 | mutable Q3Dict<QStringList> dircache; |
581 | mutable QDict<QString> savelocations; | 581 | mutable Q3Dict<QString> savelocations; |
582 | 582 | ||
583 | // Disallow assignment and copy-construction | 583 | // Disallow assignment and copy-construction |
584 | KStandardDirs( const KStandardDirs& ); | 584 | KStandardDirs( const KStandardDirs& ); |
585 | KStandardDirs& operator= ( const KStandardDirs& ); | 585 | KStandardDirs& operator= ( const KStandardDirs& ); |
586 | 586 | ||
587 | bool addedCustoms; | 587 | bool addedCustoms; |
588 | 588 | ||
589 | class KStandardDirsPrivate; | 589 | class KStandardDirsPrivate; |
590 | KStandardDirsPrivate *d; | 590 | KStandardDirsPrivate *d; |
591 | //US | 591 | //US |
592 | static QString mAppDir; | 592 | static QString mAppDir; |
593 | 593 | ||
594 | void checkConfig() const; | 594 | void checkConfig() const; |
595 | void applyDataRestrictions(const QString &) const; | 595 | void applyDataRestrictions(const QString &) const; |
596 | //US void createSpecialResource(const char*); | 596 | //US void createSpecialResource(const char*); |
597 | }; | 597 | }; |
598 | 598 | ||
599 | /** | 599 | /** |
600 | * \addtogroup locates Locate Functions | 600 | * \addtogroup locates Locate Functions |
601 | * @{ | 601 | * @{ |
602 | * On The Usage Of 'locate' and 'locateLocal' | 602 | * On The Usage Of 'locate' and 'locateLocal' |
603 | * | 603 | * |
604 | * Typical KDE applications use resource files in one out of | 604 | * Typical KDE applications use resource files in one out of |
605 | * three ways: | 605 | * three ways: |
606 | * | 606 | * |
607 | * 1) A resource file is read but is never written. A system | 607 | * 1) A resource file is read but is never written. A system |
608 | * default is supplied but the user can override this | 608 | * default is supplied but the user can override this |
609 | * default in his local .kde directory: | 609 | * default in his local .kde directory: |
610 | * | 610 | * |
611 | * \code | 611 | * \code |
612 | * // Code example | 612 | * // Code example |
613 | * myFile = locate("appdata", "groups.lst"); | 613 | * myFile = locate("appdata", "groups.lst"); |
614 | * myData = myReadGroups(myFile); // myFile may be null | 614 | * myData = myReadGroups(myFile); // myFile may be null |
615 | * \endcode | 615 | * \endcode |
616 | * | 616 | * |
617 | * 2) A resource file is read and written. If the user has no | 617 | * 2) A resource file is read and written. If the user has no |
618 | * local version of the file the system default is used. | 618 | * local version of the file the system default is used. |
619 | * The resource file is always written to the users local | 619 | * The resource file is always written to the users local |
620 | * .kde directory. | 620 | * .kde directory. |
621 | * | 621 | * |
622 | * \code | 622 | * \code |
623 | * // Code example | 623 | * // Code example |
624 | * myFile = locate("appdata", "groups.lst") | 624 | * myFile = locate("appdata", "groups.lst") |
625 | * myData = myReadGroups(myFile); | 625 | * myData = myReadGroups(myFile); |
626 | * ... | 626 | * ... |
627 | * doSomething(myData); | 627 | * doSomething(myData); |
628 | * ... | 628 | * ... |
629 | * myFile = locateLocal("appdata", "groups.lst"); | 629 | * myFile = locateLocal("appdata", "groups.lst"); |