<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
  <!ENTITY kappname "&karm;">
  <!ENTITY package "kdepim">
  <!ENTITY % Russian "INCLUDE"
> <!-- change language only here -->
  <!ENTITY % addindex "IGNORE">
]>

<book lang="&language;">

<bookinfo>
<title
>Руководство &karm;</title>

<authorgroup>
<author
><firstname
>Jonathan</firstname
> <surname
>Singer</surname
> <affiliation
> <address
><email
>jsinger@leeta.net</email
></address>
</affiliation>
</author>

<author
><firstname
>Mark</firstname
> <surname
>Bucciarelli</surname
> <affiliation
> <address
><email
>mark@hubcapconsulting.com</email
></address>
</affiliation>
</author>

<author
><firstname
>Sirtaj</firstname
> <othername
>Singh</othername
> <surname
>Kang</surname
> <affiliation
><address
><email
>taj@kde.org</email
></address
></affiliation>
</author>

<othercredit role="reviewer"
><firstname
>Lauri</firstname
> <surname
>Watts</surname
> <contrib
>Редактор</contrib>
<affiliation
><address
><email
>lauri@kde.org</email
></address
></affiliation>
</othercredit>
<othercredit role="translator"
><firstname
>Александр</firstname
><surname
>Батюхин</surname
><affiliation
><address
><email
>moskal2000@mail.ru</email
></address
></affiliation
><contrib
></contrib
></othercredit
><othercredit role="translator"
><firstname
>Алексей</firstname
><surname
>Опарин</surname
><affiliation
><address
><email
>opaleksej@yandex.ru</email
></address
></affiliation
><contrib
></contrib
></othercredit
> 
</authorgroup>

<copyright>
<year
>2000-2004</year>
<holder
>Jonathan Singer</holder>
</copyright>

<copyright>
<year
>2004-2005</year>
<holder
>Mark Bucciarelli</holder>
</copyright>

<legalnotice
>&FDLNotice;</legalnotice>

<date
>2005-02-02</date>
<releaseinfo
>1.5.0</releaseinfo>

<abstract
><para
>&karm; отслеживает время, затрачиваемое на различные задачи.</para
></abstract>

<keywordset>
<keyword
>KDE</keyword>
<keyword
>karm</keyword>
<keyword
>kdeutils</keyword>
<keyword
>время</keyword>
<keyword
>учёт</keyword>
<keyword
>проект</keyword>
</keywordset>

</bookinfo>

<chapter id="introduction">
<title
>Вступление</title>

<para
>&karm; отслеживает время, затраченное на различные задачи. Это полезно для учёта оплаченного времени, или для учёта времени работы над отдельной задачей по дням.</para>

<para
>Этот журнал времени может быть экспортирован в текстовый файл с запятыми в качестве разделителей для импорта в другие программы учёта и/или управления проектами.</para>

<para
>&karm; определяет бездествие клавиатуры и мыши бездействуют, он может связывать различные задачи с разными рабочими столами.</para>

<para
>&karm; была написана Сиртаем Сингх Кангом (Sirtaj Singh Kang). Слово <quote
>karm</quote
> в переводе с пенджаби (родной язык автора) означает <quote
>работа</quote
>.</para>

</chapter>


<chapter id="using-Karm">
<title
>Использование &karm;</title>

<sect1 id="starting">
<title
>Запуск &karm;</title>

<para
>Введите <command
>karm</command
> в командной строке или выберите <guimenuitem
>Учёт рабочего времени</guimenuitem
> из группы <guisubmenu
>Утилиты</guisubmenu
> (<guisubmenu
>Служебные</guisubmenu
>) главного меню KDE. Доступны стандартные ключи &Qt; и &kde;, их можно просмотреть, введя <userinput
><command
>karm</command
> <option
>--help</option
></userinput
> в командной строке.</para>

<para
>&karm; предоставляет дополнительный командный параметр, позволяющий вам ввести имя файла iCalendar, в котором хранится журнал вашей работы. Имя удалённого файла iCalendar вводится с добавлением префикса http или ftp, например, http://www.mysite.com/mydata/mylabor.ics.</para>

</sect1>

<sect1 id="general-use">
<title
>Задачи</title>

<informalexample>
<para
><emphasis
>Ситуация:</emphasis
> Вы консультант по свободному ПО, у вас много клиентов. У некоторых из них по нескольку проектов. В течение дня вам приходится постоянно переключаться между ними. Вам необходим учёт времени, на основе которого вы хотите ежемесячно предъявлять к оплате счета.</para>
<para
><emphasis
>Решение:</emphasis
> Создайте по одной задаче высшего уровня для каждого клиента и по подзадаче для каждого из клиентских проектов. Для каждого проекта, требующего более детального учёта, создайте группу подзадач в каждом проекте. Отмечайте время двойным щелчком на каждой задаче, над которой работаете в данный момент.</para>
</informalexample>

<para
>&karm; позволяет отслеживать неограниченное количество задач и подзадач любой глубины вложенности. Можно учитывать выполнение одной задачи, или одновременно нескольких.</para>

<para
>Для того чтобы создать задачу высшего уровня, вызовите пункт меню <menuchoice
><shortcut
><keycombo action="simul"
>&Ctrl;<keycap
>N</keycap
></keycombo
></shortcut
> <guimenu
>Задача</guimenu
> <guimenuitem
>Создать</guimenuitem
> </menuchoice
> Для создания подзадачи выберите родительскую задачу и вызовите <menuchoice
> <shortcut
> <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>N</keycap
></keycombo
> </shortcut
> <guimenu
>Задача</guimenu
> <guimenuitem
>Создать подзадачу</guimenuitem
> </menuchoice
>  </para>

<para
>При закрытии &karm; список задач сохраняется в файле, указанном в <menuchoice
> <guimenu
>Настройка</guimenu
> <guimenuitem
>Настроить KArm</guimenuitem
> </menuchoice
>. При следующем запуске список задач обновляется из этого файла.</para>

<para
>&karm; может импортировать и экспортировать задачи. См. <link linkend="interfaces"
>Прочие системы</link
>.</para>

</sect1>

<sect1 id="timers"
><title
>Таймеры</title>

<informalexample>
<para
><emphasis
>Ситуация:</emphasis
> Чтобы оставаться платежеспособным, вам необходимо работать в среднем пять часов в день. Нужен ежедневный и еженедельный учёт.</para>
<para
><emphasis
>Решение:</emphasis
> Сбрасывайте таймер сеанса в начале каждого рабочего дня, и все таймеры - в начале каждой недели.</para
> </informalexample>

<para
>&karm; упрощает учёт времени. Для запуска учёта времени, потраченного на определённую задау, щёлкните дважды на ней. Для остановки учёта щёлкните дважды на задаче ещё раз. Активные задачи отображаются маленькими значками в столбце <guilabel
>Время сеанса</guilabel
>.</para>
	
<para
>Ещё один компонент интерфейса &karm; - значок в системном лотке. Когда задача активна, вторая рука в значке движется. Если навести указатель мыши на этот значок, название активной задачи отобразится во всплывающей подсказке. Если активных задач несколько, их названия будут разделены запятыми.</para>

<para
>Для каждой задачи &karm; ведёт по два таймера - один подсчитывает время сеанса, другой - общее время. По умолчанию &karm; отображает по два столбца для каждого таймера, в итоге каждой задаче отводится четыре столбца.</para>

<variablelist>
<varlistentry
> <term
><guilabel
>Время сеанса</guilabel
></term>
<listitem
><para
>Время, затраченное на задачу с начала сеанса.</para
></listitem
> </varlistentry
> 

<varlistentry
> <term
><guilabel
>Общее время сеанса</guilabel
></term>
<listitem
><para
>Время, затраченное на задачу со всеми её подзадачами с начала сеанса.</para
></listitem
> </varlistentry
> 
<varlistentry
> <term
><guilabel
>Время</guilabel
></term
> <listitem
><para
>Время, затраченное на задачу с момента обнуления всех таймеров.</para
></listitem>
</varlistentry
> 

<varlistentry
> <term
><guilabel
>Общее время</guilabel
></term>
<listitem
><para
>Время, затраченное на задачу со всеми её подзадачами с момента обнуления всех таймеров.</para
></listitem
> </varlistentry
> 
</variablelist>

<para
>Для того чтобы начать новый сеанс, выберите <guimenu
>Файл</guimenu
> <guimenuitem
>Начать новый сеанс</guimenuitem
> </para>

<para
>Чтобы обнулить все таймеры, выберите <guimenu
>Файл</guimenu
> <guimenuitem
>Обнулить все таймеры</guimenuitem
> </para>

<sect2
><title
>Учёт времени на разных рабочих столах</title>

<informalexample>
<para
><emphasis
>Ситуация:</emphasis
> У вас есть два основных проекта, над которыми вы ежедневно работаете. Разумно организовав свою работу, вы держите файлы проекта 1 на Рабочем столе 1, а файлы проекта 2 на Рабочем столе 2.</para>

<para
><emphasis
>Решение:</emphasis
> Свяжите задачу проекта 1 с Рабочим столом, а задачу проекта 2 с Рабочим столом 2. Когда вы переключитесь с одного рабочего стола на другой, &karm; автоматически переключит учёт времени задач.</para>
</informalexample>

<para
>Для того чтобы связать задачу с одним или больше Рабочими столами, выберите <menuchoice
> <shortcut
> <keycombo action="simul"
>&Ctrl;<keycap
>E</keycap
></keycombo
> </shortcut
> <guimenu
>Задача</guimenu
> <guimenuitem
>Правка</guimenuitem
> </menuchoice
> Включите <guilabel
>Автоматическое отслеживание</guilabel
> и выберите Рабочий стол или столы, с которыми хотите связать задачу. Когда любой из выбранных столов станет активным, после недолгой задержки &karm; начнет отсчет времени данной задачи.</para>

</sect2>

<sect2
><title
>Учёт бездействия</title>

<informalexample
> <para
><emphasis
>Ситуация:</emphasis
> Вы ушли с работы в пятницу пораньше и уехали на все выходные, забыв выключить таймер. При вашем возвращении в понедельник таймер все ещё работает.</para>
<para
><emphasis
>Решение:</emphasis
> Включите учёт бездействия.</para>
</informalexample>

<para
>&karm; может определять бездействие ваших мыши и клавиатуры. Если они не подают сигналы дольше определённого количества минут, &karm; выдаст следующий диалог:</para>

<screenshot>
 <screeninfo
>&karm; Определение простоя</screeninfo>
        <mediaobject>
          <imageobject>
            <imagedata fileref="idle-detect.png" format="PNG"/>
          </imageobject>
          <textobject>
            <phrase
>Окно Определение простоя &karm; </phrase>
          </textobject>
        </mediaobject>
</screenshot>

<variablelist>
<varlistentry
><term
><guibutton
>Сбросить и остановить</guibutton
></term>
<listitem
><para
>Вычитает время бездействия из всех активных таймеров и останавливает их.</para
><para
>Вы не работали над задачей (задачами) во время бездействия компьютера, и не работаете до сих пор.</para
></listitem
></varlistentry
> 

<varlistentry
> <term
><guibutton
>Сбросить и продолжить</guibutton
></term>
<listitem
><para
>Вычитает время бездействия из всех активных таймеров, но оставляет их в работе.</para
><para
>Вы не работали над задачей, пока ваш компьютер простаивал, но сейчас работаете. </para
></listitem
></varlistentry
> 

<varlistentry
> <term
><guibutton
>Продолжить отсчёт</guibutton
></term>
<listitem
><para
>Добавляет время простоя ко всем активным таймерам и оставляет их в работе.</para
><para
>Вы работали над задачей во время простоя компьютера, и продолжаете работу. </para
></listitem
></varlistentry
> </variablelist>

</sect2>

</sect1>

<sect1 id="reporting"
><title
>Создание отчётов</title>

<para
>&karm; предоставляет три разных способа получения отчёта о времени работы. Можно распечатать отчёт о длительности сеансов и общем времени работы на принтере; скопировать общий отчёт или журнал в буфер обмена.</para>

<sect2
><title
>Распечатка отчётов</title>
<para
>Для того чтобы вывести общий отчёт на печать, вызоваите <menuchoice
> <shortcut
> <keycombo action="simul"
>&Ctrl;<keycap
>P</keycap
></keycombo
> </shortcut
> <guimenu
>Файл</guimenu
> <guimenuitem
>Печать</guimenuitem
> </menuchoice
> Будет создан отчёт из трёх столбцов, содержащий данные обо всех задачах. В первом столбце будет содержаться название задачи, во втором <guilabel
>Общее время сеанса</guilabel
>, и в третьем - <guilabel
>Общее время</guilabel
>.</para>
</sect2>

<sect2
><title
>Помещение отчёта в буфер обмена</title>
<para
>Для того чтобы создать итоговый отчёт в буфере обмена, выберите <menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;<keycap
>C</keycap
></keycombo
> </shortcut
> <guimenu
>Файл</guimenu
> <guimenuitem
>Копировать итоги в буфер обмена</guimenuitem
></menuchoice
>. </para>

<para
>Этот отчёт создаётся для выбранной задачи и всех её подзадач. Если текущая задача имеет родительскую, &karm; задаст вопрос о том, хотите ли вы создать отчёт только для текущей задачи и всех её подзадач, или для всех задач вообще.</para>

<screenshot>
<screeninfo
>&karm; Копировать данную задачу</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="copy-this-task.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>&karm; Копировать диалог данной задачи</phrase>
</textobject>
</mediaobject>
</screenshot>

<para
>Когда отчёт будет готов, откройте KEdit или другой текстовый редактор, и вставьте данные отчёта.</para>

<literallayout
><computeroutput>
Task Totals
2004-07-10 02:26

  Time    Task
----------------------------------------------
  9:14    kde
   9:14    karm
    1:08    bugs
    0:00    checkin changes
   0:00    promo
   0:00    web stuff
----------------------------------------------
  9:14 Total
</computeroutput
>
</literallayout>

<para
>В первом столбце указано <guilabel
>Общее время</guilabel
> и сделаны отступы, с тем чтобы показать зависимость между задачами и подзадачами. Отчёт о времени включает данные о подзадачах.</para
> 

</sect2>

<sect2
><title
>Помещение журнала в буфер обмена</title>

<para
>Для создания отчёта в буфере обмена, выберите <menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>C</keycap
></keycombo
> </shortcut
> <guimenu
>Файл</guimenu
> <guimenuitem
>Копировать историю в буфер обмена</guimenuitem
></menuchoice
>. </para>

<important
><para
>Необходимо поставить отметку возле переключателя <guilabel
>Вести журнал</guilabel
> в <menuchoice
> <guimenu
>Настройка</guimenu
> <guimenuitem
>Настроить KArm</guimenuitem
> </menuchoice
>. Иначе &karm; сохранит только итоговые, а не детальные данные журнала.</para
></important>

<para
>Этот отчёт составляется только для данной конкретной задачи и её подзадач. В отличие от общего отчёта, этот не дает возможности получить данные обо всех задачах из списка.</para>

<para
>Если вы выберете отчёт в форме журнала, &karm; попросит ввести диапазон данных:</para>

<screenshot>
<screeninfo
>&karm; введите диапазон данных</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="daterange.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>&karm; введите диапазон данных</phrase>
</textobject>
</mediaobject>
</screenshot>

<para
>После ввода диапазона данных, откройте любой текстовый редактор и вставьте в него отчёт.</para>

<literallayout
><computeroutput>
Task History
From Thursday 01 July 2004 to Monday 12 July 2004
Printed on: 2004-07-12 17:18

                               Week of Monday 05 July 2004
     5     6     7     8     9    10    11
-------------------------------------------------------------------------
                                             0:00 kde
                                             0:00  dc
              !:22  1:46  3:14  1:44         8:06  karm
                                             0:00   3.2 feature plan
              1:08                           1:08   bugs
                                             0:00   checkin changes
                                             0:00  promo
                                             0:00  web stuff
-------------------------------------------------------------------------
              2:30  1:46  3:14  1:44         9:14 Total
</computeroutput
>
</literallayout>

<para
>Журнал задач группирует данные по дням и задачам, подводя итог еженедельно. Первые семь столбцов представляют дни недели, восьмая даёт недельный итог, а в девятой указано название задачи. Названия смещены с учётом иерархии задач и подзадач.</para>

</sect2>
</sect1>

<sect1 id="interfaces">
<title
>Прочие системы</title>
<sect2 id="korganizer"
><title
>KOrganizer</title>

<para
>&karm;, как KOrganizer и iCal из Apple, использует для хранения данных общепризнанный стандартный формат <ulink url="http://developer.kde.org/documentation/standards/index.html"
>iCalendar</ulink
>. &karm; может обрабатывать файлы, созданные этими программами.</para>

<warning
><para
>Если один и тот же файл открыт в &karm;, и в  KOrganizer, то, редактируя его в KOrganizer, вы рискуете потерять данные. Безопаснее редактировать файл только в одном из приложений.</para
></warning>

</sect2>

<sect2 id="planner"
><title
>Planner</title>

<para
>Как часто бывает, вам может понадобиться спланировать работу над проектом с помощью инструмента управления проектами Imendio Planner (от <ulink url="http://planner.imendio.org"
>planner.imendio.org</ulink
>) и импортировать его задачи в &karm;, чтобы привести их к общепризнанному стандартному формату <ulink url="http://developer.kde.org/documentation/standards/index.html"
>iCalendar</ulink
>. Сделав это, вы сможете составить расписание задач в KOrganizer и вести их учёт в &karm;. В этом случае вы будете уверены в том, что уложитесь в данные время и бюджет.</para>

</sect2>

<sect2 id="dcop"
><title
>&DCOP;</title>

<para
>&DCOP; - это механизм, при помощи которого программы KDE взаимодействуют друг с другом. KDE-программы предоставляют ряд функций, которые можно вызывать из других программ (например, из сценариев Bash).</para>

<example
><title
>Сценарий Bash, возвращающий версию &karm;</title>
<programlisting
>DCOPID=`dcop | grep karm`
        if [ $DCOPID ]
        then
                VERS=`dcop $DCOPID KarmDCOPIface version`
                echo "&karm; version is $VERS"
        else
                echo "&karm; not running"
        fi
</programlisting>
</example>

<para
>Нынешний интерфейс &karm; с &DCOP; используется в основном для автоматического тестирования, поэтому весьма ограничен. Полное описание интерфейса здесь: <link linkend="dcopappendix"
>Приложение: Интерфейс &DCOP;</link
>.</para>

<para
>Для просмотра полного интерфейса &DCOP; для версии &karm;, установленной в вашей системе, выполните следующий сценарий Bash:</para>

<example
><title
>Вывод интерфейса &karm; с &DCOP; на консоль</title>
<programlisting
>DCOPID=`dcop | grep karm`
        if [ $DCOPID ]
        then
                dcop $DCOPID KarmDCOPIface
        else
                echo "&karm; not running"
        fi
</programlisting>
</example>
</sect2>

<sect2 id="csv-export"
><title
>Экспорт отчёта в CSV</title>

<para
>&karm; может экспортировать как отчёт, так и журнал в файл с разделителями-запятыми. Для экспорта отчёта вызовите пункт меню <menuchoice
> <guimenu
>Файл</guimenu
> <guisubmenu
>Импорт/Экспорт</guisubmenu
> <guimenuitem
>Экспорт в файл CSV ...</guimenuitem
> </menuchoice
>, и &karm; выведет следующий диалог:</para>

<screenshot>
<screeninfo
>&karm;: Диалог экспорта в CSV</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="csvexport.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>&karm;: Диалог экспорта в CSV</phrase>
</textobject>
</mediaobject>
</screenshot>

<para
>Укажите имя файла, в который вы желаете экспортировать данные и измените другие параметры диалога, если это необходимо. Заметьте, что контроль над диапазоном данных возможен только, если вы экспортируете данные журнала, а не общий отчёт. Нажмите <guibutton
>Экспорт</guibutton
>, и &karm; экспортирует данные отчёта о времени всех задач в выбранный вами файл.</para>

<para
>Вот пример вывода:</para>

<literallayout
><computeroutput>
"kde",,,,,0.00,0.00,6.88,9.83
,"karm",,,,6.88,8.70,6.88,9.83
,,"3.2 feature plan",,,0.00,0.00,0.00,0.00
,,"bugs",,,0.00,1.13,0.00,1.13
,,"checkin changes - translation strings",,,0.00,0.00,0.00,0.00
,,"time card report",,,0.00,0.00,0.00,0.00
,"kopete",,,,0.00,0.00,0.00,0.00
,"promo",,,,0.00,0.00,0.00,0.00
,"web stuff",,,,0.00,0.00,0.00,0.00
</computeroutput
>
</literallayout>

<para
>Задачи высшего уровня выведены в первой колонке, подзадачи во второй, и т.д. Хронологические данные выведены после максимальной глубины задач (в нашем случае глубина равна пяти). Первая временная колонка представляет <guilabel
>Время сеанса</guilabel
>, вторая <guilabel
>Время</guilabel
>, третья <guilabel
>Общее время сеанса</guilabel
>, и четвёртая <guilabel
>Общее время</guilabel
>. </para>


</sect2>

<sect2 id="csv-export-history"
><title
>Экспорт журнала в CSV</title>

<para
>Для того чтобы экспортировать журнал задач, вызоваите пункт меню <menuchoice
><guimenu
>Файл</guimenu
> <guisubmenu
>Импорт/Экспорт</guisubmenu
><guimenuitem
>Экспорт журнала в файл CSV</guimenuitem
> </menuchoice
>, и &karm; выведет тот же диалог, что мы видели выше.</para>

<para
>Укажите имя файла, в который хотите экспортировать журнал и укажите диапазон данных для журнала. Измените прочие параметры диалога, если нужно. Нажмите <guibutton
>Экспорт</guibutton
>, и &karm; экспортирует журнал задач в указанный файл.</para>

<para
>Вот пример вывода:</para>

<literallayout
><computeroutput>
Task History
From Tuesday 06 July 2004 to Tuesday 13 July 2004
Printed on: 2004-07-13 18:10
2004-07-06,2004-07-07,2004-07-08,2004-07-09,2004-07-10,2004-07-11,2004-07-12,2004-07-13,
,,,,,,,,0.00,"kde"
,,1.77,3.23,1.73,,1.37,0.82,8.95,,"karm"
,,,,,,,,0.00,,,"3.2 feature plan"
,1.13,,,,,,,1.13,,,"bugs"
,,,,,,,,0.00,,,"checkin changes - translation strings"
,,,,,,,,0.00,,,"time card report"
,,,,,,,,0.00,,"kopete"
,,,,,,,,0.00,,"promo"
,,,,,,,,0.00,,"web stuff"
</computeroutput
>
</literallayout>

<para
>Три строки указывают, когда и для какого диапазона данных был создан этот отчёт. Четвертая строка представляет разделенный запятыми список дат в диапазоне данных в формате ISO 8601 (YYYY-MM-DD). В последующих строках указано время выполнения для каждой задачи. Последняя колонка чисел есть общий итог за все дни. Названия задач отображаются за итоговой колонкой, они смещаются для отображения связей задач с подзадачами. Задачи высшего уровня отображаются сразу за итоговой колонкой.</para>

</sect2>
</sect1>

</chapter>

<chapter id="interface">
<title
>Интерфейс &karm;</title>

<para
>Главное окно &karm; содержит следующие элементы: меню, панель инструментов, окно Задача/Время и строку состояния.</para>

<screenshot>
<screeninfo
>Экран &karm;</screeninfo>
        <mediaobject>
          <imageobject>
            <imagedata fileref="karm.png" format="PNG"/>
          </imageobject>
          <textobject>
            <phrase
>Экран &karm;</phrase>
          </textobject>
        </mediaobject>
</screenshot>

<sect1 id="main-window">
<title
>Окно Задача/Время</title>

<para
>В этом окне отображены различные задачи и время, затраченное на их выполнение в текущем сеансе и в целом. Задачи, для которых ведётся хронометраж в данный момент, обозначены маленьким значком с изображением часов рядом со временем сеанса.</para>

<para
>Для каждой задачи могут создаваться подзадачи. Двойной щелчок на задаче показывает или скрывает её подзадачи. Общее время, затраченное на  задачу, включает в себя время всех её подзадач и её собственное.</para>

</sect1>

<sect1 id="menus">
<title
>Меню &karm;</title>
<sect2>
<title
>Меню <guimenu
>Файл</guimenu
></title>

<variablelist>
<varlistentry>
<term>
<menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;<keycap
>S</keycap
></keycombo
> </shortcut
> <guimenu
>Файл</guimenu
> <guimenuitem
>Сохранить</guimenuitem
> </menuchoice
></term>
<listitem>
<para
><action
>Сохраняет данные о времени, затраченном на текущие задачи и подзадачи</action
></para>
</listitem>
</varlistentry>

<varlistentry>
<term>
<menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;<keycap
>P</keycap
></keycombo
> </shortcut
> <guimenu
>Файл</guimenu
> <guimenuitem
>Печать</guimenuitem
> </menuchoice
></term>
<listitem
><para
><action
>Выводит на печать</action
> окно &karm;</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Файл</guimenu
> <guimenuitem
>Начать новый сеанс</guimenuitem
> </menuchoice
></term>
<listitem>
<para
><action
>Обнуляет</action
> все хронометры сеанса</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Файл</guimenu
> <guimenuitem
>Обнулить все таймеры</guimenuitem
> </menuchoice
></term>
<listitem>
<para
><action
>Обнуляет</action
> все таймеры</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Файл</guimenu
> <guisubmenu
>Импорт/Экспорт</guisubmenu
> <guimenuitem
>Импорт файла устаревшего формата</guimenuitem
> </menuchoice
></term>
<listitem>
<para
><action
>Импортирует</action
> файлы старых версий &karm; (новый формат - iCalendar-style.)</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Файл</guimenu
> <guisubmenu
>Импорт/Экспорт</guisubmenu
> <guimenuitem
>Импорт задач из Planner...</guimenuitem
> </menuchoice
></term>
<listitem>
<para
><action
>Импортирует</action
>проект imendio Planner (смотрите <ulink url="http://planner.imendio.org"
>planner.imendio.org</ulink
>). Все задачи и подзадачи можно импортировать из .planner-файла полностью. Можно импортировать их как подзадачу, создав подзадачу, оставив её помеченной, а затем импортировав. </para>
</listitem>
</varlistentry>

<varlistentry>
<term>
<menuchoice
><guimenu
>Файл</guimenu
> <guisubmenu
>Импорт/Экспорт</guisubmenu
> <guimenuitem
>Экспорт в файл CSV-файл...</guimenuitem
> </menuchoice
></term>
<listitem>
<para
><action
>Экспортирует</action
> <guilabel
>Общее время сеанса</guilabel
>, <guilabel
>Время сеанса</guilabel
>, <guilabel
>Время</guilabel
> и <guilabel
>Общее время</guilabel
> в текстовый файл.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Файл</guimenu
> <guisubmenu
>Импорт/Экспорт</guisubmenu
> <guimenuitem
>Экспорт журнала в CSV-файл...</guimenuitem
> </menuchoice
></term>
<listitem>
<para
><action
>Экспортирует</action
> журнал задач в текстовый файл. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;<keycap
>C</keycap
></keycombo
> </shortcut
> <guimenu
>Файл</guimenu
> <guimenuitem
>Копировать отчёт в буфер обмена</guimenuitem
> </menuchoice
></term>
<listitem>
<para
><action
>Копирует</action
> текущие значения в буфер обмена &kde; </para>
</listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>C</keycap
></keycombo
> </shortcut
> <guimenu
>Файл</guimenu
> <guimenuitem
>Копировать журнал в буфер обмена</guimenuitem
> </menuchoice
></term>
<listitem>
<para
><action
>Копирует</action
> статистику за указанный период в буфер обмена</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;<keycap
>Q</keycap
></keycombo
> </shortcut
> <guimenu
>Файл</guimenu
> <guimenuitem
>Выход</guimenuitem
> </menuchoice
></term>
<listitem>
<para
><action
>Закрывает</action
> &karm;</para>
</listitem>
</varlistentry>
</variablelist>

</sect2>

<sect2>
<title
>Меню <guimenu
>Отсчет</guimenu
></title>

<variablelist>
<varlistentry>
<term>
<menuchoice
><shortcut
><keycap
>S</keycap
></shortcut
> <guimenu
>Отсчет</guimenu
> <guimenuitem
>Пуск</guimenuitem
> </menuchoice>
</term>
<listitem>
<para
><action
>Запускает</action
> счетчик для выбранной задачи</para
></listitem>
</varlistentry>

<varlistentry>
<term>
<menuchoice
><guimenu
>Отсчет</guimenu
> <guimenuitem
>Остановить</guimenuitem
> </menuchoice>
</term>
<listitem>
<para
><action
>Останавливает</action
> счетчик для выбраной задачи</para
></listitem>
</varlistentry>

<varlistentry>
<term>
<menuchoice
><shortcut
><keycap
>&Esc;</keycap
></shortcut
> <guimenu
>Отсчет</guimenu
> <guimenuitem
>Остановить все хронометры</guimenuitem
> </menuchoice>
</term>
<listitem
><para
><action
>Останавливает</action
> счётчики всех задач</para
></listitem>
</varlistentry>
</variablelist>
</sect2>

<sect2>
<title
>Меню <guimenu
>Задача</guimenu
></title>

<variablelist>
<varlistentry>
<term>
<menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;<keycap
>N</keycap
></keycombo
> </shortcut
> <guimenu
>Задача</guimenu
> <guimenuitem
>Создать</guimenuitem
> </menuchoice>
</term>
<listitem
><para
><action
>Добавляет</action
> новую задачу</para
></listitem>
</varlistentry>

<varlistentry>
<term>
<menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>N</keycap
></keycombo
> </shortcut
> <guimenu
>Задание</guimenu
> <guimenuitem
>Создать подзадачу</guimenuitem
> </menuchoice>
</term>
<listitem>
<para
><action
>Добавляет</action
> новую подзадачу к выбранной задаче</para>
</listitem>
</varlistentry>

<varlistentry>
<term>
<menuchoice
><shortcut
> <keycap
>Del</keycap
> </shortcut
> <guimenu
>Задание</guimenu
> <guimenuitem
>Удалить</guimenuitem
> </menuchoice>
</term>
<listitem>
<para
><action
>Удаляет</action
> выбранную задачу или подзачу</para>
</listitem>
</varlistentry>

<varlistentry>
<term>
<menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;<keycap
>E</keycap
></keycombo
> </shortcut
> <guimenu
>Задание</guimenu
> <guimenuitem
>Изменить</guimenuitem
> </menuchoice>
</term>
<listitem>
<para
><action
>Изменяет имя или затраченное время</action
> для выбранной задачи</para
><para
>Есть два варианта изменения значения времени: "абсолютное изменение", в котором сеансы и времена могут быть изменены по отдельности, и "относительное изменение", в котором изменение добавляется или удаляется и из времени сеанса, и из общего времени.</para
><para
>Параметр Автохронометраж позволяет включать и выключать хронометр в зависимости от текущего Рабочего стола &kde;.</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>

<sect2>
<title
>Меню <guimenu
>Настройка</guimenu
></title>
<variablelist>


<varlistentry>
<term>
<menuchoice
><guimenu
>Настройка</guimenu
> <guimenuitem
>Настроить горячие клавиши</guimenuitem
> </menuchoice>
</term>
<listitem
><para
><action
>Открывает</action
> окно для задания горячих клавиш</para>
</listitem>
</varlistentry>

<varlistentry>
<term>
<menuchoice
><guimenu
>Настройка</guimenu
> <guimenuitem
>Настроить KArm</guimenuitem
> </menuchoice>
</term>
<listitem
><para
><action
>Открывает</action
> окно для изменения конфигурации &karm;</para>

<para
>Диалог имеет три вкладки: <guilabel
>Поведение </guilabel
>, в котором можно указать уведомление при отсутствии активности и предупреждение перед удалением комплекта задач, <guilabel
>Вид</guilabel
>, в котором настраиваются поля, отображаемые в главном окне и <guilabel
>Хранилище</guilabel
>, в котором можно указать путь для сохранения файлов по умолчанию при автосохранении, включить его и задать его интервал.</para
> </listitem>
</varlistentry>

</variablelist>
</sect2>

<sect2>
<title
>Меню <guimenu
>Справка</guimenu
></title>
&help.menu.documentation; </sect2>

</sect1>

<sect1 id="tool-bar">
<title
>Панель инструментов</title>
<para
>Панель содержит значки следующих команд:</para>

<note
><para
>(Все они действуют идентично меню команд.)</para
></note>

<itemizedlist>
<listitem
><para
><guiicon
>Пуск</guiicon
></para
></listitem>
<listitem
><para
><guiicon
>Стоп</guiicon
></para
></listitem>
<listitem
><para
><guiicon
>Создать</guiicon
></para
></listitem>
<listitem
><para
><guiicon
>Создать подзадачу</guiicon
></para
></listitem>
<listitem
><para
><guiicon
>Удалить</guiicon
></para
></listitem>
<listitem
><para
><guiicon
>Изменить</guiicon
></para
></listitem>
</itemizedlist>

</sect1>

<sect1 id="status-bar">
<title
>Строка состояния</title>

<para
>Показывает полное время сеанса.</para>
</sect1>

</chapter>

<chapter id="credits">

<title
>Благодарности и Лицензия</title>

<para
>&karm; </para>

<para
>Авторские права на программу: </para>

<itemizedlist>

<listitem
><para
>1997-2000 Sirtaj Singh Kang <email
>taj@kde.org</email
>.</para
>  </listitem
> 

<listitem
><para
>2001-2002 Tomas Pospisek <email
>tpo_deb@sourcepole.ch</email
></para
></listitem>

<listitem
><para
>2003-2004 Mark Bucciarelli<email
>mark@hubcapconsulting.com</email
></para
></listitem>

</itemizedlist>

<para
>Соавторы (в алфавитном порядке)</para>
<itemizedlist>
<listitem
><para
>Allen Winter <email
>winterz@verizon.net</email
></para
></listitem>
<listitem
><para
>David Faure <email
>faure@kde.org</email
></para
></listitem>
<listitem
><para
>Espen Sand <email
>espen@kde.org</email
></para
></listitem>
<listitem
><para
>Gioele Barabucci <email
>gioele@gioelebarabucci.com</email
></para
></listitem>
<listitem
><para
>Jan Schaumann <email
>jschauma@netmeister.org</email
></para
></listitem>
<listitem
><para
>Jesper Pedersen <email
>blackie@ifad.dk</email
></para
></listitem>
<listitem
><para
>Kalle Dalheimer <email
>kalle@kde.org</email
></para
></listitem>
<listitem
><para
>Klar&auml;lvdalens Datakonsult AB</para
></listitem>
<listitem
><para
>Mark Bucciarelli <email
>mark@hubcapconsulting.com</email
></para
></listitem>
<listitem
><para
>Thorsten St&auml;rk <email
>dev@staerk.de</email
></para
></listitem>
<listitem
><para
>Tomas Pospisek <email
>tpo_deb@sourcepole.ch</email
></para
></listitem>
<listitem
><para
>Willi Richert <email
>w.richert@cox.net</email
></para
></listitem>
</itemizedlist>

<para
>Идея &karm; навеяна очень полезной утилитой под названием <application
>titrax</application
>, единственный недостаток которой состоит в том, что она основана на создана с помощью инструментария Xt.</para>

<para
>Documentation copyright 2000-2004 Jonathan Singer <email
>jsinger@leeta.net</email
> and Sirtaj Singh Kang <email
>taj@kde.org</email
>.</para>
&underFDL; &underGPL; </chapter>

<glossary id="glossary">

<glossentry id="gloss-active-task">
<glossterm
>активная задача</glossterm>
<glossdef
><para
>Задача, таймер которой сейчас включен.</para
></glossdef>
</glossentry>

<glossentry id="gloss-dcop">
<glossterm
>&DCOP;</glossterm>
<glossdef
><para
>Протокол межпроцессовых связей, используемый в KDE. Short for Desktop COmmunication Protocol.</para
></glossdef>
</glossentry>

<glossentry id="gloss-desktop">
<glossterm
>рабочий стол</glossterm>
<glossdef
><para
>В GNU/Linux, FreeBSD и других системах, которые используют X-Windows, может быть не один Рабочий стол, по умолчанию их четыре. На каждом Рабочем столе можно работать с  отдельным набором программ и файлов. Когда KDE запускается впервые, вы видите Рабочий стол 1. Нажав <keycombo action="simul"
>&Alt;<keycap
>F2</keycap
></keycombo
>, можно перейти на Рабочий стол 2. Нажатие <keycombo action="simul"
>&Alt;<keycap
>F1</keycap
></keycombo
> приведет нас обратно на Рабочий стол 1. </para
></glossdef
> </glossentry>

<glossentry id="gloss-history">
<glossterm
>журнал</glossterm>
<glossdef
><para
>Если &karm; настроен на ведение журнала, он будет регистрировать каждый случай включения/выключения таймера. Этот журнал никогда не стирается со времени обнуления таймеров, и остается в файле до самого удаления задачи.</para
></glossdef>
</glossentry>

<glossentry id="gloss-session"
> <glossterm
>сеанс</glossterm>
<glossdef
><para
>Определяемая пользователем точка отсчета для таймеров сеанса. Новый сеанс начинается при выборе пункта <menuchoice
><guimenu
>Файл</guimenu
><guimenuitem
>Начать новый сеанс</guimenuitem
></menuchoice
>. Когда начинается новый сеанс, сеансовые данные не обнуляются. </para
></glossdef
> </glossentry>

<glossentry id="gloss-system-time"
> <glossterm
><guilabel
>Время сеанса</guilabel
></glossterm
> <glossdef
><para
>Время, затраченное на задачу с начала сеанса.</para
></glossdef
> </glossentry
> 

<glossentry id="gloss-system-tray"
> <glossterm
>системный лоток</glossterm>
<glossdef
><para
>Системный лоток находится в панели, которая (по умолчанию) находится внизу экрана. В системном лотке <inlinemediaobject
><imageobject
><imagedata fileref="systray.png" format="PNG"/></imageobject
></inlinemediaobject
> значок &karm; крайний справа.</para
></glossdef>
</glossentry>

<glossentry id="gloss-top-level-task">
<glossterm
>задача высшего уровня</glossterm>
<glossdef
><para
>Задача, у которой нет родительских задач.</para
></glossdef>
</glossentry>

<glossentry id="gloss-total-session-time"
> <glossterm
><guilabel
>Общее время сеанса</guilabel
></glossterm
> <glossdef
><para
>Время, затраченное на задачу со всеми её подзадачами с начала сеанса.</para
></glossdef
> </glossentry>
<glossentry
> <glossterm
><guilabel
>Время</guilabel
></glossterm>
<glossdef
><para
>Время, затраченное на задачу с момента обнуления всех таймеров.</para
></glossdef
> </glossentry
> 

<glossentry id="gloss-total-time"
> <glossterm
><guilabel
>Общее время</guilabel
></glossterm>
<glossdef
><para
>Время, затраченное на задачу со всеми её подзадачами с момента обнуления всех таймеров.</para
></glossdef
> </glossentry
> 

</glossary>

<appendix id="installation">
<title
>Установка</title>

<sect1 id="getting-karm">
<title
>Как получить &karm;</title>
&install.intro.documentation; &install.compile.documentation; </sect1>

</appendix>

<appendix id="dcopappendix"
><title
>Интерфейс &DCOP;</title>

<refentry id="dcop-version">
<refmeta>
<refentrytitle
>version</refentrytitle>
</refmeta>
<refnamediv>
<refname
>version</refname>
<refpurpose
>Возврат версии &karm;.</refpurpose>
</refnamediv>
<refsynopsisdiv>
<synopsis
>QString version()
</synopsis>
</refsynopsisdiv>
<refsect1>
<title
>Описание</title>
<para
><function
>version()</function
> - это вызов &DCOP;, возвращающий номер версии &karm;, например 1.5.0. Номер версии возвращается в виде строки типичного GNU-формата major.minor.bugfix.</para>
</refsect1>
</refentry>

<refentry id="dcop-quit">
<refmeta>
<refentrytitle
>quit</refentrytitle>
</refmeta>
<refnamediv>
<refname
>quit</refname>
<refpurpose
>Возвращает выход из &karm;.</refpurpose>
</refnamediv>
<refsynopsisdiv>
<synopsis
>QString quit()
</synopsis>
</refsynopsisdiv>
<refsect1>
<title
>Описание</title>
<para
><function
>quit()</function
> - это вызов &DCOP;, который дает возможность внешним программам аккуратно завершить работу &karm;. </para>
</refsect1>
</refentry>

<refentry id="dcop-hastodo">
<refmeta>
<refentrytitle
>hastodo</refentrytitle>
</refmeta>
<refnamediv>
<refname
>hastodo</refname>
<refpurpose
>Проверка наличия задачи высшего уровня.</refpurpose>
</refnamediv>
<refsynopsisdiv>
<synopsis
>QString hastodo(QString taskname)
</synopsis>
<refsect2>
<title
>Параметры</title>
<variablelist>
<varlistentry>
<term
><parameter
>taskname</parameter
></term>
<listitem>
	<para
>Название искомой задачи.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect2>
</refsynopsisdiv>
<refsect1>
<title
>Описание</title>
<para
><function
>hastodo(QString taskname)</function
> - это вызов &DCOP; для поиска по данному имени. Если имя будет найдено. будет возвращен идентификатор файла  iCalendar, относящегося к этой задаче. Если же имя не найдено, вернется пустая строка. </para>
<para
>Файл iCalendar, который &karm; откроет, и есть искомый файл. Будет найдена не только задача высшего уровня, но и все дерево процессов. Если несколько задач имеют одинаковые названия, будет возвращена первая из найденных.</para>
</refsect1>
</refentry>

<refentry id="dcop-addtodo">
<refmeta>
<refentrytitle
>addtodo</refentrytitle>
</refmeta>
<refnamediv>
<refname
>addtodo</refname>
<refpurpose
>Добавить новую задачу.</refpurpose>
</refnamediv>
<refsynopsisdiv>
<synopsis
>QString addtodo(QString todoname)
</synopsis>
<refsect2>
<title
>Параметры</title>
<variablelist>
<varlistentry>
<term
><parameter
>todoname</parameter
></term>
<listitem>
	<para
>Название новой задачи.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect2>
</refsynopsisdiv>

<refsect1>
<title
>Описание</title>
<para
><function
>addtodo(QString todoname)</function
> - это вызов &DCOP;, который добавляет новую задачу высшего уровня к текущему комплекту. Возвращает идентификатор новой задачи. </para>
</refsect1>
</refentry>

</appendix>

&documentation.index; 
</book>

<!--
Local Variables:
mode: sgml
sgml-minimize-attributes:nil
sgml-general-insert-case:lower
sgml-indent-step:0
sgml-indent-data:nil
End:

// vim:ts=2:sw=2:tw=78:noet
-->
