summaryrefslogtreecommitdiffstats
path: root/karm/karmdcopiface.h
blob: 1135c81e6a9468f1105a62fe20587150c1a0cc8c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
/*
 *   This file only:
 *     Copyright (C) 2004  Mark Bucciarelli <mark@hubcapconsulting.com>
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 *   This program is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *   GNU General Public License for more details.
 *
 *   You should have received a copy of the GNU General Public License along
 *   with this program; if not, write to the
 *      Free Software Foundation, Inc.
 *      51 Franklin Street, Fifth Floor
 *      Boston, MA  02110-1301  USA.
 */
#ifndef KARM_DCOP_IFAC_H
#define KARM_DCOP_IFAC_H

#include <dcopobject.h>

/** Define DCOP interface to karm.  Methods implemented in MainWindow */
class KarmDCOPIface : virtual public DCOPObject
{
  K_DCOP
  k_dcop:

  /** Return karm version. */
  virtual QString version() const = 0;

  /** Return id of task found, empty string if no match. */
  virtual QString taskIdFromName( const QString& taskName ) const = 0;

  /** 
   * Add a new top-level task.
   *
   * A top-level task is one that has no parent tasks.
   * 
   * @param taskName Name of new task.
   *
   * @return 0 on success, error number on failure.
   */
  virtual int addTask( const QString& taskName ) = 0;

  /** 
   * Set percent complete to a task
   *
   * @param taskName Name of new task.
   * @param perCent  percent, e.g. 99
   *
   * @return "" on success, error msg on failure.
   */
   virtual QString setPerCentComplete( const QString& taskName, int perCent ) = 0;

  /** 
   * Add time to a task.  
   *
   * The GUI will be non-responsive until this method returns.
   *
   * @return 0 on success, error number on failure.
   *
   * @param taskId Unique ID of task to add time to 
   *
   * @param iso8601StartDateTime Date and time the booking starts, in extended
   * ISO-8601 format; for example, YYYY-MM-DDTHH:MI:SS format (see
   * Qt::ISODate).  No timezone support--time is interpreted as the local time.
   * If just the date is passed in (i.e., YYYY-MM-DD) , then the time is set to
   * noon.
   *
   * @param durationInMinutes The amount of time to book against the taskId.
   * 
   */ 
  virtual int bookTime( const QString& taskId, const QString& iso8601StartDateTime, 
                        long durationInMinutes ) = 0;

  /** 
   * Return error string associated with karm error number. 
   *
   * @param karmErrorNumber An integer error number.
   *
   * @return String associated with error number.  These strings are
   * internationalized.  An unknown error number produces an empty string as
   * the return value.
   *
   */
  virtual QString getError( int karmErrorNumber ) const = 0;

  /**
   * Total time currently associated with a task.
   *
   * A task has two counters: the total session time and the total time.  Note
   * that th euser can reset both counters.
   *
   * @param taskId Unique ID of task to lookup bookings for.
   */
  virtual int totalMinutesForTaskId( const QString& taskId ) = 0;

  /** Start timer for all tasks with the summary taskname.  */
  // may conflict with unitaskmode
  virtual QString starttimerfor( const QString& taskname ) = 0;

  /** Stop timer for all tasks with the summary taskname.  */
  // may conflict with unitaskmode
  virtual QString stoptimerfor( const QString& taskname ) = 0;

  /** delete the current item */
  virtual QString deletetodo() = 0;

  /** set if prompted on deleting a task */
  virtual QString setpromptdelete( bool prompt ) = 0;

  /** get if prompted on deleting a task */
  virtual bool getpromptdelete() = 0;

  /** export csv history or totals file */
  virtual QString exportcsvfile( QString filename, QString from, QString to, int type = 0, bool decimalMinutes=true, bool allTasks=true, QString delimiter=";", QString quote="'" ) = 0;

  /** import planner project file */
  virtual QString importplannerfile( QString filename ) = 0;

  /** save your tasks */
  virtual bool save() = 0;

  /** Graceful shutdown. */
  virtual void quit() = 0;
};

#endif // KARM_DCOP_IFAC_H