# 14.2. Методы KApplication

Класс KApplication предоставляет следующие методы доступа к файловой системе KDE:

     void invokeHTMLHelp ( QString aFilename, QString aTopic ) const
     static const QString& kde_htmldir ()
     static const QString& kde_appsdir ()
     static const QString& kde_icondir ()
     static const QString& kde_datadir ()
     static const QString& kde_localedir ()
     static const QString& kde_cgidir ()
     static const QString& kde_sounddir ()
     static const QString& kde_toolbardir ()
     static const QString& kde_wallpaperdir ()
     static const QString& kde_bindir ()
     static const QString& kde_configdir ()
     static const QString& kde_mimedir ()
     static QString localkdedir ()
     static QString localconfigdir ()
     static QString findFile ( const char *file )

Методы обычно используются с объектом `KApplication` вашего приложения, где `KApplication` предоставляет макрос `kapp`, возвращающий указатель на него:

&#;define kapp KApplication::getKApplication()

Поэтому обычно методы используются так:

     QString sounddir=kapp->kde_sounddir();

В этом примере путь к каталогу KDE с звуковыми файлами заносится в `QString`, к которому вы должны добавить, например, имя файла. Затем вы можете обработать эту информацию и проиграть файл. Всегда проверяйте существование файла, используя метод `exists()` объекта `QFileInfo`.

Среди этих методов,

     void invokeHTMLHelp( QString aFilename, QString aTopic ) const [public]

занимает специальное положение; он запускает помощь KDE. Вы должны использовать его везде, где пользователю требуется доступ к информации, например, когда открыт модальный диалог. Клавиша F1 не будет работать для вызова помощи в этой ситуации, хотя пользователь должен быть обеспечен соответствующей страницей помощи. Чтобы обеспечить ее использование, добавьте кнопку "Help" в ваш диалог и создайте слот, к которому подсоедините кнопку по сигналу `pressed()`. В этом слоте используйте `invokeHTMLHelp()` со ссылкой на соответствующую страницу и раздел; в случае, если документация еще не написана, оставьте вопрос открытым, чтобы решить его при синхронизации документации с приложением.

В документации по `KApplication` говорится:

Вызов просмотрщика HTML файлов помощи KDE.

Параметры: aTopic - Это позволяет реализовать контекстно-зависимую помощь. Его значение добавляется к имени файла после хеш-символа "&#;".

aFilename - Имя файла, который будет загружен. Его расположение определяется автоматически в соответствии с KFSSTND. Если aFilename пусто, используется логическое имя приложения с добавленным к нему расширением .html.

Методы `KApplication` возвращают следующие пути:

     kde_htmldir()         kdedir()/share/doc/HTML         Возвращает каталог, в котором KDE хранит
                                                           свои файлы HTML документации

     kde_appsdir()         kdedir()/share/applnk           Возвращает каталог, в котором приложения
     						      KDE хранят файл .kdelnk

     kde_icondir()         kdedir()/share/icons            Возвращает каталог иконок KDE

     kde_datadir()         kdedir()/share/apps             Возвращает каталог, в котором приложения
                                                           KDE хранят свои специальные данные

     kde_localedir()       kdedir()/share/locale           Возвращает каталог, в котором хранятся файлы с информацией
                                                           о локализации (например, перевод экранных сообщений)

     kde_cgidir()          kdedir()/cgi-bin                Возвращает каталог с cgi-скриптами

     kde_sounddir()        kdedir()/share/sounds           Возвращает каталог со звуковыми файлами.
                                                           Это каталог специальных звуков KDE.
                                                           Звуки приложения хранятся в
                                                           kde_datadir()

     kde_toolbardir()      kdedir()/share/toolbar          Возвращает каталог с иконками кнопок панели инструментов

     kde_wallpaperdir()    kdedir()/share/wallpapers       Возвращает каталог с обоями

     kde_bindir()          kdedir()/bin                    Возвращает каталог с бинарными файлами приложений KDE

     kde_configdir()       kdedir()/share/config           Возвращает каталог с конфигурационными файлами

     kde_mimedir()         kdedir()/share/mimelnk          Возвращает каталог с информацией о mime-типах

     localkdedir()         $HOME/.kde                      Возвращает локальный корневой каталог KDE (KDE base dir)

     localconfigdir()      $HOME/.kde/share/config         Возвращает локальный каталог KDE с конфигурационными файлами

Для поиска определенного файла, используйте `findFile(const char *file)`, который просматривает следующие пути файловой системы KDE:

1. $KDEDIR,

2. $KDEPATH,

3. "&[;KDE Setup&];:Path=" вход в конфигурационном файле.

Если файл не найден, метод QString isEmpty() возвращает True