kivio

kivio_command.cc

00001 /* This file is part of the KDE project
00002    Copyright (C) 2002 Laurent Montel <lmontel@mandrakesoft.com>
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; either
00007    version 2 of the License, or (at your option) any later version.
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 #include <kcommand.h>
00020 #include <KoGlobal.h>
00021 #include "kivio_command.h"
00022 #include "kivio_page.h"
00023 #include "kivio_map.h"
00024 #include "kivio_doc.h"
00025 #include "kivio_layer.h"
00026 #include "kivio_group_stencil.h"
00027 
00028 KivioChangePageNameCommand::KivioChangePageNameCommand(const QString &_name,  const QString & _oldPageName, const QString & _newPageName, KivioPage *_page)
00029     : KNamedCommand( _name ),
00030       oldPageName(_oldPageName ),
00031       newPageName(_newPageName ),
00032       m_page( _page )
00033 {
00034 
00035 }
00036 
00037 KivioChangePageNameCommand::~KivioChangePageNameCommand()
00038 {
00039 }
00040 
00041 void KivioChangePageNameCommand::execute()
00042 {
00043     m_page->setPageName( newPageName );
00044 }
00045 
00046 void KivioChangePageNameCommand::unexecute()
00047 {
00048     m_page->setPageName( oldPageName);
00049 }
00050 
00051 
00052 KivioHidePageCommand::KivioHidePageCommand(const QString &_name, KivioPage *_page)
00053     : KNamedCommand( _name ),
00054       m_page( _page )
00055 {
00056 }
00057 
00058 KivioHidePageCommand::~KivioHidePageCommand()
00059 {
00060 }
00061 
00062 void KivioHidePageCommand::execute()
00063 {
00064     m_page->setHidePage( true );
00065 }
00066 
00067 void KivioHidePageCommand::unexecute()
00068 {
00069     m_page->setHidePage( false );
00070 }
00071 
00072 KivioShowPageCommand::KivioShowPageCommand( const QString &_name, KivioPage *_page)
00073     : KivioHidePageCommand( _name, _page)
00074 {
00075 }
00076 
00077 
00078 KivioAddPageCommand::KivioAddPageCommand(const QString &_name, KivioPage *_page)
00079     : KNamedCommand( _name ),
00080       m_page( _page )
00081 {
00082 }
00083 
00084 KivioAddPageCommand::~KivioAddPageCommand()
00085 {
00086 }
00087 
00088 void KivioAddPageCommand::execute()
00089 {
00090     m_page->map()->insertPage( m_page );
00091     m_page->doc()->insertPage( m_page );
00092 }
00093 
00094 void KivioAddPageCommand::unexecute()
00095 {
00096     m_page->map()->takePage( m_page );
00097     m_page->doc()->takePage( m_page );
00098 }
00099 
00100 KivioRemovePageCommand::KivioRemovePageCommand(const QString &_name, KivioPage *_page)
00101     : KNamedCommand( _name ),
00102       m_page( _page )
00103 {
00104 }
00105 
00106 KivioRemovePageCommand::~KivioRemovePageCommand()
00107 {
00108 }
00109 
00110 void KivioRemovePageCommand::execute()
00111 {
00112     m_page->map()->takePage( m_page );
00113     m_page->doc()->takePage( m_page );
00114 }
00115 
00116 void KivioRemovePageCommand::unexecute()
00117 {
00118     m_page->map()->insertPage( m_page );
00119     m_page->doc()->insertPage( m_page );
00120 
00121 }
00122 
00123 KivioAddStencilCommand::KivioAddStencilCommand(const QString &_name, KivioPage *_page,  KivioLayer * _layer, KivioStencil *_stencil )
00124     : KNamedCommand( _name ),
00125       m_page( _page ),
00126       m_layer( _layer),
00127       m_stencil( _stencil)
00128 {
00129 }
00130 
00131 KivioAddStencilCommand::~KivioAddStencilCommand()
00132 {
00133 }
00134 
00135 void KivioAddStencilCommand::execute()
00136 {
00137     m_layer->insertStencil( m_stencil );
00138     m_page->doc()->updateView(m_page);
00139     m_stencil->unselect();
00140     m_stencil->searchForConnections(m_page, 4.0); //FIXME: The threshold should probably be zoomed....
00141     m_page->doc()->slotSelectionChanged();
00142 }
00143 
00144 void KivioAddStencilCommand::unexecute()
00145 {
00146     m_layer->takeStencilFromList( m_stencil );
00147     m_page->doc()->updateView(m_page);
00148     m_stencil->unselect();
00149     m_page->doc()->slotSelectionChanged();
00150 }
00151 
00152 KivioRemoveStencilCommand::KivioRemoveStencilCommand(const QString &_name, KivioPage *_page,  KivioLayer * _layer, KivioStencil *_stencil )
00153     : KivioAddStencilCommand(_name, _page, _layer, _stencil )
00154 {
00155 }
00156 
00157 KivioChangeStencilTextCommand::KivioChangeStencilTextCommand(const QString& _name, KivioStencil* _stencil,
00158     const QString& _oldText, const QString& _newText, KivioPage* _page, const QString& textBoxName)
00159     : KNamedCommand( _name ),
00160       m_stencil(_stencil),
00161       oldText(_oldText),
00162       newText(_newText),
00163       m_page(_page),
00164       m_textBoxName(textBoxName)
00165 {
00166 }
00167 
00168 KivioChangeStencilTextCommand::~KivioChangeStencilTextCommand()
00169 {
00170 }
00171 
00172 void KivioChangeStencilTextCommand::execute()
00173 {
00174   if(m_textBoxName.isEmpty()) {
00175     m_stencil->setText(newText);
00176   } else {
00177     m_stencil->setText(newText, m_textBoxName);
00178   }
00179 
00180   m_page->doc()->updateView(m_page);
00181 }
00182 
00183 void KivioChangeStencilTextCommand::unexecute()
00184 {
00185   if(m_textBoxName.isEmpty()) {
00186     m_stencil->setText(oldText);
00187   } else {
00188     m_stencil->setText(oldText, m_textBoxName);
00189   }
00190 
00191   m_page->doc()->updateView(m_page);
00192 }
00193 
00194 
00195 KivioAddLayerCommand::KivioAddLayerCommand( const QString &_name, KivioPage *_page, KivioLayer * _layer, int _pos )
00196     :KNamedCommand( _name ),
00197      m_page( _page ),
00198      m_layer( _layer),
00199      layerPos(_pos)
00200 {
00201 }
00202 
00203 KivioAddLayerCommand::~KivioAddLayerCommand()
00204 {
00205 }
00206 
00207 void KivioAddLayerCommand::execute()
00208 {
00209     m_page->insertLayer( layerPos-1, m_layer );
00210     m_page->doc()->updateView(m_page);
00211     m_page->doc()->resetLayerPanel();
00212 
00213 }
00214 
00215 void KivioAddLayerCommand::unexecute()
00216 {
00217     m_page->takeLayer( m_layer );
00218     m_page->doc()->updateView(m_page);
00219     m_page->doc()->resetLayerPanel();
00220 }
00221 
00222 
00223 KivioRemoveLayerCommand::KivioRemoveLayerCommand( const QString &_name, KivioPage *_page, KivioLayer * _layer, int _pos )
00224     :KivioAddLayerCommand( _name, _page, _layer, _pos )
00225 {
00226 }
00227 
00228 KivioRenameLayerCommand::KivioRenameLayerCommand( const QString &_name, KivioLayer * _layer, const QString & _oldName, const QString & _newName)
00229     :KNamedCommand( _name ),
00230      m_layer( _layer ),
00231      oldName( _oldName),
00232      newName( _newName)
00233 {
00234 }
00235 
00236 KivioRenameLayerCommand::~KivioRenameLayerCommand()
00237 {
00238 }
00239 
00240 void KivioRenameLayerCommand::execute()
00241 {
00242     m_layer->setName(newName);
00243     m_layer->page()->doc()->resetLayerPanel();
00244 }
00245 
00246 void KivioRenameLayerCommand::unexecute()
00247 {
00248     m_layer->setName(oldName);
00249     m_layer->page()->doc()->resetLayerPanel();
00250 }
00251 
00252 KivioResizeStencilCommand::KivioResizeStencilCommand( const QString &_name, KivioStencil *_stencil, KoRect _initSize, KoRect _endSize, KivioPage *_page)
00253     :KNamedCommand( _name ),
00254      m_stencil( _stencil),
00255      initSize( _initSize),
00256      endSize( _endSize ),
00257      m_page( _page)
00258 {
00259 }
00260 
00261 KivioResizeStencilCommand::~KivioResizeStencilCommand()
00262 {
00263 }
00264 
00265 void KivioResizeStencilCommand::execute()
00266 {
00267     m_stencil->setDimensions( endSize.width(), endSize.height() );
00268     m_stencil->setPosition( endSize.x(), endSize.y() );
00269     m_page->doc()->updateView(m_page);
00270 }
00271 
00272 void KivioResizeStencilCommand::unexecute()
00273 {
00274     m_stencil->setDimensions( initSize.width(), initSize.height() );
00275     m_stencil->setPosition( initSize.x(), initSize.y() );
00276     m_page->doc()->updateView(m_page);
00277 }
00278 
00279 
00280 KivioMoveStencilCommand::KivioMoveStencilCommand( const QString &_name, KivioStencil *_stencil, KoRect _initSize, KoRect _endSize, KivioPage *_page)
00281     :KNamedCommand( _name ),
00282      m_stencil( _stencil),
00283      initSize( _initSize),
00284      endSize( _endSize ),
00285      m_page( _page)
00286 {
00287 }
00288 
00289 KivioMoveStencilCommand::~KivioMoveStencilCommand()
00290 {
00291 }
00292 
00293 void KivioMoveStencilCommand::execute()
00294 {
00295     m_stencil->setDimensions( endSize.width(), endSize.height() );
00296     m_stencil->setPosition( endSize.x(), endSize.y() );
00297     m_page->doc()->updateView(m_page);
00298 }
00299 
00300 void KivioMoveStencilCommand::unexecute()
00301 {
00302     m_stencil->setDimensions( initSize.width(), initSize.height() );
00303     m_stencil->setPosition( initSize.x(), initSize.y() );
00304     m_page->doc()->updateView(m_page);
00305 }
00306 
00307 KivioChangeLayoutCommand::KivioChangeLayoutCommand( const QString &_name, KivioPage *_page, KoPageLayout _oldLayout, KoPageLayout _newLayout)
00308     :KNamedCommand( _name),
00309      m_page(_page),
00310      oldLayout( _oldLayout),
00311      newLayout( _newLayout)
00312 {
00313 }
00314 
00315 KivioChangeLayoutCommand::~KivioChangeLayoutCommand()
00316 {
00317 }
00318 
00319 void KivioChangeLayoutCommand::execute()
00320 {
00321     m_page->setPaperLayout(newLayout);
00322 }
00323 
00324 void KivioChangeLayoutCommand::unexecute()
00325 {
00326     m_page->setPaperLayout(oldLayout);
00327 }
00328 
00329 KivioChangeStencilHAlignmentCommand::KivioChangeStencilHAlignmentCommand(const QString& _name, KivioPage* _page,
00330     KivioStencil* _stencil, int _oldAlign, int _newAlign, const QString& textBoxName)
00331     : KNamedCommand(_name),
00332      m_page(_page),
00333      m_stencil(_stencil),
00334      oldAlign(_oldAlign),
00335      newAlign(_newAlign),
00336      m_textBoxName(textBoxName)
00337 {
00338 }
00339 
00340 KivioChangeStencilHAlignmentCommand::~KivioChangeStencilHAlignmentCommand()
00341 {
00342 }
00343 
00344 void KivioChangeStencilHAlignmentCommand::execute()
00345 {
00346   if(m_textBoxName.isEmpty()) {
00347     m_stencil->setHTextAlign(newAlign);
00348   } else {
00349     m_stencil->setHTextAlign(m_textBoxName, newAlign);
00350   }
00351 
00352   m_page->doc()->updateView(m_page);
00353   m_page->doc()->slotSelectionChanged();
00354 }
00355 
00356 void KivioChangeStencilHAlignmentCommand::unexecute()
00357 {
00358   if(m_textBoxName.isEmpty()) {
00359     m_stencil->setHTextAlign(newAlign);
00360   } else {
00361     m_stencil->setHTextAlign(m_textBoxName, newAlign);
00362   }
00363 
00364   m_page->doc()->updateView(m_page);
00365   m_page->doc()->slotSelectionChanged();
00366 }
00367 
00368 KivioChangeStencilVAlignmentCommand::KivioChangeStencilVAlignmentCommand(const QString& _name, KivioPage* _page,
00369     KivioStencil* _stencil, int _oldAlign, int _newAlign, const QString& textBoxName)
00370     : KNamedCommand(_name),
00371      m_page(_page),
00372      m_stencil(_stencil),
00373      oldAlign(_oldAlign),
00374      newAlign(_newAlign),
00375      m_textBoxName(textBoxName)
00376 {
00377 }
00378 
00379 KivioChangeStencilVAlignmentCommand::~KivioChangeStencilVAlignmentCommand()
00380 {
00381 }
00382 
00383 void KivioChangeStencilVAlignmentCommand::execute()
00384 {
00385   if(m_textBoxName.isEmpty()) {
00386     m_stencil->setVTextAlign(newAlign);
00387   } else {
00388     m_stencil->setVTextAlign(m_textBoxName, newAlign);
00389   }
00390 
00391   m_page->doc()->updateView(m_page);
00392   m_page->doc()->slotSelectionChanged();
00393 }
00394 
00395 void KivioChangeStencilVAlignmentCommand::unexecute()
00396 {
00397   if(m_textBoxName.isEmpty()) {
00398     m_stencil->setVTextAlign(oldAlign);
00399   } else {
00400     m_stencil->setVTextAlign(m_textBoxName, oldAlign);
00401   }
00402 
00403   m_page->doc()->updateView(m_page);
00404   m_page->doc()->slotSelectionChanged();
00405 }
00406 
00407 
00408 KivioChangeStencilFontCommand::KivioChangeStencilFontCommand(const QString& _name, KivioPage* _page,
00409     KivioStencil* _stencil, const QFont& _oldFont, const QFont& _newFont, const QString& textBoxName)
00410     : KNamedCommand(_name),
00411      m_page(_page),
00412      m_stencil( _stencil),
00413      oldFont(_oldFont),
00414      newFont(_newFont),
00415      m_textBoxName(textBoxName)
00416 {
00417 }
00418 
00419 KivioChangeStencilFontCommand::~KivioChangeStencilFontCommand()
00420 {
00421 }
00422 
00423 void KivioChangeStencilFontCommand::execute()
00424 {
00425   if(m_textBoxName.isEmpty()) {
00426     m_stencil->setTextFont(newFont);
00427   } else {
00428     m_stencil->setTextFont(m_textBoxName, newFont);
00429   }
00430 
00431   m_page->doc()->updateView(m_page);
00432   m_page->doc()->slotSelectionChanged();
00433 }
00434 
00435 void KivioChangeStencilFontCommand::unexecute()
00436 {
00437   if(m_textBoxName.isEmpty()) {
00438     m_stencil->setTextFont(oldFont);
00439   } else {
00440     m_stencil->setTextFont(m_textBoxName, oldFont);
00441   }
00442 
00443   m_page->doc()->updateView(m_page);
00444   m_page->doc()->slotSelectionChanged();
00445 }
00446 
00447 KivioChangeStencilColorCommand::KivioChangeStencilColorCommand(const QString& _name, KivioPage* _page,
00448     KivioStencil* _stencil, const QColor& _oldColor,  const QColor& _newColor, ColorType _type, const QString& textBoxName)
00449     : KNamedCommand(_name),
00450      m_page(_page),
00451      m_stencil(_stencil),
00452      oldColor(_oldColor),
00453      newColor(_newColor),
00454      type(_type),
00455      m_textBoxName(textBoxName)
00456 {
00457 }
00458 
00459 KivioChangeStencilColorCommand::~KivioChangeStencilColorCommand()
00460 {
00461 }
00462 
00463 void KivioChangeStencilColorCommand::execute()
00464 {
00465   switch( type ) {
00466     case CT_TEXTCOLOR:
00467       if(m_textBoxName.isEmpty()) {
00468         m_stencil->setTextColor(newColor);
00469       } else {
00470         m_stencil->setTextColor(m_textBoxName, newColor);
00471       }
00472       break;
00473     case CT_BGCOLOR:
00474       m_stencil->setBGColor(newColor);
00475       break;
00476     case CT_FGCOLOR:
00477       m_stencil->setFGColor(newColor);
00478       break;
00479   }
00480 
00481   m_page->doc()->updateView(m_page);
00482   m_page->doc()->slotSelectionChanged();
00483 }
00484 
00485 void KivioChangeStencilColorCommand::unexecute()
00486 {
00487   switch( type ) {
00488     case CT_TEXTCOLOR:
00489       if(m_textBoxName.isEmpty()) {
00490         m_stencil->setTextColor(oldColor);
00491       } else {
00492         m_stencil->setTextColor(m_textBoxName, oldColor);
00493       }
00494       break;
00495     case CT_BGCOLOR:
00496       m_stencil->setBGColor(oldColor);
00497       break;
00498     case CT_FGCOLOR:
00499       m_stencil->setFGColor(oldColor);
00500       break;
00501   }
00502 
00503   m_page->doc()->updateView(m_page);
00504   m_page->doc()->slotSelectionChanged();
00505 }
00506 
00507 
00508 KivioChangeLineWidthCommand::KivioChangeLineWidthCommand( const QString &_name,
00509     KivioPage *_page, KivioStencil * _stencil, double _oldValue, double _newValue)
00510     :KNamedCommand( _name),
00511     m_page(_page),
00512     m_stencil( _stencil ),
00513     oldValue( _oldValue),
00514     newValue( _newValue)
00515 {
00516 }
00517 
00518 KivioChangeLineWidthCommand::~KivioChangeLineWidthCommand()
00519 {
00520 }
00521 
00522 void KivioChangeLineWidthCommand::execute()
00523 {
00524     m_stencil->setLineWidth( newValue );
00525     m_page->doc()->updateView(m_page);
00526     m_page->doc()->slotSelectionChanged();
00527 }
00528 
00529 void KivioChangeLineWidthCommand::unexecute()
00530 {
00531     m_stencil->setLineWidth( oldValue );
00532     m_page->doc()->updateView(m_page);
00533     m_page->doc()->slotSelectionChanged();
00534 }
00535 
00536 KivioChangeRotationCommand::KivioChangeRotationCommand( const QString &_name,
00537     KivioPage *_page, KivioStencil * _stencil, int _oldValue, int _newValue)
00538     :KNamedCommand( _name),
00539     m_page(_page),
00540     m_stencil( _stencil ),
00541     oldValue( _oldValue),
00542     newValue( _newValue)
00543 {
00544 }
00545 
00546 KivioChangeRotationCommand::~KivioChangeRotationCommand()
00547 {
00548 }
00549 
00550 void KivioChangeRotationCommand::execute()
00551 {
00552     m_stencil->setRotation( newValue );
00553     m_page->doc()->updateView(m_page);
00554     m_page->doc()->slotSelectionChanged();
00555 }
00556 
00557 void KivioChangeRotationCommand::unexecute()
00558 {
00559     m_stencil->setRotation( oldValue );
00560     m_page->doc()->updateView(m_page);
00561     m_page->doc()->slotSelectionChanged();
00562 }
00563 
00564 
00565 KivioChangeLineStyleCommand::KivioChangeLineStyleCommand( const QString &_name,
00566     KivioPage *_page, KivioStencil * _stencil, int _oldValue, int _newValue)
00567     :KNamedCommand( _name),
00568     m_page(_page),
00569     m_stencil( _stencil ),
00570     oldValue( _oldValue),
00571     newValue( _newValue)
00572 {
00573 }
00574 
00575 KivioChangeLineStyleCommand::~KivioChangeLineStyleCommand()
00576 {
00577 }
00578 
00579 void KivioChangeLineStyleCommand::execute()
00580 {
00581     m_stencil->setLinePattern( newValue );
00582     m_page->doc()->updateView(m_page);
00583     m_page->doc()->slotSelectionChanged();
00584 }
00585 
00586 void KivioChangeLineStyleCommand::unexecute()
00587 {
00588     m_stencil->setLinePattern( oldValue );
00589     m_page->doc()->updateView(m_page);
00590     m_page->doc()->slotSelectionChanged();
00591 }
00592 
00593 KivioChangeBeginEndArrowCommand::KivioChangeBeginEndArrowCommand( const QString &_name, KivioPage *_page, KivioStencil * _stencil, int _oldArrow,  int _newArrow, bool _beginArrow)
00594     :KNamedCommand( _name),
00595      m_page(_page),
00596      m_stencil( _stencil ),
00597      oldArrow( _oldArrow),
00598      newArrow( _newArrow),
00599      beginArrow(_beginArrow)
00600 {
00601 }
00602 
00603 KivioChangeBeginEndArrowCommand::~KivioChangeBeginEndArrowCommand()
00604 {
00605 }
00606 
00607 void KivioChangeBeginEndArrowCommand::execute()
00608 {
00609     if (beginArrow)
00610         m_stencil->setStartAHType(newArrow);
00611     else
00612         m_stencil->setEndAHType(newArrow);
00613     m_page->doc()->updateView(m_page);
00614     m_page->doc()->slotSelectionChanged();
00615 }
00616 
00617 void KivioChangeBeginEndArrowCommand::unexecute()
00618 {
00619     if (beginArrow)
00620         m_stencil->setStartAHType(oldArrow);
00621     else
00622         m_stencil->setEndAHType(oldArrow);
00623     m_page->doc()->updateView(m_page);
00624     m_page->doc()->slotSelectionChanged();
00625 }
00626 
00627 
00628 KivioChangeBeginEndSizeArrowCommand::KivioChangeBeginEndSizeArrowCommand( const QString &_name, KivioPage *_page, KivioStencil * _stencil, float _oldH,float _oldW, float _newH,float _newW, bool _beginArrow)
00629     :KNamedCommand( _name),
00630      m_page(_page),
00631      m_stencil( _stencil ),
00632      oldWidth( _oldW),
00633      oldLength( _oldH),
00634      newWidth( _newW),
00635      newLength( _newH),
00636      beginArrow(_beginArrow)
00637 {
00638 }
00639 
00640 KivioChangeBeginEndSizeArrowCommand::~KivioChangeBeginEndSizeArrowCommand()
00641 {
00642 }
00643 
00644 void KivioChangeBeginEndSizeArrowCommand::execute()
00645 {
00646     if (beginArrow)
00647     {
00648         m_stencil->setStartAHWidth(newWidth);
00649         m_stencil->setStartAHLength(newLength);
00650     }
00651     else
00652     {
00653         m_stencil->setEndAHWidth(newWidth);
00654         m_stencil->setEndAHLength(newLength);
00655     }
00656     m_page->doc()->updateView(m_page);
00657     m_page->doc()->slotSelectionChanged();
00658 }
00659 
00660 void KivioChangeBeginEndSizeArrowCommand::unexecute()
00661 {
00662     if (beginArrow)
00663     {
00664         m_stencil->setStartAHWidth(oldWidth);
00665         m_stencil->setStartAHLength(oldLength);
00666     }
00667     else
00668     {
00669         m_stencil->setEndAHWidth(oldWidth);
00670         m_stencil->setEndAHLength(oldLength);
00671     }
00672     m_page->doc()->updateView(m_page);
00673     m_page->doc()->slotSelectionChanged();
00674 }
00675 
00676 KivioChangeStencilProtectCommand::KivioChangeStencilProtectCommand( const QString &_name, KivioPage *_page, KivioStencil * _stencil, bool _state, KVP_TYPE _type)
00677     :KNamedCommand( _name),
00678      m_page(_page),
00679      m_stencil( _stencil ),
00680      type( _type),
00681      m_bValue( _state)
00682 {
00683 }
00684 
00685 void KivioChangeStencilProtectCommand::execute()
00686 {
00687     changeValue( m_bValue );
00688 }
00689 
00690 void KivioChangeStencilProtectCommand::unexecute()
00691 {
00692     changeValue( !m_bValue );
00693 }
00694 
00695 void KivioChangeStencilProtectCommand::changeValue( bool b )
00696 {
00697     switch( type )
00698     {
00699     case KV_POSX:
00700      m_stencil->protection()->setBit( kpX, b );
00701         break;
00702     case KV_POSY:
00703      m_stencil->protection()->setBit( kpY, b );
00704         break;
00705     case KV_WIDTH:
00706      m_stencil->protection()->setBit( kpWidth, b );
00707         break;
00708     case KV_HEIGHT:
00709         m_stencil->protection()->setBit( kpHeight, b );
00710         break;
00711     case KV_ASPECT:
00712         m_stencil->protection()->setBit( kpAspect, b );
00713         break;
00714     case KV_DELETE:
00715      m_stencil->protection()->setBit( kpDeletion, b);
00716         break;
00717     default:
00718         break;
00719     }
00720 
00721     m_page->doc()->updateProtectPanelCheckBox();
00722     m_page->doc()->updateView(m_page);
00723 }
00724 
00725 KivioAddConnectorTargetCommand::KivioAddConnectorTargetCommand(const QString& name, KivioPage* page,
00726     KivioStencil* stencil, const KoPoint& targetPoint) : KNamedCommand(name)
00727 {
00728   m_page = page;
00729   m_stencil = stencil;
00730   m_targetPoint = targetPoint;
00731 }
00732 void KivioAddConnectorTargetCommand::execute()
00733 {
00734   m_stencil->addConnectorTarget(m_targetPoint);
00735   m_page->doc()->updateView(m_page);
00736 }
00737 
00738 void KivioAddConnectorTargetCommand::unexecute()
00739 {
00740   m_stencil->removeConnectorTarget(m_targetPoint);
00741   m_page->doc()->updateView(m_page);
00742 }
00743 
00744 
00745 KivioCustomDragCommand::KivioCustomDragCommand(const QString& name, KivioPage* page, KivioStencil* stencil,
00746                                                int customID, const KoPoint& originalPoint, const KoPoint& newPoint)
00747   : KNamedCommand(name)
00748 {
00749   m_page = page;
00750   m_stencil = stencil;
00751   m_customID = customID;
00752   m_originalPoint = originalPoint;
00753   m_newPoint = newPoint;
00754 }
00755 
00756 void KivioCustomDragCommand::execute()
00757 {
00758   m_stencil->setCustomIDPoint(m_customID, m_newPoint, m_page);
00759   m_page->doc()->updateView(m_page);
00760 }
00761 
00762 void KivioCustomDragCommand::unexecute()
00763 {
00764   m_stencil->setCustomIDPoint(m_customID, m_originalPoint, m_page);
00765   m_page->doc()->updateView(m_page);
00766 }
00767 
00768 
00769 KivioGroupCommand::KivioGroupCommand(const QString& name, KivioPage* page, KivioLayer* layer,
00770                                      KivioGroupStencil* group)
00771   : KNamedCommand(name)
00772 {
00773   m_page = page;
00774   m_layer = layer;
00775   m_groupStencil = group;
00776 }
00777 
00778 void KivioGroupCommand::execute()
00779 {
00780   QPtrList<KivioStencil>* list = m_groupStencil->groupList();
00781   QPtrListIterator<KivioStencil> it(*list);
00782   KivioStencil* stencil = 0;
00783 
00784   for(; (stencil = it.current()) != 0; ++it) {
00785     m_layer->takeStencil(stencil);
00786   }
00787 
00788   m_groupStencil->unselect();
00789   m_layer->addStencil(m_groupStencil);
00790   m_page->doc()->updateView(m_page);
00791 }
00792 
00793 void KivioGroupCommand::unexecute()
00794 {
00795   QPtrList<KivioStencil>* list = m_groupStencil->groupList();
00796   QPtrListIterator<KivioStencil> it(*list);
00797   KivioStencil* stencil = 0;
00798 
00799   for(; (stencil = it.current()) != 0; ++it) {
00800     stencil->unselect();
00801     m_layer->addStencil(stencil);
00802   }
00803 
00804   m_layer->takeStencil(m_groupStencil);
00805   m_page->doc()->updateView(m_page);
00806 }
KDE Home | KDE Accessibility Home | Description of Access Keys