[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [kholidays] /: KF5: Remove holiday region selector widget
From: John Layt <jlayt () kde ! org>
Date: 2015-09-02 18:07:29
Message-ID: E1ZXCRV-0003LI-IF () scm ! kde ! org
[Download RAW message or body]
Git commit 24a862b637e89c4e86270886c0678466b9144932 by John Layt.
Committed on 02/09/2015 at 17:53.
Pushed by jlayt into branch 'master'.
KF5: Remove holiday region selector widget
Remove the widget to allow KHolidays to be a Tier 1 Framework. The
widget shoudl be moved to a kdepim-widgets module so it can be used in
both KOrganizer and Plasma Calendar.
M +2 -10 CMakeLists.txt
M +0 -42 src/CMakeLists.txt
D +0 -560 src/holidayregionselector.cpp
D +0 -327 src/holidayregionselector.h
D +0 -46 src/holidayregionselector.ui
D +0 -9 src/kholidays.widgets
http://commits.kde.org/kholidays/24a862b637e89c4e86270886c0678466b9144932
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 38a9d77..7307c3c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -27,16 +27,8 @@ ecm_setup_version(${KHOLIDAYS_LIB_VERSION} VARIABLE_PREFIX \
KHOLIDAYS )
########### Find packages ###########
-find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Widgets Test)
-find_package(KF5ItemViews ${KF5_VERSION} CONFIG REQUIRED)
-find_package(KF5Completion ${KF5_VERSION} CONFIG REQUIRED)
-find_package(KF5DesignerPlugin ${KF5_VERSION} CONFIG REQUIRED)
-
-find_package(Qt5Designer NO_MODULE)
-set_package_properties(Qt5Designer PROPERTIES
- PURPOSE "Required to build the Qt Designer plugins"
- TYPE OPTIONAL
-)
+find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Test)
+
remove_definitions(-DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII)
########### Targets ###########
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index e147fb8..8747f37 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -10,7 +10,6 @@ set(kholidays_SRCS
astroseasons.cpp
holiday.cpp
holidayregion.cpp
- holidayregionselector.cpp
lunarphase.cpp
sunriseset.cpp
zodiac.cpp
@@ -21,10 +20,6 @@ set(kholidays_SRCS
parsers/plan2/holidayparserplan.cpp
)
-set(kholidays_UI
- holidayregionselector.ui
-)
-
add_library(KF5Holidays ${kholidays_SRCS})
generate_export_header(KF5Holidays BASE_NAME kholidays)
@@ -36,10 +31,7 @@ target_include_directories(KF5Holidays PUBLIC \
"$<BUILD_INTERFACE:${KHolidays_SOU
target_link_libraries(KF5Holidays
PUBLIC
- Qt5::Widgets
Qt5::Test
- KF5::ItemViews
- KF5::Completion
)
set_target_properties(KF5Holidays PROPERTIES
@@ -53,7 +45,6 @@ ecm_generate_headers(KHolidays_CamelCase_HEADERS
AstroSeasons
Holiday
HolidayRegion
- HolidayRegionSelector
LunarPhase
Zodiac
PREFIX KHolidays
@@ -62,39 +53,6 @@ ecm_generate_headers(KHolidays_CamelCase_HEADERS
install(TARGETS KF5Holidays EXPORT KF5HolidaysTargets \
${KF5_INSTALL_TARGETS_DEFAULT_ARGS})
-########### next target ###############
-
-
-if (Qt5Designer_FOUND)
- kf5designerplugin_add_plugin(holidayswidgets kholidays.widgets)
- target_link_libraries(holidayswidgets
- Qt5::Widgets
- Qt5::Designer
- KF5::ItemViews
- KF5::Completion
- KF5::Holidays
- )
- set_target_properties(holidayswidgets PROPERTIES
- OUTPUT_NAME holidays5widgets
- )
-
- if(NOT WIN32)
- # Since there are no libraries provided by this module,
- # there is no point including the build tree in RPath,
- # and then having to edit it at install time.
- set_target_properties(holidayswidgets PROPERTIES
- SKIP_BUILD_RPATH TRUE
- BUILD_WITH_INSTALL_RPATH TRUE
- )
- endif()
-
- install(TARGETS
- holidayswidgets
- DESTINATION ${KDE_INSTALL_QTPLUGINDIR}/designer
- )
-endif()
-
-
########### install files ###############
install(FILES
${CMAKE_CURRENT_BINARY_DIR}/kholidays_export.h
diff --git a/src/holidayregionselector.cpp b/src/holidayregionselector.cpp
deleted file mode 100644
index 011d4b8..0000000
--- a/src/holidayregionselector.cpp
+++ /dev/null
@@ -1,560 +0,0 @@
-/*
- This file is part of the kholidays library.
-
- Copyright 2010 John Layt <john@layt.net>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to the
- Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#include "holidayregionselector.h"
-#include "ui_holidayregionselector.h"
-
-#include "holidayregion.h"
-#include "holiday_p.h"
-
-#include <QtCore/QCoreApplication>
-
-#include <KComboBox>
-
-using namespace KHolidays;
-
-class Q_DECL_HIDDEN HolidayRegionSelector::Private
-{
- public:
- Private( HolidayRegionSelector *q_ptr )
- {
- q = q_ptr;
- }
-
- ~Private()
- {
- }
-
- // Reorder this to change column order
- enum Column {
- RegionColumn = 0,
- LanguageColumn,
- DescriptionColumn,
- SelectColumn,
- ComboColumn
- };
-
- void clearSelection();
- QTreeWidgetItem *findItem( const QString &holidayRegionCode );
- void initItem( QTreeWidgetItem *listItem, HolidayRegion *region );
- QString itemRegion( QTreeWidgetItem *item );
- QString itemLanguage( QTreeWidgetItem *item );
- SelectionStatus itemSelectionStatus( QTreeWidgetItem *item );
- void setItemStatus( QTreeWidgetItem *item, SelectionStatus status );
- KComboBox *itemCombo( QTreeWidgetItem *item );
- void setItemRegionUseFlags( QTreeWidgetItem *item, RegionUseFlags regionUseFlags \
);
- HolidayRegionSelector::RegionUseFlags itemRegionUseFlags( QTreeWidgetItem *item \
);
-
- QAbstractItemView::SelectionMode m_selectionMode;
- bool m_enableRegionUseFlags;
- QStringList m_languageFilter;
- QStringList m_holidayRegionCodes;
- Ui::holidayRegionSelector m_ui;
- HolidayRegionSelector *q;
-};
-
-void HolidayRegionSelector::Private::clearSelection()
-{
- m_ui.regionTreeWidget->blockSignals( true );
- QTreeWidgetItemIterator it( m_ui.regionTreeWidget, \
QTreeWidgetItemIterator::Checked );
- while ( *it ) {
- ( *it )->setCheckState( Private::SelectColumn, Qt::Unchecked );
- ( *it )->setData( Private::SelectColumn, Qt::UserRole, RegionAvailable );
- itemCombo( ( *it ) )->setCurrentIndex( 0 );
- ( *it )->setData( Private::ComboColumn, Qt::UserRole, NotUsed );
- ++it;
- }
- m_ui.regionTreeWidget->blockSignals( false );
-}
-
-QTreeWidgetItem *HolidayRegionSelector::Private::findItem( const QString \
&holidayRegionCode )
-{
- QTreeWidgetItemIterator it( m_ui.regionTreeWidget );
- while ( *it ) {
- if ( ( *it )->data( HolidayRegionSelector::Private::RegionColumn, Qt::UserRole ) \
==
- holidayRegionCode ) {
- return ( *it );
- }
- ++it;
- }
- return 0;
-}
-
-void HolidayRegionSelector::Private::initItem( QTreeWidgetItem *listItem, \
HolidayRegion *region )
-{
- m_ui.regionTreeWidget->blockSignals( true );
- QString languageName = QLocale::languageToString( codeToLanguage( \
region->languageCode() ) );
- listItem->setCheckState( Private::SelectColumn, Qt::Unchecked );
- QString text = QCoreApplication::translate( "HolidayRegionSelector", "<p>Select to \
use Holiday Region</p>" );
- listItem->setToolTip( Private::SelectColumn, text );
- listItem->setToolTip( Private::ComboColumn, text );
- text = QCoreApplication::translate( "HolidayRegionSelector", "<p>Select to use \
Holiday Region</p>" );
- listItem->setToolTip( Private::SelectColumn, text );
- listItem->setToolTip( Private::ComboColumn, text );
- listItem->setText( Private::RegionColumn, region->name() );
- QString toolTip = QCoreApplication::translate( "HolidayRegionSelector",
- "<p><b>Region:</b> %1<br/>"
- "<b>Language:</b> %2<br/>"
- "<b>Description:</b> %3</p>")
- .arg( region->name() )
- .arg( languageName )
- .arg( region->description() );
- listItem->setToolTip( Private::RegionColumn, toolTip );
- listItem->setData( Private::RegionColumn, Qt::UserRole, region->regionCode() );
- listItem->setText( Private::LanguageColumn, languageName );
- listItem->setData( Private::LanguageColumn, Qt::UserRole, region->languageCode() \
);
- listItem->setText( Private::DescriptionColumn, region->description() );
- listItem->setToolTip( Private::DescriptionColumn, region->description() );
- KComboBox *combo = new KComboBox();
- combo->setAutoFillBackground( true );
- QString comboText = QCoreApplication::translate( "HolidayRegionSelector",
- "<p>You can choose to display the \
Holiday Region for information only, "
- "or to use the Holiday Region \
when displaying or calculating days off "
- "such as Public Holidays. If you \
choose to use the Holiday Region for "
- "Days Off, then only those \
Holiday Events marked in the Holiday Region "
- "as Days Off will be used for \
non-work days, Holiday Events that are "
- "not marked in the Holiday Region \
as Days Off will continue to be "
- "work days.</p>" );
- combo->setToolTip( comboText );
- comboText = QCoreApplication::translate( "HolidayRegionSelectorasons", "Not Used", \
"Combobox label, Holiday Region not used" );
- combo->addItem( comboText, QVariant( NotUsed ) );
- comboText = QCoreApplication::translate( "HolidayRegionSelectorasons", \
"Information", "Combobox label, use Holiday Region for information \
only" );
- combo->addItem( comboText, QVariant( UseInformationOnly ) );
- comboText = QCoreApplication::translate( "HolidayRegionSelectorasons", "Days Off", \
"Combobox label, use Holiday Region for days off" );
- combo->addItem( comboText, QVariant( UseDaysOff ) );
- combo->setCurrentIndex( 0 );
- listItem->setData( Private::ComboColumn, Qt::UserRole, NotUsed );
- m_ui.regionTreeWidget->setItemWidget( listItem, ComboColumn, combo );
- connect( combo, SIGNAL(currentIndexChanged(int)),
- q, SLOT(itemChanged(int)) );
- m_ui.regionTreeWidget->blockSignals( false );
-}
-
-QString HolidayRegionSelector::Private::itemRegion( QTreeWidgetItem *item )
-{
- return item->data( Private::RegionColumn, Qt::UserRole ).toString();
-}
-
-QString HolidayRegionSelector::Private::itemLanguage( QTreeWidgetItem *item )
-{
- return item->data( Private::LanguageColumn, Qt::UserRole ).toString();
-}
-
-HolidayRegionSelector::SelectionStatus
-HolidayRegionSelector::Private::itemSelectionStatus( QTreeWidgetItem *item )
-{
- return
- ( HolidayRegionSelector::SelectionStatus )
- item->data( Private::SelectColumn, Qt::UserRole ).toInt();
-}
-
-void HolidayRegionSelector::Private::setItemRegionUseFlags( QTreeWidgetItem *item,
- RegionUseFlags \
regionUseFlags )
-{
- // Just do simple flags for now, cheat on the index
- item->setData( ComboColumn, Qt::UserRole, QVariant( regionUseFlags ) );
- if ( regionUseFlags & UseDaysOff ) {
- setItemStatus( item, RegionSelected );
- itemCombo( item )->setCurrentIndex( 2 );
- } else if ( regionUseFlags & UseInformationOnly ) {
- setItemStatus( item, RegionSelected );
- itemCombo( item )->setCurrentIndex( 1 );
- } else { // NotUsed
- setItemStatus( item, RegionAvailable );
- itemCombo( item )->setCurrentIndex( 0 );
- }
-}
-
-HolidayRegionSelector::RegionUseFlags
-HolidayRegionSelector::Private::itemRegionUseFlags( QTreeWidgetItem *item )
-{
- return (RegionUseFlags) item->data( ComboColumn, Qt::UserRole ).toInt();
-}
-
-KComboBox *HolidayRegionSelector::Private::itemCombo( QTreeWidgetItem *item )
-{
- return static_cast<KComboBox*>( m_ui.regionTreeWidget->itemWidget( item, \
ComboColumn ) );
-}
-
-void HolidayRegionSelector::Private::setItemStatus( QTreeWidgetItem *item, \
SelectionStatus status )
-{
- if ( m_selectionMode == QAbstractItemView::SingleSelection &&
- status == RegionSelected ) {
- clearSelection();
- }
-
- Qt::CheckState selectStatus = Qt::Unchecked;
- bool hidden = false;
- bool disabled = false;
-
- switch ( status ) {
- case RegionHidden:
- hidden = true;
- disabled = true;
- break;
- case RegionDisabled:
- disabled = true;
- break;
- case RegionAvailable:
- break;
- case RegionSelected:
- {
- if ( m_selectionMode != QAbstractItemView::NoSelection ) {
- selectStatus = Qt::Checked;
- }
- break;
- }
- default:
- break;
- }
-
- m_ui.regionTreeWidget->blockSignals( true );
- item->setData( Private::SelectColumn, Qt::UserRole, status );
- item->setCheckState( Private::SelectColumn, selectStatus );
- item->setHidden( hidden );
- item->setDisabled( disabled );
- m_ui.regionTreeWidget->blockSignals( false );
-}
-
-HolidayRegionSelector::HolidayRegionSelector( QWidget *parent ) :
- QWidget( parent ), d( new Private( this ) )
-{
- d->m_ui.setupUi( this );
-
- // Setup the columns
- d->m_ui.regionTreeWidget->setColumnCount( 5 );
- QTreeWidgetItem *headerItem = d->m_ui.regionTreeWidget->headerItem();
- QString header = QCoreApplication::translate( "HolidayRegionSelectorasons", \
"Select", "Header for Select column" );
- QString text = QCoreApplication::translate( "HolidayRegionSelector", "<p>This \
column selects to use the Holiday Region</p>" );
- headerItem->setText( Private::SelectColumn, header );
- headerItem->setToolTip( Private::SelectColumn, text );
- headerItem->setWhatsThis( Private::SelectColumn, text );
- headerItem->setText( Private::ComboColumn, header );
- headerItem->setToolTip( Private::ComboColumn, text );
- headerItem->setWhatsThis( Private::ComboColumn, text );
- header = QCoreApplication::translate( "HolidayRegionSelectorasons", "Region", \
"Header for Holiday Region column" );
- text = QCoreApplication::translate( "HolidayRegionSelector", "<p>This column \
displays the name of the Holiday Region</p>" );
- headerItem->setText( Private::RegionColumn, header );
- headerItem->setToolTip( Private::RegionColumn, text );
- headerItem->setWhatsThis( Private::RegionColumn, text );
- header = QCoreApplication::translate( "HolidayRegionSelectorasons", "Language", \
"Header for Language column" );
- text = QCoreApplication::translate( "HolidayRegionSelector", "<p>This column \
displays the language of the Holiday Region</p>" );
- headerItem->setText( Private::LanguageColumn, header );
- headerItem->setToolTip( Private::LanguageColumn, text );
- headerItem->setWhatsThis( Private::LanguageColumn, text );
- header = QCoreApplication::translate( "HolidayRegionSelectorasons", "Description", \
"Header for Description column" );
- text = QCoreApplication::translate( "HolidayRegionSelector", "<p>This column \
displays the description of the Holiday Region</p>" );
- headerItem->setText( Private::DescriptionColumn, header );
- headerItem->setToolTip( Private::DescriptionColumn, text );
- headerItem->setWhatsThis( Private::DescriptionColumn, text );
-
- d->m_ui.regionTreeWidget->setSelectionMode( QAbstractItemView::NoSelection );
- d->m_ui.regionTreeWidget->setItemsExpandable( true ); //per bug 271628
- d->m_ui.regionTreeWidget->setUniformRowHeights( true );
- d->m_ui.regionTreeWidget->setAllColumnsShowFocus( true );
- connect( d->m_ui.regionTreeWidget, SIGNAL(itemChanged(QTreeWidgetItem*,int)),
- this, SLOT(itemChanged(QTreeWidgetItem*,int)) );
-
- QMap<QString, QStringList> regionCodeMap;
- QMap<QString, HolidayRegion*> regionMap;
- foreach ( const QString ®ionCode, HolidayRegion::regionCodes() ) {
- regionMap[regionCode] = new HolidayRegion( regionCode );
- QString country = regionMap[regionCode]->countryCode().split( QLatin1Char('-') \
).at( 0 );
- regionCodeMap[country].append( regionCode );
- }
-
- QMapIterator<QString, QStringList> it( regionCodeMap );
- while ( it.hasNext() ) {
- it.next();
- // if only 1 region for country and that region is the country, then only show \
the country line
- // Otherwise show a non-selectable country header and list all regions below it
- QTreeWidgetItem *rootItem = new QTreeWidgetItem( d->m_ui.regionTreeWidget );
- QString country = it.key();
- if ( it.value().count() == 1 && regionMap[it.value().at( 0 )]->countryCode() == \
country ) {
- d->initItem( rootItem, regionMap[ it.value().at( 0 ) ] );
- } else {
- //TODO Not translated!
- rootItem->setText( Private::RegionColumn, QLocale::countryToString( \
codeToCountry( country ) ) );
- d->m_ui.regionTreeWidget->setFirstItemColumnSpanned ( rootItem, true );
- foreach ( const QString ®ionCode, it.value() ) {
- QTreeWidgetItem *childItem = new QTreeWidgetItem( rootItem );
- d->initItem( childItem, regionMap[ regionCode ] );
- }
- }
- }
-
- QMapIterator<QString, HolidayRegion*> i( regionMap );
- while ( i.hasNext() ) {
- i.next();
- delete i.value();
- }
-
- d->m_ui.regionTreeWidget->expandAll();
- d->m_ui.regionTreeWidget->sortItems( Private::RegionColumn, Qt::AscendingOrder );
- d->m_ui.regionTreeWidget->resizeColumnToContents( Private::SelectColumn );
- d->m_ui.regionTreeWidget->resizeColumnToContents( Private::ComboColumn );
- d->m_ui.regionTreeWidget->resizeColumnToContents( Private::RegionColumn );
- d->m_ui.regionTreeWidget->resizeColumnToContents( Private::LanguageColumn );
-
- // Setup search widget
- d->m_ui.searchLineWidget->searchLine()->addTreeWidget( d->m_ui.regionTreeWidget );
-
- // Default to MultiSelection mode with Region Use Flags
- setSelectionMode( QAbstractItemView::MultiSelection );
- setRegionUseFlagsEnabled( true );
-}
-
-HolidayRegionSelector::~HolidayRegionSelector()
-{
- delete d;
-}
-
-QStringList HolidayRegionSelector::holidayRegions() const
-{
- return d->m_holidayRegionCodes;
-}
-
-void HolidayRegionSelector::setSelectionMode( QAbstractItemView::SelectionMode \
selectionMode )
-{
- d->m_selectionMode = selectionMode;
-
- if ( selectionMode == QAbstractItemView::NoSelection ) {
- setRegionUseFlagsEnabled( false );
- }
-}
-
-QAbstractItemView::SelectionMode HolidayRegionSelector::selectionMode() const
-{
- return d->m_selectionMode;
-}
-
-void HolidayRegionSelector::setRegionUseFlagsEnabled( bool enableRegionUseFlags )
-{
- d->m_enableRegionUseFlags = enableRegionUseFlags;
- d->m_ui.regionTreeWidget->setColumnHidden( Private::SelectColumn, \
enableRegionUseFlags );
- d->m_ui.regionTreeWidget->setColumnHidden( Private::ComboColumn, \
!enableRegionUseFlags );
-}
-
-bool HolidayRegionSelector::regionUseFlagsEnabled() const
-{
- return d->m_enableRegionUseFlags;
-}
-
-void HolidayRegionSelector::setSelectionStatus( const QString &holidayRegionCode,
- \
HolidayRegionSelector::SelectionStatus status )
-{
- QTreeWidgetItem *item = d->findItem( holidayRegionCode );
- if ( item ) {
- d->setItemStatus( item, status );
- }
-}
-
-HolidayRegionSelector::SelectionStatus
-HolidayRegionSelector::selectionStatus( const QString &holidayRegionCode ) const
-{
- QTreeWidgetItem *item = d->findItem( holidayRegionCode );
- if ( item ) {
- return d->itemSelectionStatus( item );
- }
- return HolidayRegionSelector::RegionHidden;
-}
-
-QHash<QString, HolidayRegionSelector::SelectionStatus>
-HolidayRegionSelector::selectionStatus() const
-{
- QHash<QString, HolidayRegionSelector::SelectionStatus> selection;
- QTreeWidgetItemIterator it( d->m_ui.regionTreeWidget );
- while ( *it ) {
- selection.insert( d->itemRegion( ( *it ) ), d->itemSelectionStatus( ( *it ) ) );
- ++it;
- }
- return selection;
-}
-
-QStringList
-HolidayRegionSelector::selection( HolidayRegionSelector::SelectionStatus \
selectionStatus ) const
-{
- if ( selectionMode() == QAbstractItemView::NoSelection ) {
- return QStringList();
- }
-
- QStringList selection;
- QTreeWidgetItemIterator it( d->m_ui.regionTreeWidget );
- while ( *it ) {
- if ( d->itemSelectionStatus( ( *it ) ) == selectionStatus ) {
- selection.append( d->itemRegion( ( *it ) ) );
- }
- ++it;
- }
- return selection;
-}
-
-QStringList
-HolidayRegionSelector::selection( HolidayRegionSelector::RegionUseFlags \
regionUseFlags ) const
-{
- if ( selectionMode() == QAbstractItemView::NoSelection ) {
- return QStringList();
- }
-
- QStringList selection;
- QTreeWidgetItemIterator it( d->m_ui.regionTreeWidget );
- while ( *it ) {
- if ( d->itemRegionUseFlags( ( *it ) ) & regionUseFlags ) {
- selection.append( d->itemRegion( ( *it ) ) );
- }
- ++it;
- }
- return selection;
-}
-
-void
-HolidayRegionSelector::setRegionUseFlags( const QString &holidayRegionCode,
- HolidayRegionSelector::RegionUseFlags \
regionUseFlags )
-{
- QTreeWidgetItem *item = d->findItem( holidayRegionCode );
- if ( item ) {
- d->setItemRegionUseFlags( item, regionUseFlags );
- }
-}
-
-HolidayRegionSelector::RegionUseFlags
-HolidayRegionSelector::regionUseFlags( const QString &holidayRegionCode ) const
-{
- QTreeWidgetItem *item = d->findItem( holidayRegionCode );
- if ( item ) {
- return d->itemRegionUseFlags( item );
- }
- return HolidayRegionSelector::NotUsed;
-}
-
-QHash<QString, HolidayRegionSelector::RegionUseFlags> \
HolidayRegionSelector::regionUseFlags() const
-{
- QHash<QString, HolidayRegionSelector::RegionUseFlags> selection;
- QTreeWidgetItemIterator it( d->m_ui.regionTreeWidget );
- while ( *it ) {
- selection.insert( d->itemRegion( ( *it ) ), d->itemRegionUseFlags( ( *it ) ) );
- ++it;
- }
- return selection;
-}
-
-void HolidayRegionSelector::itemChanged( QTreeWidgetItem *item, int column )
-{
- if ( column == Private::SelectColumn ) {
- if ( item->checkState( Private::SelectColumn ) == Qt::Unchecked ) {
- d->setItemStatus( item, RegionAvailable );
- } else {
- d->setItemStatus( item, RegionSelected );
- }
- }
- emit selectionChanged();
-}
-
-// The slot for the combo box when changed
-void HolidayRegionSelector::itemChanged( int index )
-{
- KComboBox *combo = static_cast<KComboBox*>( sender() );
- QTreeWidgetItemIterator it( d->m_ui.regionTreeWidget );
- bool found = false;
- while ( *it && !found ) {
- if ( d->itemCombo( ( *it ) ) == combo ) {
- ( *it )->setData(
- Private::ComboColumn, Qt::UserRole, d->itemCombo( ( *it ) )->itemData( index \
) );
- if ( d->itemRegionUseFlags( ( *it ) ) == NotUsed ) {
- d->setItemStatus( ( *it ), RegionAvailable );
- } else {
- d->setItemStatus( ( *it ), RegionSelected );
- }
- found = true;
- }
- ++it;
- }
-}
-
-void HolidayRegionSelector::clearSelection()
-{
- d->clearSelection();
-}
-
-void HolidayRegionSelector::setLanguageFilter( const QStringList &languages )
-{
- // First reset to visible those languages previously hidden
- QTreeWidgetItemIterator it( d->m_ui.regionTreeWidget );
- while ( *it ) {
- if ( !d->m_languageFilter.contains(
- ( *it )->data( Private::LanguageColumn, Qt::UserRole ).toString() ) ) {
- d->setItemStatus( ( *it ), RegionAvailable );
- }
- ++it;
- }
- // Now hide those languages not in the new list
- d->m_languageFilter = languages;
- QTreeWidgetItemIterator it2( d->m_ui.regionTreeWidget );
- while ( *it2 ) {
- QString language = ( *it2 )->data( Private::LanguageColumn, Qt::UserRole \
).toString();
- if ( d->m_languageFilter.contains( language ) ) {
- // Make sure the parent is always visible, otherwise the child is not visible
- if ( ( *it2 )->parent() &&
- ( *it2 )->parent() != d->m_ui.regionTreeWidget->invisibleRootItem() ) {
- d->setItemStatus( ( *it2 )->parent(), RegionAvailable );
- }
- } else {
- d->setItemStatus( ( *it2 ), RegionHidden );
- }
- ++it2;
- }
-}
-
-QStringList HolidayRegionSelector::languageFilter() const
-{
- return d->m_languageFilter;
-}
-
-void HolidayRegionSelector::setSearchHidden( bool hideSearch )
-{
- d->m_ui.searchLineWidget->setHidden( hideSearch );
-}
-
-bool HolidayRegionSelector::searchHidden() const
-{
- return d->m_ui.searchLineWidget->isHidden();
-}
-
-void HolidayRegionSelector::setLanguageHidden( bool hideLanguage )
-{
- d->m_ui.regionTreeWidget->setColumnHidden( Private::LanguageColumn, hideLanguage \
);
-}
-
-bool HolidayRegionSelector::languageHidden() const
-{
- return d->m_ui.regionTreeWidget->isColumnHidden( Private::LanguageColumn );
-}
-
-void HolidayRegionSelector::setDescriptionHidden( bool hideDescription )
-{
- d->m_ui.regionTreeWidget->setColumnHidden( Private::DescriptionColumn, \
hideDescription );
-}
-
-bool HolidayRegionSelector::descriptionHidden() const
-{
- return d->m_ui.regionTreeWidget->isColumnHidden( Private::DescriptionColumn );
-}
-
diff --git a/src/holidayregionselector.h b/src/holidayregionselector.h
deleted file mode 100644
index 58d9e7e..0000000
--- a/src/holidayregionselector.h
+++ /dev/null
@@ -1,327 +0,0 @@
-/*
- This file is part of the kholidays library.
-
- Copyright 2010 John Layt <john@layt.net>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to the
- Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#ifndef KHOLIDAYS_HOLIDAYREGIONSELECTOR_H
-#define KHOLIDAYS_HOLIDAYREGIONSELECTOR_H
-
-#include "kholidays_export.h"
-
-#include <QTreeWidget>
-
-class QString;
-class QStringList;
-
-namespace KHolidays {
-
-class HolidayRegion;
-
-class KHOLIDAYS_EXPORT HolidayRegionSelector : public QWidget
-{
- Q_OBJECT
- Q_PROPERTY( QAbstractItemView::SelectionMode listSelectionMode
- READ selectionMode WRITE setSelectionMode )
-
- Q_PROPERTY( bool enableRegionUseFlags
- READ regionUseFlagsEnabled WRITE setRegionUseFlagsEnabled )
-
- Q_PROPERTY( bool hideSearch
- READ searchHidden WRITE setSearchHidden )
-
- Q_PROPERTY( bool hideDescription
- READ descriptionHidden WRITE setDescriptionHidden )
-
- Q_PROPERTY( bool hideLanguage
- READ languageHidden WRITE setLanguageHidden )
-
- Q_PROPERTY( QStringList languageFilter
- READ languageFilter WRITE setLanguageFilter )
-
- public:
- /**
- * Describes the Selection Status of a Holiday Region.
- */
- enum SelectionStatus {
- RegionHidden, ///< The Holiday Region is not displayed
- RegionDisabled, ///< The Holiday Region is not available for \
selection
- RegionAvailable, ///< The Holiday Region is available for selection
- RegionSelected ///< The Holiday Region is selected
- };
-
- /**
- * Describes the Usage of a Holiday Region.
- */
- enum RegionUseFlag {
- NotUsed = 0x00, ///< The Holiday Region is not used
- UseInformationOnly = 0x01, ///< The Holiday Region is used for information \
only
- UseDaysOff = 0x02 ///< The Holiday Region is used for Days Off
- };
- Q_DECLARE_FLAGS( RegionUseFlags, RegionUseFlag )
-
- /**
- * Constructs a default Holiday Region selection widget.
- *
- * This widget will automatically be populated with all available Holiday \
Regions,
- * will display all available features including a serach bar and various \
details
- * columns, and will operate in Multi Selection mode. If you require fewer \
details
- * or regions displayed or to operate in single or no selection mode, then you \
must
- * configure these after the widget is created.
- *
- * By default multiple Region Use selections are available to the user. This is
- * normally used to set if holidays are to be used for days off or information \
only.
- * These Use options can be overridden or disabled, or the text displayed \
modifed
- * as required.
- *
- * @param parent The parent widget.
- */
- explicit HolidayRegionSelector( QWidget *parent = Q_NULLPTR );
-
- /**
- * Destructor
- */
- virtual ~HolidayRegionSelector();
-
- /**
- * Return a list of all Holiday Regions available
- *
- * @return List of all Holiday Region Codes
- */
- QStringList holidayRegions() const;
-
- /**
- * Set what selection mode the Region list uses.
- *
- * The Selection Mode determines how many Holiday Regions can be selected in the \
list:
- * - If NoSelection mode then the widget is display only and the user cannot \
select any
- * Holiday Region.
- * - If SingleSelection mode then only a single Holiday Region can be chosen.
- * - If MultiSelection mode then more than one Holiday Regions can be chosen.
- *
- * @see selectionMode
- * @param selectionMode The selection mode to use
- */
- void setSelectionMode( QAbstractItemView::SelectionMode selectionMode );
-
- /**
- * Return what selection mode the Region list uses.
- *
- * @see setSelectionMode
- * @return The selection mode used
- */
- QAbstractItemView::SelectionMode selectionMode() const;
-
- /**
- * Set if Region Use Flags are enabled
- *
- * If Region Use Flags are disabled then the user can only select a Region
- * with a binary on/off check box. The selection status is set and returned
- * using the holidayRegionStatus and setHolidayRegionStatus methods.
- *
- * If the Region Use Flags are enabled then the user can select from multiple
- * options for how a Region can be used via a combo box. The use flags are
- * set and returned using the setRegionUseFlags and regionUseFlags methods.
- *
- * @see setSelectionMode
- * @param listSelectionMode The list selection mode to use
- */
- void setRegionUseFlagsEnabled( bool enableRegionUseFlags );
-
- /**
- * Returns if Region Use Flags are enabled.
- *
- * @see setRegionUseFlagsEnabled
- * @return if the Region Use Flags are enabled
- */
- bool regionUseFlagsEnabled() const;
-
- /**
- * Set the Selection Status for a Holiday Region.
- *
- * @see selectionStatus
- * @param holidayRegionCode The Holiday Region to set the Status for
- * @param status The Selection Status of the Holiday Region
- */
- void setSelectionStatus( const QString &holidayRegionCode,
- HolidayRegionSelector::SelectionStatus status );
-
- /**
- * Returns the current Selection Status for a Holiday Region.
- *
- * @see setSelectionStatus
- * @param holidayRegionCode The Holiday Region required
- * @return The current Selection Status for the Holiday Region
- */
- HolidayRegionSelector::SelectionStatus selectionStatus(
- const QString &holidayRegionCode ) const;
-
- /**
- * Returns the current Selection Status for all Holiday Regions.
- *
- * @see setSelectionStatus
- * @return A QHash of all Holiday Regions and their current Selection Status
- */
- QHash<QString, HolidayRegionSelector::SelectionStatus> selectionStatus() const;
-
- /**
- * Returns the list of Holiday Regions with a required Selection Status,
- * defults to returning all selected Regions.
- *
- * @see setSelectionStatus
- * @see selectionStatus
- * @param selectionStatus The selection status to match, defaults to \
RegionSelected
- * @return A list of selected Holiday Regions
- */
- QStringList selection( HolidayRegionSelector::SelectionStatus selectionStatus =
- HolidayRegionSelector::RegionSelected ) const;
-
- /**
- * Returns the list of Holiday Regions with a required Region Use Flag.
- *
- * @see setRegionUseFlags
- * @see regionUseFlags
- * @param regionUseFlags The Region Use flags to match
- * @return A list of matching Holiday Regions
- */
- QStringList selection( HolidayRegionSelector::RegionUseFlags regionUseFlags ) \
const;
-
- /**
- * Clear the current Selection Status of all Holiday Regions including Region \
Use Flags.
- *
- * @see setSelectionStatus
- * @see selectionStatus
- * @see selection
- */
- void clearSelection();
-
- /**
- * Set the Region Use Flags for a Holiday Region.
- *
- * @see regionUseFlags
- * @param holidayRegionCode The Holiday Region to set the Use Flags for
- * @param regionUseFlags The Use Flags for the Holiday Region
- */
- void setRegionUseFlags( const QString &holidayRegionCode,
- HolidayRegionSelector::RegionUseFlags regionUseFlags );
-
- /**
- * Returns the current Region Use Flags for a Holiday Region.
- *
- * @see setRegionUseFlags
- * @param holidayRegionCode The Holiday Region required
- * @return The current Use Flags for the Holiday Region
- */
- HolidayRegionSelector::RegionUseFlags regionUseFlags( const QString \
&holidayRegionCode ) const;
-
- /**
- * Returns the current Region Use Flags for all Holiday Regions.
- *
- * @see setRegionUseFlags
- * @return A QHash of Holiday Regions and their current Region Use Flags
- */
- QHash<QString, HolidayRegionSelector::RegionUseFlags> regionUseFlags() const;
-
- /**
- * Set a language filter on the Holiday Regions to be displayed.
- *
- * Only Holiday Regions in a language included in the filter will be
- * displayed in the widget, i.e. all other Holiday Regions will have
- * a SelectionStatus of RegionHidden.
- *
- * Setting a null list disables the display filter, i.e. all Holiday
- * Regions are displayed.
- *
- * @see languageFilter
- * @param languages A list of languages to filter for
- */
- void setLanguageFilter( const QStringList &languages );
-
- /**
- * Return the current language filter, a null list implies no filter is set.
- *
- * @see setLanguageFilter
- * @return The list of languages currently being displayed
- */
- QStringList languageFilter() const;
-
- /**
- * Set if the search line to be hidden or displayed.
- *
- * @see searchHidden
- * @param hideSearch If the search is to be hidden
- */
- void setSearchHidden( bool hideSearch );
-
- /**
- * Return if the search line is currently hidden.
- *
- * @see setSearchHidden
- * @return If the search line is hidden
- */
- bool searchHidden() const;
-
- /**
- * Set if the Holiday Region Language field is to be hidden or displayed.
- *
- * @see languageHidden
- * @param hideLanguage If the language field is to be hidden
- */
- void setLanguageHidden( bool hideLanguage );
-
- /**
- * Return if the Holiday Region Language field is currently hidden.
- *
- * @see setLanguageHidden
- * @return If the language field is hidden
- */
- bool languageHidden() const;
-
- /**
- * Set if the Holiday Region Description field is to be hidden or displayed.
- *
- * @see descriptionHidden
- * @param hideDescription If the description field is to be hidden
- */
- void setDescriptionHidden( bool hideDescription );
-
- /**
- * Return if the Holiday Region Description field is currently hidden.
- *
- * @see setDescriptionHidden
- * @return If the description field is hidden
- */
- bool descriptionHidden() const;
-
- private Q_SLOTS:
- void itemChanged( QTreeWidgetItem *item, int column );
- void itemChanged( int index );
-
- Q_SIGNALS:
- void selectionChanged();
-
- private:
- class Private;
- Private *const d;
-};
-
-} // namespace KHolidays
-
-Q_DECLARE_OPERATORS_FOR_FLAGS( KHolidays::HolidayRegionSelector::RegionUseFlags )
-
-#endif // KHOLIDAYS_HOLIDAYREGIONSELECTOR_H
diff --git a/src/holidayregionselector.ui b/src/holidayregionselector.ui
deleted file mode 100644
index c4dfca4..0000000
--- a/src/holidayregionselector.ui
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>holidayRegionSelector</class>
- <widget class="QWidget" name="holidayRegionSelector">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>298</width>
- <height>255</height>
- </rect>
- </property>
- <layout class="QVBoxLayout" name="verticalLayout">
- <property name="margin">
- <number>0</number>
- </property>
- <item>
- <widget class="KTreeWidgetSearchLineWidget" name="searchLineWidget"/>
- </item>
- <item>
- <widget class="QTreeWidget" name="regionTreeWidget">
- <property name="allColumnsShowFocus">
- <bool>true</bool>
- </property>
- <attribute name="headerHighlightSections">
- <bool>true</bool>
- </attribute>
- <column>
- <property name="text">
- <string notr="true">1</string>
- </property>
- </column>
- </widget>
- </item>
- </layout>
- </widget>
- <customwidgets>
- <customwidget>
- <class>KTreeWidgetSearchLine</class>
- <extends>QWidget</extends>
- <header>ktreewidgetsearchline.h</header>
- </customwidget>
- </customwidgets>
- <resources/>
- <connections/>
-</ui>
diff --git a/src/kholidays.widgets b/src/kholidays.widgets
deleted file mode 100644
index 2fdc87a..0000000
--- a/src/kholidays.widgets
+++ /dev/null
@@ -1,9 +0,0 @@
-[Global]
-PluginName=KHolidaysWidgets
-
-[KHolidays::HolidayRegionSelector]
-ToolTip=Holiday Region Selector (KHolidays)
-WhatsThis=A widget to select Holiday Regions to use.
-IncludeFile=kholidays/holidayregionselector.h
-ConstructorArgs=(parent)
-Group=Input (KDE-PIM)
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic