00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
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 }
01051
01052 #endif //COMMAND_H