cui/source/tabpages/tpcolor.cxx | 84 ++++++++++++++++++++++----------------- cui/source/tabpages/tpgradnt.cxx | 12 ++--- 2 files changed, 55 insertions(+), 41 deletions(-)
New commits: commit 74706c4057e027898022ac42de210302cdc92d99 Author: Caolán McNamara <[email protected]> Date: Wed Apr 29 16:06:20 2015 +0100 on using 'add' color button, don't frighten with an error that the name already exists if the user didn't use the edit entry yet. Just always, like the gradient one, put up the dialog to enter a name, use the entry text if that name isn't taken, and generate a new one if its is. Change-Id: Ibd3d37db73ecdbae7998884d3397cbc2bc6b7c3f diff --git a/cui/source/tabpages/tpcolor.cxx b/cui/source/tabpages/tpcolor.cxx index 4347ab3..3c3ecf2 100644 --- a/cui/source/tabpages/tpcolor.cxx +++ b/cui/source/tabpages/tpcolor.cxx @@ -685,55 +685,68 @@ IMPL_LINK_NOARG(SvxColorTabPage, ModifiedHdl_Impl) IMPL_LINK_NOARG(SvxColorTabPage, ClickAddHdl_Impl) { - vcl::Window *pWindow = this; - while( pWindow ) - { - pWindow = pWindow->GetParent(); - } - - ResMgr& rMgr = CUI_MGR(); - OUString aDesc( ResId( RID_SVXSTR_DESC_COLOR, rMgr ) ); + OUString aNewName( SVX_RES( RID_SVXSTR_COLOR ) ); + OUString aDesc( CUI_RES( RID_SVXSTR_DESC_COLOR ) ); OUString aName( m_pEdtName->GetText() ); + long nCount = pColorList->Count(); - bool bDifferent = true; + long j = 1; // check if name is already existing - for ( long i = 0; i < nCount && bDifferent; i++ ) - if ( aName == pColorList->GetColor( i )->GetName() ) - bDifferent = false; + while (1) + { + bool bDifferent = true; + + for( long i = 0; i < nCount && bDifferent; i++ ) + if ( aName == pColorList->GetColor( i )->GetName() ) + bDifferent = false; + + if (bDifferent) + break; - // if yes, it is repeated and a new name is demanded - if ( !bDifferent ) + aName = aNewName; + aName += " "; + aName += OUString::number( j++ ); + } + + SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); + boost::scoped_ptr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog( GetParentDialog(), aName, aDesc )); + ScopedVclPtr<MessageDialog> pWarnBox; + sal_uInt16 nError = 1; + + while (pDlg->Execute() == RET_OK) { - ScopedVclPtrInstance<MessageDialog> aWarningBox( GetParentDialog() - ,"DuplicateNameDialog" - ,"cui/ui/queryduplicatedialog.ui"); - aWarningBox->Execute(); + pDlg->GetName( aName ); - SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); - boost::scoped_ptr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog( GetParentDialog(), aName, aDesc )); - bool bLoop = true; + bool bDifferent = true; - while ( !bDifferent && bLoop && pDlg->Execute() == RET_OK ) + for (long i = 0; i < nCount && bDifferent; ++i) { - pDlg->GetName( aName ); - bDifferent = true; + if( aName == pColorList->GetColor( i )->GetName() ) + bDifferent = false; + } - for( long i = 0; i < nCount && bDifferent; i++ ) - { - if( aName == pColorList->GetColor( i )->GetName() ) - bDifferent = false; - } + if (bDifferent) + { + nError = 0; + break; + } - if( bDifferent ) - bLoop = false; - else - aWarningBox->Execute(); + if( !pWarnBox ) + { + pWarnBox.reset(new MessageDialog( GetParentDialog() + ,"DuplicateNameDialog" + ,"cui/ui/queryduplicatedialog.ui")); } + + if( pWarnBox->Execute() != RET_OK ) + break; } - // if not existing the entry is entered - if( bDifferent ) + pDlg.reset(); + pWarnBox.reset(); + + if (!nError) { XColorEntry* pEntry = new XColorEntry( aCurrentColor, aName ); @@ -749,6 +762,7 @@ IMPL_LINK_NOARG(SvxColorTabPage, ClickAddHdl_Impl) SelectColorLBHdl_Impl( this ); } + UpdateModified(); return 0; diff --git a/cui/source/tabpages/tpgradnt.cxx b/cui/source/tabpages/tpgradnt.cxx index 6b832a2..81ce646 100644 --- a/cui/source/tabpages/tpgradnt.cxx +++ b/cui/source/tabpages/tpgradnt.cxx @@ -454,23 +454,23 @@ IMPL_LINK_NOARG(SvxGradientTabPage, ClickAddHdl_Impl) } SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); - DBG_ASSERT(pFact, "Dialog creation failed!"); boost::scoped_ptr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog( GetParentDialog(), aName, aDesc )); - DBG_ASSERT(pDlg, "Dialog creation failed!"); ScopedVclPtr<MessageDialog> pWarnBox; - sal_uInt16 nError = 1; + sal_uInt16 nError = 1; - while( pDlg->Execute() == RET_OK ) + while (pDlg->Execute() == RET_OK) { pDlg->GetName( aName ); bDifferent = true; - for( long i = 0; i < nCount && bDifferent; i++ ) + for (long i = 0; i < nCount && bDifferent; ++i) + { if( aName == pGradientList->GetGradient( i )->GetName() ) bDifferent = false; + } - if( bDifferent ) + if (bDifferent) { nError = 0; break;
_______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
