27#include <tdelistview.h>
30#include "kspread_canvas.h"
31#include "kspread_cell.h"
32#include "kspread_dlg_layout.h"
33#include "kspread_sheet.h"
34#include "kspread_style.h"
35#include "kspread_style_manager.h"
36#include "kspread_view.h"
38#include "kspread_dlg_styles.h"
42StyleWidget::StyleWidget( TQWidget * parent,
const char * name, WFlags fl )
43 : TQWidget( parent, name, fl )
45 TQVBoxLayout * layout =
new TQVBoxLayout(
this, 11, 6,
"layout");
47 m_styleList =
new TDEListView(
this,
"m_styleList" );
48 m_styleList->addColumn( i18n(
"Styles" ) );
49 m_styleList->setResizeMode( TDEListView::AllColumns );
50 layout->addWidget( m_styleList );
52 m_displayBox =
new KComboBox(
false,
this,
"m_displayBox" );
53 layout->addWidget( m_displayBox );
55 m_styleList->header()->setLabel( 0, i18n(
"Styles" ) );
56 m_displayBox->clear();
57 m_displayBox->insertItem( i18n(
"All Styles" ) );
58 m_displayBox->insertItem( i18n(
"Applied Styles" ) );
59 m_displayBox->insertItem( i18n(
"Custom Styles" ) );
60 m_displayBox->insertItem( i18n(
"Hierarchical" ) );
61 connect( m_styleList, TQ_SIGNAL(doubleClicked ( TQListViewItem *)),
this, TQ_SIGNAL( modifyStyle()));
62 resize( TQSize(446, 384).expandedTo(minimumSizeHint()) );
65StyleWidget::~StyleWidget()
71StyleDlg::StyleDlg(
View * parent, StyleManager * manager,
73 : KDialogBase( parent, name, true,
"",
74 KDialogBase::Ok | KDialogBase::User1 | KDialogBase::User2 | KDialogBase::User3 | KDialogBase::Close,
75 KDialogBase::Ok, false, KGuiItem( i18n(
"&New..." ) ), KGuiItem( i18n(
"&Modify..." ) ), KGuiItem( i18n(
"&Delete" ) ) ),
77 m_styleManager( manager ),
78 m_dlg( new StyleWidget( this ) )
80 setCaption( i18n(
"Style Manager" ) );
81 setButtonBoxOrientation(TQt::Vertical );
82 setMainWidget( m_dlg );
85 enableButton( KDialogBase::User1,
true );
86 enableButton( KDialogBase::User2,
true );
87 enableButton( KDialogBase::User3,
false );
89 connect( m_dlg->m_styleList, TQ_SIGNAL( selectionChanged( TQListViewItem * ) ),
90 this, TQ_SLOT( slotSelectionChanged( TQListViewItem * ) ) );
91 connect( m_dlg->m_displayBox, TQ_SIGNAL( activated(
int ) ),
this, TQ_SLOT( slotDisplayMode(
int ) ) );
92 connect(
this, TQ_SIGNAL( user3Clicked() ),
this, TQ_SLOT( slotUser3() ) );
93 connect( m_dlg, TQ_SIGNAL( modifyStyle() ),
this, TQ_SLOT( slotUser2()));
100void StyleDlg::fillComboBox()
102 class Map :
public TQMap<CustomStyle *, TDEListViewItem *> {};
106 entries[m_styleManager->defaultStyle()] =
new TDEListViewItem( m_dlg->m_styleList, i18n(
"Default" ) );
108 StyleManager::Styles::const_iterator iter = m_styleManager->m_styles.begin();
109 StyleManager::Styles::const_iterator end = m_styleManager->m_styles.end();
110 uint count = m_styleManager->m_styles.count() + 1;
112 while ( entries.
count() != count )
114 if ( entries.find( iter.data() ) == entries.end() )
116 if ( iter.data()->parent() == 0 )
117 entries[iter.data()] =
new TDEListViewItem( m_dlg->m_styleList, iter.data()->name() );
120 Map::const_iterator i = entries.find( iter.data()->parent() );
121 if ( i != entries.end() )
122 entries[iter.data()] =
new TDEListViewItem( i.data(), iter.data()->name() );
128 iter = m_styleManager->m_styles.begin();
133void StyleDlg::slotDisplayMode(
int mode )
135 m_dlg->m_styleList->clear();
138 m_dlg->m_styleList->setRootIsDecorated(
false );
141 m_dlg->m_styleList->setRootIsDecorated(
true );
147 new TDEListViewItem( m_dlg->m_styleList, i18n(
"Default" ) );
149 StyleManager::Styles::iterator iter = m_styleManager->m_styles.begin();
150 StyleManager::Styles::iterator end = m_styleManager->m_styles.end();
152 while ( iter != end )
155 if ( !styleData || styleData->name().isEmpty() )
164 new TDEListViewItem( m_dlg->m_styleList, styleData->name() );
166 else if ( mode == 1 )
168 if ( styleData->
usage() > 0 )
169 new TDEListViewItem( m_dlg->m_styleList, styleData->name() );
172 new TDEListViewItem( m_dlg->m_styleList, styleData->name() );
178void StyleDlg::slotOk()
180 TDEListViewItem * item = (TDEListViewItem *) m_dlg->m_styleList->currentItem();
190 TQString name( item->text( 0 ) );
191 if ( name == i18n(
"Default" ) )
192 s = m_styleManager->defaultStyle();
194 s = m_styleManager->style( name );
204 Sheet * sheet = m_view->activeSheet();
208 m_view->doc()->emitBeginOperation(
false );
209 sheet->setSelectionStyle( m_view->selectionInfo(), s );
212 m_view->slotUpdateView( m_view->activeSheet() );
217void StyleDlg::slotUser1()
221 TDEListViewItem * item = (TDEListViewItem *) m_dlg->m_styleList->currentItem();
225 TQString name( item->text( 0 ) );
226 if ( name == i18n(
"Default" ) )
227 s = m_styleManager->defaultStyle();
229 s = m_styleManager->style( name );
232 s = m_styleManager->defaultStyle();
235 TQString newName( i18n(
"style%1" ).arg( m_styleManager->count() + i ) );
236 while ( m_styleManager->style( newName ) != 0 )
239 newName = i18n(
"style%1" ).arg( m_styleManager->count() + i );
243 style->setType( Style::TENTATIVE );
247 if ( style->type() == Style::TENTATIVE )
253 m_styleManager->m_styles[ style->name() ] = style;
255 slotDisplayMode( m_dlg->m_displayBox->currentItem() );
258void StyleDlg::slotUser2()
260 TDEListViewItem * item = (TDEListViewItem *) m_dlg->m_styleList->currentItem();
267 TQString name( item->text( 0 ) );
268 if ( name == i18n(
"Default" ) )
269 s = m_styleManager->defaultStyle();
271 s = m_styleManager->style( name );
277 slotDisplayMode( m_dlg->m_displayBox->currentItem() );
280void StyleDlg::slotUser3()
282 TDEListViewItem * item = (TDEListViewItem *) m_dlg->m_styleList->currentItem();
289 TQString name( item->text( 0 ) );
290 if ( name == i18n(
"Default" ) )
291 s = m_styleManager->defaultStyle();
293 s = m_styleManager->style( name );
302 m_styleManager->takeStyle( s );
304 slotDisplayMode( m_dlg->m_displayBox->currentItem() );
307void StyleDlg::slotSelectionChanged( TQListViewItem * item )
313 TQString name( item->text( 0 ) );
314 if ( name == i18n(
"Default" ) )
315 style = m_styleManager->defaultStyle();
317 style = m_styleManager->style( name );
320 enableButton( KDialogBase::User3,
false );
325 enableButton( KDialogBase::User3,
false );
327 enableButton( KDialogBase::User3,
true );
331#include "kspread_dlg_styles.moc"
Built-in or custom style defined in StyleManager dialog.
A map is a simple container for all sheets.
@ BUILTIN
built-in style (the default style)
@ AUTO
automatically generated on cell format changes
@ CUSTOM
custom style (defined in the StyleManager dialog)
The View class displays a KSpread document.