KHolidays Library
holidayregionselector.cpp
00001 /* 00002 This file is part of the kholidays library. 00003 00004 Copyright 2010 John Layt <john@layt.net> 00005 00006 This library is free software; you can redistribute it and/or 00007 modify it under the terms of the GNU Library General Public 00008 License as published by the Free Software Foundation; either 00009 version 2 of the License, or (at your option) any later version. 00010 00011 This library is distributed in the hope that it will be useful, 00012 but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00014 GNU Library General Public License for more details. 00015 00016 You should have received a copy of the GNU Library General Public License 00017 along with this library; see the file COPYING.LIB. If not, write to the 00018 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 00019 Boston, MA 02110-1301, USA. 00020 */ 00021 00022 #include "holidayregionselector.h" 00023 #include "ui_holidayregionselector.h" 00024 00025 #include "holidayregion.h" 00026 00027 #include <KDebug> 00028 #include <KLocale> 00029 #include <KComboBox> 00030 00031 using namespace KHolidays; 00032 00033 class HolidayRegionSelector::Private 00034 { 00035 public: 00036 Private( HolidayRegionSelector *q_ptr ) 00037 { 00038 q = q_ptr; 00039 } 00040 00041 ~Private() 00042 { 00043 } 00044 00045 // Reorder this to change column order 00046 enum Column { 00047 RegionColumn = 0, 00048 LanguageColumn, 00049 DescriptionColumn, 00050 SelectColumn, 00051 ComboColumn 00052 }; 00053 00054 void clearSelection(); 00055 QTreeWidgetItem *findItem( const QString &holidayRegionCode ); 00056 void initItem( QTreeWidgetItem *listItem, HolidayRegion *region ); 00057 QString itemRegion( QTreeWidgetItem *item ); 00058 QString itemLanguage( QTreeWidgetItem *item ); 00059 SelectionStatus itemSelectionStatus( QTreeWidgetItem *item ); 00060 void setItemStatus( QTreeWidgetItem *item, SelectionStatus status ); 00061 KComboBox *itemCombo( QTreeWidgetItem *item ); 00062 void setItemRegionUseFlags( QTreeWidgetItem *item, RegionUseFlags regionUseFlags ); 00063 HolidayRegionSelector::RegionUseFlags itemRegionUseFlags( QTreeWidgetItem *item ); 00064 00065 QAbstractItemView::SelectionMode m_selectionMode; 00066 bool m_enableRegionUseFlags; 00067 QStringList m_languageFilter; 00068 QStringList m_holidayRegionCodes; 00069 Ui::holidayRegionSelector m_ui; 00070 HolidayRegionSelector *q; 00071 }; 00072 00073 void HolidayRegionSelector::Private::clearSelection() 00074 { 00075 m_ui.regionTreeWidget->blockSignals( true ); 00076 QTreeWidgetItemIterator it( m_ui.regionTreeWidget, QTreeWidgetItemIterator::Checked ); 00077 while ( *it ) { 00078 (*it)->setCheckState( Private::SelectColumn, Qt::Unchecked ); 00079 (*it)->setData( Private::SelectColumn, Qt::UserRole, RegionAvailable ); 00080 itemCombo( (*it) )->setCurrentIndex( 0 ); 00081 (*it)->setData( Private::ComboColumn, Qt::UserRole, NotUsed ); 00082 ++it; 00083 } 00084 m_ui.regionTreeWidget->blockSignals( false ); 00085 } 00086 00087 QTreeWidgetItem *HolidayRegionSelector::Private::findItem( const QString &holidayRegionCode ) 00088 { 00089 QTreeWidgetItemIterator it( m_ui.regionTreeWidget ); 00090 while ( *it ) { 00091 if ( (*it)->data( HolidayRegionSelector::Private::RegionColumn, Qt::UserRole ) == 00092 holidayRegionCode ) { 00093 return (*it); 00094 } 00095 ++it; 00096 } 00097 return 0; 00098 } 00099 00100 void HolidayRegionSelector::Private::initItem( QTreeWidgetItem *listItem, HolidayRegion *region ) 00101 { 00102 m_ui.regionTreeWidget->blockSignals( true ); 00103 QString languageName = KGlobal::locale()->languageCodeToName( region->languageCode() ); 00104 listItem->setCheckState( Private::SelectColumn, Qt::Unchecked ); 00105 QString text = i18n( "<p>Select to use Holiday Region</p>" ); 00106 listItem->setToolTip( Private::SelectColumn, text ); 00107 listItem->setToolTip( Private::ComboColumn, text ); 00108 text = i18n( "<p>Select to use Holiday Region</p>" ); 00109 listItem->setToolTip( Private::SelectColumn, text ); 00110 listItem->setToolTip( Private::ComboColumn, text ); 00111 listItem->setText( Private::RegionColumn, region->name() ); 00112 QString toolTip = i18n( "<p><b>Region:</b> %1<br/>" 00113 "<b>Language:</b> %2<br/>" 00114 "<b>Description:</b> %3</p>", 00115 region->name(), languageName, region->description() ); 00116 listItem->setToolTip( Private::RegionColumn, toolTip ); 00117 listItem->setData( Private::RegionColumn, Qt::UserRole, region->regionCode() ); 00118 listItem->setText( Private::LanguageColumn, languageName ); 00119 listItem->setData( Private::LanguageColumn, Qt::UserRole, region->languageCode() ); 00120 listItem->setText( Private::DescriptionColumn, region->description() ); 00121 listItem->setToolTip( Private::DescriptionColumn, region->description() ); 00122 KComboBox *combo = new KComboBox(); 00123 combo->setAutoFillBackground( true ); 00124 QString comboText = i18n( "<p>You can choose to display the Holiday Region for information only, " 00125 "or to use the Holiday Region when displaying or calculating days off " 00126 "such as Public Holidays. If you choose to use the Holiday Region for " 00127 "Days Off, then only those Holiday Events marked in the Holiday Region " 00128 "as Days Off will be used for non-work days, Holiday Events that are " 00129 "not marked in the Holiday Region as Days Off will continue to be " 00130 "work days.</p>" ); 00131 combo->setToolTip( comboText ); 00132 comboText = i18nc( "Combobox label, Holiday Region not used", "Not Used" ); 00133 combo->addItem( comboText, QVariant( NotUsed ) ); 00134 comboText = i18nc( "Combobox label, use Holiday Region for information only", "Information" ); 00135 combo->addItem( comboText, QVariant( UseInformationOnly ) ); 00136 comboText = i18nc( "Combobox label, use Holiday Region for days off", "Days Off" ); 00137 combo->addItem( comboText, QVariant( UseDaysOff ) ); 00138 combo->setCurrentIndex( 0 ); 00139 listItem->setData( Private::ComboColumn, Qt::UserRole, NotUsed ); 00140 m_ui.regionTreeWidget->setItemWidget( listItem, ComboColumn, combo ); 00141 connect( combo, SIGNAL(currentIndexChanged(int)), 00142 q, SLOT(itemChanged(int)) ); 00143 m_ui.regionTreeWidget->blockSignals( false ); 00144 } 00145 00146 QString HolidayRegionSelector::Private::itemRegion( QTreeWidgetItem *item ) 00147 { 00148 return item->data( Private::RegionColumn, Qt::UserRole ).toString(); 00149 } 00150 00151 QString HolidayRegionSelector::Private::itemLanguage( QTreeWidgetItem *item ) 00152 { 00153 return item->data( Private::LanguageColumn, Qt::UserRole ).toString(); 00154 } 00155 00156 HolidayRegionSelector::SelectionStatus 00157 HolidayRegionSelector::Private::itemSelectionStatus( QTreeWidgetItem *item ) 00158 { 00159 return 00160 ( HolidayRegionSelector::SelectionStatus ) 00161 item->data( Private::SelectColumn, Qt::UserRole ).toInt(); 00162 } 00163 00164 void HolidayRegionSelector::Private::setItemRegionUseFlags( QTreeWidgetItem *item, 00165 RegionUseFlags regionUseFlags ) 00166 { 00167 // Just do simple flags for now, cheat on the index 00168 item->setData( ComboColumn, Qt::UserRole, QVariant( regionUseFlags ) ); 00169 if ( regionUseFlags & UseDaysOff ){ 00170 setItemStatus( item, RegionSelected ); 00171 itemCombo( item )->setCurrentIndex( 2 ); 00172 } else if ( regionUseFlags & UseInformationOnly ) { 00173 setItemStatus( item, RegionSelected ); 00174 itemCombo( item )->setCurrentIndex( 1 ); 00175 } else { // NotUsed 00176 setItemStatus( item, RegionAvailable ); 00177 itemCombo( item )->setCurrentIndex( 0 ); 00178 } 00179 } 00180 00181 HolidayRegionSelector::RegionUseFlags 00182 HolidayRegionSelector::Private::itemRegionUseFlags( QTreeWidgetItem *item ) 00183 { 00184 return (RegionUseFlags) item->data( ComboColumn, Qt::UserRole ).toInt(); 00185 } 00186 00187 KComboBox *HolidayRegionSelector::Private::itemCombo( QTreeWidgetItem *item ) 00188 { 00189 return static_cast<KComboBox*>( m_ui.regionTreeWidget->itemWidget( item, ComboColumn ) ); 00190 } 00191 00192 void HolidayRegionSelector::Private::setItemStatus( QTreeWidgetItem *item, SelectionStatus status ) 00193 { 00194 if ( m_selectionMode == QAbstractItemView::SingleSelection && 00195 status == RegionSelected ) { 00196 clearSelection(); 00197 } 00198 00199 Qt::CheckState selectStatus = Qt::Unchecked; 00200 bool hidden = false; 00201 bool disabled = false; 00202 00203 switch ( status ) { 00204 case RegionHidden: 00205 hidden = true; 00206 disabled = true; 00207 break; 00208 case RegionDisabled: 00209 disabled = true; 00210 break; 00211 case RegionAvailable: 00212 break; 00213 case RegionSelected: 00214 { 00215 if ( m_selectionMode != QAbstractItemView::NoSelection ) { 00216 selectStatus = Qt::Checked; 00217 } 00218 break; 00219 } 00220 default: 00221 break; 00222 } 00223 00224 m_ui.regionTreeWidget->blockSignals( true ); 00225 item->setData( Private::SelectColumn, Qt::UserRole, status ); 00226 item->setCheckState( Private::SelectColumn, selectStatus ); 00227 item->setHidden( hidden ); 00228 item->setDisabled( disabled ); 00229 m_ui.regionTreeWidget->blockSignals( false ); 00230 } 00231 00232 HolidayRegionSelector::HolidayRegionSelector( QWidget *parent ) : 00233 QWidget( parent ), d( new Private( this ) ) 00234 { 00235 d->m_ui.setupUi( this ); 00236 00237 // Setup the columns 00238 d->m_ui.regionTreeWidget->setColumnCount( 5 ); 00239 QTreeWidgetItem *headerItem = d->m_ui.regionTreeWidget->headerItem(); 00240 QString header = i18nc( "Header for Select column", "Select" ); 00241 QString text = i18n( "<p>This column selects to use the Holiday Region</p>" ); 00242 headerItem->setText( Private::SelectColumn, header ); 00243 headerItem->setToolTip( Private::SelectColumn, text ); 00244 headerItem->setWhatsThis( Private::SelectColumn, text ); 00245 headerItem->setText( Private::ComboColumn, header ); 00246 headerItem->setToolTip( Private::ComboColumn, text ); 00247 headerItem->setWhatsThis( Private::ComboColumn, text ); 00248 header = i18nc( "Header for Holiday Region column", "Region" ); 00249 text = i18n( "<p>This column displays the name of the Holiday Region</p>" ); 00250 headerItem->setText( Private::RegionColumn, header ); 00251 headerItem->setToolTip( Private::RegionColumn, text ); 00252 headerItem->setWhatsThis( Private::RegionColumn, text ); 00253 header = i18nc( "Header for Language column", "Language" ); 00254 text = i18n( "<p>This column displays the language of the Holiday Region</p>" ); 00255 headerItem->setText( Private::LanguageColumn, header ); 00256 headerItem->setToolTip( Private::LanguageColumn, text ); 00257 headerItem->setWhatsThis( Private::LanguageColumn, text ); 00258 header = i18nc( "Header for Description column", "Description" ); 00259 text = i18n( "<p>This column displays the description of the Holiday Region</p>" ); 00260 headerItem->setText( Private::DescriptionColumn, header ); 00261 headerItem->setToolTip( Private::DescriptionColumn, text ); 00262 headerItem->setWhatsThis( Private::DescriptionColumn, text ); 00263 00264 d->m_ui.regionTreeWidget->setSelectionMode( QAbstractItemView::NoSelection ); 00265 d->m_ui.regionTreeWidget->setItemsExpandable( false ); 00266 d->m_ui.regionTreeWidget->setUniformRowHeights( true ); 00267 d->m_ui.regionTreeWidget->setAllColumnsShowFocus( true ); 00268 connect( d->m_ui.regionTreeWidget, SIGNAL(itemChanged(QTreeWidgetItem*,int)), 00269 this, SLOT(itemChanged(QTreeWidgetItem*,int)) ); 00270 00271 QMap<QString, QStringList> regionCodeMap; 00272 QMap<QString, HolidayRegion*> regionMap; 00273 foreach ( const QString ®ionCode, HolidayRegion::regionCodes() ) { 00274 regionMap[regionCode] = new HolidayRegion( regionCode ); 00275 QString country = regionMap[regionCode]->countryCode().split( '-' ).at(0); 00276 regionCodeMap[country].append( regionCode ); 00277 } 00278 00279 QMapIterator<QString, QStringList> it( regionCodeMap ); 00280 while ( it.hasNext() ) { 00281 it.next(); 00282 // if only 1 region for country and that region is the country, then only show the country line 00283 // Otherwise show a non-selectable country header and list all regions below it 00284 QTreeWidgetItem *rootItem = new QTreeWidgetItem( d->m_ui.regionTreeWidget ); 00285 QString country = it.key(); 00286 if ( it.value().count() == 1 && regionMap[it.value().at( 0 )]->countryCode() == country ) { 00287 d->initItem( rootItem, regionMap[ it.value().at( 0 ) ] ); 00288 } else { 00289 rootItem->setText( Private::RegionColumn, 00290 KGlobal::locale()->countryCodeToName( country ) ); 00291 d->m_ui.regionTreeWidget->setFirstItemColumnSpanned ( rootItem, true ); 00292 foreach ( const QString ®ionCode, it.value() ) { 00293 QTreeWidgetItem *childItem = new QTreeWidgetItem( rootItem ); 00294 d->initItem( childItem, regionMap[ regionCode ] ); 00295 } 00296 } 00297 } 00298 00299 QMapIterator<QString, HolidayRegion*> i( regionMap ); 00300 while ( i.hasNext() ) { 00301 i.next(); 00302 delete i.value(); 00303 } 00304 00305 d->m_ui.regionTreeWidget->expandAll(); 00306 d->m_ui.regionTreeWidget->sortItems( Private::RegionColumn, Qt::AscendingOrder ); 00307 d->m_ui.regionTreeWidget->resizeColumnToContents( Private::SelectColumn ); 00308 d->m_ui.regionTreeWidget->resizeColumnToContents( Private::ComboColumn ); 00309 d->m_ui.regionTreeWidget->resizeColumnToContents( Private::RegionColumn ); 00310 d->m_ui.regionTreeWidget->resizeColumnToContents( Private::LanguageColumn ); 00311 00312 // Setup search widget 00313 d->m_ui.searchLineWidget->searchLine()->addTreeWidget( d->m_ui.regionTreeWidget ); 00314 00315 // Default to MultiSelection mode with Region Use Flags 00316 setSelectionMode( QAbstractItemView::MultiSelection ); 00317 setRegionUseFlagsEnabled( true ); 00318 } 00319 00320 HolidayRegionSelector::~HolidayRegionSelector() 00321 { 00322 delete d; 00323 } 00324 00325 QStringList HolidayRegionSelector::holidayRegions() const 00326 { 00327 return d->m_holidayRegionCodes; 00328 } 00329 00330 void HolidayRegionSelector::setSelectionMode( QAbstractItemView::SelectionMode selectionMode ) 00331 { 00332 d->m_selectionMode = selectionMode; 00333 00334 if ( selectionMode == QAbstractItemView::NoSelection ) { 00335 setRegionUseFlagsEnabled( false ); 00336 } 00337 } 00338 00339 QAbstractItemView::SelectionMode HolidayRegionSelector::selectionMode() const 00340 { 00341 return d->m_selectionMode; 00342 } 00343 00344 void HolidayRegionSelector::setRegionUseFlagsEnabled( bool enableRegionUseFlags ) 00345 { 00346 d->m_enableRegionUseFlags = enableRegionUseFlags; 00347 d->m_ui.regionTreeWidget->setColumnHidden( Private::SelectColumn, enableRegionUseFlags ); 00348 d->m_ui.regionTreeWidget->setColumnHidden( Private::ComboColumn, !enableRegionUseFlags ); 00349 } 00350 00351 bool HolidayRegionSelector::regionUseFlagsEnabled() const 00352 { 00353 return d->m_enableRegionUseFlags; 00354 } 00355 00356 void HolidayRegionSelector::setSelectionStatus( const QString &holidayRegionCode, 00357 HolidayRegionSelector::SelectionStatus status ) 00358 { 00359 QTreeWidgetItem *item = d->findItem( holidayRegionCode ); 00360 if ( item ) { 00361 d->setItemStatus( item, status ); 00362 } 00363 } 00364 00365 HolidayRegionSelector::SelectionStatus 00366 HolidayRegionSelector::selectionStatus( const QString &holidayRegionCode ) const 00367 { 00368 QTreeWidgetItem *item = d->findItem( holidayRegionCode ); 00369 if ( item ) { 00370 return d->itemSelectionStatus( item ); 00371 } 00372 return HolidayRegionSelector::RegionHidden; 00373 } 00374 00375 QHash<QString, HolidayRegionSelector::SelectionStatus> 00376 HolidayRegionSelector::selectionStatus() const 00377 { 00378 QHash<QString, HolidayRegionSelector::SelectionStatus> selection; 00379 QTreeWidgetItemIterator it( d->m_ui.regionTreeWidget ); 00380 while ( *it ) { 00381 selection.insert( d->itemRegion( (*it) ), d->itemSelectionStatus( (*it) ) ); 00382 ++it; 00383 } 00384 return selection; 00385 } 00386 00387 QStringList 00388 HolidayRegionSelector::selection( HolidayRegionSelector::SelectionStatus selectionStatus ) const 00389 { 00390 if ( selectionMode() == QAbstractItemView::NoSelection ) { 00391 return QStringList(); 00392 } 00393 00394 QStringList selection; 00395 QTreeWidgetItemIterator it( d->m_ui.regionTreeWidget ); 00396 while ( *it ) { 00397 if ( d->itemSelectionStatus( (*it) ) == selectionStatus ) { 00398 selection.append( d->itemRegion( (*it) ) ); 00399 } 00400 ++it; 00401 } 00402 return selection; 00403 } 00404 00405 QStringList 00406 HolidayRegionSelector::selection( HolidayRegionSelector::RegionUseFlags regionUseFlags ) const 00407 { 00408 if ( selectionMode() == QAbstractItemView::NoSelection ) { 00409 return QStringList(); 00410 } 00411 00412 QStringList selection; 00413 QTreeWidgetItemIterator it( d->m_ui.regionTreeWidget ); 00414 while ( *it ) { 00415 if ( d->itemRegionUseFlags( (*it) ) & regionUseFlags ) { 00416 selection.append( d->itemRegion( (*it) ) ); 00417 } 00418 ++it; 00419 } 00420 return selection; 00421 } 00422 00423 void 00424 HolidayRegionSelector::setRegionUseFlags( const QString &holidayRegionCode, 00425 HolidayRegionSelector::RegionUseFlags regionUseFlags ) 00426 { 00427 QTreeWidgetItem *item = d->findItem( holidayRegionCode ); 00428 if ( item ) { 00429 d->setItemRegionUseFlags( item, regionUseFlags ); 00430 } 00431 } 00432 00433 HolidayRegionSelector::RegionUseFlags 00434 HolidayRegionSelector::regionUseFlags( const QString &holidayRegionCode ) const 00435 { 00436 QTreeWidgetItem *item = d->findItem( holidayRegionCode ); 00437 if ( item ) { 00438 return d->itemRegionUseFlags( item ); 00439 } 00440 return HolidayRegionSelector::NotUsed; 00441 } 00442 00443 QHash<QString, HolidayRegionSelector::RegionUseFlags> HolidayRegionSelector::regionUseFlags() const 00444 { 00445 QHash<QString, HolidayRegionSelector::RegionUseFlags> selection; 00446 QTreeWidgetItemIterator it( d->m_ui.regionTreeWidget ); 00447 while ( *it ) { 00448 selection.insert( d->itemRegion( (*it) ), d->itemRegionUseFlags( (*it) ) ); 00449 ++it; 00450 } 00451 return selection; 00452 } 00453 00454 void HolidayRegionSelector::itemChanged( QTreeWidgetItem *item, int column ) 00455 { 00456 if ( column == Private::SelectColumn ) { 00457 if ( item->checkState( Private::SelectColumn ) == Qt::Unchecked ) { 00458 d->setItemStatus( item, RegionAvailable ); 00459 } else { 00460 d->setItemStatus( item, RegionSelected ); 00461 } 00462 } 00463 emit selectionChanged(); 00464 } 00465 00466 // The slot for the combo box when changed 00467 void HolidayRegionSelector::itemChanged( int index ) 00468 { 00469 KComboBox *combo = static_cast<KComboBox*>( sender() ); 00470 QTreeWidgetItemIterator it( d->m_ui.regionTreeWidget ); 00471 bool found = false; 00472 while ( *it && !found ) { 00473 if ( d->itemCombo( (*it) ) == combo ) { 00474 (*it)->setData( 00475 Private::ComboColumn, Qt::UserRole, d->itemCombo( (*it) )->itemData( index ) ); 00476 if ( d->itemRegionUseFlags( (*it) ) == NotUsed ) { 00477 d->setItemStatus( (*it), RegionAvailable ); 00478 } else { 00479 d->setItemStatus( (*it), RegionSelected ); 00480 } 00481 found = true; 00482 } 00483 ++it; 00484 } 00485 } 00486 00487 void HolidayRegionSelector::clearSelection() 00488 { 00489 d->clearSelection(); 00490 } 00491 00492 void HolidayRegionSelector::setLanguageFilter( const QStringList &languages ) 00493 { 00494 // First reset to visible those languages previously hidden 00495 QTreeWidgetItemIterator it( d->m_ui.regionTreeWidget ); 00496 while ( *it ) { 00497 if ( !d->m_languageFilter.contains( 00498 (*it)->data( Private::LanguageColumn, Qt::UserRole ).toString() ) ) { 00499 d->setItemStatus( (*it), RegionAvailable ); 00500 } 00501 ++it; 00502 } 00503 // Now hide those languages not in the new list 00504 d->m_languageFilter = languages; 00505 QTreeWidgetItemIterator it2( d->m_ui.regionTreeWidget ); 00506 while ( *it2 ) { 00507 QString language = (*it2)->data( Private::LanguageColumn, Qt::UserRole ).toString(); 00508 if ( d->m_languageFilter.contains( language ) ) { 00509 // Make sure the parent is always visible, otherwise the child is not visible 00510 if ( (*it2)->parent() && (*it2)->parent() != d->m_ui.regionTreeWidget->invisibleRootItem() ) { 00511 d->setItemStatus( (*it2)->parent(), RegionAvailable ); 00512 } 00513 } else { 00514 d->setItemStatus( (*it2), RegionHidden ); 00515 } 00516 ++it2; 00517 } 00518 } 00519 00520 QStringList HolidayRegionSelector::languageFilter() const 00521 { 00522 return d->m_languageFilter; 00523 } 00524 00525 void HolidayRegionSelector::setSearchHidden( bool hideSearch ) 00526 { 00527 d->m_ui.searchLineWidget->setHidden( hideSearch ); 00528 } 00529 00530 bool HolidayRegionSelector::searchHidden() const 00531 { 00532 return d->m_ui.searchLineWidget->isHidden(); 00533 } 00534 00535 void HolidayRegionSelector::setLanguageHidden( bool hideLanguage ) 00536 { 00537 d->m_ui.regionTreeWidget->setColumnHidden( Private::LanguageColumn, hideLanguage ); 00538 } 00539 00540 bool HolidayRegionSelector::languageHidden() const 00541 { 00542 return d->m_ui.regionTreeWidget->isColumnHidden( Private::LanguageColumn ); 00543 } 00544 00545 void HolidayRegionSelector::setDescriptionHidden( bool hideDescription ) 00546 { 00547 d->m_ui.regionTreeWidget->setColumnHidden( Private::DescriptionColumn, hideDescription ); 00548 } 00549 00550 bool HolidayRegionSelector::descriptionHidden() const 00551 { 00552 return d->m_ui.regionTreeWidget->isColumnHidden( Private::DescriptionColumn ); 00553 } 00554 00555 #include "holidayregionselector.moc"
This file is part of the KDE documentation.
Documentation copyright © 1996-2012 The KDE developers.
Generated on Mon May 7 2012 23:54:54 by doxygen 1.8.0 written by Dimitri van Heesch, © 1997-2006
Documentation copyright © 1996-2012 The KDE developers.
Generated on Mon May 7 2012 23:54:54 by doxygen 1.8.0 written by Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.