• Skip to content
  • Skip to link menu
  • KDE API Reference
  • kdepimlibs-4.8.3 API Reference
  • KDE Home
  • Contact Us
 

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 &regionCode, 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 &regionCode, 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

KDE's Doxygen guidelines are available online.

KHolidays Library

Skip menu "KHolidays Library"
  • Main Page
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • Related Pages

kdepimlibs-4.8.3 API Reference

Skip menu "kdepimlibs-4.8.3 API Reference"
  • akonadi
  •   contact
  •   kmime
  • kabc
  • kalarmcal
  • kblog
  • kcal
  • kcalcore
  • kcalutils
  • kholidays
  • kimap
  • kioslave
  •   imap4
  •   mbox
  •   nntp
  • kldap
  • kmbox
  • kmime
  • kontactinterface
  • kpimidentities
  • kpimtextedit
  •   richtextbuilders
  • kpimutils
  • kresources
  • ktnef
  • kxmlrpcclient
  • mailtransport
  • microblog
  • qgpgme
  • syndication
  •   atom
  •   rdf
  •   rss2
Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal