karm

karm_part.h
00001 #ifndef _KARMPART_H_
00002 #define _KARMPART_H_
00003 
00004 #include <kparts/part.h>
00005 #include "karmerrors.h"
00006 #include <kparts/factory.h>
00007 #include <karmdcopiface.h>
00008 #include "reportcriteria.h"
00009 #include <tqlistview.h>
00010 
00011 class KAccel;
00012 class KAccelMenuWatch;
00013 class KarmTray;
00014 class TQWidget;
00015 class TQPainter;
00016 class KURL;
00017 
00018 class Preferences;
00019 class Task;
00020 class TaskView;
00021 
00030 class karmPart : public KParts::ReadWritePart, virtual public KarmDCOPIface
00031 {
00032   Q_OBJECT
00033   TQ_OBJECT
00034 
00035   private:
00036     void             makeMenus();
00037     TQString          _hastodo( Task* task, const TQString &taskname ) const;
00038     TQString          _hasTask( Task* task, const TQString &taskname ) const;
00039     Task*            _hasUid( Task* task, const TQString &uid ) const;
00040 
00041     KAccel*          _accel;
00042     KAccelMenuWatch* _watcher;
00043     TaskView*        _taskView;
00044     Preferences*     _preferences;
00045     KarmTray*        _tray;
00046     KAction*         actionStart;
00047     KAction*         actionStop;
00048     KAction*         actionStopAll;
00049     KAction*         actionDelete;
00050     KAction*         actionEdit;
00051 //    KAction* actionAddComment;
00052     KAction*         actionMarkAsComplete;
00053     KAction*         actionMarkAsIncomplete;
00054     KAction*         actionPreferences;
00055     KAction*         actionClipTotals;
00056     KAction*         actionClipHistory;
00057     TQString          m_error[ KARM_MAX_ERROR_NO + 1 ];
00058 
00059     friend class KarmTray;
00060 
00061 public:
00062     karmPart(TQWidget *parentWidget, const char *widgetName,
00063              TQObject *parent, const char *name);
00064     // DCOP
00065     void quit();
00066     virtual bool save();
00067     TQString version() const;
00068     TQString taskIdFromName( const TQString &taskName ) const;
00070     int addTask( const TQString &taskName );
00072     TQString setPerCentComplete( const TQString& taskName, int PerCent );
00074     int bookTime( const TQString& taskId, const TQString& iso8601StartDateTime, long durationInMinutes );
00076     TQString getError( int karmErrorNumber ) const;
00077     int totalMinutesForTaskId( const TQString& taskId );
00078     TQString starttimerfor( const TQString &taskname );
00079     TQString stoptimerfor( const TQString &taskname );
00080     TQString deletetodo();
00081     bool    getpromptdelete();
00082     TQString setpromptdelete( bool prompt );
00083     TQString exportcsvfile( TQString filename, TQString from, TQString to, int type = 0, bool decimalMinutes=true, bool allTasks=true, TQString delimiter="r", TQString quote="q" );
00084     TQString importplannerfile( TQString filename );
00085 
00086     virtual ~karmPart();
00087 
00093     virtual void setReadWrite(bool rw);
00094 
00098     virtual void setModified(bool modified);
00099 
00100 protected:
00104     virtual bool openFile();
00105 
00109     virtual bool saveFile();
00110 
00111 protected slots:
00112     void contextMenuRequest( TQListViewItem*, const TQPoint& point, int );
00113     void fileOpen();
00114     void fileSaveAs();
00115     void slotSelectionChanged();
00116     void startNewSession(); 
00117 };
00118 
00119 class KInstance;
00120 class KAboutData;
00121 
00122 class karmPartFactory : public KParts::Factory
00123 {
00124     Q_OBJECT
00125   TQ_OBJECT
00126 public:
00127     karmPartFactory();
00128     virtual ~karmPartFactory();
00129     virtual KParts::Part* createPartObject( TQWidget *parentWidget, const char *widgetName,
00130                                             TQObject *parent, const char *name,
00131                                             const char *classname, const TQStringList &args );
00132     static KInstance* instance();
00133  
00134 private:
00135     static KInstance* s_instance;
00136     static KAboutData* s_about;
00137 };
00138 
00139 #endif // _KARMPART_H_