Kaydet (Commit) afeb347c authored tarafından Albert Thuswaldner's avatar Albert Thuswaldner Kaydeden (comit) Noel Power

Improvment of Custom Sheet Prefix Option

üst 15a62118
...@@ -53,10 +53,12 @@ private: ...@@ -53,10 +53,12 @@ private:
virtual ~ScTpDefaultsOptions(); virtual ~ScTpDefaultsOptions();
void CheckNumSheets(); void CheckNumSheets();
void CheckPrefix(); void CheckPrefix(Edit* pEdit);
void OnFocusPrefixInput(Edit* pEdit);
DECL_LINK( NumModifiedHdl, NumericField* ); DECL_LINK( NumModifiedHdl, NumericField* );
DECL_LINK( PrefixModifiedHdl, Edit* ); DECL_LINK( PrefixModifiedHdl, Edit* );
DECL_LINK( PrefixEditOnFocusHdl, Edit* );
private: private:
FixedLine aFLInitSpreadSheet; FixedLine aFLInitSpreadSheet;
...@@ -65,6 +67,9 @@ private: ...@@ -65,6 +67,9 @@ private:
FixedText aFtSheetPrefix; FixedText aFtSheetPrefix;
Edit aEdSheetPrefix; Edit aEdSheetPrefix;
// Stores old Sheet Prefix
::rtl::OUString maOldPrefixValue;
::boost::shared_ptr<ScDocOptions> mpOldOptions; ::boost::shared_ptr<ScDocOptions> mpOldOptions;
::boost::shared_ptr<ScDocOptions> mpNewOptions; ::boost::shared_ptr<ScDocOptions> mpNewOptions;
}; };
......
...@@ -29,8 +29,6 @@ ...@@ -29,8 +29,6 @@
#undef SC_DLLIMPLEMENTATION #undef SC_DLLIMPLEMENTATION
#include <vcl/msgbox.hxx>
#include "tpdefaults.hxx" #include "tpdefaults.hxx"
#include "optdlg.hrc" #include "optdlg.hrc"
#include "scresid.hxx" #include "scresid.hxx"
...@@ -73,6 +71,7 @@ ScTpDefaultsOptions::ScTpDefaultsOptions(Window *pParent, const SfxItemSet &rCor ...@@ -73,6 +71,7 @@ ScTpDefaultsOptions::ScTpDefaultsOptions(Window *pParent, const SfxItemSet &rCor
} }
aEdNSheets.SetModifyHdl( LINK(this, ScTpDefaultsOptions, NumModifiedHdl) ); aEdNSheets.SetModifyHdl( LINK(this, ScTpDefaultsOptions, NumModifiedHdl) );
aEdSheetPrefix.SetModifyHdl( LINK(this, ScTpDefaultsOptions, PrefixModifiedHdl) ); aEdSheetPrefix.SetModifyHdl( LINK(this, ScTpDefaultsOptions, PrefixModifiedHdl) );
aEdSheetPrefix.SetGetFocusHdl( LINK(this, ScTpDefaultsOptions, PrefixEditOnFocusHdl) );
} }
ScTpDefaultsOptions::~ScTpDefaultsOptions() ScTpDefaultsOptions::~ScTpDefaultsOptions()
...@@ -121,16 +120,33 @@ void ScTpDefaultsOptions::CheckNumSheets() ...@@ -121,16 +120,33 @@ void ScTpDefaultsOptions::CheckNumSheets()
aEdNSheets.SetValue(INIT_SHEETS_MIN); aEdNSheets.SetValue(INIT_SHEETS_MIN);
} }
void ScTpDefaultsOptions::CheckPrefix() void ScTpDefaultsOptions::CheckPrefix(Edit* pEdit)
{ {
OUString aSheetPrefix = aEdSheetPrefix.GetText(); if (!pEdit)
return;
OUString aSheetPrefix = pEdit->GetText();
if ( !ScDocument::ValidTabName( aSheetPrefix ) ) if ( !ScDocument::ValidTabName( aSheetPrefix ) )
{ {
ErrorBox(this,WinBits(WB_OK|WB_DEF_OK), ScGlobal::GetRscString(STR_INVALIDTABNAME) ).Execute(); // Revert to last good Prefix
pEdit->SetText( maOldPrefixValue );
}
else
{
OnFocusPrefixInput(pEdit);
} }
} }
void ScTpDefaultsOptions::OnFocusPrefixInput(Edit* pEdit)
{
if (!pEdit)
return;
// Store Prefix in case we need to revert
maOldPrefixValue = pEdit->GetText();
}
IMPL_LINK( ScTpDefaultsOptions, NumModifiedHdl, NumericField*, EMPTYARG ) IMPL_LINK( ScTpDefaultsOptions, NumModifiedHdl, NumericField*, EMPTYARG )
{ {
...@@ -138,10 +154,17 @@ IMPL_LINK( ScTpDefaultsOptions, NumModifiedHdl, NumericField*, EMPTYARG ) ...@@ -138,10 +154,17 @@ IMPL_LINK( ScTpDefaultsOptions, NumModifiedHdl, NumericField*, EMPTYARG )
return 0; return 0;
} }
IMPL_LINK( ScTpDefaultsOptions, PrefixModifiedHdl, Edit*, EMPTYARG ) IMPL_LINK( ScTpDefaultsOptions, PrefixModifiedHdl, Edit*, pEdit )
{ {
CheckPrefix(); CheckPrefix(pEdit);
return 0; return 0;
} }
IMPL_LINK( ScTpDefaultsOptions, PrefixEditOnFocusHdl, Edit*, pEdit )
{
OnFocusPrefixInput(pEdit);
return 0;
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
...@@ -943,14 +943,14 @@ TabPage RID_SCPAGE_DEFAULTS ...@@ -943,14 +943,14 @@ TabPage RID_SCPAGE_DEFAULTS
FixedText FT_SHEETPREFIX FixedText FT_SHEETPREFIX
{ {
Pos = MAP_APPFONT ( 12 , 32 ) ; Pos = MAP_APPFONT ( 12 , 32 ) ;
Size = MAP_APPFONT ( 120 , 8 ) ; Size = MAP_APPFONT ( 110 , 8 ) ;
Text [ en-US ] = "Prefix name for new worksheet"; Text [ en-US ] = "Prefix name for new worksheet";
}; };
Edit ED_SHEETPREFIX Edit ED_SHEETPREFIX
{ {
HelpID = "sc:Edit:RID_SCPAGE_CALC:ED_SHEETPREFIX"; HelpID = "sc:Edit:RID_SCPAGE_CALC:ED_SHEETPREFIX";
Border = TRUE ; Border = TRUE ;
Pos = MAP_APPFONT ( 130 , 32 ) ; Pos = MAP_APPFONT ( 130 , 30 ) ;
Size = MAP_APPFONT ( 45 , 12 ) ; Size = MAP_APPFONT ( 60 , 12 ) ;
}; };
}; };
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment