00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "KWFrameStyleManager.h"
00021 #include "KWFrameStyleManager.moc"
00022 #include "KWImportStyleDia.h"
00023
00024 #include "KWDocument.h"
00025 #include "KWFrameDia.h"
00026
00027 #include <KoParagDia.h>
00028
00029 #include <kcolorbutton.h>
00030 #include <klocale.h>
00031 #include <kiconloader.h>
00032
00033 #include <qtabwidget.h>
00034 #include <qpushbutton.h>
00035 #include <qlabel.h>
00036 #include <qbrush.h>
00037 #include <qgroupbox.h>
00038 #include <qpainter.h>
00039 #include <qlayout.h>
00040
00041
00042
00043
00044
00045 #undef ptToPx
00046 #define ptToPx qRound
00047
00048 void KWFrameStylePreview::paintEvent( QPaintEvent * )
00049 {
00050 int wid = ( width() - 20 );
00051 int hei = ( height() - 20 );
00052
00053 QPainter p;
00054 p.begin( this );
00055
00056
00057 if (frameStyle->topBorder().width()>0) {
00058 p.setPen( KoBorder::borderPen(frameStyle->topBorder(), ptToPx( frameStyle->topBorder().width() ), black) );
00059 p.drawLine( 10 - int(frameStyle->leftBorder().width()/2), 10,
00060 10 + wid + int(frameStyle->rightBorder().width()/2), 10 );
00061 }
00062 if (frameStyle->leftBorder().width()>0) {
00063 p.setPen( KoBorder::borderPen(frameStyle->leftBorder(), ptToPx( frameStyle->leftBorder().width() ), black) );
00064 p.drawLine( 10, 10 - int(frameStyle->topBorder().width()/2),
00065 10 , 10 + hei + int(frameStyle->bottomBorder().width()/2) );
00066 }
00067 if (frameStyle->bottomBorder().width()>0) {
00068 p.setPen( KoBorder::borderPen(frameStyle->bottomBorder(), ptToPx( frameStyle->bottomBorder().width() ), black) );
00069 p.drawLine( 10 + wid + int(ceil(frameStyle->rightBorder().width()/2)), 10 + hei,
00070 10 - int(frameStyle->leftBorder().width()/2), 10 + hei );
00071 }
00072 if (frameStyle->rightBorder().width()>0) {
00073 p.setPen( KoBorder::borderPen(frameStyle->rightBorder(), ptToPx( frameStyle->rightBorder().width() ), black) );
00074 p.drawLine( 10 + wid, 10 - int(frameStyle->topBorder().width()/2) ,
00075 10 + wid, 10 + hei + int(frameStyle->bottomBorder().width()/2) );
00076 }
00077
00078
00079
00080 p.fillRect( QRect( QPoint(10 + int(ceil(frameStyle->leftBorder().width()/2)), 10 + int(ceil(frameStyle->topBorder().width()/2))),
00081 QPoint(10 + wid - int(floor(frameStyle->rightBorder().width()/2)+1), 10 + hei - int(floor(frameStyle->bottomBorder().width()/2)+1)) ),
00082 frameStyle->backgroundColor() );
00083
00084 p.end();
00085 }
00086
00087 void KWFrameStylePreview::setFrameStyle( KWFrameStyle *_frameStyle )
00088 {
00089 if (!frameStyle) frameStyle = new KWFrameStyle("preview");
00090
00091 frameStyle = _frameStyle;
00092
00093 repaint( true );
00094 }
00095
00096
00097
00098
00099
00100 KWFrameStyleListItem::~KWFrameStyleListItem()
00101 {
00102 delete m_changedFrameStyle;
00103 }
00104
00105 void KWFrameStyleListItem::switchStyle()
00106 {
00107 delete m_changedFrameStyle;
00108 m_changedFrameStyle = 0;
00109
00110 if ( m_origFrameStyle )
00111 m_changedFrameStyle = new KWFrameStyle( *m_origFrameStyle );
00112 }
00113
00114 void KWFrameStyleListItem::deleteStyle( KWFrameStyle *current )
00115 {
00116 Q_ASSERT( m_changedFrameStyle == current );
00117 delete m_changedFrameStyle;
00118 m_changedFrameStyle = 0;
00119 }
00120
00121 void KWFrameStyleListItem::apply()
00122 {
00123 *m_origFrameStyle = *m_changedFrameStyle;
00124 }
00125
00126
00127
00128
00129
00130 KWFrameStyleManager::KWFrameStyleManager( QWidget *_parent, KWDocument *_doc,
00131 const QString & activeStyleName )
00132 : KDialogBase( _parent, "", true,
00133 i18n("Frame Style Manager"),
00134 KDialogBase::Ok | KDialogBase::Cancel | KDialogBase::Apply| KDialogBase::User1 )
00135 {
00136 m_doc = _doc;
00137
00138 m_currentFrameStyle = 0;
00139 noSignals=true;
00140
00141 m_frameStyles.setAutoDelete(false);
00142
00143 setupWidget();
00144
00145 addGeneralTab();
00146
00147 KWFrameStyleBordersTab *bordersTab = new KWFrameStyleBordersTab( m_tabs );
00148 bordersTab->setWidget( new KoParagDecorationWidget( bordersTab ) );
00149 addTab( bordersTab );
00150
00151 KWFrameStyleBackgroundTab *bgTab = new KWFrameStyleBackgroundTab( m_tabs );
00152 addTab( bgTab );
00153
00154 QListBoxItem * item = m_stylesList->findItem( activeStyleName );
00155 m_stylesList->setCurrentItem( item ? m_stylesList->index(item) : 0 );
00156
00157 noSignals=false;
00158 switchStyle();
00159 setInitialSize( QSize( 600, 370 ) );
00160 setButtonText( KDialogBase::User1, i18n("Import From File...") );
00161 connect(this, SIGNAL(user1Clicked()), this, SLOT(importFromFile()));
00162 }
00163
00164 KWFrameStyleManager::~KWFrameStyleManager()
00165 {
00166 m_frameStyles.setAutoDelete( true );
00167 m_frameStyles.clear();
00168 }
00169
00170 void KWFrameStyleManager::addTab( KWFrameStyleManagerTab * tab )
00171 {
00172 m_tabsList.append( tab );
00173 m_tabs->insertTab( tab, tab->tabName() );
00174 }
00175
00176 void KWFrameStyleManager::setupWidget()
00177 {
00178 QFrame * frame1 = makeMainWidget();
00179 QGridLayout *frame1Layout = new QGridLayout( frame1, 0, 0,
00180 0, KDialog::spacingHint() );
00181 KWFrameStyleCollection* collection = m_doc->frameStyleCollection();
00182 numFrameStyles = collection->count();
00183 m_stylesList = new QListBox( frame1, "stylesList" );
00184 m_stylesList->insertStringList( collection->displayNameList() );
00185 const QValueList<KoUserStyle*> styleList = collection->styleList();
00186 for ( QValueList<KoUserStyle *>::const_iterator it = styleList.begin(), end = styleList.end();
00187 it != end ; ++it )
00188 {
00189 KWFrameStyle* style = static_cast<KWFrameStyle *>( *it );
00190 m_frameStyles.append( new KWFrameStyleListItem( style, new KWFrameStyle(*style) ) );
00191 m_styleOrder << style->name();
00192 }
00193 Q_ASSERT( m_stylesList->count() == m_styleOrder.count() );
00194 Q_ASSERT( m_styleOrder.count() == m_frameStyles.count() );
00195
00196 frame1Layout->addMultiCellWidget( m_stylesList, 0, 0, 0, 1 );
00197
00198
00199 m_moveUpButton = new QPushButton( frame1, "moveUpButton" );
00200 m_moveUpButton->setIconSet( SmallIconSet( "up" ) );
00201 connect( m_moveUpButton, SIGNAL( clicked() ), this, SLOT( moveUpStyle() ) );
00202 frame1Layout->addWidget( m_moveUpButton, 1, 1 );
00203
00204 m_moveDownButton = new QPushButton( frame1, "moveDownButton" );
00205 m_moveDownButton->setIconSet( SmallIconSet( "down" ) );
00206 connect( m_moveDownButton, SIGNAL( clicked() ), this, SLOT( moveDownStyle() ) );
00207 frame1Layout->addWidget( m_moveDownButton, 1, 0 );
00208
00209
00210 m_deleteButton = new QPushButton( frame1, "deleteButton" );
00211 m_deleteButton->setText( i18n( "&Delete" ) );
00212 connect( m_deleteButton, SIGNAL( clicked() ), this, SLOT( deleteStyle() ) );
00213
00214 frame1Layout->addWidget( m_deleteButton, 2, 1 );
00215
00216 m_newButton = new QPushButton( frame1, "newButton" );
00217 m_newButton->setText( i18n( "New" ) );
00218 connect( m_newButton, SIGNAL( clicked() ), this, SLOT( addStyle() ) );
00219
00220 frame1Layout->addWidget( m_newButton, 2, 0 );
00221
00222 m_tabs = new QTabWidget( frame1 );
00223 frame1Layout->addMultiCellWidget( m_tabs, 0, 2, 2, 2 );
00224
00225 connect( m_stylesList, SIGNAL( selectionChanged() ), this, SLOT( switchStyle() ) );
00226 connect( m_tabs, SIGNAL( currentChanged ( QWidget * ) ), this, SLOT( switchTabs() ) );
00227 }
00228
00229 void KWFrameStyleManager::addGeneralTab()
00230 {
00231 QWidget *tab = new QWidget( m_tabs );
00232
00233 QGridLayout *tabLayout = new QGridLayout( tab );
00234 tabLayout->setSpacing( KDialog::spacingHint() );
00235 tabLayout->setMargin( KDialog::marginHint() );
00236
00237 previewBox = new QGroupBox( 0, Qt::Vertical, i18n( "Preview" ), tab );
00238 previewBox->layout()->setSpacing(KDialog::spacingHint());
00239 previewBox->layout()->setMargin(KDialog::marginHint());
00240 QGridLayout *previewLayout = new QGridLayout( previewBox->layout() );
00241
00242 preview = new KWFrameStylePreview( previewBox );
00243 preview->resize(preview->sizeHint());
00244
00245 previewLayout->addWidget( preview, 0, 0 );
00246
00247 tabLayout->addMultiCellWidget( previewBox, 1, 1, 0, 1 );
00248
00249 m_nameString = new QLineEdit( tab );
00250 m_nameString->resize(m_nameString->sizeHint() );
00251 connect( m_nameString, SIGNAL( textChanged( const QString &) ), this, SLOT( renameStyle(const QString &) ) );
00252
00253 tabLayout->addWidget( m_nameString, 0, 1 );
00254
00255 QLabel *nameLabel = new QLabel( tab );
00256 nameLabel->setText( i18n( "Name:" ) );
00257 nameLabel->resize(nameLabel->sizeHint());
00258 nameLabel->setAlignment( AlignRight | AlignVCenter );
00259
00260 tabLayout->addWidget( nameLabel, 0, 0 );
00261
00262 m_tabs->insertTab( tab, i18n( "General" ) );
00263 }
00264
00265 void KWFrameStyleManager::switchStyle()
00266 {
00267 kdDebug() << "KWFrameStyleManager::switchStyle noSignals=" << noSignals << endl;
00268 if(noSignals) return;
00269 noSignals=true;
00270
00271 if(m_currentFrameStyle !=0L)
00272 save();
00273
00274 m_currentFrameStyle = 0L;
00275 int num = frameStyleIndex( m_stylesList->currentItem() );
00276
00277 kdDebug() << "KWFrameStyleManager::switchStyle switching to " << num << endl;
00278 if( m_frameStyles.at(num)->origFrameStyle() == m_frameStyles.at(num)->changedFrameStyle() )
00279 m_frameStyles.at(num)->switchStyle();
00280 else
00281 m_currentFrameStyle = m_frameStyles.at(num)->changedFrameStyle();
00282
00283 updateGUI();
00284
00285 noSignals=false;
00286 }
00287
00288 void KWFrameStyleManager::switchTabs()
00289 {
00290 save();
00291 updatePreview();
00292 }
00293
00294 int KWFrameStyleManager::frameStyleIndex( int pos ) {
00295 int p = 0;
00296 for(unsigned int i=0; i < m_frameStyles.count(); i++) {
00297
00298 KWFrameStyle * style = m_frameStyles.at(i)->changedFrameStyle();
00299 if ( !style ) continue;
00300 if ( p == pos )
00301 return i;
00302 ++p;
00303 }
00304 kdWarning() << "KWFrameStyleManager::frameStyleIndex no style found at pos " << pos << " count=" << m_frameStyles.count() << endl;
00305
00306 #ifdef __GNUC_
00307 #warning implement undo/redo
00308 #endif
00309
00310 return 0;
00311 }
00312
00313 void KWFrameStyleManager::updateGUI()
00314 {
00315 kdDebug() << "KWFrameStyleManager::updateGUI m_currentFrameStyle=" << m_currentFrameStyle << " " << m_currentFrameStyle->name() << endl;
00316 QPtrListIterator<KWFrameStyleManagerTab> it( m_tabsList );
00317 for ( ; it.current() ; ++it )
00318 {
00319 it.current()->setStyle( m_currentFrameStyle );
00320 it.current()->update();
00321 }
00322
00323 m_nameString->setText(m_currentFrameStyle->displayName());
00324
00325
00326 m_deleteButton->setEnabled(m_stylesList->currentItem() != 0);
00327
00328 m_moveUpButton->setEnabled(m_stylesList->currentItem() != 0);
00329 m_moveDownButton->setEnabled(m_stylesList->currentItem()!=(int)m_stylesList->count()-1);
00330
00331 updatePreview();
00332 }
00333
00334 void KWFrameStyleManager::updatePreview()
00335 {
00336 preview->setFrameStyle(m_currentFrameStyle);
00337 }
00338
00339 void KWFrameStyleManager::save() {
00340 if(m_currentFrameStyle) {
00341
00342 QPtrListIterator<KWFrameStyleManagerTab> it( m_tabsList );
00343 for ( ; it.current() ; ++it )
00344 it.current()->save();
00345
00346 m_currentFrameStyle->setDisplayName( m_nameString->text() );
00347 }
00348 }
00349
00350 void KWFrameStyleManager::importFromFile()
00351 {
00352
00353 QStringList lst;
00354 for ( int i = 0; i<(int)m_stylesList->count();i++)
00355 {
00356 lst << m_stylesList->text(i);
00357 }
00358
00359 KWImportFrameTableStyleDia dia( m_doc, lst, KWImportFrameTableStyleDia::frameStyle, this, 0 );
00360 if ( dia.listOfFrameStyleImported().count() > 0 && dia.exec() ) {
00361 addStyles( dia.listOfFrameStyleImported() );
00362 }
00363 }
00364
00365 void KWFrameStyleManager::addStyles( const QPtrList<KWFrameStyle> &listStyle )
00366 {
00367 save();
00368
00369 QPtrListIterator<KWFrameStyle> style( listStyle );
00370 for ( ; style.current() ; ++style )
00371 {
00372 noSignals=true;
00373 m_stylesList->insertItem( style.current()->displayName() );
00374 m_frameStyles.append( new KWFrameStyleListItem( 0L,new KWFrameStyle(*style.current())) );
00375 m_styleOrder<<style.current()->name();
00376 noSignals=false;
00377
00378 }
00379 updateGUI();
00380 }
00381
00382 void KWFrameStyleManager::addStyle()
00383 {
00384 save();
00385
00386 QString str = i18n( "New Framestyle Template (%1)" ).arg(numFrameStyles++);
00387 if ( m_currentFrameStyle )
00388 {
00389 m_currentFrameStyle = new KWFrameStyle( *m_currentFrameStyle );
00390 m_currentFrameStyle->setDisplayName( str );
00391 m_currentFrameStyle->setName( m_doc->frameStyleCollection()->generateUniqueName() );
00392 }
00393 else
00394 m_currentFrameStyle = new KWFrameStyle( str );
00395
00396 noSignals=true;
00397 m_frameStyles.append(new KWFrameStyleListItem(0L,m_currentFrameStyle));
00398 m_stylesList->insertItem( str );
00399 m_styleOrder<< str;
00400 m_stylesList->setCurrentItem( m_stylesList->count() - 1 );
00401 noSignals=false;
00402
00403 updateGUI();
00404 }
00405
00406 void KWFrameStyleManager::deleteStyle()
00407 {
00408 unsigned int cur = frameStyleIndex( m_stylesList->currentItem() );
00409 m_styleOrder.remove( m_stylesList->currentText());
00410 if ( !m_frameStyles.at(cur)->origFrameStyle() )
00411 m_frameStyles.take(cur );
00412 else {
00413 m_frameStyles.at( cur )->deleteStyle( m_currentFrameStyle );
00414 m_currentFrameStyle = 0L;
00415 }
00416
00417
00418 m_stylesList->removeItem(m_stylesList->currentItem());
00419 numFrameStyles--;
00420 m_stylesList->setSelected( m_stylesList->currentItem(), true );
00421 }
00422
00423 void KWFrameStyleManager::moveUpStyle()
00424 {
00425 if(m_currentFrameStyle !=0L)
00426 save();
00427 unsigned int pos = 0;
00428 QString currentStyleName = m_stylesList->currentText();
00429 if ( currentStyleName.isEmpty() )
00430 return;
00431 int pos2 = m_styleOrder.findIndex( currentStyleName );
00432 if ( pos2 > 0 )
00433 {
00434 m_styleOrder.remove( m_styleOrder.at(pos2));
00435 m_styleOrder.insert( m_styleOrder.at(pos2-1), currentStyleName);
00436 }
00437
00438
00439 pos=m_stylesList->currentItem();
00440 noSignals=true;
00441 m_stylesList->changeItem( m_stylesList->text ( pos-1 ),pos);
00442
00443 m_stylesList->changeItem( currentStyleName ,pos-1);
00444
00445 m_stylesList->setCurrentItem( m_stylesList->currentItem() );
00446 noSignals=false;
00447
00448 updateGUI();
00449 }
00450
00451 void KWFrameStyleManager::moveDownStyle()
00452 {
00453 if(m_currentFrameStyle !=0L)
00454 save();
00455 unsigned int pos = 0;
00456 QString currentStyleName=m_stylesList->currentText ();
00457 if ( currentStyleName.isEmpty() )
00458 return;
00459
00460 int pos2 = m_styleOrder.findIndex( currentStyleName );
00461 if ( pos2 != -1 )
00462 {
00463 m_styleOrder.remove( m_styleOrder.at(pos2));
00464 m_styleOrder.insert( m_styleOrder.at(pos2+1), currentStyleName);
00465 }
00466
00467 pos=m_stylesList->currentItem();
00468 noSignals=true;
00469 m_stylesList->changeItem( m_stylesList->text ( pos+1 ),pos);
00470 m_stylesList->changeItem( currentStyleName ,pos+1);
00471 m_stylesList->setCurrentItem( m_stylesList->currentItem() );
00472 noSignals=false;
00473
00474 updateGUI();
00475 }
00476
00477 void KWFrameStyleManager::slotOk()
00478 {
00479 save();
00480 apply();
00481 KDialogBase::slotOk();
00482 }
00483
00484 void KWFrameStyleManager::slotApply()
00485 {
00486 save();
00487 apply();
00488 KDialogBase::slotApply();
00489 }
00490
00491 void KWFrameStyleManager::apply()
00492 {
00493
00494 noSignals=true;
00495 for (unsigned int i =0 ; i < m_frameStyles.count() ; i++) {
00496 if(m_frameStyles.at(i)->origFrameStyle() == 0) {
00497
00498 kdDebug() << "adding new " << m_frameStyles.at(i)->changedFrameStyle()->name() << " (" << i << ")" << endl;
00499
00500 KWFrameStyle* style = m_doc->frameStyleCollection()->addStyle(m_frameStyles.take(i)->changedFrameStyle());
00501 m_frameStyles.insert( i, new KWFrameStyleListItem(0, style) );
00502
00503 } else if(m_frameStyles.at(i)->changedFrameStyle() == 0) {
00504
00505 kdDebug() << "deleting orig " << m_frameStyles.at(i)->origFrameStyle()->name() << " (" << i << ")" << endl;
00506
00507 KWFrameStyle *orig = m_frameStyles.at(i)->origFrameStyle();
00508 m_doc->frameStyleCollection()->removeStyle( orig );
00509
00510 } else {
00511
00512 kdDebug() << "update style " << m_frameStyles.at(i)->changedFrameStyle()->name() << " (" << i << ")" << endl;
00513
00514 m_frameStyles.at(i)->apply();
00515 }
00516 }
00517 m_doc->frameStyleCollection()->updateStyleListOrder( m_styleOrder );
00518 m_doc->updateAllFrameStyleLists();
00519 m_doc->setModified( true );
00520 noSignals=false;
00521 }
00522
00523 void KWFrameStyleManager::renameStyle(const QString &theText) {
00524 if(noSignals) return;
00525 noSignals=true;
00526
00527 int index = m_stylesList->currentItem();
00528 kdDebug() << "KWFrameStyleManager::renameStyle " << index << " to " << theText << endl;
00529
00530
00531 m_stylesList->changeItem( theText, index );
00532 m_styleOrder[index]=theText;
00533
00534
00535 int synonyms = 0;
00536 for ( uint i = 0; i < m_stylesList->count(); i++ ) {
00537 if ( m_stylesList->text( i ) == m_stylesList->currentText() )
00538 ++synonyms;
00539 }
00540 Q_ASSERT( synonyms > 0 );
00541 noSignals=false;
00542
00543 bool state=!theText.isEmpty() && (synonyms == 1);
00544 enableButtonOK(state );
00545 enableButtonApply(state);
00546 m_deleteButton->setEnabled(state&&(m_stylesList->currentItem() != 0));
00547 m_newButton->setEnabled(state);
00548 m_stylesList->setEnabled( state );
00549 enableButton( KDialogBase::User1, state );
00550
00551 if ( state )
00552 {
00553 m_moveUpButton->setEnabled(m_stylesList->currentItem() != 0);
00554 m_moveDownButton->setEnabled(m_stylesList->currentItem()!=(int)m_stylesList->count()-1);
00555 }
00556 else
00557 {
00558 m_moveUpButton->setEnabled(false);
00559 m_moveDownButton->setEnabled(false);
00560 }
00561 }
00562
00563
00564
00565
00566
00567 KWFrameStyleBackgroundTab::KWFrameStyleBackgroundTab( QWidget * parent )
00568 : KWFrameStyleManagerTab( parent )
00569 {
00570 bgwidget = this;
00571 m_backgroundColor.setStyle( SolidPattern );
00572
00573 grid = new QGridLayout( bgwidget, 7, 2, KDialog::marginHint(), KDialog::spacingHint() );
00574
00575 int row=0;
00576
00577 brushPreview = new KWBrushStylePreview( bgwidget );
00578 grid->addMultiCellWidget(brushPreview,row,5,1,1);
00579
00580 QLabel *l = new QLabel( i18n( "Frame background color:" ), bgwidget );
00581
00582 grid->addWidget(l,row++,0);
00583
00584 brushColor = new KColorButton( Qt::white, bgwidget );
00585 grid->addWidget(brushColor,row++,0);
00586
00587 connect( brushColor, SIGNAL( changed( const QColor & ) ),
00588 this, SLOT( updateBrushConfiguration( const QColor & ) ) );
00589
00590 QSpacerItem* spacer = new QSpacerItem( 10, 10, QSizePolicy::Minimum, QSizePolicy::Expanding);
00591 grid->addItem( spacer,row,0 );
00592
00593 updateBrushConfiguration( Qt::white );
00594 }
00595
00596 void KWFrameStyleBackgroundTab::updateBrushConfiguration( const QColor & _color )
00597 {
00598 m_backgroundColor.setColor( _color );
00599 brushPreview->show();
00600 brushPreview->setBrush( m_backgroundColor );
00601 brushPreview->repaint(true);
00602 }
00603
00604 QString KWFrameStyleBackgroundTab::tabName()
00605 {
00606 return i18n("Background");
00607 }
00608
00609 void KWFrameStyleBackgroundTab::update()
00610 {
00611 brushColor->setColor( m_style->backgroundColor().color() );
00612 updateBrushConfiguration( m_style->backgroundColor().color() );
00613 }
00614
00615 void KWFrameStyleBackgroundTab::save()
00616 {
00617 m_style->setBackgroundColor( m_backgroundColor );
00618 }
00619
00620
00621
00622
00623
00624 KWFrameStyleBordersTab::KWFrameStyleBordersTab( QWidget * parent )
00625 : KWFrameStyleManagerTab( parent )
00626 {
00627 m_widget = 0L;
00628 m_borders = new KoParagLayout();
00629 }
00630
00631 KWFrameStyleBordersTab::~KWFrameStyleBordersTab()
00632 {
00633 delete m_borders;
00634 }
00635
00636 QString KWFrameStyleBordersTab::tabName()
00637 {
00638 return m_widget->tabName();
00639 }
00640
00641 void KWFrameStyleBordersTab::update()
00642 {
00643 m_borders->leftBorder = m_style->leftBorder();
00644 m_borders->rightBorder = m_style->rightBorder();
00645 m_borders->topBorder = m_style->topBorder();
00646 m_borders->bottomBorder = m_style->bottomBorder();
00647
00648
00649 m_widget->display( *m_borders );
00650 }
00651
00652 void KWFrameStyleBordersTab::save()
00653 {
00654 m_widget->save( *m_borders );
00655 m_style->setLeftBorder( m_borders->leftBorder );
00656 m_style->setRightBorder( m_borders->rightBorder );
00657 m_style->setTopBorder( m_borders->topBorder );
00658 m_style->setBottomBorder( m_borders->bottomBorder );
00659 }
00660
00661 void KWFrameStyleBordersTab::setWidget( KoParagLayoutWidget * widget )
00662 {
00663 m_widget = widget;
00664 }
00665
00666 void KWFrameStyleBordersTab::resizeEvent( QResizeEvent *e )
00667 {
00668 QWidget::resizeEvent( e );
00669 if ( m_widget ) m_widget->resize( size() );
00670 }
00671