kword
KWordDocIface.cpp
00001 /* This file is part of the KDE project 00002 Copyright (C) 2001, 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 "KWordDocIface.h" 00020 #include "KWTextFrameSet.h" 00021 #include "KWordFrameSetIface.h" 00022 #include "KWDocument.h" 00023 #include "KWVariable.h" 00024 #include "KWPageManager.h" 00025 00026 #include <kapplication.h> 00027 #include <dcopclient.h> 00028 #include <KoVariable.h> 00029 #include <KoAutoFormat.h> 00030 00031 KWordDocIface::KWordDocIface( KWDocument *doc_ ) 00032 : KoDocumentIface( doc_ ) 00033 { 00034 doc = doc_; 00035 } 00036 00037 DCOPRef KWordDocIface::textFrameSet( int num ) 00038 { 00039 if( num>= (int)doc->frameSetCount()) 00040 return DCOPRef(); 00041 return DCOPRef( kapp->dcopClient()->appId(), 00042 doc->textFrameSet( num)->dcopObject()->objId() ); 00043 } 00044 00045 DCOPRef KWordDocIface::frameSet( int num ) 00046 { 00047 if( num>= (int)doc->frameSetCount()) 00048 return DCOPRef(); 00049 return DCOPRef( kapp->dcopClient()->appId(), 00050 doc->frameSet( num)->dcopObject()->objId() ); 00051 } 00052 00053 int KWordDocIface::numFrameSets()const 00054 { 00055 return doc->frameSetCount(); 00056 } 00057 00058 int KWordDocIface::frameSetCount()const 00059 { 00060 return doc->frameSetCount(); 00061 } 00062 00063 unsigned int KWordDocIface::nbColumns()const 00064 { 00065 return doc->numColumns(); 00066 } 00067 00068 double KWordDocIface::ptPageTop( int pgNum )const 00069 { 00070 return doc->pageManager()->topOfPage(pgNum); 00071 } 00072 00073 QString KWordDocIface::unitName()const 00074 { 00075 return doc->unitName(); 00076 } 00077 00078 void KWordDocIface::recalcAllVariables() 00079 { 00080 //recalc all variable 00081 doc->recalcVariables(VT_ALL); 00082 } 00083 00084 void KWordDocIface::recalcVariables(int _var) 00085 { 00086 doc->recalcVariables(_var); 00087 } 00088 00089 void KWordDocIface::recalcVariables(const QString &varName) 00090 { 00091 if(varName=="VT_DATE") 00092 doc->recalcVariables(0); 00093 else if(varName=="VT_TIME") 00094 doc->recalcVariables(2); 00095 else if(varName=="VT_PGNUM") 00096 doc->recalcVariables(4); 00097 else if(varName=="VT_CUSTOM") 00098 doc->recalcVariables(6); 00099 else if(varName=="VT_MAILMERGE") 00100 doc->recalcVariables(7); 00101 else if(varName=="VT_FIELD") 00102 doc->recalcVariables(8); 00103 else if(varName=="VT_LINK") 00104 doc->recalcVariables(9); 00105 else if(varName=="VT_NOTE") 00106 doc->recalcVariables(10); 00107 else if(varName=="VT_FOOTNOTE") 00108 doc->recalcVariables(11); 00109 else if(varName=="VT_ALL") 00110 doc->recalcVariables(256); 00111 } 00112 00113 00114 bool KWordDocIface::showRuler() const 00115 { 00116 return doc->showRuler(); 00117 } 00118 00119 bool KWordDocIface::showdocStruct() const 00120 { 00121 return doc->showdocStruct(); 00122 } 00123 00124 bool KWordDocIface::viewFrameBorders() const 00125 { 00126 return doc->viewFrameBorders(); 00127 } 00128 00129 void KWordDocIface::setHeaderVisible( bool b) 00130 { 00131 doc->setHeaderVisible(b); 00132 doc->refreshGUIButton(); 00133 } 00134 00135 void KWordDocIface::setFooterVisible( bool b) 00136 { 00137 doc->setFooterVisible( b); 00138 doc->refreshGUIButton(); 00139 } 00140 00141 void KWordDocIface::setViewFrameBorders( bool b ) 00142 { 00143 doc->setViewFrameBorders( b ); 00144 doc->refreshGUIButton(); 00145 } 00146 00147 void KWordDocIface::setShowRuler(bool b) 00148 { 00149 doc->setShowRuler(b); 00150 doc->refreshGUIButton(); 00151 doc->reorganizeGUI(); 00152 } 00153 00154 bool KWordDocIface::viewFormattingChars() const 00155 { 00156 return doc->viewFormattingChars(); 00157 } 00158 00159 void KWordDocIface::setViewFormattingChars(bool b) 00160 { 00161 doc->setViewFormattingChars(b); 00162 doc->refreshGUIButton(); 00163 } 00164 00165 void KWordDocIface::setShowDocStruct(bool b) 00166 { 00167 doc->setShowDocStruct(b); 00168 doc->refreshGUIButton(); 00169 doc->reorganizeGUI(); 00170 } 00171 00172 00173 bool KWordDocIface::showStatusBar() const 00174 { 00175 return doc->showStatusBar(); 00176 } 00177 00178 void KWordDocIface::setShowStatusBar( bool _status ) 00179 { 00180 doc->setShowStatusBar(_status); 00181 doc->reorganizeGUI(); 00182 } 00183 00184 int KWordDocIface::startingPage()const 00185 { 00186 return doc->variableCollection()->variableSetting()->startingPageNumber(); 00187 } 00188 00189 void KWordDocIface::setStartingPage(int nb) 00190 { 00191 doc->variableCollection()->variableSetting()->setStartingPageNumber(nb); 00192 doc->recalcVariables(VT_PGNUM); 00193 } 00194 00195 bool KWordDocIface::displayLink()const 00196 { 00197 return doc->variableCollection()->variableSetting()->displayLink(); 00198 } 00199 00200 void KWordDocIface::setDisplayLink(bool b) 00201 { 00202 doc->variableCollection()->variableSetting()->setDisplayLink(b); 00203 doc->recalcVariables(VT_LINK); 00204 } 00205 00206 bool KWordDocIface::setCustomVariableValue(const QString & varname, const QString & value) 00207 { 00208 bool exist=doc->variableCollection()->customVariableExist(varname); 00209 if(exist) 00210 { 00211 doc->variableCollection()->setVariableValue( varname, value ); 00212 doc->recalcVariables(VT_CUSTOM); 00213 } 00214 else 00215 return false; 00216 return true; 00217 } 00218 00219 00220 QString KWordDocIface::customVariableValue(const QString & varname)const 00221 { 00222 if(doc->variableCollection()->customVariableExist(varname)) 00223 return doc->variableCollection()->getVariableValue( varname ); 00224 return QString::null; 00225 } 00226 00227 void KWordDocIface::initConfig() 00228 { 00229 doc->initConfig(); 00230 } 00231 00232 void KWordDocIface::saveConfig() 00233 { 00234 doc->saveConfig(); 00235 } 00236 00237 bool KWordDocIface::isHeaderVisible() const 00238 { 00239 return doc->isHeaderVisible(); 00240 } 00241 00242 bool KWordDocIface::isFooterVisible() const 00243 { 00244 return doc->isFooterVisible(); 00245 } 00246 00247 bool KWordDocIface::backgroundSpellCheckEnabled() const 00248 { 00249 return doc->backgroundSpellCheckEnabled(); 00250 } 00251 00252 void KWordDocIface::enableBackgroundSpellCheck( bool b ) 00253 { 00254 doc->enableBackgroundSpellCheck(b); 00255 } 00256 00257 void KWordDocIface::startBackgroundSpellCheck() 00258 { 00259 doc->startBackgroundSpellCheck(); 00260 } 00261 00262 void KWordDocIface::reactivateBgSpellChecking() 00263 { 00264 doc->reactivateBgSpellChecking(); 00265 } 00266 00267 void KWordDocIface::setConfigUpperCase( bool _uc ) 00268 { 00269 doc->autoFormat()->configUpperCase(_uc); 00270 } 00271 00272 void KWordDocIface::setConfigUpperUpper( bool _uu ) 00273 { 00274 doc->autoFormat()->configUpperUpper(_uu); 00275 } 00276 00277 void KWordDocIface::setConfigAdvancedAutocorrect( bool _aa ) 00278 { 00279 doc->autoFormat()->configAdvancedAutocorrect( _aa ); 00280 00281 } 00282 00283 void KWordDocIface::setConfigAutoDetectUrl(bool _au) 00284 { 00285 doc->autoFormat()->configAutoDetectUrl(_au); 00286 } 00287 00288 void KWordDocIface::setConfigIgnoreDoubleSpace( bool _ids) 00289 { 00290 doc->autoFormat()->configIgnoreDoubleSpace(_ids); 00291 } 00292 00293 bool KWordDocIface::configUpperCase() const 00294 { 00295 return doc->autoFormat()->getConfigUpperCase(); 00296 } 00297 00298 bool KWordDocIface::configUpperUpper() const 00299 { 00300 return doc->autoFormat()->getConfigUpperUpper(); 00301 } 00302 00303 bool KWordDocIface::configAdvancedAutoCorrect() const 00304 { 00305 return doc->autoFormat()->getConfigAdvancedAutoCorrect(); 00306 00307 } 00308 bool KWordDocIface::configAutoDetectUrl() const 00309 { 00310 return doc->autoFormat()->getConfigAutoDetectUrl(); 00311 00312 } 00313 00314 bool KWordDocIface::configIgnoreDoubleSpace() const 00315 { 00316 return doc->autoFormat()->getConfigIgnoreDoubleSpace(); 00317 } 00318 00319 bool KWordDocIface::configRemoveSpaceBeginEndLine() const 00320 { 00321 return doc->autoFormat()->getConfigIgnoreDoubleSpace(); 00322 } 00323 00324 bool KWordDocIface::configUseBulletSyle() const 00325 { 00326 return doc->autoFormat()->getConfigUseBulletSyle(); 00327 } 00328 00329 void KWordDocIface::setConfigRemoveSpaceBeginEndLine( bool _space) 00330 { 00331 doc->autoFormat()->configRemoveSpaceBeginEndLine(_space); 00332 } 00333 00334 void KWordDocIface::setConfigUseBulletStyle( bool _ubs) 00335 { 00336 doc->autoFormat()->configUseBulletStyle(_ubs); 00337 } 00338 00339 bool KWordDocIface::configAutoChangeFormat() const 00340 { 00341 return doc->autoFormat()->getConfigAutoChangeFormat(); 00342 } 00343 00344 void KWordDocIface::setConfigAutoChangeFormat( bool _auto) 00345 { 00346 doc->autoFormat()->configAutoChangeFormat(_auto); 00347 } 00348 00349 bool KWordDocIface::configAutoReplaceNumber() const 00350 { 00351 return doc->autoFormat()->getConfigAutoReplaceNumber(); 00352 } 00353 00354 void KWordDocIface::setConfigAutoReplaceNumber( bool b ) 00355 { 00356 doc->autoFormat()->configAutoReplaceNumber(b); 00357 } 00358 00359 void KWordDocIface::setConfigAutoNumberStyle( bool b ) 00360 { 00361 doc->autoFormat()->configAutoNumberStyle(b); 00362 } 00363 00364 bool KWordDocIface::configAutoNumberStyle() const 00365 { 00366 return doc->autoFormat()->getConfigAutoNumberStyle(); 00367 } 00368 00369 void KWordDocIface::setConfigCompletion( bool b ) 00370 { 00371 doc->autoFormat()->configCompletion( b ); 00372 } 00373 00374 bool KWordDocIface::configCompletion() const 00375 { 00376 return doc->autoFormat()->getConfigCompletion(); 00377 } 00378 00379 void KWordDocIface::setConfigToolTipCompletion( bool b ) 00380 { 00381 doc->autoFormat()->configToolTipCompletion( b ); 00382 } 00383 00384 bool KWordDocIface::configToolTipCompletion() const 00385 { 00386 return doc->autoFormat()->getConfigToolTipCompletion(); 00387 } 00388 00389 void KWordDocIface::setConfigAppendSpace( bool b) 00390 { 00391 doc->autoFormat()->configAppendSpace( b ); 00392 } 00393 00394 bool KWordDocIface::configAppendSpace() const 00395 { 00396 return doc->autoFormat()->getConfigAppendSpace(); 00397 } 00398 00399 void KWordDocIface::setConfigMinWordLength( uint val ) 00400 { 00401 doc->autoFormat()->configMinWordLength( val ); 00402 } 00403 00404 uint KWordDocIface::configMinWordLength() const 00405 { 00406 return doc->autoFormat()->getConfigMinWordLength(); 00407 } 00408 00409 void KWordDocIface::setConfigNbMaxCompletionWord( uint val ) 00410 { 00411 doc->autoFormat()->configNbMaxCompletionWord( val ); 00412 } 00413 00414 uint KWordDocIface::configNbMaxCompletionWord() const 00415 { 00416 return doc->autoFormat()->getConfigNbMaxCompletionWord(); 00417 } 00418 00419 void KWordDocIface::setConfigAddCompletionWord( bool b ) 00420 { 00421 doc->autoFormat()->configAddCompletionWord( b ); 00422 } 00423 00424 bool KWordDocIface::configAddCompletionWord() const 00425 { 00426 return doc->autoFormat()->getConfigAddCompletionWord(); 00427 } 00428 00429 bool KWordDocIface::configIncludeTwoUpperUpperLetterException() const 00430 { 00431 return doc->autoFormat()->getConfigIncludeTwoUpperUpperLetterException(); 00432 } 00433 00434 void KWordDocIface::setConfigIncludeTwoUpperUpperLetterException( bool b) 00435 { 00436 doc->autoFormat()->configIncludeTwoUpperUpperLetterException( b ); 00437 } 00438 00439 bool KWordDocIface::configIncludeAbbreviation() const 00440 { 00441 return doc->autoFormat()->getConfigIncludeAbbreviation(); 00442 } 00443 00444 void KWordDocIface::setConfigIncludeAbbreviation( bool b) 00445 { 00446 doc->autoFormat()->configIncludeAbbreviation( b ); 00447 } 00448 00449 bool KWordDocIface::displayComment() const 00450 { 00451 return doc->variableCollection()->variableSetting()->displayComment(); 00452 } 00453 00454 void KWordDocIface::setDisplayComment( bool b) 00455 { 00456 doc->variableCollection()->variableSetting()->setDisplayComment( b ); 00457 doc->recalcVariables(VT_NOTE); 00458 } 00459 00460 00461 bool KWordDocIface::displayFieldCode()const 00462 { 00463 return doc->variableCollection()->variableSetting()->displayFieldCode(); 00464 } 00465 00466 void KWordDocIface::setDisplayFieldCode( bool b) 00467 { 00468 doc->variableCollection()->variableSetting()->setDisplayFieldCode( b ); 00469 doc->recalcVariables(VT_ALL); 00470 } 00471 00472 bool KWordDocIface::configAutoSuperScript() const 00473 { 00474 return doc->autoFormat()->getConfigAutoSuperScript(); 00475 } 00476 00477 void KWordDocIface::setConfigAutoSuperScript( bool b) 00478 { 00479 doc->autoFormat()->configAutoSuperScript( b ); 00480 } 00481 00482 void KWordDocIface::addIgnoreWordAll( const QString &word ) 00483 { 00484 doc->addSpellCheckIgnoreWord( word ); 00485 } 00486 00487 void KWordDocIface::clearIgnoreWordAll( ) 00488 { 00489 doc->setSpellCheckIgnoreList( QStringList() ); 00490 } 00491 00492 QStringList KWordDocIface::spellListIgnoreAll() const 00493 { 00494 return doc->spellCheckIgnoreList(); 00495 } 00496 00497 00498 bool KWordDocIface::showScrollBar()const 00499 { 00500 return doc->showScrollBar(); 00501 } 00502 00503 void KWordDocIface::setShowScrollBar( bool _status ) 00504 { 00505 doc->setShowScrollBar(_status ); 00506 doc->reorganizeGUI(); 00507 } 00508 00509 double KWordDocIface::ptTabStopValue() const 00510 { 00511 return doc->tabStopValue(); 00512 } 00513 00514 void KWordDocIface::setPtTabStopValue ( double _tabStop ) 00515 { 00516 doc->setTabStopValue (_tabStop ); 00517 } 00518 00519 int KWordDocIface::footNoteSeparatorLineLength() const 00520 { 00521 return doc->footNoteSeparatorLineLength(); 00522 } 00523 00524 void KWordDocIface::setFootNoteSeparatorLineLength( int _length) 00525 { 00526 doc->setFootNoteSeparatorLineLength( _length ); 00527 doc->repaintAllViews(); 00528 } 00529 00530 void KWordDocIface::setFootNoteSeparatorLinePosition( const QString &pos) 00531 { 00532 SeparatorLinePos tmp=SLP_LEFT; 00533 if ( pos.lower()=="left") 00534 tmp=SLP_LEFT; 00535 else if ( pos.lower()=="centered") 00536 tmp=SLP_CENTERED; 00537 else if ( pos.lower()=="right") 00538 tmp=SLP_RIGHT; 00539 doc->setFootNoteSeparatorLinePosition( tmp); 00540 doc->repaintAllViews(); 00541 } 00542 00543 QString KWordDocIface::footNoteSeparatorLinePosition()const 00544 { 00545 QString tmp=QString::null; 00546 switch( doc->footNoteSeparatorLinePosition() ) 00547 { 00548 case SLP_LEFT: 00549 return QString("left"); 00550 case SLP_RIGHT: 00551 return QString("right"); 00552 case SLP_CENTERED: 00553 return QString("centered"); 00554 } 00555 return tmp; 00556 } 00557 00558 double KWordDocIface::footNoteSeparatorLineWidth() const 00559 { 00560 return doc->footNoteSeparatorLineWidth(); 00561 } 00562 00563 void KWordDocIface::setFootNoteSeparatorLineWidth( double _width) 00564 { 00565 doc->setFootNoteSeparatorLineWidth( _width ); 00566 doc->repaintAllViews(); 00567 } 00568 00569 void KWordDocIface::deleteBookMark(const QString &_name) 00570 { 00571 doc->deleteBookmark( _name ); 00572 } 00573 00574 void KWordDocIface::renameBookMark(const QString &_oldname, const QString &_newName) 00575 { 00576 doc->renameBookmark( _oldname, _newName); 00577 } 00578 00579 QStringList KWordDocIface::listOfBookmarkName()const 00580 { 00581 //return all list 00582 return doc->listOfBookmarkName(0L); 00583 } 00584 00585 QString KWordDocIface::configAutoFormatLanguage( )const 00586 { 00587 return doc->autoFormat()->getConfigAutoFormatLanguage( ); 00588 } 00589 00590 bool KWordDocIface::configCapitalizeNameOfDays() const 00591 { 00592 return doc->autoFormat()->getConfigCapitalizeNameOfDays(); 00593 } 00594 00595 void KWordDocIface::setConfigCapitalizeNameOfDays( bool b) 00596 { 00597 doc->autoFormat()->configCapitalizeNameOfDays( b ); 00598 } 00599 00600 bool KWordDocIface::showGrid() const 00601 { 00602 return doc->showGrid(); 00603 } 00604 00605 bool KWordDocIface::snapToGrid() const 00606 { 00607 return doc->snapToGrid(); 00608 } 00609 00610 double KWordDocIface::gridX() const 00611 { 00612 return doc->gridX(); 00613 } 00614 00615 double KWordDocIface::gridY() const 00616 { 00617 return doc->gridY(); 00618 } 00619 00620 void KWordDocIface::setGridX( double _gridX ) 00621 { 00622 00623 doc->setGridX( QMAX( 0.1, _gridX ) ); 00624 } 00625 00626 void KWordDocIface::setGridY( double _gridY ) 00627 { 00628 doc->setGridY( QMAX( 0.1, _gridY ) ); 00629 } 00630 00631 void KWordDocIface::setShowGrid( bool _b ) 00632 { 00633 doc->setShowGrid( _b ); 00634 } 00635 00636 void KWordDocIface::setSnapToGrid( bool _b ) 00637 { 00638 doc->setSnapToGrid( _b ); 00639 }