summaryrefslogtreecommitdiff
path: root/sc/source/ui/namedlg/namedlg.cxx
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@googlemail.com>2011-11-20 00:16:15 +0100
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2011-11-23 06:25:32 +0100
commitb5a509e21704e6dba31eabac689c35efd8dda973 (patch)
tree19e7ed1e12fc67968e019074cb9af821c866e9e6 /sc/source/ui/namedlg/namedlg.cxx
parentce26c58c7f5088a2982e0ce880b426771e55e234 (diff)
ManageNames: improve layout of ManageNames dialog
Diffstat (limited to 'sc/source/ui/namedlg/namedlg.cxx')
-rw-r--r--sc/source/ui/namedlg/namedlg.cxx51
1 files changed, 45 insertions, 6 deletions
diff --git a/sc/source/ui/namedlg/namedlg.cxx b/sc/source/ui/namedlg/namedlg.cxx
index 576cc417ca42..26237b94f66c 100644
--- a/sc/source/ui/namedlg/namedlg.cxx
+++ b/sc/source/ui/namedlg/namedlg.cxx
@@ -45,6 +45,8 @@
#include "namedlg.hxx"
#include "viewdata.hxx"
+#include "globalnames.hxx"
+
#include "sfx2/app.hxx"
#include <vcl/msgbox.hxx>
@@ -115,13 +117,17 @@ ScNameDlg::ScNameDlg( SfxBindings* pB, SfxChildWindow* pCW, Window* pParent,
maBtnAdd ( this, ScResId( BTN_ADD ) ),
maBtnDelete ( this, ScResId( BTN_DELETE ) ),
maBtnSelect ( this, ScResId( BTN_SELECT ) ),
- maBtnOk ( this, ScResId( BTN_CLOSE ) ),
- maBtnCancel ( this, ScResId( BTN_CANCEL ) ),
+ maBtnOk ( this, ScResId( BTN_NAME_OK ) ),
+ maBtnCancel ( this, ScResId( BTN_NAME_CANCEL ) ),
maBtnMore ( this, ScResId( BTN_MORE ) ),
+ maFtInfo ( this, ScResId( FT_INFO ) ),
//
mErrMsgInvalidSym( ScResId( STR_INVALIDSYMBOL ) ),
maErrMsgModifiedFailed( ResId::toString(ScResId( STR_MODIFYFAILED ) ) ),
- maGlobalNameStr( ResId::toString(ScResId(STR_GLOBAL_SCOPE)) ),
+ maGlobalNameStr ( ResId::toString(ScResId(STR_GLOBAL_SCOPE)) ),
+ maErrInvalidNameStr( ResId::toString(ScResId(STR_ERR_NAME_INVALID))),
+ maErrNameInUse ( ResId::toString(ScResId(STR_ERR_NAME_EXISTS))),
+ maStrInfoDefault ( ResId::toString(ScResId(STR_DEFAULT_INFO))),
//
mpViewData ( ptrViewData ),
mpDoc ( ptrViewData->GetDocument() ),
@@ -144,9 +150,8 @@ void ScNameDlg::Init()
OSL_ENSURE( mpViewData && mpDoc, "ViewData oder Document nicht gefunden!" );
//init UI
- std::map<rtl::OUString,ScRangeName*> aTabRangeNameMap;
- mpDoc->GetTabRangeNameMap(aTabRangeNameMap);
- mpRangeManagerTable = new ScRangeManagerTable(&maNameMgrCtrl, mpDoc->GetRangeName(), aTabRangeNameMap);
+ mpDoc->GetRangeNameMap(maRangeMap);
+ mpRangeManagerTable = new ScRangeManagerTable(&maNameMgrCtrl, mpDoc->GetRangeName(), maRangeMap);
mpRangeManagerTable->SetSelectHdl( LINK( this, ScNameDlg, SelectionChangedHdl_Impl ) );
mpRangeManagerTable->SetDeselectHdl( LINK( this, ScNameDlg, SelectionChangedHdl_Impl ) );
@@ -182,6 +187,7 @@ void ScNameDlg::Init()
}
UpdateNames();
+ IsNameValid();
mpViewData->GetSimpleArea( aRange );
aRange.Format( aAreaStr, ABS_DREF3D, mpDoc,
@@ -244,6 +250,38 @@ void ScNameDlg::UpdateChecks(ScRangeData* pData)
maBtnRowHeader.Check( pData->HasType( RT_ROWHEADER ) );
}
+bool ScNameDlg::IsNameValid()
+{
+ rtl::OUString aScope = maLbScope.GetSelectEntry();
+ rtl::OUString aName = maEdName.GetText();
+
+ ScRangeName* pRangeName = NULL;
+ if(aScope == maGlobalNameStr)
+ {
+ pRangeName = maRangeMap.find(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(STR_GLOBAL_RANGE_NAME)))->second;
+ }
+ else
+ {
+ pRangeName = maRangeMap.find(aScope)->second;
+ }
+
+ if (!ScRangeData::IsNameValid( aName, mpDoc ))
+ {
+ maEdName.SetControlBackground(GetSettings().GetStyleSettings().GetHighlightColor());
+ maFtInfo.SetText(maErrInvalidNameStr);
+ return false;
+ }
+ else if (pRangeName && pRangeName->findByUpperName(ScGlobal::pCharClass->upper(aName)))
+ {
+ maEdName.SetControlBackground(GetSettings().GetStyleSettings().GetHighlightColor());
+ maFtInfo.SetText(maErrNameInUse);
+ return false;
+ }
+ maEdName.SetControlBackground(GetSettings().GetStyleSettings().GetFieldColor());
+ maFtInfo.SetText( maStrInfoDefault );
+ return true;
+}
+
//updates the table and the buttons
void ScNameDlg::UpdateNames()
{
@@ -366,6 +404,7 @@ void ScNameDlg::RemovePushed()
void ScNameDlg::NameModified()
{
+ IsNameValid();
rtl::OUString aName = maEdName.GetText();
aName = aName.trim();
rtl::OUString aExpr = maEdAssign.GetText();