sc/source/core/data/conditio.cxx | 34 ++++++++++++++++++------- sc/source/ui/condformat/condformatdlgentry.cxx | 10 +++++-- 2 files changed, 32 insertions(+), 12 deletions(-)
New commits: commit 37f238837cdd2532363efe2af1735ab24cb9a1b9 Author: Markus Mohrhard <[email protected]> Date: Tue Dec 18 23:05:29 2012 +0100 some small fixes for UI around date cond formats diff --git a/sc/source/ui/condformat/condformatdlgentry.cxx b/sc/source/ui/condformat/condformatdlgentry.cxx index 3fc1612..b516670 100644 --- a/sc/source/ui/condformat/condformatdlgentry.cxx +++ b/sc/source/ui/condformat/condformatdlgentry.cxx @@ -1170,6 +1170,9 @@ ScDateFrmtEntry::ScDateFrmtEntry( Window* pParent, ScDocument* pDoc, const ScCon { sal_Int32 nPos = static_cast<sal_Int32>(pFormat->GetDateType()); maLbDateEntry.SelectEntryPos(nPos); + + rtl::OUString aStyleName = pFormat->GetStyleName(); + maLbStyle.SelectEntry(aStyleName); } } @@ -1180,6 +1183,7 @@ void ScDateFrmtEntry::Init() FillStyleListBox( mpDoc, maLbStyle ); maLbStyle.SetSelectHdl( LINK( this, ScDateFrmtEntry, StyleSelectHdl ) ); + maLbStyle.SelectEntryPos(1); } void ScDateFrmtEntry::SetActive() @@ -1193,9 +1197,9 @@ void ScDateFrmtEntry::SetActive() void ScDateFrmtEntry::SetInactive() { - maLbDateEntry.Show(); - maFtStyle.Show(); - maWdPreview.Show(); + maLbDateEntry.Hide(); + maFtStyle.Hide(); + maWdPreview.Hide(); Deselect(); } commit 31eee6b372539f0f1ccb82d9a8012e878d498d56 Author: Markus Mohrhard <[email protected]> Date: Tue Dec 18 22:59:35 2012 +0100 handle last week/next week betweek different years, fdo#58340 diff --git a/sc/source/core/data/conditio.cxx b/sc/source/core/data/conditio.cxx index 2b58f33..3dcc3be 100644 --- a/sc/source/core/data/conditio.cxx +++ b/sc/source/core/data/conditio.cxx @@ -1684,24 +1684,40 @@ bool ScCondDateFormatEntry::IsValid( const ScAddress& rPos ) const return true; break; case condformat::LASTWEEK: - if( rActDate.GetYear() == aCellDate.GetYear() ) + if( rActDate.GetDayOfWeek() != SUNDAY ) { - if( rActDate.GetWeekOfYear( SUNDAY ) == aCellDate.GetWeekOfYear( SUNDAY ) + 1 ) - return true; + Date aBegin(rActDate - 8 - static_cast<long>(rActDate.GetDayOfWeek())); + Date aEnd(rActDate - 2 -static_cast<long>(rActDate.GetDayOfWeek())); + return aCellDate.IsBetween( aBegin, aEnd ); + } + else + { + Date aBegin(rActDate - 8); + Date aEnd(rActDate - 1); + return aCellDate.IsBetween( aBegin, aEnd ); } break; case condformat::THISWEEK: - if( rActDate.GetYear() == aCellDate.GetYear() ) + if( rActDate.GetDayOfWeek() != SUNDAY ) { - if( rActDate.GetWeekOfYear( SUNDAY ) == aCellDate.GetWeekOfYear( SUNDAY ) ) - return true; + Date aBegin(rActDate - 1 - static_cast<long>(rActDate.GetDayOfWeek())); + Date aEnd(rActDate + 5 - static_cast<long>(rActDate.GetDayOfWeek())); + return aCellDate.IsBetween( aBegin, aEnd ); + } + else + { + Date aEnd( rActDate + 6); + return aCellDate.IsBetween( rActDate, aEnd ); } break; case condformat::NEXTWEEK: - if( rActDate.GetYear() == aCellDate.GetYear() ) + if( rActDate.GetDayOfWeek() != SUNDAY ) { - if( rActDate.GetWeekOfYear( SUNDAY ) == aCellDate.GetWeekOfYear( SUNDAY ) - 1 ) - return true; + return aCellDate.IsBetween( rActDate + 6 - static_cast<long>(rActDate.GetDayOfWeek()), rActDate + 12 - static_cast<long>(rActDate.GetDayOfWeek()) ); + } + else + { + return aCellDate.IsBetween( rActDate + 7, rActDate + 13 ); } break; case condformat::LASTMONTH: _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
