21#include "kivio_command.h"
22#include "kivio_page.h"
25#include "kivio_layer.h"
26#include "kivio_group_stencil.h"
28KivioChangePageNameCommand::KivioChangePageNameCommand(
const TQString &_name,
const TQString & _oldPageName,
const TQString & _newPageName, KivioPage *_page)
29 : KNamedCommand( _name ),
30 oldPageName(_oldPageName ),
31 newPageName(_newPageName ),
37KivioChangePageNameCommand::~KivioChangePageNameCommand()
41void KivioChangePageNameCommand::execute()
43 m_page->setPageName( newPageName );
46void KivioChangePageNameCommand::unexecute()
48 m_page->setPageName( oldPageName);
52KivioHidePageCommand::KivioHidePageCommand(
const TQString &_name, KivioPage *_page)
53 : KNamedCommand( _name ),
58KivioHidePageCommand::~KivioHidePageCommand()
62void KivioHidePageCommand::execute()
64 m_page->setHidePage(
true );
67void KivioHidePageCommand::unexecute()
69 m_page->setHidePage(
false );
72KivioShowPageCommand::KivioShowPageCommand(
const TQString &_name, KivioPage *_page)
73 : KivioHidePageCommand( _name, _page)
78KivioAddPageCommand::KivioAddPageCommand(
const TQString &_name, KivioPage *_page)
79 : KNamedCommand( _name ),
84KivioAddPageCommand::~KivioAddPageCommand()
88void KivioAddPageCommand::execute()
90 m_page->map()->insertPage( m_page );
91 m_page->doc()->insertPage( m_page );
94void KivioAddPageCommand::unexecute()
96 m_page->map()->takePage( m_page );
97 m_page->doc()->takePage( m_page );
100KivioRemovePageCommand::KivioRemovePageCommand(
const TQString &_name, KivioPage *_page)
101 : KNamedCommand( _name ),
106KivioRemovePageCommand::~KivioRemovePageCommand()
110void KivioRemovePageCommand::execute()
112 m_page->map()->takePage( m_page );
113 m_page->doc()->takePage( m_page );
116void KivioRemovePageCommand::unexecute()
118 m_page->map()->insertPage( m_page );
119 m_page->doc()->insertPage( m_page );
123KivioAddStencilCommand::KivioAddStencilCommand(
const TQString &_name, KivioPage *_page, KivioLayer * _layer, KivioStencil *_stencil )
124 : KNamedCommand( _name ),
131KivioAddStencilCommand::~KivioAddStencilCommand()
135void KivioAddStencilCommand::execute()
137 m_layer->insertStencil( m_stencil );
138 m_page->doc()->updateView(m_page);
139 m_stencil->unselect();
140 m_stencil->searchForConnections(m_page, 4.0);
141 m_page->doc()->slotSelectionChanged();
144void KivioAddStencilCommand::unexecute()
146 m_layer->takeStencilFromList( m_stencil );
147 m_page->doc()->updateView(m_page);
148 m_stencil->unselect();
149 m_page->doc()->slotSelectionChanged();
152KivioRemoveStencilCommand::KivioRemoveStencilCommand(
const TQString &_name, KivioPage *_page, KivioLayer * _layer, KivioStencil *_stencil )
153 : KivioAddStencilCommand(_name, _page, _layer, _stencil )
157KivioChangeStencilTextCommand::KivioChangeStencilTextCommand(
const TQString& _name, KivioStencil* _stencil,
158 const TQString& _oldText,
const TQString& _newText, KivioPage* _page,
const TQString& textBoxName)
159 : KNamedCommand( _name ),
164 m_textBoxName(textBoxName)
168KivioChangeStencilTextCommand::~KivioChangeStencilTextCommand()
172void KivioChangeStencilTextCommand::execute()
174 if(m_textBoxName.isEmpty()) {
175 m_stencil->setText(newText);
177 m_stencil->setText(newText, m_textBoxName);
180 m_page->doc()->updateView(m_page);
183void KivioChangeStencilTextCommand::unexecute()
185 if(m_textBoxName.isEmpty()) {
186 m_stencil->setText(oldText);
188 m_stencil->setText(oldText, m_textBoxName);
191 m_page->doc()->updateView(m_page);
195KivioAddLayerCommand::KivioAddLayerCommand(
const TQString &_name, KivioPage *_page, KivioLayer * _layer,
int _pos )
196 :KNamedCommand( _name ),
203KivioAddLayerCommand::~KivioAddLayerCommand()
207void KivioAddLayerCommand::execute()
209 m_page->insertLayer( layerPos-1, m_layer );
210 m_page->doc()->updateView(m_page);
211 m_page->doc()->resetLayerPanel();
215void KivioAddLayerCommand::unexecute()
217 m_page->takeLayer( m_layer );
218 m_page->doc()->updateView(m_page);
219 m_page->doc()->resetLayerPanel();
223KivioRemoveLayerCommand::KivioRemoveLayerCommand(
const TQString &_name, KivioPage *_page, KivioLayer * _layer,
int _pos )
224 :KivioAddLayerCommand( _name, _page, _layer, _pos )
228KivioRenameLayerCommand::KivioRenameLayerCommand(
const TQString &_name, KivioLayer * _layer,
const TQString & _oldName,
const TQString & _newName)
229 :KNamedCommand( _name ),
236KivioRenameLayerCommand::~KivioRenameLayerCommand()
240void KivioRenameLayerCommand::execute()
242 m_layer->setName(newName);
243 m_layer->page()->doc()->resetLayerPanel();
246void KivioRenameLayerCommand::unexecute()
248 m_layer->setName(oldName);
249 m_layer->page()->doc()->resetLayerPanel();
252KivioResizeStencilCommand::KivioResizeStencilCommand(
const TQString &_name, KivioStencil *_stencil, KoRect _initSize, KoRect _endSize, KivioPage *_page)
253 :KNamedCommand( _name ),
254 m_stencil( _stencil),
255 initSize( _initSize),
261KivioResizeStencilCommand::~KivioResizeStencilCommand()
265void KivioResizeStencilCommand::execute()
267 m_stencil->setDimensions( endSize.width(), endSize.height() );
268 m_stencil->setPosition( endSize.x(), endSize.y() );
269 m_page->doc()->updateView(m_page);
272void KivioResizeStencilCommand::unexecute()
274 m_stencil->setDimensions( initSize.width(), initSize.height() );
275 m_stencil->setPosition( initSize.x(), initSize.y() );
276 m_page->doc()->updateView(m_page);
280KivioMoveStencilCommand::KivioMoveStencilCommand(
const TQString &_name, KivioStencil *_stencil, KoRect _initSize, KoRect _endSize, KivioPage *_page)
281 :KNamedCommand( _name ),
282 m_stencil( _stencil),
283 initSize( _initSize),
289KivioMoveStencilCommand::~KivioMoveStencilCommand()
293void KivioMoveStencilCommand::execute()
295 m_stencil->setDimensions( endSize.width(), endSize.height() );
296 m_stencil->setPosition( endSize.x(), endSize.y() );
297 m_page->doc()->updateView(m_page);
300void KivioMoveStencilCommand::unexecute()
302 m_stencil->setDimensions( initSize.width(), initSize.height() );
303 m_stencil->setPosition( initSize.x(), initSize.y() );
304 m_page->doc()->updateView(m_page);
307KivioChangeLayoutCommand::KivioChangeLayoutCommand(
const TQString &_name, KivioPage *_page, KoPageLayout _oldLayout, KoPageLayout _newLayout)
308 :KNamedCommand( _name),
310 oldLayout( _oldLayout),
311 newLayout( _newLayout)
315KivioChangeLayoutCommand::~KivioChangeLayoutCommand()
319void KivioChangeLayoutCommand::execute()
321 m_page->setPaperLayout(newLayout);
324void KivioChangeLayoutCommand::unexecute()
326 m_page->setPaperLayout(oldLayout);
329KivioChangeStencilHAlignmentCommand::KivioChangeStencilHAlignmentCommand(
const TQString& _name, KivioPage* _page,
330 KivioStencil* _stencil,
int _oldAlign,
int _newAlign,
const TQString& textBoxName)
331 : KNamedCommand(_name),
336 m_textBoxName(textBoxName)
340KivioChangeStencilHAlignmentCommand::~KivioChangeStencilHAlignmentCommand()
344void KivioChangeStencilHAlignmentCommand::execute()
346 if(m_textBoxName.isEmpty()) {
347 m_stencil->setHTextAlign(newAlign);
349 m_stencil->setHTextAlign(m_textBoxName, newAlign);
352 m_page->doc()->updateView(m_page);
353 m_page->doc()->slotSelectionChanged();
356void KivioChangeStencilHAlignmentCommand::unexecute()
358 if(m_textBoxName.isEmpty()) {
359 m_stencil->setHTextAlign(newAlign);
361 m_stencil->setHTextAlign(m_textBoxName, newAlign);
364 m_page->doc()->updateView(m_page);
365 m_page->doc()->slotSelectionChanged();
368KivioChangeStencilVAlignmentCommand::KivioChangeStencilVAlignmentCommand(
const TQString& _name, KivioPage* _page,
369 KivioStencil* _stencil,
int _oldAlign,
int _newAlign,
const TQString& textBoxName)
370 : KNamedCommand(_name),
375 m_textBoxName(textBoxName)
379KivioChangeStencilVAlignmentCommand::~KivioChangeStencilVAlignmentCommand()
383void KivioChangeStencilVAlignmentCommand::execute()
385 if(m_textBoxName.isEmpty()) {
386 m_stencil->setVTextAlign(newAlign);
388 m_stencil->setVTextAlign(m_textBoxName, newAlign);
391 m_page->doc()->updateView(m_page);
392 m_page->doc()->slotSelectionChanged();
395void KivioChangeStencilVAlignmentCommand::unexecute()
397 if(m_textBoxName.isEmpty()) {
398 m_stencil->setVTextAlign(oldAlign);
400 m_stencil->setVTextAlign(m_textBoxName, oldAlign);
403 m_page->doc()->updateView(m_page);
404 m_page->doc()->slotSelectionChanged();
408KivioChangeStencilFontCommand::KivioChangeStencilFontCommand(
const TQString& _name, KivioPage* _page,
409 KivioStencil* _stencil,
const TQFont& _oldFont,
const TQFont& _newFont,
const TQString& textBoxName)
410 : KNamedCommand(_name),
412 m_stencil( _stencil),
415 m_textBoxName(textBoxName)
419KivioChangeStencilFontCommand::~KivioChangeStencilFontCommand()
423void KivioChangeStencilFontCommand::execute()
425 if(m_textBoxName.isEmpty()) {
426 m_stencil->setTextFont(newFont);
428 m_stencil->setTextFont(m_textBoxName, newFont);
431 m_page->doc()->updateView(m_page);
432 m_page->doc()->slotSelectionChanged();
435void KivioChangeStencilFontCommand::unexecute()
437 if(m_textBoxName.isEmpty()) {
438 m_stencil->setTextFont(oldFont);
440 m_stencil->setTextFont(m_textBoxName, oldFont);
443 m_page->doc()->updateView(m_page);
444 m_page->doc()->slotSelectionChanged();
447KivioChangeStencilColorCommand::KivioChangeStencilColorCommand(
const TQString& _name, KivioPage* _page,
448 KivioStencil* _stencil,
const TQColor& _oldColor,
const TQColor& _newColor, ColorType _type,
const TQString& textBoxName)
449 : KNamedCommand(_name),
455 m_textBoxName(textBoxName)
459KivioChangeStencilColorCommand::~KivioChangeStencilColorCommand()
463void KivioChangeStencilColorCommand::execute()
467 if(m_textBoxName.isEmpty()) {
468 m_stencil->setTextColor(newColor);
470 m_stencil->setTextColor(m_textBoxName, newColor);
474 m_stencil->setBGColor(newColor);
477 m_stencil->setFGColor(newColor);
481 m_page->doc()->updateView(m_page);
482 m_page->doc()->slotSelectionChanged();
485void KivioChangeStencilColorCommand::unexecute()
489 if(m_textBoxName.isEmpty()) {
490 m_stencil->setTextColor(oldColor);
492 m_stencil->setTextColor(m_textBoxName, oldColor);
496 m_stencil->setBGColor(oldColor);
499 m_stencil->setFGColor(oldColor);
503 m_page->doc()->updateView(m_page);
504 m_page->doc()->slotSelectionChanged();
508KivioChangeLineWidthCommand::KivioChangeLineWidthCommand(
const TQString &_name,
509 KivioPage *_page, KivioStencil * _stencil,
double _oldValue,
double _newValue)
510 :KNamedCommand( _name),
512 m_stencil( _stencil ),
513 oldValue( _oldValue),
518KivioChangeLineWidthCommand::~KivioChangeLineWidthCommand()
522void KivioChangeLineWidthCommand::execute()
524 m_stencil->setLineWidth( newValue );
525 m_page->doc()->updateView(m_page);
526 m_page->doc()->slotSelectionChanged();
529void KivioChangeLineWidthCommand::unexecute()
531 m_stencil->setLineWidth( oldValue );
532 m_page->doc()->updateView(m_page);
533 m_page->doc()->slotSelectionChanged();
536KivioChangeRotationCommand::KivioChangeRotationCommand(
const TQString &_name,
537 KivioPage *_page, KivioStencil * _stencil,
int _oldValue,
int _newValue)
538 :KNamedCommand( _name),
540 m_stencil( _stencil ),
541 oldValue( _oldValue),
546KivioChangeRotationCommand::~KivioChangeRotationCommand()
550void KivioChangeRotationCommand::execute()
552 m_stencil->setRotation( newValue );
553 m_page->doc()->updateView(m_page);
554 m_page->doc()->slotSelectionChanged();
557void KivioChangeRotationCommand::unexecute()
559 m_stencil->setRotation( oldValue );
560 m_page->doc()->updateView(m_page);
561 m_page->doc()->slotSelectionChanged();
565KivioChangeLineStyleCommand::KivioChangeLineStyleCommand(
const TQString &_name,
566 KivioPage *_page, KivioStencil * _stencil,
int _oldValue,
int _newValue)
567 :KNamedCommand( _name),
569 m_stencil( _stencil ),
570 oldValue( _oldValue),
575KivioChangeLineStyleCommand::~KivioChangeLineStyleCommand()
579void KivioChangeLineStyleCommand::execute()
581 m_stencil->setLinePattern( newValue );
582 m_page->doc()->updateView(m_page);
583 m_page->doc()->slotSelectionChanged();
586void KivioChangeLineStyleCommand::unexecute()
588 m_stencil->setLinePattern( oldValue );
589 m_page->doc()->updateView(m_page);
590 m_page->doc()->slotSelectionChanged();
593KivioChangeBeginEndArrowCommand::KivioChangeBeginEndArrowCommand(
const TQString &_name, KivioPage *_page, KivioStencil * _stencil,
int _oldArrow,
int _newArrow,
bool _beginArrow)
594 :KNamedCommand( _name),
596 m_stencil( _stencil ),
597 oldArrow( _oldArrow),
598 newArrow( _newArrow),
599 beginArrow(_beginArrow)
603KivioChangeBeginEndArrowCommand::~KivioChangeBeginEndArrowCommand()
607void KivioChangeBeginEndArrowCommand::execute()
610 m_stencil->setStartAHType(newArrow);
612 m_stencil->setEndAHType(newArrow);
613 m_page->doc()->updateView(m_page);
614 m_page->doc()->slotSelectionChanged();
617void KivioChangeBeginEndArrowCommand::unexecute()
620 m_stencil->setStartAHType(oldArrow);
622 m_stencil->setEndAHType(oldArrow);
623 m_page->doc()->updateView(m_page);
624 m_page->doc()->slotSelectionChanged();
628KivioChangeBeginEndSizeArrowCommand::KivioChangeBeginEndSizeArrowCommand(
const TQString &_name, KivioPage *_page, KivioStencil * _stencil,
float _oldH,
float _oldW,
float _newH,
float _newW,
bool _beginArrow)
629 :KNamedCommand( _name),
631 m_stencil( _stencil ),
636 beginArrow(_beginArrow)
640KivioChangeBeginEndSizeArrowCommand::~KivioChangeBeginEndSizeArrowCommand()
644void KivioChangeBeginEndSizeArrowCommand::execute()
648 m_stencil->setStartAHWidth(newWidth);
649 m_stencil->setStartAHLength(newLength);
653 m_stencil->setEndAHWidth(newWidth);
654 m_stencil->setEndAHLength(newLength);
656 m_page->doc()->updateView(m_page);
657 m_page->doc()->slotSelectionChanged();
660void KivioChangeBeginEndSizeArrowCommand::unexecute()
664 m_stencil->setStartAHWidth(oldWidth);
665 m_stencil->setStartAHLength(oldLength);
669 m_stencil->setEndAHWidth(oldWidth);
670 m_stencil->setEndAHLength(oldLength);
672 m_page->doc()->updateView(m_page);
673 m_page->doc()->slotSelectionChanged();
676KivioChangeStencilProtectCommand::KivioChangeStencilProtectCommand(
const TQString &_name, KivioPage *_page, KivioStencil * _stencil,
bool _state, KVP_TYPE _type)
677 :KNamedCommand( _name),
679 m_stencil( _stencil ),
685void KivioChangeStencilProtectCommand::execute()
687 changeValue( m_bValue );
690void KivioChangeStencilProtectCommand::unexecute()
692 changeValue( !m_bValue );
695void KivioChangeStencilProtectCommand::changeValue(
bool b )
700 m_stencil->protection()->setBit( kpX, b );
703 m_stencil->protection()->setBit( kpY, b );
706 m_stencil->protection()->setBit( kpWidth, b );
709 m_stencil->protection()->setBit( kpHeight, b );
712 m_stencil->protection()->setBit( kpAspect, b );
715 m_stencil->protection()->setBit( kpDeletion, b);
721 m_page->doc()->updateProtectPanelCheckBox();
722 m_page->doc()->updateView(m_page);
725KivioAddConnectorTargetCommand::KivioAddConnectorTargetCommand(
const TQString& name, KivioPage* page,
726 KivioStencil* stencil,
const KoPoint& targetPoint) : KNamedCommand(name)
730 m_targetPoint = targetPoint;
732void KivioAddConnectorTargetCommand::execute()
734 m_stencil->addConnectorTarget(m_targetPoint);
735 m_page->doc()->updateView(m_page);
738void KivioAddConnectorTargetCommand::unexecute()
740 m_stencil->removeConnectorTarget(m_targetPoint);
741 m_page->doc()->updateView(m_page);
745KivioCustomDragCommand::KivioCustomDragCommand(
const TQString& name, KivioPage* page, KivioStencil* stencil,
746 int customID,
const KoPoint& originalPoint,
const KoPoint& newPoint)
747 : KNamedCommand(name)
751 m_customID = customID;
752 m_originalPoint = originalPoint;
753 m_newPoint = newPoint;
756void KivioCustomDragCommand::execute()
758 m_stencil->setCustomIDPoint(m_customID, m_newPoint, m_page);
759 m_page->doc()->updateView(m_page);
762void KivioCustomDragCommand::unexecute()
764 m_stencil->setCustomIDPoint(m_customID, m_originalPoint, m_page);
765 m_page->doc()->updateView(m_page);
769KivioGroupCommand::KivioGroupCommand(
const TQString& name, KivioPage* page, KivioLayer* layer,
770 KivioGroupStencil* group)
771 : KNamedCommand(name)
775 m_groupStencil = group;
778void KivioGroupCommand::execute()
780 TQPtrList<KivioStencil>* list = m_groupStencil->groupList();
781 TQPtrListIterator<KivioStencil> it(*list);
782 KivioStencil* stencil = 0;
784 for(; (stencil = it.current()) != 0; ++it) {
785 m_layer->takeStencil(stencil);
788 m_groupStencil->unselect();
789 m_layer->addStencil(m_groupStencil);
790 m_page->doc()->updateView(m_page);
793void KivioGroupCommand::unexecute()
795 TQPtrList<KivioStencil>* list = m_groupStencil->groupList();
796 TQPtrListIterator<KivioStencil> it(*list);
797 KivioStencil* stencil = 0;
799 for(; (stencil = it.current()) != 0; ++it) {
801 m_layer->addStencil(stencil);
804 m_layer->takeStencil(m_groupStencil);
805 m_page->doc()->updateView(m_page);