diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2017-08-18 14:24:48 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2017-08-18 16:07:31 +0200 |
commit | e64a54acfea031d45b06b4c9d606fc03bfcbf40b (patch) | |
tree | 81bb27286c3468409a9ed11ae34e1b1331d82305 | |
parent | adf38e23f32b0b0e0b45a45f4abf2758e74c1a59 (diff) |
WB_RANGESELECT,WB_MULTISELECT in Calendar is dead
since
commit 6c759da0442f5123a4a4355e8dc9c926a49d25d7
delete workben
Change-Id: Ib9db62ea3fb064b70912318eda2528590c307295
Reviewed-on: https://gerrit.libreoffice.org/41287
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
-rw-r--r-- | include/svtools/calendar.hxx | 23 | ||||
-rw-r--r-- | svtools/source/control/calendar.cxx | 237 |
2 files changed, 19 insertions, 241 deletions
diff --git a/include/svtools/calendar.hxx b/include/svtools/calendar.hxx index 345f3552ff1b..8992d3ef4cb4 100644 --- a/include/svtools/calendar.hxx +++ b/include/svtools/calendar.hxx @@ -58,9 +58,6 @@ WinBits WB_BORDER We draw a border around the window. WB_TABSTOP Keyboard control is possible. We get the focus, when the user clicks in the Control. -WB_RANGESELECT The user can select multiple days, which need to be - consecutive -WB_MULTISELECT The user can select multiple days -------------------------------------------------------------------------- @@ -97,9 +94,6 @@ If a ContextMenu is displayed, the baseclass' handler must not be called. -------------------------------------------------------------------------- -For multiple selection (WB_RANGESELECT or WB_MULTISELECT) SelectDate(), -SelectDateRange() can select date ranges. SelectDateRange() selects -including the end date. SetNoSelection() deselects everything. SetCurDate() does not select the current date, but only defines the focus rectangle. @@ -125,17 +119,6 @@ calls or by ending a selection. *************************************************************************/ -// Needs to be in agreement with the WinBits in the TabBar or -// we move it to \vcl\inc\wintypes.hxx -#ifndef WB_RANGESELECT -#define WB_RANGESELECT ((WinBits)0x00200000) -#endif -#ifndef WB_MULTISELECT -#define WB_MULTISELECT ((WinBits)0x00400000) -#endif - -#define DIB_BOLD ((sal_uInt16)0x0001) - typedef std::set<sal_Int32> IntDateSet; @@ -183,7 +166,6 @@ private: mbFormat:1, mbDrag:1, mbSelection:1, - mbMultiSelection:1, mbUnSel:1, mbMenuDown:1, mbSpinDown:1, @@ -217,7 +199,7 @@ private: SVT_DLLPRIVATE void ImplUpdateDate( const Date& rDate ); SVT_DLLPRIVATE void ImplUpdateSelection( IntDateSet* pOld ); SVT_DLLPRIVATE void ImplMouseSelect( const Date& rDate, sal_uInt16 nHitTest, - bool bMove, bool bExpand, bool bExtended ); + bool bMove ); SVT_DLLPRIVATE void ImplUpdate( bool bCalcNew = false ); using Window::ImplScroll; SVT_DLLPRIVATE void ImplScroll( bool bPrev ); @@ -303,9 +285,6 @@ With EnableToday()/EnableNone() we can enable a TodayButton and a NoneButton. -------------------------------------------------------------------------- -If we set WB_RANGESELECT with SetCalendarStyle(), we can select multiple days -in the Calendar. - Because we only take over the start date into the field, we should query with GetCalendar() in the SelectHandler and with GetSelectDateCount()/GetSelectDate() the selected range. We then can e.g. take over that value to another field. diff --git a/svtools/source/control/calendar.cxx b/svtools/source/control/calendar.cxx index ec424b404be7..828e3af37c0d 100644 --- a/svtools/source/control/calendar.cxx +++ b/svtools/source/control/calendar.cxx @@ -67,79 +67,7 @@ static void ImplCalendarSelectDate( IntDateSet* pTable, const Date& rDate, bool pTable->erase( rDate.GetDate() ); } -static void ImplCalendarSelectDateRange( IntDateSet* pTable, - const Date& rStartDate, - const Date& rEndDate, - bool bSelect ) -{ - Date aStartDate = rStartDate; - Date aEndDate = rEndDate; - if ( aStartDate > aEndDate ) - { - Date aTempDate = aStartDate; - aStartDate = aEndDate; - aEndDate = aTempDate; - } - - if ( bSelect ) - { - while ( aStartDate <= aEndDate ) - { - pTable->insert( aStartDate.GetDate() ); - ++aStartDate; - } - } - else - { - for ( IntDateSet::const_iterator it = pTable->begin(); it != pTable->end(); ) - { - Date aDate( *it ); - if ( aDate > aEndDate ) - break; - - if ( aDate >= aStartDate ) - it = pTable->erase(it); - else - ++it; - } - } -} - -static void ImplCalendarUnSelectDateRange( IntDateSet* pTable, - IntDateSet* pOldTable, - const Date& rStartDate, - const Date& rEndDate ) -{ - Date aStartDate = rStartDate; - Date aEndDate = rEndDate; - if ( aStartDate > aEndDate ) - { - Date aTempDate = aStartDate; - aStartDate = aEndDate; - aEndDate = aTempDate; - } - - for ( IntDateSet::const_iterator it = pTable->begin(); it != pTable->end(); ) - { - Date aDate( *it ); - if ( aDate > aEndDate ) - break; - - if ( aDate >= aStartDate ) - it = pTable->erase(it); - else - ++it; - } - for ( IntDateSet::const_iterator it = pOldTable->begin(); it != pOldTable->end(); ++it ) - { - Date aDate( *it ); - if ( aDate > aEndDate ) - break; - if ( aDate >= aStartDate ) - pTable->insert( aDate.GetDate() ); - } -} inline void ImplCalendarClearSelectDate( IntDateSet* pTable ) { @@ -162,7 +90,6 @@ void Calendar::ImplInit( WinBits nWinStyle ) mbFormat = true; mbDrag = false; mbSelection = false; - mbMultiSelection = false; mbUnSel = false; mbMenuDown = false; mbSpinDown = false; @@ -226,7 +153,7 @@ void Calendar::ImplInitSettings() } Calendar::Calendar( vcl::Window* pParent, WinBits nWinStyle ) : - Control( pParent, nWinStyle & (WB_TABSTOP | WB_GROUP | WB_BORDER | WB_3DLOOK | WB_RANGESELECT | WB_MULTISELECT) ), + Control( pParent, nWinStyle & (WB_TABSTOP | WB_GROUP | WB_BORDER | WB_3DLOOK) ), maCalendarWrapper( Application::GetAppLocaleDataWrapper().getComponentContext() ), maOldFormatFirstDate( 0, 0, 1900 ), maOldFormatLastDate( 0, 0, 1900 ), @@ -940,7 +867,7 @@ void Calendar::ImplUpdateSelection( IntDateSet* pOld ) } void Calendar::ImplMouseSelect( const Date& rDate, sal_uInt16 nHitTest, - bool bMove, bool bExpand, bool bExtended ) + bool bMove ) { std::unique_ptr<IntDateSet> pOldSel(new IntDateSet( *mpSelectTable )); Date aOldDate = maCurDate; @@ -949,83 +876,19 @@ void Calendar::ImplMouseSelect( const Date& rDate, sal_uInt16 nHitTest, if ( !(nHitTest & CALENDAR_HITTEST_DAY) ) --aTempDate; - if ( mbMultiSelection ) - { - maCurDate = aTempDate; - mbSelLeft = aTempDate < maAnchorDate; - - if ( bMove ) - { - if ( mbSelLeft ) - { - ImplCalendarUnSelectDateRange( mpSelectTable, mpRestoreSelectTable, Date( 1, 1, 0 ), aTempDate ); - ImplCalendarUnSelectDateRange( mpSelectTable, mpRestoreSelectTable, maAnchorDate, Date( 31, 12, 9999 ) ); - } - else - { - ImplCalendarUnSelectDateRange( mpSelectTable, mpRestoreSelectTable, Date( 1, 1, 0 ), maAnchorDate ); - ImplCalendarUnSelectDateRange( mpSelectTable, mpRestoreSelectTable, aTempDate, Date( 31, 12, 9999 ) ); - } - ImplCalendarSelectDateRange( mpSelectTable, aTempDate, maAnchorDate, !mbUnSel ); - } - else - { - if ( bExpand ) - { - if ( !bExtended ) - { - if ( mbSelLeft ) - { - ImplCalendarSelectDateRange( mpSelectTable, Date( 1, 1, 0 ), aTempDate, false ); - ImplCalendarSelectDateRange( mpSelectTable, maAnchorDate, Date( 31, 12, 9999 ), false ); - } - else - { - ImplCalendarSelectDateRange( mpSelectTable, Date( 1, 1, 0 ), maAnchorDate, false ); - ImplCalendarSelectDateRange( mpSelectTable, aTempDate, Date( 31, 12, 9999 ), false ); - } - } - ImplCalendarSelectDateRange( mpSelectTable, aTempDate, maAnchorDate, true ); - } - else if ( bExtended && !(mnWinStyle & WB_RANGESELECT) ) - { - maAnchorDate = aTempDate; - if ( IsDateSelected( aTempDate ) ) - { - mbUnSel = true; - ImplCalendarSelectDate( mpSelectTable, aTempDate, false ); - } - else - { - ImplCalendarSelectDate( mpSelectTable, aTempDate, true ); - } - } - else - { - maAnchorDate = aTempDate; - ImplCalendarClearSelectDate( mpSelectTable ); - ImplCalendarSelectDate( mpSelectTable, aTempDate, true ); - } - - mpRestoreSelectTable = new IntDateSet( *mpSelectTable ); - } - } + if ( aTempDate < maCurDate ) + mbSelLeft = true; else + mbSelLeft = false; + if ( !(nHitTest & CALENDAR_HITTEST_DAY) ) + aTempDate = maOldCurDate; + if ( !bMove ) + maAnchorDate = aTempDate; + if ( aTempDate != maCurDate ) { - if ( aTempDate < maCurDate ) - mbSelLeft = true; - else - mbSelLeft = false; - if ( !(nHitTest & CALENDAR_HITTEST_DAY) ) - aTempDate = maOldCurDate; - if ( !bMove ) - maAnchorDate = aTempDate; - if ( aTempDate != maCurDate ) - { - maCurDate = aTempDate; - ImplCalendarSelectDate( mpSelectTable, aOldDate, false ); - ImplCalendarSelectDate( mpSelectTable, maCurDate, true ); - } + maCurDate = aTempDate; + ImplCalendarSelectDate( mpSelectTable, aOldDate, false ); + ImplCalendarSelectDate( mpSelectTable, maCurDate, true ); } bool bNewSel = *pOldSel != *mpSelectTable; @@ -1153,7 +1016,7 @@ void Calendar::ImplTracking( const Point& rPos, bool bRepeat ) } } else - ImplMouseSelect( aTempDate, nHitTest, true, false, false ); + ImplMouseSelect( aTempDate, nHitTest, true ); } void Calendar::ImplEndTracking( bool bCancel ) @@ -1163,7 +1026,6 @@ void Calendar::ImplEndTracking( bool bCancel ) mbDrag = false; mbSelection = false; - mbMultiSelection = false; mbUnSel = false; mbSpinDown = false; mbPrevIn = false; @@ -1269,8 +1131,7 @@ void Calendar::MouseButtonDown( const MouseEvent& rMEvt ) StartTracking(); } - mbMultiSelection = (mnWinStyle & (WB_MULTISELECT | WB_RANGESELECT)) != 0; - ImplMouseSelect( aTempDate, nHitTest, false, rMEvt.IsShift(), rMEvt.IsMod1() ); + ImplMouseSelect( aTempDate, nHitTest, false ); } } } @@ -1311,9 +1172,6 @@ void Calendar::Tracking( const TrackingEvent& rTEvt ) void Calendar::KeyInput( const KeyEvent& rKEvt ) { Date aNewDate = maCurDate; - bool bMultiSel = (mnWinStyle & (WB_RANGESELECT | WB_MULTISELECT)) != 0; - bool bExpand = rKEvt.GetKeyCode().IsShift(); - bool bExtended = rKEvt.GetKeyCode().IsMod1(); switch ( rKEvt.GetKeyCode().GetCode() ) { @@ -1353,23 +1211,6 @@ void Calendar::KeyInput( const KeyEvent& rKEvt ) aNewDate.AddDays( aNewDate.GetDaysInMonth() ); break; - case KEY_SPACE: - if ( bMultiSel && !(mnWinStyle & WB_RANGESELECT) ) - { - if ( !bExpand ) - { - bool bDateSel = IsDateSelected( maCurDate ); - SelectDate( maCurDate, !bDateSel ); - mbSelLeft = false; - mbTravelSelect = true; - Select(); - mbTravelSelect = false; - } - } - else - Control::KeyInput( rKEvt ); - break; - default: Control::KeyInput( rKEvt ); break; @@ -1377,38 +1218,7 @@ void Calendar::KeyInput( const KeyEvent& rKEvt ) if ( aNewDate != maCurDate ) { - if ( bMultiSel && bExpand ) - { - std::unique_ptr<IntDateSet> pOldSel(new IntDateSet( *mpSelectTable )); - Date aOldAnchorDate = maAnchorDate; - mbSelLeft = aNewDate < maAnchorDate; - if ( !bExtended ) - { - if ( mbSelLeft ) - { - ImplCalendarSelectDateRange( mpSelectTable, Date( 1, 1, 0 ), aNewDate, false ); - ImplCalendarSelectDateRange( mpSelectTable, maAnchorDate, Date( 31, 12, 9999 ), false ); - } - else - { - ImplCalendarSelectDateRange( mpSelectTable, Date( 1, 1, 0 ), maAnchorDate, false ); - ImplCalendarSelectDateRange( mpSelectTable, aNewDate, Date( 31, 12, 9999 ), false ); - } - } - ImplCalendarSelectDateRange( mpSelectTable, aNewDate, maAnchorDate, true ); - SetCurDate( aNewDate ); - maAnchorDate = aOldAnchorDate; - ImplUpdateSelection( pOldSel.get() ); - } - else - { - if ( mnWinStyle & WB_RANGESELECT ) - { - SetNoSelection(); - SelectDate( aNewDate ); - } - SetCurDate( aNewDate ); - } + SetCurDate( aNewDate ); mbTravelSelect = true; Select(); mbTravelSelect = false; @@ -1610,13 +1420,8 @@ void Calendar::SetCurDate( const Date& rNewDate ) maCurDate = rNewDate; maAnchorDate = maCurDate; - if ( !(mnWinStyle & (WB_RANGESELECT | WB_MULTISELECT)) ) - { - ImplCalendarSelectDate( mpSelectTable, aOldDate, false ); - ImplCalendarSelectDate( mpSelectTable, maCurDate, true ); - } - else if ( !HasFocus() ) - bUpdate = false; + ImplCalendarSelectDate( mpSelectTable, aOldDate, false ); + ImplCalendarSelectDate( mpSelectTable, maCurDate, true ); // shift actual date in the visible area if ( mbFormat || (maCurDate < GetFirstMonth()) ) @@ -1826,7 +1631,6 @@ void Calendar::EndSelection() mbDrag = false; mbSelection = false; - mbMultiSelection = false; mbSpinDown = false; mbPrevIn = false; mbNextIn = false; @@ -2122,11 +1926,6 @@ bool CalendarField::ShowDropDown( bool bShow ) else aDate = Date( Date::SYSTEM ); } - if ( pCalendar->GetStyle() & (WB_RANGESELECT | WB_MULTISELECT) ) - { - pCalendar->SetNoSelection(); - pCalendar->SelectDate( aDate ); - } pCalendar->SetCurDate( aDate ); Point aPos( GetParent()->OutputToScreenPixel( GetPosPixel() ) ); tools::Rectangle aRect( aPos, GetSizePixel() ); |