Hi Andy and Kohei, Hereby additional patch with:
* Check on pName is NULL. * Showing original sheet name in input box, when Rename option is checked. Not implemented: OrgName_#. Joost 2010/12/12 Joost Eekhoorn <joost.eekho...@gmail.com> > Hi Andy, > > Point made. > I will do the same as in the Rename dialog, thus if 'Sheet1' is selected, > the rename input box will show 'Sheet1', when Rename is checked. > > I must also fix something in my last patch, now that MoveTable has a > pointer as last argument: > if( rName.Len() ) > is changed to: > if( pName->Len() ) > but must be: > if( ( pName != NULL ) && ( pName->Len() ) ) > > Joost > > 2010/12/11 Andy Brown <a...@the-martin-byrd.net> > > On Sat Dec 11 2010 13:54:38 GMT-0800 (PST) Joost Eekhoorn wrote: >> >>> Hi Kohei, >>> >>> >>> > * I think it would be more user-friendly if the Rename input box >>> > showed the default sheet name. When moving a sheet, this would be >>> > the original sheet name, while when copying a sheet it would be the >>> > original name followed by '_' + <num> (e.g. Sheet1 -> Sheet1_1). >>> >>> An empty imput box is logical to me, because the Rename dialog shows >>> also an empty in input box. >>> But if you want, I can try to impement it. >>> It is not in this patch, because it more difficult than it sounds. >>> The default name depends on the document where the copy is going to, >>> if it is the same document or another document. >>> >>> >> The default for RC1 is to use the default sheet name when selecting Rename >> from the context menu, see attached. Personally I would prefer to follow >> this for the new setup. >> >> Thanks again for taking this on. >> >> Andy >> > >
From 003188d6ea1aebd0a07c7eba6198ac0b7605c2ae Mon Sep 17 00:00:00 2001 From: Joost Wezenbeek <joost.eekho...@gmail.com> Date: Sun, 12 Dec 2010 12:04:34 +0100 Subject: [PATCH] Change Sheet copy process Easy Hacks 3.27 Added rename in Move/Copy Sheet in calc --- sc/inc/scabstdlg.hxx | 4 +++- sc/source/ui/attrdlg/scdlgfact.cxx | 6 ++++-- sc/source/ui/attrdlg/scdlgfact.hxx | 5 ++++- sc/source/ui/inc/mvtabdlg.hxx | 4 +++- sc/source/ui/miscdlgs/mvtabdlg.cxx | 10 +++++++++- sc/source/ui/view/tabvwshf.cxx | 7 ++++++- sc/source/ui/view/viewfun2.cxx | 4 ++-- 7 files changed, 31 insertions(+), 9 deletions(-) diff --git a/sc/inc/scabstdlg.hxx b/sc/inc/scabstdlg.hxx index 102ea20..93b291c 100644 --- a/sc/inc/scabstdlg.hxx +++ b/sc/inc/scabstdlg.hxx @@ -410,7 +410,9 @@ public: long nFirst = 1, long nLast = 100 ) = 0; - virtual AbstractScMoveTableDlg * CreateScMoveTableDlg( Window* pParent, int nId ) = 0; //add for ScMoveTableDlg + virtual AbstractScMoveTableDlg * CreateScMoveTableDlg( Window* pParent, //add for ScMoveTableDlg + const String& rDefault, + int nId ) = 0; virtual AbstractScNameCreateDlg * CreateScNameCreateDlg ( Window * pParent, USHORT nFlags, int nId ) = 0; //add for ScNameCreateDlg diff --git a/sc/source/ui/attrdlg/scdlgfact.cxx b/sc/source/ui/attrdlg/scdlgfact.cxx index 10f0065..d31bd7e 100644 --- a/sc/source/ui/attrdlg/scdlgfact.cxx +++ b/sc/source/ui/attrdlg/scdlgfact.cxx @@ -1125,13 +1125,15 @@ AbstractScMetricInputDlg * ScAbstractDialogFactory_Impl::CreateScMetricInputDlg //add for ScMoveTableDlg begin -AbstractScMoveTableDlg * ScAbstractDialogFactory_Impl::CreateScMoveTableDlg( Window* pParent, int nId ) +AbstractScMoveTableDlg * ScAbstractDialogFactory_Impl::CreateScMoveTableDlg( Window* pParent, + const String& rDefault, + int nId ) { ScMoveTableDlg * pDlg=NULL; switch ( nId ) { case RID_SCDLG_MOVETAB : - pDlg = new ScMoveTableDlg( pParent ); + pDlg = new ScMoveTableDlg( pParent, rDefault ); break; default: break; diff --git a/sc/source/ui/attrdlg/scdlgfact.hxx b/sc/source/ui/attrdlg/scdlgfact.hxx index f4a8286..0738e97 100644 --- a/sc/source/ui/attrdlg/scdlgfact.hxx +++ b/sc/source/ui/attrdlg/scdlgfact.hxx @@ -492,7 +492,10 @@ public: long nFirst = 1, long nLast = 100 ); - virtual AbstractScMoveTableDlg * CreateScMoveTableDlg( Window* pParent, int nId ); //add for ScMoveTableDlg + virtual AbstractScMoveTableDlg * CreateScMoveTableDlg( Window* pParent, //add for ScMoveTableDlg + const String& rDefault, + int nId ); + virtual AbstractScNameCreateDlg * CreateScNameCreateDlg ( Window * pParent, USHORT nFlags, int nId ); //add for ScNameCreateDlg virtual AbstractScNamePasteDlg * CreateScNamePasteDlg ( Window * pParent, const ScRangeName* pList, //add for ScNamePasteDlg diff --git a/sc/source/ui/inc/mvtabdlg.hxx b/sc/source/ui/inc/mvtabdlg.hxx index 1ffdc28..8724bc4 100644 --- a/sc/source/ui/inc/mvtabdlg.hxx +++ b/sc/source/ui/inc/mvtabdlg.hxx @@ -45,7 +45,7 @@ class ScMoveTableDlg : public ModalDialog { public: - ScMoveTableDlg( Window* pParent ); + ScMoveTableDlg( Window* pParent, const String& rDefault ); ~ScMoveTableDlg(); USHORT GetSelectedDocument () const; @@ -71,6 +71,8 @@ private: CancelButton aBtnCancel; HelpButton aBtnHelp; + const String& mrDefaultName; + USHORT nDocument; SCTAB nTable; BOOL bCopyTable; diff --git a/sc/source/ui/miscdlgs/mvtabdlg.cxx b/sc/source/ui/miscdlgs/mvtabdlg.cxx index 1a911ad..b95bae3 100644 --- a/sc/source/ui/miscdlgs/mvtabdlg.cxx +++ b/sc/source/ui/miscdlgs/mvtabdlg.cxx @@ -56,7 +56,8 @@ //================================================================== -ScMoveTableDlg::ScMoveTableDlg( Window* pParent ) +ScMoveTableDlg::ScMoveTableDlg( Window* pParent, + const String& rDefault ) : ModalDialog ( pParent, ScResId( RID_SCDLG_MOVETAB ) ), // @@ -71,6 +72,7 @@ ScMoveTableDlg::ScMoveTableDlg( Window* pParent ) aBtnCancel ( this, ScResId( BTN_CANCEL ) ), aBtnHelp ( this, ScResId( BTN_HELP ) ), // + mrDefaultName( rDefault ), nDocument ( 0 ), nTable ( 0 ), bCopyTable ( FALSE ), @@ -136,6 +138,7 @@ void ScMoveTableDlg::EnableTabName(BOOL bFlag) if(bFlag) { aEdTabName.Enable(); + aEdTabName.SetText( mrDefaultName ); } else { @@ -213,6 +216,11 @@ IMPL_LINK( ScMoveTableDlg, OkHdl, void *, EMPTYARG ) nTable = (nTabSel != nTabLast) ? static_cast<SCTAB>(nTabSel) : SC_TAB_APPEND; bCopyTable = aBtnCopy.IsChecked(); bRenameTable= aBtnRename.IsChecked(); + + // Return an empty string, when the new name is the same as the original name. + if( mrDefaultName == aEdTabName.GetText() ) + aEdTabName.SetText( String() ); + EndDialog( RET_OK ); return 0; diff --git a/sc/source/ui/view/tabvwshf.cxx b/sc/source/ui/view/tabvwshf.cxx index b22c1ca..d46d7ec 100644 --- a/sc/source/ui/view/tabvwshf.cxx +++ b/sc/source/ui/view/tabvwshf.cxx @@ -544,10 +544,15 @@ void ScTabViewShell::ExecuteTable( SfxRequest& rReq ) } else { + String aDefaultName; + pDoc->GetName( pViewData->GetTabNo(), aDefaultName ); + ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create(); DBG_ASSERT(pFact, "ScAbstractFactory create fail!"); - AbstractScMoveTableDlg* pDlg = pFact->CreateScMoveTableDlg( GetDialogParent(), RID_SCDLG_MOVETAB ); + AbstractScMoveTableDlg* pDlg = pFact->CreateScMoveTableDlg( GetDialogParent(), + aDefaultName, + RID_SCDLG_MOVETAB ); DBG_ASSERT(pDlg, "Dialog create fail!"); SCTAB nTableCount = pDoc->GetTableCount(); diff --git a/sc/source/ui/view/viewfun2.cxx b/sc/source/ui/view/viewfun2.cxx index 74467c5..2dd802b 100644 --- a/sc/source/ui/view/viewfun2.cxx +++ b/sc/source/ui/view/viewfun2.cxx @@ -2649,7 +2649,7 @@ void ScViewFunc::MoveTable( USHORT nDestDocNo, SCTAB nDestTab, BOOL bCopy, const for( USHORT j=0; j<TheTabs.Count(); j++, nDestTab1++ ) { // #63304# insert sheets first and update all references String aName; - if( pName->Len() ) + if( (pName != NULL ) && ( pName->Len() ) ) aName = *pName; else pDoc->GetName( TheTabs[j], aName ); @@ -2834,7 +2834,7 @@ void ScViewFunc::MoveTable( USHORT nDestDocNo, SCTAB nDestTab, BOOL bCopy, const } // Rename must be done after that all sheets have been moved. - if( pName->Len() ) + if( (pName != NULL) && ( pName->Len() ) ) { for(int j=0;j<TheDestTabs.Count();j++) { -- 1.7.1
_______________________________________________ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice