kivio

kivio_command.cpp
1/* This file is part of the KDE project
2 Copyright (C) 2002 Laurent Montel <lmontel@mandrakesoft.com>
3
4 This library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Library General Public
6 License as published by the Free Software Foundation; either
7 version 2 of the License, or (at your option) any later version.
8
9 This library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Library General Public License for more details.
13
14 You should have received a copy of the GNU Library General Public License
15 along with this library; see the file COPYING.LIB. If not, write to
16 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17 Boston, MA 02110-1301, USA.
18*/
19#include <kcommand.h>
20#include <KoGlobal.h>
21#include "kivio_command.h"
22#include "kivio_page.h"
23#include "kivio_map.h"
24#include "kivio_doc.h"
25#include "kivio_layer.h"
26#include "kivio_group_stencil.h"
27
28KivioChangePageNameCommand::KivioChangePageNameCommand(const TQString &_name, const TQString & _oldPageName, const TQString & _newPageName, KivioPage *_page)
29 : KNamedCommand( _name ),
30 oldPageName(_oldPageName ),
31 newPageName(_newPageName ),
32 m_page( _page )
33{
34
35}
36
37KivioChangePageNameCommand::~KivioChangePageNameCommand()
38{
39}
40
41void KivioChangePageNameCommand::execute()
42{
43 m_page->setPageName( newPageName );
44}
45
46void KivioChangePageNameCommand::unexecute()
47{
48 m_page->setPageName( oldPageName);
49}
50
51
52KivioHidePageCommand::KivioHidePageCommand(const TQString &_name, KivioPage *_page)
53 : KNamedCommand( _name ),
54 m_page( _page )
55{
56}
57
58KivioHidePageCommand::~KivioHidePageCommand()
59{
60}
61
62void KivioHidePageCommand::execute()
63{
64 m_page->setHidePage( true );
65}
66
67void KivioHidePageCommand::unexecute()
68{
69 m_page->setHidePage( false );
70}
71
72KivioShowPageCommand::KivioShowPageCommand( const TQString &_name, KivioPage *_page)
73 : KivioHidePageCommand( _name, _page)
74{
75}
76
77
78KivioAddPageCommand::KivioAddPageCommand(const TQString &_name, KivioPage *_page)
79 : KNamedCommand( _name ),
80 m_page( _page )
81{
82}
83
84KivioAddPageCommand::~KivioAddPageCommand()
85{
86}
87
88void KivioAddPageCommand::execute()
89{
90 m_page->map()->insertPage( m_page );
91 m_page->doc()->insertPage( m_page );
92}
93
94void KivioAddPageCommand::unexecute()
95{
96 m_page->map()->takePage( m_page );
97 m_page->doc()->takePage( m_page );
98}
99
100KivioRemovePageCommand::KivioRemovePageCommand(const TQString &_name, KivioPage *_page)
101 : KNamedCommand( _name ),
102 m_page( _page )
103{
104}
105
106KivioRemovePageCommand::~KivioRemovePageCommand()
107{
108}
109
110void KivioRemovePageCommand::execute()
111{
112 m_page->map()->takePage( m_page );
113 m_page->doc()->takePage( m_page );
114}
115
116void KivioRemovePageCommand::unexecute()
117{
118 m_page->map()->insertPage( m_page );
119 m_page->doc()->insertPage( m_page );
120
121}
122
123KivioAddStencilCommand::KivioAddStencilCommand(const TQString &_name, KivioPage *_page, KivioLayer * _layer, KivioStencil *_stencil )
124 : KNamedCommand( _name ),
125 m_page( _page ),
126 m_layer( _layer),
127 m_stencil( _stencil)
128{
129}
130
131KivioAddStencilCommand::~KivioAddStencilCommand()
132{
133}
134
135void KivioAddStencilCommand::execute()
136{
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); //FIXME: The threshold should probably be zoomed....
141 m_page->doc()->slotSelectionChanged();
142}
143
144void KivioAddStencilCommand::unexecute()
145{
146 m_layer->takeStencilFromList( m_stencil );
147 m_page->doc()->updateView(m_page);
148 m_stencil->unselect();
149 m_page->doc()->slotSelectionChanged();
150}
151
152KivioRemoveStencilCommand::KivioRemoveStencilCommand(const TQString &_name, KivioPage *_page, KivioLayer * _layer, KivioStencil *_stencil )
153 : KivioAddStencilCommand(_name, _page, _layer, _stencil )
154{
155}
156
157KivioChangeStencilTextCommand::KivioChangeStencilTextCommand(const TQString& _name, KivioStencil* _stencil,
158 const TQString& _oldText, const TQString& _newText, KivioPage* _page, const TQString& textBoxName)
159 : KNamedCommand( _name ),
160 m_stencil(_stencil),
161 oldText(_oldText),
162 newText(_newText),
163 m_page(_page),
164 m_textBoxName(textBoxName)
165{
166}
167
168KivioChangeStencilTextCommand::~KivioChangeStencilTextCommand()
169{
170}
171
172void KivioChangeStencilTextCommand::execute()
173{
174 if(m_textBoxName.isEmpty()) {
175 m_stencil->setText(newText);
176 } else {
177 m_stencil->setText(newText, m_textBoxName);
178 }
179
180 m_page->doc()->updateView(m_page);
181}
182
183void KivioChangeStencilTextCommand::unexecute()
184{
185 if(m_textBoxName.isEmpty()) {
186 m_stencil->setText(oldText);
187 } else {
188 m_stencil->setText(oldText, m_textBoxName);
189 }
190
191 m_page->doc()->updateView(m_page);
192}
193
194
195KivioAddLayerCommand::KivioAddLayerCommand( const TQString &_name, KivioPage *_page, KivioLayer * _layer, int _pos )
196 :KNamedCommand( _name ),
197 m_page( _page ),
198 m_layer( _layer),
199 layerPos(_pos)
200{
201}
202
203KivioAddLayerCommand::~KivioAddLayerCommand()
204{
205}
206
207void KivioAddLayerCommand::execute()
208{
209 m_page->insertLayer( layerPos-1, m_layer );
210 m_page->doc()->updateView(m_page);
211 m_page->doc()->resetLayerPanel();
212
213}
214
215void KivioAddLayerCommand::unexecute()
216{
217 m_page->takeLayer( m_layer );
218 m_page->doc()->updateView(m_page);
219 m_page->doc()->resetLayerPanel();
220}
221
222
223KivioRemoveLayerCommand::KivioRemoveLayerCommand( const TQString &_name, KivioPage *_page, KivioLayer * _layer, int _pos )
224 :KivioAddLayerCommand( _name, _page, _layer, _pos )
225{
226}
227
228KivioRenameLayerCommand::KivioRenameLayerCommand( const TQString &_name, KivioLayer * _layer, const TQString & _oldName, const TQString & _newName)
229 :KNamedCommand( _name ),
230 m_layer( _layer ),
231 oldName( _oldName),
232 newName( _newName)
233{
234}
235
236KivioRenameLayerCommand::~KivioRenameLayerCommand()
237{
238}
239
240void KivioRenameLayerCommand::execute()
241{
242 m_layer->setName(newName);
243 m_layer->page()->doc()->resetLayerPanel();
244}
245
246void KivioRenameLayerCommand::unexecute()
247{
248 m_layer->setName(oldName);
249 m_layer->page()->doc()->resetLayerPanel();
250}
251
252KivioResizeStencilCommand::KivioResizeStencilCommand( const TQString &_name, KivioStencil *_stencil, KoRect _initSize, KoRect _endSize, KivioPage *_page)
253 :KNamedCommand( _name ),
254 m_stencil( _stencil),
255 initSize( _initSize),
256 endSize( _endSize ),
257 m_page( _page)
258{
259}
260
261KivioResizeStencilCommand::~KivioResizeStencilCommand()
262{
263}
264
265void KivioResizeStencilCommand::execute()
266{
267 m_stencil->setDimensions( endSize.width(), endSize.height() );
268 m_stencil->setPosition( endSize.x(), endSize.y() );
269 m_page->doc()->updateView(m_page);
270}
271
272void KivioResizeStencilCommand::unexecute()
273{
274 m_stencil->setDimensions( initSize.width(), initSize.height() );
275 m_stencil->setPosition( initSize.x(), initSize.y() );
276 m_page->doc()->updateView(m_page);
277}
278
279
280KivioMoveStencilCommand::KivioMoveStencilCommand( const TQString &_name, KivioStencil *_stencil, KoRect _initSize, KoRect _endSize, KivioPage *_page)
281 :KNamedCommand( _name ),
282 m_stencil( _stencil),
283 initSize( _initSize),
284 endSize( _endSize ),
285 m_page( _page)
286{
287}
288
289KivioMoveStencilCommand::~KivioMoveStencilCommand()
290{
291}
292
293void KivioMoveStencilCommand::execute()
294{
295 m_stencil->setDimensions( endSize.width(), endSize.height() );
296 m_stencil->setPosition( endSize.x(), endSize.y() );
297 m_page->doc()->updateView(m_page);
298}
299
300void KivioMoveStencilCommand::unexecute()
301{
302 m_stencil->setDimensions( initSize.width(), initSize.height() );
303 m_stencil->setPosition( initSize.x(), initSize.y() );
304 m_page->doc()->updateView(m_page);
305}
306
307KivioChangeLayoutCommand::KivioChangeLayoutCommand( const TQString &_name, KivioPage *_page, KoPageLayout _oldLayout, KoPageLayout _newLayout)
308 :KNamedCommand( _name),
309 m_page(_page),
310 oldLayout( _oldLayout),
311 newLayout( _newLayout)
312{
313}
314
315KivioChangeLayoutCommand::~KivioChangeLayoutCommand()
316{
317}
318
319void KivioChangeLayoutCommand::execute()
320{
321 m_page->setPaperLayout(newLayout);
322}
323
324void KivioChangeLayoutCommand::unexecute()
325{
326 m_page->setPaperLayout(oldLayout);
327}
328
329KivioChangeStencilHAlignmentCommand::KivioChangeStencilHAlignmentCommand(const TQString& _name, KivioPage* _page,
330 KivioStencil* _stencil, int _oldAlign, int _newAlign, const TQString& textBoxName)
331 : KNamedCommand(_name),
332 m_page(_page),
333 m_stencil(_stencil),
334 oldAlign(_oldAlign),
335 newAlign(_newAlign),
336 m_textBoxName(textBoxName)
337{
338}
339
340KivioChangeStencilHAlignmentCommand::~KivioChangeStencilHAlignmentCommand()
341{
342}
343
344void KivioChangeStencilHAlignmentCommand::execute()
345{
346 if(m_textBoxName.isEmpty()) {
347 m_stencil->setHTextAlign(newAlign);
348 } else {
349 m_stencil->setHTextAlign(m_textBoxName, newAlign);
350 }
351
352 m_page->doc()->updateView(m_page);
353 m_page->doc()->slotSelectionChanged();
354}
355
356void KivioChangeStencilHAlignmentCommand::unexecute()
357{
358 if(m_textBoxName.isEmpty()) {
359 m_stencil->setHTextAlign(newAlign);
360 } else {
361 m_stencil->setHTextAlign(m_textBoxName, newAlign);
362 }
363
364 m_page->doc()->updateView(m_page);
365 m_page->doc()->slotSelectionChanged();
366}
367
368KivioChangeStencilVAlignmentCommand::KivioChangeStencilVAlignmentCommand(const TQString& _name, KivioPage* _page,
369 KivioStencil* _stencil, int _oldAlign, int _newAlign, const TQString& textBoxName)
370 : KNamedCommand(_name),
371 m_page(_page),
372 m_stencil(_stencil),
373 oldAlign(_oldAlign),
374 newAlign(_newAlign),
375 m_textBoxName(textBoxName)
376{
377}
378
379KivioChangeStencilVAlignmentCommand::~KivioChangeStencilVAlignmentCommand()
380{
381}
382
383void KivioChangeStencilVAlignmentCommand::execute()
384{
385 if(m_textBoxName.isEmpty()) {
386 m_stencil->setVTextAlign(newAlign);
387 } else {
388 m_stencil->setVTextAlign(m_textBoxName, newAlign);
389 }
390
391 m_page->doc()->updateView(m_page);
392 m_page->doc()->slotSelectionChanged();
393}
394
395void KivioChangeStencilVAlignmentCommand::unexecute()
396{
397 if(m_textBoxName.isEmpty()) {
398 m_stencil->setVTextAlign(oldAlign);
399 } else {
400 m_stencil->setVTextAlign(m_textBoxName, oldAlign);
401 }
402
403 m_page->doc()->updateView(m_page);
404 m_page->doc()->slotSelectionChanged();
405}
406
407
408KivioChangeStencilFontCommand::KivioChangeStencilFontCommand(const TQString& _name, KivioPage* _page,
409 KivioStencil* _stencil, const TQFont& _oldFont, const TQFont& _newFont, const TQString& textBoxName)
410 : KNamedCommand(_name),
411 m_page(_page),
412 m_stencil( _stencil),
413 oldFont(_oldFont),
414 newFont(_newFont),
415 m_textBoxName(textBoxName)
416{
417}
418
419KivioChangeStencilFontCommand::~KivioChangeStencilFontCommand()
420{
421}
422
423void KivioChangeStencilFontCommand::execute()
424{
425 if(m_textBoxName.isEmpty()) {
426 m_stencil->setTextFont(newFont);
427 } else {
428 m_stencil->setTextFont(m_textBoxName, newFont);
429 }
430
431 m_page->doc()->updateView(m_page);
432 m_page->doc()->slotSelectionChanged();
433}
434
435void KivioChangeStencilFontCommand::unexecute()
436{
437 if(m_textBoxName.isEmpty()) {
438 m_stencil->setTextFont(oldFont);
439 } else {
440 m_stencil->setTextFont(m_textBoxName, oldFont);
441 }
442
443 m_page->doc()->updateView(m_page);
444 m_page->doc()->slotSelectionChanged();
445}
446
447KivioChangeStencilColorCommand::KivioChangeStencilColorCommand(const TQString& _name, KivioPage* _page,
448 KivioStencil* _stencil, const TQColor& _oldColor, const TQColor& _newColor, ColorType _type, const TQString& textBoxName)
449 : KNamedCommand(_name),
450 m_page(_page),
451 m_stencil(_stencil),
452 oldColor(_oldColor),
453 newColor(_newColor),
454 type(_type),
455 m_textBoxName(textBoxName)
456{
457}
458
459KivioChangeStencilColorCommand::~KivioChangeStencilColorCommand()
460{
461}
462
463void KivioChangeStencilColorCommand::execute()
464{
465 switch( type ) {
466 case CT_TEXTCOLOR:
467 if(m_textBoxName.isEmpty()) {
468 m_stencil->setTextColor(newColor);
469 } else {
470 m_stencil->setTextColor(m_textBoxName, newColor);
471 }
472 break;
473 case CT_BGCOLOR:
474 m_stencil->setBGColor(newColor);
475 break;
476 case CT_FGCOLOR:
477 m_stencil->setFGColor(newColor);
478 break;
479 }
480
481 m_page->doc()->updateView(m_page);
482 m_page->doc()->slotSelectionChanged();
483}
484
485void KivioChangeStencilColorCommand::unexecute()
486{
487 switch( type ) {
488 case CT_TEXTCOLOR:
489 if(m_textBoxName.isEmpty()) {
490 m_stencil->setTextColor(oldColor);
491 } else {
492 m_stencil->setTextColor(m_textBoxName, oldColor);
493 }
494 break;
495 case CT_BGCOLOR:
496 m_stencil->setBGColor(oldColor);
497 break;
498 case CT_FGCOLOR:
499 m_stencil->setFGColor(oldColor);
500 break;
501 }
502
503 m_page->doc()->updateView(m_page);
504 m_page->doc()->slotSelectionChanged();
505}
506
507
508KivioChangeLineWidthCommand::KivioChangeLineWidthCommand( const TQString &_name,
509 KivioPage *_page, KivioStencil * _stencil, double _oldValue, double _newValue)
510 :KNamedCommand( _name),
511 m_page(_page),
512 m_stencil( _stencil ),
513 oldValue( _oldValue),
514 newValue( _newValue)
515{
516}
517
518KivioChangeLineWidthCommand::~KivioChangeLineWidthCommand()
519{
520}
521
522void KivioChangeLineWidthCommand::execute()
523{
524 m_stencil->setLineWidth( newValue );
525 m_page->doc()->updateView(m_page);
526 m_page->doc()->slotSelectionChanged();
527}
528
529void KivioChangeLineWidthCommand::unexecute()
530{
531 m_stencil->setLineWidth( oldValue );
532 m_page->doc()->updateView(m_page);
533 m_page->doc()->slotSelectionChanged();
534}
535
536KivioChangeRotationCommand::KivioChangeRotationCommand( const TQString &_name,
537 KivioPage *_page, KivioStencil * _stencil, int _oldValue, int _newValue)
538 :KNamedCommand( _name),
539 m_page(_page),
540 m_stencil( _stencil ),
541 oldValue( _oldValue),
542 newValue( _newValue)
543{
544}
545
546KivioChangeRotationCommand::~KivioChangeRotationCommand()
547{
548}
549
550void KivioChangeRotationCommand::execute()
551{
552 m_stencil->setRotation( newValue );
553 m_page->doc()->updateView(m_page);
554 m_page->doc()->slotSelectionChanged();
555}
556
557void KivioChangeRotationCommand::unexecute()
558{
559 m_stencil->setRotation( oldValue );
560 m_page->doc()->updateView(m_page);
561 m_page->doc()->slotSelectionChanged();
562}
563
564
565KivioChangeLineStyleCommand::KivioChangeLineStyleCommand( const TQString &_name,
566 KivioPage *_page, KivioStencil * _stencil, int _oldValue, int _newValue)
567 :KNamedCommand( _name),
568 m_page(_page),
569 m_stencil( _stencil ),
570 oldValue( _oldValue),
571 newValue( _newValue)
572{
573}
574
575KivioChangeLineStyleCommand::~KivioChangeLineStyleCommand()
576{
577}
578
579void KivioChangeLineStyleCommand::execute()
580{
581 m_stencil->setLinePattern( newValue );
582 m_page->doc()->updateView(m_page);
583 m_page->doc()->slotSelectionChanged();
584}
585
586void KivioChangeLineStyleCommand::unexecute()
587{
588 m_stencil->setLinePattern( oldValue );
589 m_page->doc()->updateView(m_page);
590 m_page->doc()->slotSelectionChanged();
591}
592
593KivioChangeBeginEndArrowCommand::KivioChangeBeginEndArrowCommand( const TQString &_name, KivioPage *_page, KivioStencil * _stencil, int _oldArrow, int _newArrow, bool _beginArrow)
594 :KNamedCommand( _name),
595 m_page(_page),
596 m_stencil( _stencil ),
597 oldArrow( _oldArrow),
598 newArrow( _newArrow),
599 beginArrow(_beginArrow)
600{
601}
602
603KivioChangeBeginEndArrowCommand::~KivioChangeBeginEndArrowCommand()
604{
605}
606
607void KivioChangeBeginEndArrowCommand::execute()
608{
609 if (beginArrow)
610 m_stencil->setStartAHType(newArrow);
611 else
612 m_stencil->setEndAHType(newArrow);
613 m_page->doc()->updateView(m_page);
614 m_page->doc()->slotSelectionChanged();
615}
616
617void KivioChangeBeginEndArrowCommand::unexecute()
618{
619 if (beginArrow)
620 m_stencil->setStartAHType(oldArrow);
621 else
622 m_stencil->setEndAHType(oldArrow);
623 m_page->doc()->updateView(m_page);
624 m_page->doc()->slotSelectionChanged();
625}
626
627
628KivioChangeBeginEndSizeArrowCommand::KivioChangeBeginEndSizeArrowCommand( const TQString &_name, KivioPage *_page, KivioStencil * _stencil, float _oldH,float _oldW, float _newH,float _newW, bool _beginArrow)
629 :KNamedCommand( _name),
630 m_page(_page),
631 m_stencil( _stencil ),
632 oldWidth( _oldW),
633 oldLength( _oldH),
634 newWidth( _newW),
635 newLength( _newH),
636 beginArrow(_beginArrow)
637{
638}
639
640KivioChangeBeginEndSizeArrowCommand::~KivioChangeBeginEndSizeArrowCommand()
641{
642}
643
644void KivioChangeBeginEndSizeArrowCommand::execute()
645{
646 if (beginArrow)
647 {
648 m_stencil->setStartAHWidth(newWidth);
649 m_stencil->setStartAHLength(newLength);
650 }
651 else
652 {
653 m_stencil->setEndAHWidth(newWidth);
654 m_stencil->setEndAHLength(newLength);
655 }
656 m_page->doc()->updateView(m_page);
657 m_page->doc()->slotSelectionChanged();
658}
659
660void KivioChangeBeginEndSizeArrowCommand::unexecute()
661{
662 if (beginArrow)
663 {
664 m_stencil->setStartAHWidth(oldWidth);
665 m_stencil->setStartAHLength(oldLength);
666 }
667 else
668 {
669 m_stencil->setEndAHWidth(oldWidth);
670 m_stencil->setEndAHLength(oldLength);
671 }
672 m_page->doc()->updateView(m_page);
673 m_page->doc()->slotSelectionChanged();
674}
675
676KivioChangeStencilProtectCommand::KivioChangeStencilProtectCommand( const TQString &_name, KivioPage *_page, KivioStencil * _stencil, bool _state, KVP_TYPE _type)
677 :KNamedCommand( _name),
678 m_page(_page),
679 m_stencil( _stencil ),
680 type( _type),
681 m_bValue( _state)
682{
683}
684
685void KivioChangeStencilProtectCommand::execute()
686{
687 changeValue( m_bValue );
688}
689
690void KivioChangeStencilProtectCommand::unexecute()
691{
692 changeValue( !m_bValue );
693}
694
695void KivioChangeStencilProtectCommand::changeValue( bool b )
696{
697 switch( type )
698 {
699 case KV_POSX:
700 m_stencil->protection()->setBit( kpX, b );
701 break;
702 case KV_POSY:
703 m_stencil->protection()->setBit( kpY, b );
704 break;
705 case KV_WIDTH:
706 m_stencil->protection()->setBit( kpWidth, b );
707 break;
708 case KV_HEIGHT:
709 m_stencil->protection()->setBit( kpHeight, b );
710 break;
711 case KV_ASPECT:
712 m_stencil->protection()->setBit( kpAspect, b );
713 break;
714 case KV_DELETE:
715 m_stencil->protection()->setBit( kpDeletion, b);
716 break;
717 default:
718 break;
719 }
720
721 m_page->doc()->updateProtectPanelCheckBox();
722 m_page->doc()->updateView(m_page);
723}
724
725KivioAddConnectorTargetCommand::KivioAddConnectorTargetCommand(const TQString& name, KivioPage* page,
726 KivioStencil* stencil, const KoPoint& targetPoint) : KNamedCommand(name)
727{
728 m_page = page;
729 m_stencil = stencil;
730 m_targetPoint = targetPoint;
731}
732void KivioAddConnectorTargetCommand::execute()
733{
734 m_stencil->addConnectorTarget(m_targetPoint);
735 m_page->doc()->updateView(m_page);
736}
737
738void KivioAddConnectorTargetCommand::unexecute()
739{
740 m_stencil->removeConnectorTarget(m_targetPoint);
741 m_page->doc()->updateView(m_page);
742}
743
744
745KivioCustomDragCommand::KivioCustomDragCommand(const TQString& name, KivioPage* page, KivioStencil* stencil,
746 int customID, const KoPoint& originalPoint, const KoPoint& newPoint)
747 : KNamedCommand(name)
748{
749 m_page = page;
750 m_stencil = stencil;
751 m_customID = customID;
752 m_originalPoint = originalPoint;
753 m_newPoint = newPoint;
754}
755
756void KivioCustomDragCommand::execute()
757{
758 m_stencil->setCustomIDPoint(m_customID, m_newPoint, m_page);
759 m_page->doc()->updateView(m_page);
760}
761
762void KivioCustomDragCommand::unexecute()
763{
764 m_stencil->setCustomIDPoint(m_customID, m_originalPoint, m_page);
765 m_page->doc()->updateView(m_page);
766}
767
768
769KivioGroupCommand::KivioGroupCommand(const TQString& name, KivioPage* page, KivioLayer* layer,
770 KivioGroupStencil* group)
771 : KNamedCommand(name)
772{
773 m_page = page;
774 m_layer = layer;
775 m_groupStencil = group;
776}
777
778void KivioGroupCommand::execute()
779{
780 TQPtrList<KivioStencil>* list = m_groupStencil->groupList();
781 TQPtrListIterator<KivioStencil> it(*list);
782 KivioStencil* stencil = 0;
783
784 for(; (stencil = it.current()) != 0; ++it) {
785 m_layer->takeStencil(stencil);
786 }
787
788 m_groupStencil->unselect();
789 m_layer->addStencil(m_groupStencil);
790 m_page->doc()->updateView(m_page);
791}
792
793void KivioGroupCommand::unexecute()
794{
795 TQPtrList<KivioStencil>* list = m_groupStencil->groupList();
796 TQPtrListIterator<KivioStencil> it(*list);
797 KivioStencil* stencil = 0;
798
799 for(; (stencil = it.current()) != 0; ++it) {
800 stencil->unselect();
801 m_layer->addStencil(stencil);
802 }
803
804 m_layer->takeStencil(m_groupStencil);
805 m_page->doc()->updateView(m_page);
806}