kplato

kptcommand.h

00001 /* This file is part of the KDE project
00002    Copyright (C) 2004, 2005 Dag Andersen <danders@get2net.dk>
00003 
00004    This library is free software; you can redistribute it and/or
00005    modify it under the terms of the GNU Library General Public
00006    License as published by the Free Software Foundation;
00007    version 2 of the License.
00008 
00009    This library is distributed in the hope that it will be useful,
00010    but WITHOUT ANY WARRANTY; without even the implied warranty of
00011    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012    Library General Public License for more details.
00013 
00014    You should have received a copy of the GNU Library General Public License
00015    along with this library; see the file COPYING.LIB.  If not, write to
00016    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00017  * Boston, MA 02110-1301, USA.
00018 */
00019 
00020 #ifndef KPTCOMMAND_H
00021 #define KPTCOMMAND_H
00022 
00023 #include <kcommand.h>
00024 
00025 #include "kptappointment.h"
00026 #include "kptnode.h"
00027 #include "kptduration.h"
00028 #include "kptpart.h"
00029 #include "kpttask.h"
00030 
00031 class QString;
00032 
00033 namespace KPlato
00034 {
00035 
00036 class Account;
00037 class Accounts;
00038 class Project;
00039 class Task;
00040 class Calendar;
00041 class CalendarDay;
00042 class Relation;
00043 class ResourceGroupRequest;
00044 class ResourceRequest;
00045 class ResourceGroup;
00046 class Resource;
00047 class Schedule;
00048 class StandardWorktime;
00049 
00050 class NamedCommand : public KNamedCommand
00051 {
00052 public:
00053     NamedCommand(Part *part, QString name)
00054     : KNamedCommand(name), m_part(part)
00055     {}
00056     
00057     void setCommandType(int type);
00058     
00059 protected:
00060     void setSchDeleted();
00061     void setSchDeleted(bool state);
00062     void setSchScheduled();
00063     void setSchScheduled(bool state);
00064     void addSchScheduled(Schedule *sch);
00065     void addSchDeleted(Schedule *sch);
00066     
00067     QMap<Schedule*, bool> m_schedules;
00068 private:
00069     Part *m_part;
00070 };
00071 
00072 class CalendarAddCmd : public NamedCommand
00073 {
00074 public:
00075     CalendarAddCmd(Part *part, Project *project, Calendar *cal, QString name=0);
00076     void execute();
00077     void unexecute();
00078 
00079 private:
00080     Project *m_project;
00081     Calendar *m_cal;
00082     bool m_added;
00083 };
00084 
00085 class CalendarDeleteCmd : public NamedCommand
00086 {
00087 public:
00088     CalendarDeleteCmd(Part *part, Calendar *cal, QString name=0);
00089     void execute();
00090     void unexecute();
00091 
00092 private:
00093     Calendar *m_cal;
00094 };
00095 
00096 class CalendarModifyNameCmd : public NamedCommand
00097 {
00098 public:
00099     CalendarModifyNameCmd(Part *part, Calendar *cal, QString newvalue, QString name=0);
00100     void execute();
00101     void unexecute();
00102 
00103 private:
00104     Calendar *m_cal;
00105     QString m_newvalue;
00106     QString m_oldvalue;
00107 };
00108 
00109 class CalendarModifyParentCmd : public NamedCommand
00110 {
00111 public:
00112     CalendarModifyParentCmd(Part *part, Calendar *cal, Calendar *newvalue, QString name=0);
00113     void execute();
00114     void unexecute();
00115 
00116 private:
00117     Calendar *m_cal;
00118     Calendar *m_newvalue;
00119     Calendar *m_oldvalue;
00120 };
00121 
00122 class CalendarAddDayCmd : public NamedCommand
00123 {
00124 public:
00125     CalendarAddDayCmd(Part *part, Calendar *cal, CalendarDay *newvalue, QString name=0);
00126     ~CalendarAddDayCmd();
00127     void execute();
00128     void unexecute();
00129 
00130 protected:
00131     Calendar *m_cal;
00132     CalendarDay *m_newvalue;
00133     bool m_mine;
00134 };
00135 
00136 class CalendarRemoveDayCmd : public NamedCommand
00137 {
00138 public:
00139     CalendarRemoveDayCmd(Part *part, Calendar *cal, const QDate &day, QString name=0);
00140     void execute();
00141     void unexecute();
00142 
00143 protected:
00144     Calendar *m_cal;
00145     CalendarDay *m_value;
00146     bool m_mine;
00147 };
00148 
00149 class CalendarModifyDayCmd : public NamedCommand
00150 {
00151 public:
00152     CalendarModifyDayCmd(Part *part, Calendar *cal, CalendarDay *value, QString name=0);
00153     ~CalendarModifyDayCmd();
00154     void execute();
00155     void unexecute();
00156 
00157 private:
00158     Calendar *m_cal;
00159     CalendarDay *m_newvalue;
00160     CalendarDay *m_oldvalue;
00161     bool m_mine;
00162 };
00163 
00164 class CalendarModifyWeekdayCmd : public NamedCommand
00165 {
00166 public:
00167     CalendarModifyWeekdayCmd(Part *part, Calendar *cal, int weekday, CalendarDay *value, QString name=0);
00168     ~CalendarModifyWeekdayCmd();
00169     void execute();
00170     void unexecute();
00171 
00172 private:
00173     int m_weekday;
00174     Calendar *m_cal;
00175     CalendarDay *m_value;
00176     bool m_mine;
00177 };
00178 
00179 
00180 class NodeDeleteCmd : public NamedCommand
00181 {
00182 public:
00183     NodeDeleteCmd(Part *part, Node *node, QString name=0);
00184     ~NodeDeleteCmd();
00185     void execute();
00186     void unexecute();
00187 
00188 private:
00189     Node *m_node;
00190     Node *m_parent;
00191     Project *m_project;
00192     int m_index;
00193     bool m_mine;
00194     QPtrList<Appointment> m_appointments;
00195 
00196 };
00197 
00198 class TaskAddCmd : public NamedCommand
00199 {
00200 public:
00201     TaskAddCmd(Part *part, Project *project, Node *node, Node *after,  QString name=0);
00202     ~TaskAddCmd();
00203     void execute();
00204     void unexecute();
00205 
00206 private:
00207     Project *m_project;
00208     Node *m_node;
00209     Node *m_after;
00210     bool m_added;
00211 };
00212 
00213 class SubtaskAddCmd : public NamedCommand
00214 {
00215 public:
00216     SubtaskAddCmd(Part *part, Project *project, Node *node, Node *parent,  QString name=0);
00217     ~SubtaskAddCmd();
00218     void execute();
00219     void unexecute();
00220 
00221 private:
00222     Project *m_project;
00223     Node *m_node;
00224     Node *m_parent;
00225     bool m_added;
00226 };
00227 
00228 
00229 class NodeModifyNameCmd : public NamedCommand
00230 {
00231 public:
00232     NodeModifyNameCmd(Part *part, Node &node, QString nodename, QString name=0);
00233     void execute();
00234     void unexecute();
00235 
00236 private:
00237     Node &m_node;
00238     QString newName;
00239     QString oldName;
00240 };
00241 
00242 class NodeModifyLeaderCmd : public NamedCommand
00243 {
00244 public:
00245     NodeModifyLeaderCmd(Part *part, Node &node, QString leader, QString name=0);
00246     void execute();
00247     void unexecute();
00248 
00249 private:
00250     Node &m_node;
00251     QString newLeader;
00252     QString oldLeader;
00253 };
00254 
00255 class NodeModifyDescriptionCmd : public NamedCommand
00256 {
00257 public:
00258     NodeModifyDescriptionCmd(Part *part, Node &node, QString description, QString name=0);
00259     void execute();
00260     void unexecute();
00261 
00262 private:
00263     Node &m_node;
00264     QString newDescription;
00265     QString oldDescription;
00266 };
00267 
00268 class NodeModifyConstraintCmd : public NamedCommand
00269 {
00270 public:
00271     NodeModifyConstraintCmd(Part *part, Node &node, Node::ConstraintType c, QString name=0);
00272     void execute();
00273     void unexecute();
00274 
00275 private:
00276     Node &m_node;
00277     Node::ConstraintType newConstraint;
00278     Node::ConstraintType oldConstraint;
00279 
00280 };
00281 
00282 class NodeModifyConstraintStartTimeCmd : public NamedCommand
00283 {
00284 public:
00285     NodeModifyConstraintStartTimeCmd(Part *part, Node &node, QDateTime dt, QString name=0);
00286     void execute();
00287     void unexecute();
00288 
00289 private:
00290     Node &m_node;
00291     QDateTime newTime;
00292     QDateTime oldTime;
00293 
00294 };
00295 class NodeModifyConstraintEndTimeCmd : public NamedCommand
00296 {
00297 public:
00298     NodeModifyConstraintEndTimeCmd(Part *part, Node &node, QDateTime dt, QString name=0);
00299     void execute();
00300     void unexecute();
00301 
00302 private:
00303     Node &m_node;
00304     QDateTime newTime;
00305     QDateTime oldTime;
00306 
00307 };
00308 class NodeModifyStartTimeCmd : public NamedCommand
00309 {
00310 public:
00311     NodeModifyStartTimeCmd(Part *part, Node &node, QDateTime dt, QString name=0);
00312     void execute();
00313     void unexecute();
00314 
00315 private:
00316     Node &m_node;
00317     QDateTime newTime;
00318     QDateTime oldTime;
00319 };
00320 class NodeModifyEndTimeCmd : public NamedCommand
00321 {
00322 public:
00323     NodeModifyEndTimeCmd(Part *part, Node &node, QDateTime dt, QString name=0);
00324     void execute();
00325     void unexecute();
00326 
00327 private:
00328     Node &m_node;
00329     QDateTime newTime;
00330     QDateTime oldTime;
00331 };
00332 class NodeModifyIdCmd : public NamedCommand
00333 {
00334 public:
00335     NodeModifyIdCmd(Part *part, Node &node, QString id, QString name=0);
00336     void execute();
00337     void unexecute();
00338 
00339 private:
00340     Node &m_node;
00341     QString newId;
00342     QString oldId;
00343 };
00344 
00345 class NodeIndentCmd : public NamedCommand
00346 {
00347 public:
00348     NodeIndentCmd(Part *part, Node &node, QString name=0);
00349     void execute();
00350     void unexecute();
00351 
00352 private:
00353     Node &m_node;
00354     Node *m_oldparent, *m_newparent;
00355     int m_oldindex, m_newindex;
00356 };
00357 
00358 class NodeUnindentCmd : public NamedCommand
00359 {
00360 public:
00361     NodeUnindentCmd(Part *part, Node &node, QString name=0);
00362     void execute();
00363     void unexecute();
00364 
00365 private:
00366     Node &m_node;
00367     Node *m_oldparent, *m_newparent;
00368     int m_oldindex, m_newindex;
00369 };
00370 
00371 class NodeMoveUpCmd : public NamedCommand
00372 {
00373 public:
00374     NodeMoveUpCmd(Part *part, Node &node, QString name=0);
00375     void execute();
00376     void unexecute();
00377 
00378 private:
00379     Node &m_node;
00380     Project *m_project;
00381     bool m_moved;
00382 };
00383 
00384 class NodeMoveDownCmd : public NamedCommand
00385 {
00386 public:
00387     NodeMoveDownCmd(Part *part, Node &node, QString name=0);
00388     void execute();
00389     void unexecute();
00390 
00391 private:
00392     Node &m_node;
00393     Project *m_project;
00394     bool m_moved;
00395 };
00396 
00397 class AddRelationCmd : public NamedCommand
00398 {
00399 public:
00400     AddRelationCmd(Part *part, Relation *rel, QString name=0);
00401     ~AddRelationCmd();
00402     void execute();
00403     void unexecute();
00404 
00405 private:
00406     Relation *m_rel;
00407     bool m_taken;
00408 
00409 };
00410 
00411 class DeleteRelationCmd : public NamedCommand
00412 {
00413 public:
00414     DeleteRelationCmd(Part *part, Relation *rel, QString name=0);
00415     ~DeleteRelationCmd();
00416     void execute();
00417     void unexecute();
00418 
00419 private:
00420     Relation *m_rel;
00421     bool m_taken;
00422 
00423 };
00424 
00425 class ModifyRelationTypeCmd : public NamedCommand
00426 {
00427 public:
00428     ModifyRelationTypeCmd(Part *part, Relation *rel, Relation::Type type, QString name=0);
00429     void execute();
00430     void unexecute();
00431 
00432 private:
00433     Relation *m_rel;
00434     Relation::Type m_newtype;
00435     Relation::Type m_oldtype;
00436 
00437 };
00438 
00439 class ModifyRelationLagCmd : public NamedCommand
00440 {
00441 public:
00442     ModifyRelationLagCmd(Part *part, Relation *rel, Duration lag, QString name=0);
00443     void execute();
00444     void unexecute();
00445 
00446 private:
00447     Relation *m_rel;
00448     Duration m_newlag;
00449     Duration m_oldlag;
00450 
00451 };
00452 
00453 class AddResourceRequestCmd : public NamedCommand
00454 {
00455 public:
00456     AddResourceRequestCmd(Part *part, ResourceGroupRequest *group, ResourceRequest *request, QString name=0);
00457     ~AddResourceRequestCmd();
00458     void execute();
00459     void unexecute();
00460 
00461 private:
00462     ResourceGroupRequest *m_group;
00463     ResourceRequest *m_request;
00464     bool m_mine;
00465 
00466 };
00467 
00468 class RemoveResourceRequestCmd : public NamedCommand
00469 {
00470 public:
00471     RemoveResourceRequestCmd(Part *part, ResourceGroupRequest *group, ResourceRequest *request, QString name=0);
00472     ~RemoveResourceRequestCmd();
00473     void execute();
00474     void unexecute();
00475 
00476 private:
00477     ResourceGroupRequest *m_group;
00478     ResourceRequest *m_request;
00479     bool m_mine;
00480 
00481 };
00482 
00483 class ModifyEffortCmd : public NamedCommand
00484 {
00485 public:
00486     ModifyEffortCmd(Part *part, Node &node, Duration oldvalue, Duration newvalue, QString name=0);
00487     void execute();
00488     void unexecute();
00489 
00490 private:
00491     Effort *m_effort;
00492     Duration m_oldvalue, m_newvalue;
00493 
00494 };
00495 
00496 class EffortModifyOptimisticRatioCmd : public NamedCommand
00497 {
00498 public:
00499     EffortModifyOptimisticRatioCmd(Part *part, Node &node, int oldvalue, int newvalue, QString name=0);
00500     void execute();
00501     void unexecute();
00502 
00503 private:
00504     Effort *m_effort;
00505     int m_oldvalue, m_newvalue;
00506 
00507 };
00508 
00509 class EffortModifyPessimisticRatioCmd : public NamedCommand
00510 {
00511 public:
00512     EffortModifyPessimisticRatioCmd(Part *part, Node &node, int oldvalue, int newvalue, QString name=0);
00513     void execute();
00514     void unexecute();
00515 
00516 private:
00517     Effort *m_effort;
00518     int m_oldvalue, m_newvalue;
00519 
00520 };
00521 
00522 class ModifyEffortTypeCmd : public NamedCommand
00523 {
00524 public:
00525     ModifyEffortTypeCmd(Part *part, Node &node, int oldvalue, int newvalue, QString name=0);
00526     void execute();
00527     void unexecute();
00528 
00529 private:
00530     Effort *m_effort;
00531     int m_oldvalue, m_newvalue;
00532 
00533 };
00534 
00535 class EffortModifyRiskCmd : public NamedCommand
00536 {
00537 public:
00538     EffortModifyRiskCmd(Part *part, Node &node, int oldvalue, int newvalue, QString name=0);
00539     void execute();
00540     void unexecute();
00541 
00542 private:
00543     Effort *m_effort;
00544     int m_oldvalue, m_newvalue;
00545 
00546 };
00547 
00548 class AddResourceGroupRequestCmd : public NamedCommand
00549 {
00550 public:
00551     AddResourceGroupRequestCmd(Part *part, Task &task, ResourceGroupRequest *request, QString name=0);
00552     void execute();
00553     void unexecute();
00554 
00555 private:
00556     Task &m_task;
00557     ResourceGroupRequest *m_request;
00558     bool m_mine;
00559 };
00560 
00561 class RemoveResourceGroupRequestCmd : public NamedCommand
00562 {
00563 public:
00564     RemoveResourceGroupRequestCmd(Part *part, ResourceGroupRequest *request, QString name=0);
00565     RemoveResourceGroupRequestCmd(Part *part, Task &task, ResourceGroupRequest *request, QString name=0);
00566     void execute();
00567     void unexecute();
00568 
00569 private:
00570     Task &m_task;
00571     ResourceGroupRequest *m_request;
00572     bool m_mine;
00573 };
00574 
00575 class AddResourceCmd : public NamedCommand
00576 {
00577 public:
00578     AddResourceCmd(Part *part, ResourceGroup *group, Resource *resource, QString name=0);
00579     ~AddResourceCmd();
00580     void execute();
00581     void unexecute();
00582 
00583 protected:
00584 
00585     ResourceGroup *m_group;
00586     Resource *m_resource;
00587     bool m_mine;
00588 };
00589 
00590 class RemoveResourceCmd : public AddResourceCmd
00591 {
00592 public:
00593     RemoveResourceCmd(Part *part, ResourceGroup *group, Resource *resource, QString name=0);
00594     ~RemoveResourceCmd();
00595     void execute();
00596     void unexecute();
00597 
00598 private:
00599     QPtrList<ResourceRequest> m_requests;
00600     QPtrList<Appointment> m_appointments;
00601 };
00602 
00603 class ModifyResourceNameCmd : public NamedCommand
00604 {
00605 public:
00606     ModifyResourceNameCmd(Part *part, Resource *resource, QString value, QString name=0);
00607     void execute();
00608     void unexecute();
00609 
00610 private:
00611 
00612     Resource *m_resource;
00613     QString m_newvalue;
00614     QString m_oldvalue;
00615 };
00616 class ModifyResourceInitialsCmd : public NamedCommand
00617 {
00618 public:
00619     ModifyResourceInitialsCmd(Part *part, Resource *resource, QString value, QString name=0);
00620     void execute();
00621     void unexecute();
00622 
00623 private:
00624     Resource *m_resource;
00625     QString m_newvalue;
00626     QString m_oldvalue;
00627 };
00628 class ModifyResourceEmailCmd : public NamedCommand
00629 {
00630 public:
00631     ModifyResourceEmailCmd(Part *part, Resource *resource, QString value, QString name=0);
00632     void execute();
00633     void unexecute();
00634 
00635 private:
00636     Resource *m_resource;
00637     QString m_newvalue;
00638     QString m_oldvalue;
00639 };
00640 class ModifyResourceTypeCmd : public NamedCommand
00641 {
00642 public:
00643     ModifyResourceTypeCmd(Part *part, Resource *resource, int value, QString name=0);
00644     void execute();
00645     void unexecute();
00646 
00647 private:
00648     Resource *m_resource;
00649     int m_newvalue;
00650     int m_oldvalue;
00651 };
00652 
00653 class ModifyResourceUnitsCmd : public NamedCommand
00654 {
00655 public:
00656     ModifyResourceUnitsCmd(Part *part, Resource *resource, int value, QString name=0);
00657     void execute();
00658     void unexecute();
00659 
00660 private:
00661     Resource *m_resource;
00662     int m_newvalue;
00663     int m_oldvalue;
00664 };
00665 
00666 class ModifyResourceAvailableFromCmd : public NamedCommand
00667 {
00668 public:
00669     ModifyResourceAvailableFromCmd(Part *part, Resource *resource, DateTime value, QString name=0);
00670     void execute();
00671     void unexecute();
00672 
00673 private:
00674     Resource *m_resource;
00675     DateTime m_newvalue;
00676     DateTime m_oldvalue;
00677 };
00678 class ModifyResourceAvailableUntilCmd : public NamedCommand
00679 {
00680 public:
00681     ModifyResourceAvailableUntilCmd(Part *part, Resource *resource, DateTime value, QString name=0);
00682     void execute();
00683     void unexecute();
00684 
00685 private:
00686     Resource *m_resource;
00687     DateTime m_newvalue;
00688     DateTime m_oldvalue;
00689 };
00690 
00691 class ModifyResourceNormalRateCmd : public NamedCommand
00692 {
00693 public:
00694     ModifyResourceNormalRateCmd(Part *part, Resource *resource, double value, QString name=0);
00695     void execute();
00696     void unexecute();
00697 
00698 private:
00699     Resource *m_resource;
00700     double m_newvalue;
00701     double m_oldvalue;
00702 };
00703 class ModifyResourceOvertimeRateCmd : public NamedCommand
00704 {
00705 public:
00706     ModifyResourceOvertimeRateCmd(Part *part, Resource *resource, double value, QString name=0);
00707     void execute();
00708     void unexecute();
00709 
00710 private:
00711     Resource *m_resource;
00712     double m_newvalue;
00713     double m_oldvalue;
00714 };
00715 class ModifyResourceCalendarCmd : public NamedCommand
00716 {
00717 public:
00718     ModifyResourceCalendarCmd(Part *part, Resource *resource, Calendar *value, QString name=0);
00719     void execute();
00720     void unexecute();
00721 
00722 private:
00723     Resource *m_resource;
00724     Calendar *m_newvalue;
00725     Calendar *m_oldvalue;
00726 };
00727 
00728 class RemoveResourceGroupCmd : public NamedCommand
00729 {
00730 public:
00731     RemoveResourceGroupCmd(Part *part, ResourceGroup *group, QString name=0);
00732     ~RemoveResourceGroupCmd();
00733     void execute();
00734     void unexecute();
00735 
00736 protected:
00737 
00738     ResourceGroup *m_group;
00739     bool m_mine;
00740 };
00741 
00742 class AddResourceGroupCmd : public RemoveResourceGroupCmd
00743 {
00744 public:
00745     AddResourceGroupCmd(Part *part, ResourceGroup *group, QString name=0);
00746     void execute();
00747     void unexecute();
00748 };
00749 
00750 class ModifyResourceGroupNameCmd : public NamedCommand
00751 {
00752 public:
00753     ModifyResourceGroupNameCmd(Part *part, ResourceGroup *group, QString value, QString name=0);
00754     void execute();
00755     void unexecute();
00756 
00757 private:
00758     ResourceGroup *m_group;
00759     QString m_newvalue;
00760     QString m_oldvalue;
00761 };
00762 
00763 class TaskModifyProgressCmd : public NamedCommand
00764 {
00765 public:
00766     TaskModifyProgressCmd(Part *part, Task &task, struct Task::Progress &value, QString name=0);
00767     void execute();
00768     void unexecute();
00769 
00770 private:
00771     Task &m_task;
00772     struct Task::Progress m_newvalue;
00773     struct Task::Progress m_oldvalue;
00774 };
00775 
00776 class ProjectModifyBaselineCmd : public NamedCommand
00777 {
00778 public:
00779     ProjectModifyBaselineCmd(Part *part, Project &project, bool value, QString name=0);
00780     void execute();
00781     void unexecute();
00782 
00783 private:
00784     Project &m_project;
00785     bool m_newvalue;
00786     bool m_oldvalue;
00787 };
00788 
00789 class AddAccountCmd : public NamedCommand
00790 {
00791 public:
00792     AddAccountCmd(Part *part, Project &project, Account *account,  Account *parent=0, QString name=0);
00793     AddAccountCmd(Part *part, Project &project, Account *account,  QString parent, QString name=0);
00794     ~AddAccountCmd();
00795     void execute();
00796     void unexecute();
00797 
00798 protected:
00799     bool m_mine;
00800     
00801 private:
00802     Project &m_project;
00803     Account *m_account;
00804     Account *m_parent;
00805     QString m_parentName;
00806 };
00807 
00808 class RemoveAccountCmd : public NamedCommand
00809 {
00810 public:
00811     RemoveAccountCmd(Part *part, Project &project, Account *account, QString name=0);
00812     ~RemoveAccountCmd();
00813     void execute();
00814     void unexecute();
00815     
00816 private:
00817     Project &m_project;
00818     Account *m_account;
00819     bool m_isDefault;
00820     bool m_mine;
00821 
00822 };
00823 
00824 class RenameAccountCmd : public NamedCommand
00825 {
00826 public:
00827     RenameAccountCmd(Part *part, Account *account, QString value, QString name=0);
00828     void execute();
00829     void unexecute();
00830 
00831 private:
00832     Account *m_account;
00833     QString m_oldvalue;
00834     QString m_newvalue;
00835 };
00836 
00837 class ModifyAccountDescriptionCmd : public NamedCommand
00838 {
00839 public:
00840     ModifyAccountDescriptionCmd(Part *part, Account *account, QString value, QString name=0);
00841     void execute();
00842     void unexecute();
00843 
00844 private:
00845     Account *m_account;
00846     QString m_oldvalue;
00847     QString m_newvalue;
00848 };
00849 
00850 class NodeModifyStartupCostCmd : public NamedCommand
00851 {
00852 public:
00853     NodeModifyStartupCostCmd(Part *part, Node &node, double value, QString name=0);
00854     void execute();
00855     void unexecute();
00856 
00857 private:
00858     Node &m_node;
00859     double m_oldvalue;
00860     double m_newvalue;
00861 };
00862 
00863 class NodeModifyShutdownCostCmd : public NamedCommand
00864 {
00865 public:
00866     NodeModifyShutdownCostCmd(Part *part, Node &node, double value, QString name=0);
00867     void execute();
00868     void unexecute();
00869 
00870 private:
00871     Node &m_node;
00872     double m_oldvalue;
00873     double m_newvalue;
00874 };
00875 
00876 class NodeModifyRunningAccountCmd : public NamedCommand
00877 {
00878 public:
00879     NodeModifyRunningAccountCmd(Part *part, Node &node, Account *oldvalue, Account *newvalue, QString name=0);
00880     void execute();
00881     void unexecute();
00882 
00883 private:
00884     Node &m_node;
00885     Account *m_oldvalue;
00886     Account *m_newvalue;
00887 };
00888 
00889 class NodeModifyStartupAccountCmd : public NamedCommand
00890 {
00891 public:
00892     NodeModifyStartupAccountCmd(Part *part, Node &node, Account *oldvalue, Account *newvalue, QString name=0);
00893     void execute();
00894     void unexecute();
00895 
00896 private:
00897     Node &m_node;
00898     Account *m_oldvalue;
00899     Account *m_newvalue;
00900 };
00901 
00902 class NodeModifyShutdownAccountCmd : public NamedCommand
00903 {
00904 public:
00905     NodeModifyShutdownAccountCmd(Part *part, Node &node, Account *oldvalue, Account *newvalue, QString name=0);
00906     void execute();
00907     void unexecute();
00908 
00909 private:
00910     Node &m_node;
00911     Account *m_oldvalue;
00912     Account *m_newvalue;
00913 };
00914 
00915 class ModifyDefaultAccountCmd : public NamedCommand
00916 {
00917 public:
00918     ModifyDefaultAccountCmd(Part *part, Accounts &acc, Account *oldvalue, Account *newvalue, QString name=0);
00919     void execute();
00920     void unexecute();
00921 
00922 private:
00923     Accounts &m_accounts;
00924     Account *m_oldvalue;
00925     Account *m_newvalue;
00926 };
00927 
00928 class ProjectModifyConstraintCmd : public NamedCommand
00929 {
00930 public:
00931     ProjectModifyConstraintCmd(Part *part, Project &node, Node::ConstraintType c, QString name=0);
00932     void execute();
00933     void unexecute();
00934 
00935 private:
00936     Project &m_node;
00937     Node::ConstraintType newConstraint;
00938     Node::ConstraintType oldConstraint;
00939 
00940 };
00941 
00942 class ProjectModifyStartTimeCmd : public NamedCommand
00943 {
00944 public:
00945     ProjectModifyStartTimeCmd(Part *part, Project &node, QDateTime dt, QString name=0);
00946     void execute();
00947     void unexecute();
00948 
00949 private:
00950     Project &m_node;
00951     QDateTime newTime;
00952     QDateTime oldTime;
00953 
00954 };
00955 
00956 class ProjectModifyEndTimeCmd : public NamedCommand
00957 {
00958 public:
00959     ProjectModifyEndTimeCmd(Part *part, Project &project, QDateTime dt, QString name=0);
00960     void execute();
00961     void unexecute();
00962 
00963 private:
00964     Project &m_node;
00965     QDateTime newTime;
00966     QDateTime oldTime;
00967 
00968 };
00969 
00970 
00971 class CalculateProjectCmd : public NamedCommand
00972 {
00973 public:
00974     CalculateProjectCmd(Part *part, Project &project, QString tname, int type, QString name=0);
00975     void execute();
00976     void unexecute();
00977 
00978 private:
00979     Project &m_node;
00980     QString m_typename;
00981     int m_type;
00982     Schedule *newSchedule;
00983     Schedule *oldCurrent;
00984 };
00985 
00986 class RecalculateProjectCmd : public NamedCommand
00987 {
00988 public:
00989     RecalculateProjectCmd(Part *part, Project &project, Schedule &sch, QString name=0);
00990     void execute();
00991     void unexecute();
00992 
00993 private:
00994     Project &m_node;
00995     Schedule &oldSchedule;
00996     Schedule *newSchedule;
00997     bool oldDeleted;
00998     Schedule *oldCurrent;
00999 };
01000 
01001 class ModifyStandardWorktimeYearCmd : public NamedCommand
01002 {
01003 public:
01004     ModifyStandardWorktimeYearCmd(Part *part, StandardWorktime *wt, double oldvalue, double newvalue, QString name=0);
01005     void execute();
01006     void unexecute();
01007 private:
01008     StandardWorktime *swt;
01009     double m_oldvalue;
01010     double m_newvalue;
01011 };
01012 
01013 class ModifyStandardWorktimeMonthCmd : public NamedCommand
01014 {
01015 public:
01016     ModifyStandardWorktimeMonthCmd(Part *part, StandardWorktime *wt, double oldvalue, double newvalue, QString name=0);
01017     void execute();
01018     void unexecute();
01019 private:
01020     StandardWorktime *swt;
01021     double m_oldvalue;
01022     double m_newvalue;
01023 };
01024 
01025 class ModifyStandardWorktimeWeekCmd : public NamedCommand
01026 {
01027 public:
01028     ModifyStandardWorktimeWeekCmd(Part *part, StandardWorktime *wt, double oldvalue, double newvalue, QString name=0);
01029     void execute();
01030     void unexecute();
01031 private:
01032     StandardWorktime *swt;
01033     double m_oldvalue;
01034     double m_newvalue;
01035 };
01036 
01037 class ModifyStandardWorktimeDayCmd : public NamedCommand
01038 {
01039 public:
01040     ModifyStandardWorktimeDayCmd(Part *part, StandardWorktime *wt, double oldvalue, double newvalue, QString name=0);
01041     void execute();
01042     void unexecute();
01043 private:
01044     StandardWorktime *swt;
01045     double m_oldvalue;
01046     double m_newvalue;
01047 };
01048 
01049 
01050 }  //KPlato namespace
01051 
01052 #endif //COMMAND_H
KDE Home | KDE Accessibility Home | Description of Access Keys