sc/source/ui/condformat/condformatdlg.cxx | 17 ++++++++++++ sc/source/ui/condformat/condformatmgr.cxx | 40 +++++++++++++++++++++++++++++- sc/source/ui/inc/condformatdlg.hxx | 1 sc/source/ui/inc/condformatmgr.hxx | 1 4 files changed, 58 insertions(+), 1 deletion(-)
New commits: commit 980adbc460c28a6ab43efed952c2c248fda37f3e Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Sat Oct 6 06:52:28 2012 +0200 prevent creating cond formats without a attached range Change-Id: Ic4c13fa3d0eae54b7db1fa5a4e5c5040582b21ed diff --git a/sc/source/ui/condformat/condformatdlg.cxx b/sc/source/ui/condformat/condformatdlg.cxx index 9dc6350..4c5708a 100644 --- a/sc/source/ui/condformat/condformatdlg.cxx +++ b/sc/source/ui/condformat/condformatdlg.cxx @@ -1133,6 +1133,7 @@ ScCondFormatDlg::ScCondFormatDlg(Window* pParent, ScDocument* pDoc, const ScCond maBtnAdd.SetClickHdl( LINK( &maCondFormList, ScCondFormatList, AddBtnHdl ) ); maBtnRemove.SetClickHdl( LINK( &maCondFormList, ScCondFormatList, RemoveBtnHdl ) ); maEdRange.SetModifyHdl( LINK( this, ScCondFormatDlg, EdRangeModifyHdl ) ); + maBtnOk.SetClickHdl( LINK( this, ScCondFormatDlg, OkBtnHdl ) ); FreeResource(); maEdRange.SetText(aRangeString); @@ -1207,5 +1208,21 @@ IMPL_LINK( ScCondFormatDlg, EdRangeModifyHdl, Edit*, pEdit ) return 0; } +IMPL_LINK_NOARG( ScCondFormatDlg, OkBtnHdl ) +{ + rtl::OUString aRangeStr = maEdRange.GetText(); + ScRangeList aRange; + aRange.Parse(aRangeStr, mpDoc, SCA_VALID, mpDoc->GetAddressConvention()); + boost::scoped_ptr<ScConditionalFormat> pFormat(maCondFormList.GetConditionalFormat()); + if(pFormat && pFormat->GetRange().empty() && aRange.empty()) + return 0; + else + { + EndDialog(RET_OK); + } + + return 0; +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sc/source/ui/inc/condformatdlg.hxx b/sc/source/ui/inc/condformatdlg.hxx index c7a247c..52c03e5 100644 --- a/sc/source/ui/inc/condformatdlg.hxx +++ b/sc/source/ui/inc/condformatdlg.hxx @@ -205,6 +205,7 @@ private: ScDocument* mpDoc; DECL_LINK( EdRangeModifyHdl, Edit* ); + DECL_LINK( OkBtnHdl, void* ); public: ScCondFormatDlg(Window* pWindow, ScDocument* pDoc, const ScConditionalFormat* pFormat, const ScRangeList& rRange, const ScAddress& rPos, condformat::dialog::ScCondFormatDialogType eType); commit 5400ea5b75f6d0375725336b828b06ae74cc0e5c Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Sat Oct 6 06:52:03 2012 +0200 prevent crash when no cond format will be defined in cond format dlg Change-Id: Iffc54ada1fcf586c00eddf934079fa671f263ce0 diff --git a/sc/source/ui/condformat/condformatmgr.cxx b/sc/source/ui/condformat/condformatmgr.cxx index c6a6465..0bd3538 100644 --- a/sc/source/ui/condformat/condformatmgr.cxx +++ b/sc/source/ui/condformat/condformatmgr.cxx @@ -257,6 +257,9 @@ IMPL_LINK_NOARG(ScCondFormatManagerDlg, AddBtnHdl) if(pDlg->Execute() == RET_OK) { ScConditionalFormat* pNewFormat = pDlg->GetConditionalFormat(); + if(!pNewFormat) + return 0; + mpFormatList->InsertNew(pNewFormat); pNewFormat->SetKey(FindKey(mpFormatList)); maCtrlManager.Update(); commit 716642988f01d3023561bd215d83efaefee6efaf Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Sat Oct 6 06:24:30 2012 +0200 enable the add button in manage conditional formats Change-Id: I82a0abf58f8fc68d0e9e145923961fa3e3c654fe diff --git a/sc/source/ui/condformat/condformatmgr.cxx b/sc/source/ui/condformat/condformatmgr.cxx index 6eeecd1..c6a6465 100644 --- a/sc/source/ui/condformat/condformatmgr.cxx +++ b/sc/source/ui/condformat/condformatmgr.cxx @@ -181,8 +181,8 @@ ScCondFormatManagerDlg::ScCondFormatManagerDlg(Window* pParent, ScDocument* pDoc maBtnRemove.SetClickHdl(LINK(this, ScCondFormatManagerDlg, RemoveBtnHdl)); maBtnEdit.SetClickHdl(LINK(this, ScCondFormatManagerDlg, EditBtnHdl)); + maBtnAdd.SetClickHdl(LINK(this, ScCondFormatManagerDlg, AddBtnHdl)); maCtrlManager.GetListControl().SetDoubleClickHdl(LINK(this, ScCondFormatManagerDlg, EditBtnHdl)); - maBtnAdd.Hide(); } ScCondFormatManagerDlg::~ScCondFormatManagerDlg() @@ -233,4 +233,39 @@ IMPL_LINK_NOARG(ScCondFormatManagerDlg, EditBtnHdl) return 0; } +namespace { + +sal_uInt32 FindKey(ScConditionalFormatList* pFormatList) +{ + sal_uInt32 nKey = 0; + for(ScConditionalFormatList::const_iterator itr = pFormatList->begin(), itrEnd = pFormatList->end(); + itr != itrEnd; ++itr) + { + if(itr->GetKey() > nKey) + nKey = itr->GetKey(); + } + + return nKey + 1; +} + +} + +IMPL_LINK_NOARG(ScCondFormatManagerDlg, AddBtnHdl) +{ + boost::scoped_ptr<ScCondFormatDlg> pDlg(new ScCondFormatDlg(this, mpDoc, NULL, ScRangeList(), + maPos, condformat::dialog::CONDITION)); + if(pDlg->Execute() == RET_OK) + { + ScConditionalFormat* pNewFormat = pDlg->GetConditionalFormat(); + mpFormatList->InsertNew(pNewFormat); + pNewFormat->SetKey(FindKey(mpFormatList)); + maCtrlManager.Update(); + + mbModified = true; + } + + return 0; +} + + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sc/source/ui/inc/condformatmgr.hxx b/sc/source/ui/inc/condformatmgr.hxx index c71e2ef..5b0d1e8 100644 --- a/sc/source/ui/inc/condformatmgr.hxx +++ b/sc/source/ui/inc/condformatmgr.hxx @@ -106,6 +106,7 @@ private: DECL_LINK(RemoveBtnHdl, void*); DECL_LINK(EditBtnHdl, void*); + DECL_LINK(AddBtnHdl, void*); bool mbModified; }; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits