Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
core
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
LibreOffice
core
Commits
106f128f
Kaydet (Commit)
106f128f
authored
Kas 21, 2011
tarafından
Markus Mohrhard
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
ManageNames: make global undo work again with dialog
üst
26c86c78
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
103 additions
and
50 deletions
+103
-50
document.hxx
sc/inc/document.hxx
+1
-0
undorangename.hxx
sc/inc/undorangename.hxx
+6
-9
documen3.cxx
sc/source/core/data/documen3.cxx
+28
-0
docfunc.cxx
sc/source/ui/docshell/docfunc.cxx
+25
-0
docfunc.hxx
sc/source/ui/inc/docfunc.hxx
+7
-0
namedlg.hxx
sc/source/ui/inc/namedlg.hxx
+3
-1
namemgrtable.hxx
sc/source/ui/inc/namemgrtable.hxx
+2
-4
namedlg.cxx
sc/source/ui/namedlg/namedlg.cxx
+12
-4
namemgrtable.cxx
sc/source/ui/namedlg/namemgrtable.cxx
+6
-7
undorangename.cxx
sc/source/ui/undo/undorangename.cxx
+13
-25
No files found.
sc/inc/document.hxx
Dosyayı görüntüle @
106f128f
...
@@ -466,6 +466,7 @@ public:
...
@@ -466,6 +466,7 @@ public:
*/
*/
SC_DLLPUBLIC
void
GetAllTabRangeNames
(
ScRangeName
::
TabNameCopyMap
&
rRangeNames
)
const
;
SC_DLLPUBLIC
void
GetAllTabRangeNames
(
ScRangeName
::
TabNameCopyMap
&
rRangeNames
)
const
;
SC_DLLPUBLIC
void
SetAllTabRangeNames
(
const
ScRangeName
::
TabNameCopyMap
&
rRangeNames
);
SC_DLLPUBLIC
void
SetAllTabRangeNames
(
const
ScRangeName
::
TabNameCopyMap
&
rRangeNames
);
SC_DLLPUBLIC
void
SetAllRangeNames
(
const
boost
::
ptr_map
<
rtl
::
OUString
,
ScRangeName
>&
rRangeMap
);
void
GetTabRangeNameMap
(
std
::
map
<
rtl
::
OUString
,
ScRangeName
*>&
rRangeName
);
void
GetTabRangeNameMap
(
std
::
map
<
rtl
::
OUString
,
ScRangeName
*>&
rRangeName
);
void
GetRangeNameMap
(
std
::
map
<
rtl
::
OUString
,
ScRangeName
*>&
rRangeName
);
void
GetRangeNameMap
(
std
::
map
<
rtl
::
OUString
,
ScRangeName
*>&
rRangeName
);
SC_DLLPUBLIC
ScRangeName
*
GetRangeName
(
SCTAB
nTab
)
const
;
SC_DLLPUBLIC
ScRangeName
*
GetRangeName
(
SCTAB
nTab
)
const
;
...
...
sc/inc/undorangename.hxx
Dosyayı görüntüle @
106f128f
...
@@ -31,6 +31,7 @@
...
@@ -31,6 +31,7 @@
#include "undobase.hxx"
#include "undobase.hxx"
#include "rangenam.hxx"
#include "rangenam.hxx"
#include <boost/ptr_container/ptr_map.hpp>
class
ScDocShell
;
class
ScDocShell
;
...
@@ -41,10 +42,8 @@ class ScUndoAllRangeNames : public ScSimpleUndo
...
@@ -41,10 +42,8 @@ class ScUndoAllRangeNames : public ScSimpleUndo
{
{
public
:
public
:
ScUndoAllRangeNames
(
ScDocShell
*
pDocSh
,
ScUndoAllRangeNames
(
ScDocShell
*
pDocSh
,
const
ScRangeName
*
pOldGlobal
,
const
std
::
map
<
rtl
::
OUString
,
ScRangeName
*>&
rOldNames
,
const
ScRangeName
*
pNewGlobal
,
const
boost
::
ptr_map
<
rtl
::
OUString
,
ScRangeName
>&
rNewNames
);
const
ScRangeName
::
TabNameCopyMap
&
rOldLocal
,
const
ScRangeName
::
TabNameCopyMap
&
rNewLocal
);
virtual
~
ScUndoAllRangeNames
();
virtual
~
ScUndoAllRangeNames
();
...
@@ -55,13 +54,11 @@ public:
...
@@ -55,13 +54,11 @@ public:
virtual
String
GetComment
()
const
;
virtual
String
GetComment
()
const
;
private
:
private
:
void
DoChange
(
const
ScRangeName
&
rGlobal
,
const
ScRangeName
::
TabNameMap
&
rLocal
);
void
DoChange
(
const
boost
::
ptr_map
<
rtl
::
OUString
,
ScRangeName
*>&
rNames
);
private
:
private
:
ScRangeName
maOldGlobalNames
;
boost
::
ptr_map
<
rtl
::
OUString
,
ScRangeName
>
maOldNames
;
ScRangeName
maNewGlobalNames
;
boost
::
ptr_map
<
rtl
::
OUString
,
ScRangeName
>
maNewNames
;
ScRangeName
::
TabNameMap
maOldLocalNames
;
ScRangeName
::
TabNameMap
maNewLocalNames
;
};
};
#endif
#endif
...
...
sc/source/core/data/documen3.cxx
Dosyayı görüntüle @
106f128f
...
@@ -126,6 +126,34 @@ void ScDocument::SetAllTabRangeNames(const ScRangeName::TabNameCopyMap& rNames)
...
@@ -126,6 +126,34 @@ void ScDocument::SetAllTabRangeNames(const ScRangeName::TabNameCopyMap& rNames)
SetRangeName
(
itr
->
first
,
new
ScRangeName
(
*
itr
->
second
));
SetRangeName
(
itr
->
first
,
new
ScRangeName
(
*
itr
->
second
));
}
}
void
ScDocument
::
SetAllRangeNames
(
const
boost
::
ptr_map
<
rtl
::
OUString
,
ScRangeName
>&
rRangeMap
)
{
rtl
::
OUString
aGlobalStr
(
RTL_CONSTASCII_USTRINGPARAM
(
STR_GLOBAL_RANGE_NAME
));
boost
::
ptr_map
<
rtl
::
OUString
,
ScRangeName
>::
const_iterator
itr
=
rRangeMap
.
begin
(),
itrEnd
=
rRangeMap
.
end
();
for
(;
itr
!=
itrEnd
;
++
itr
)
{
if
(
itr
->
first
==
aGlobalStr
)
{
delete
pRangeName
;
const
ScRangeName
*
pName
=
itr
->
second
;
if
(
pName
->
empty
())
pRangeName
=
NULL
;
else
pRangeName
=
new
ScRangeName
(
*
pName
);
}
else
{
const
ScRangeName
*
pName
=
itr
->
second
;
SCTAB
nTab
;
GetTable
(
itr
->
first
,
nTab
);
if
(
pName
->
empty
())
SetRangeName
(
nTab
,
NULL
);
else
SetRangeName
(
nTab
,
new
ScRangeName
(
*
pName
)
);
}
}
}
void
ScDocument
::
GetTabRangeNameMap
(
std
::
map
<
rtl
::
OUString
,
ScRangeName
*>&
aRangeNameMap
)
void
ScDocument
::
GetTabRangeNameMap
(
std
::
map
<
rtl
::
OUString
,
ScRangeName
*>&
aRangeNameMap
)
{
{
for
(
SCTAB
i
=
0
;
i
<
static_cast
<
SCTAB
>
(
maTabs
.
size
());
++
i
)
for
(
SCTAB
i
=
0
;
i
<
static_cast
<
SCTAB
>
(
maTabs
.
size
());
++
i
)
...
...
sc/source/ui/docshell/docfunc.cxx
Dosyayı görüntüle @
106f128f
...
@@ -74,6 +74,7 @@
...
@@ -74,6 +74,7 @@
#include "drwlayer.hxx"
#include "drwlayer.hxx"
#include "editutil.hxx"
#include "editutil.hxx"
#include "globstr.hrc"
#include "globstr.hrc"
#include "globalnames.hxx"
#include "olinetab.hxx"
#include "olinetab.hxx"
#include "patattr.hxx"
#include "patattr.hxx"
#include "rangenam.hxx"
#include "rangenam.hxx"
...
@@ -4528,6 +4529,30 @@ bool ScDocFunc::SetNewRangeNames( ScRangeName* pNewRanges, bool bModifyDoc, SCTA
...
@@ -4528,6 +4529,30 @@ bool ScDocFunc::SetNewRangeNames( ScRangeName* pNewRanges, bool bModifyDoc, SCTA
return
true
;
return
true
;
}
}
void
ScDocFunc
::
ModifyAllRangeNames
(
const
boost
::
ptr_map
<
rtl
::
OUString
,
ScRangeName
>&
rRangeMap
)
{
ScDocShellModificator
aModificator
(
rDocShell
);
ScDocument
*
pDoc
=
rDocShell
.
GetDocument
();
if
(
pDoc
->
IsUndoEnabled
())
{
std
::
map
<
rtl
::
OUString
,
ScRangeName
*>
aOldRangeMap
;
pDoc
->
GetRangeNameMap
(
aOldRangeMap
);
rDocShell
.
GetUndoManager
()
->
AddUndoAction
(
new
ScUndoAllRangeNames
(
&
rDocShell
,
aOldRangeMap
,
rRangeMap
));
}
pDoc
->
CompileNameFormula
(
true
);
// set all range names
pDoc
->
SetAllRangeNames
(
rRangeMap
);
pDoc
->
CompileNameFormula
(
false
);
aModificator
.
SetDocumentModified
();
SFX_APP
()
->
Broadcast
(
SfxSimpleHint
(
SC_HINT_AREAS_CHANGED
));
}
//------------------------------------------------------------------------
//------------------------------------------------------------------------
void
ScDocFunc
::
CreateOneName
(
ScRangeName
&
rList
,
void
ScDocFunc
::
CreateOneName
(
ScRangeName
&
rList
,
...
...
sc/source/ui/inc/docfunc.hxx
Dosyayı görüntüle @
106f128f
...
@@ -184,6 +184,13 @@ public:
...
@@ -184,6 +184,13 @@ public:
bool
SetNewRangeNames
(
ScRangeName
*
pNewRanges
,
bool
bModifyDoc
=
true
,
SCTAB
nTab
=
-
1
);
// takes ownership of pNewRanges //nTab = -1 for local range names
bool
SetNewRangeNames
(
ScRangeName
*
pNewRanges
,
bool
bModifyDoc
=
true
,
SCTAB
nTab
=
-
1
);
// takes ownership of pNewRanges //nTab = -1 for local range names
bool
ModifyRangeNames
(
const
ScRangeName
&
rNewRanges
,
SCTAB
nTab
=
-
1
);
bool
ModifyRangeNames
(
const
ScRangeName
&
rNewRanges
,
SCTAB
nTab
=
-
1
);
/**
* Modify all range names, global scope names as well as sheet local ones,
* in one go. Note that this method will <b>not</b> destroy the instances
* passed as arguments (it creates copies); the caller is responsible for
* destroying them.
*/
void
ModifyAllRangeNames
(
const
boost
::
ptr_map
<
rtl
::
OUString
,
ScRangeName
>&
rRangeMap
);
sal_Bool
CreateNames
(
const
ScRange
&
rRange
,
sal_uInt16
nFlags
,
sal_Bool
bApi
,
SCTAB
nTab
=
-
1
);
// -1 for global range names
sal_Bool
CreateNames
(
const
ScRange
&
rRange
,
sal_uInt16
nFlags
,
sal_Bool
bApi
,
SCTAB
nTab
=
-
1
);
// -1 for global range names
sal_Bool
InsertNameList
(
const
ScAddress
&
rStartPos
,
sal_Bool
bApi
);
sal_Bool
InsertNameList
(
const
ScAddress
&
rStartPos
,
sal_Bool
bApi
);
...
...
sc/source/ui/inc/namedlg.hxx
Dosyayı görüntüle @
106f128f
...
@@ -103,7 +103,9 @@ private:
...
@@ -103,7 +103,9 @@ private:
const
ScAddress
maCursorPos
;
const
ScAddress
maCursorPos
;
Selection
maCurSel
;
Selection
maCurSel
;
std
::
map
<
rtl
::
OUString
,
ScRangeName
*>
maRangeMap
;
typedef
boost
::
ptr_map
<
rtl
::
OUString
,
ScRangeName
>
RangeNameContainer
;
RangeNameContainer
maRangeMap
;
private
:
private
:
void
Init
();
void
Init
();
...
...
sc/source/ui/inc/namemgrtable.hxx
Dosyayı görüntüle @
106f128f
...
@@ -45,21 +45,19 @@ class SC_DLLPUBLIC ScRangeManagerTable : public SvTabListBox
...
@@ -45,21 +45,19 @@ class SC_DLLPUBLIC ScRangeManagerTable : public SvTabListBox
{
{
private
:
private
:
HeaderBar
maHeaderBar
;
HeaderBar
maHeaderBar
;
ScRangeName
*
mpGlobalRangeName
;
std
::
map
<
rtl
::
OUString
,
ScRangeName
*>
maTabRangeNames
;
rtl
::
OUString
maGlobalString
;
rtl
::
OUString
maGlobalString
;
void
GetLine
(
ScRangeNameLine
&
aLine
,
SvLBoxEntry
*
pEntry
);
void
GetLine
(
ScRangeNameLine
&
aLine
,
SvLBoxEntry
*
pEntry
);
void
Init
(
const
boost
::
ptr_map
<
rtl
::
OUString
,
ScRangeName
>&
rRangeMap
);
public
:
public
:
ScRangeManagerTable
(
Window
*
pParent
,
ScRangeName
*
pGlobalRangeName
,
std
::
map
<
rtl
::
OUString
,
ScRangeName
*>
aTabRangeNames
);
ScRangeManagerTable
(
Window
*
pParent
,
boost
::
ptr_map
<
rtl
::
OUString
,
ScRangeName
>&
aTabRangeNames
);
~
ScRangeManagerTable
()
{};
~
ScRangeManagerTable
()
{};
void
addEntry
(
const
ScRangeNameLine
&
rLine
);
void
addEntry
(
const
ScRangeNameLine
&
rLine
);
void
DeleteSelectedEntries
();
void
DeleteSelectedEntries
();
void
GetCurrentLine
(
ScRangeNameLine
&
rLine
);
void
GetCurrentLine
(
ScRangeNameLine
&
rLine
);
void
UpdateEntries
();
bool
IsMultiSelection
();
bool
IsMultiSelection
();
std
::
vector
<
ScRangeNameLine
>
GetSelectedEntries
();
std
::
vector
<
ScRangeNameLine
>
GetSelectedEntries
();
};
};
...
...
sc/source/ui/namedlg/namedlg.cxx
Dosyayı görüntüle @
106f128f
...
@@ -151,8 +151,16 @@ void ScNameDlg::Init()
...
@@ -151,8 +151,16 @@ void ScNameDlg::Init()
OSL_ENSURE
(
mpViewData
&&
mpDoc
,
"ViewData oder Document nicht gefunden!"
);
OSL_ENSURE
(
mpViewData
&&
mpDoc
,
"ViewData oder Document nicht gefunden!"
);
//init UI
//init UI
mpDoc
->
GetRangeNameMap
(
maRangeMap
);
std
::
map
<
rtl
::
OUString
,
ScRangeName
*>
aRangeMap
;
mpRangeManagerTable
=
new
ScRangeManagerTable
(
&
maNameMgrCtrl
,
mpDoc
->
GetRangeName
(),
maRangeMap
);
mpDoc
->
GetRangeNameMap
(
aRangeMap
);
RangeNameContainer
::
iterator
itr
=
maRangeMap
.
begin
(),
itrEnd
=
maRangeMap
.
end
();
for
(;
itr
!=
itrEnd
;
++
itr
)
{
rtl
::
OUString
aTemp
(
itr
->
first
);
maRangeMap
.
insert
(
aTemp
,
new
ScRangeName
(
*
itr
->
second
));
}
mpRangeManagerTable
=
new
ScRangeManagerTable
(
&
maNameMgrCtrl
,
maRangeMap
);
mpRangeManagerTable
->
SetSelectHdl
(
LINK
(
this
,
ScNameDlg
,
SelectionChangedHdl_Impl
)
);
mpRangeManagerTable
->
SetSelectHdl
(
LINK
(
this
,
ScNameDlg
,
SelectionChangedHdl_Impl
)
);
mpRangeManagerTable
->
SetDeselectHdl
(
LINK
(
this
,
ScNameDlg
,
SelectionChangedHdl_Impl
)
);
mpRangeManagerTable
->
SetDeselectHdl
(
LINK
(
this
,
ScNameDlg
,
SelectionChangedHdl_Impl
)
);
...
@@ -229,6 +237,8 @@ void ScNameDlg::SetReference( const ScRange& rRef, ScDocument* pDocP )
...
@@ -229,6 +237,8 @@ void ScNameDlg::SetReference( const ScRange& rRef, ScDocument* pDocP )
sal_Bool
ScNameDlg
::
Close
()
sal_Bool
ScNameDlg
::
Close
()
{
{
ScDocFunc
aFunc
(
*
mpViewData
->
GetDocShell
());
aFunc
.
ModifyAllRangeNames
(
maRangeMap
);
return
DoClose
(
ScNameDlgWrapper
::
GetChildWindowId
()
);
return
DoClose
(
ScNameDlgWrapper
::
GetChildWindowId
()
);
}
}
...
@@ -291,8 +301,6 @@ bool ScNameDlg::IsFormulaValid()
...
@@ -291,8 +301,6 @@ bool ScNameDlg::IsFormulaValid()
//updates the table and the buttons
//updates the table and the buttons
void
ScNameDlg
::
UpdateNames
()
void
ScNameDlg
::
UpdateNames
()
{
{
mpRangeManagerTable
->
UpdateEntries
();
ScRangeNameLine
aLine
;
ScRangeNameLine
aLine
;
mpRangeManagerTable
->
GetCurrentLine
(
aLine
);
mpRangeManagerTable
->
GetCurrentLine
(
aLine
);
if
(
aLine
.
aName
.
getLength
())
if
(
aLine
.
aName
.
getLength
())
...
...
sc/source/ui/namedlg/namemgrtable.cxx
Dosyayı görüntüle @
106f128f
...
@@ -55,11 +55,9 @@ String createEntryString(const ScRangeNameLine& rLine)
...
@@ -55,11 +55,9 @@ String createEntryString(const ScRangeNameLine& rLine)
return
aRet
;
return
aRet
;
}
}
ScRangeManagerTable
::
ScRangeManagerTable
(
Window
*
pWindow
,
ScRangeName
*
pGlobalRangeName
,
std
::
map
<
rtl
::
OUString
,
ScRangeName
*>
aTabRangeNames
)
:
ScRangeManagerTable
::
ScRangeManagerTable
(
Window
*
pWindow
,
boost
::
ptr_map
<
rtl
::
OUString
,
ScRangeName
>&
rRangeMap
)
:
SvTabListBox
(
pWindow
,
WB_SORT
|
WB_HSCROLL
|
WB_CLIPCHILDREN
|
WB_TABSTOP
),
SvTabListBox
(
pWindow
,
WB_SORT
|
WB_HSCROLL
|
WB_CLIPCHILDREN
|
WB_TABSTOP
),
maHeaderBar
(
pWindow
,
WB_BUTTONSTYLE
|
WB_BOTTOMBORDER
),
maHeaderBar
(
pWindow
,
WB_BUTTONSTYLE
|
WB_BOTTOMBORDER
),
mpGlobalRangeName
(
pGlobalRangeName
),
maTabRangeNames
(
aTabRangeNames
),
maGlobalString
(
ResId
::
toString
(
ScResId
(
STR_GLOBAL_SCOPE
)))
maGlobalString
(
ResId
::
toString
(
ScResId
(
STR_GLOBAL_SCOPE
)))
{
{
Size
aBoxSize
(
pWindow
->
GetOutputSizePixel
()
);
Size
aBoxSize
(
pWindow
->
GetOutputSizePixel
()
);
...
@@ -85,6 +83,7 @@ ScRangeManagerTable::ScRangeManagerTable( Window* pWindow, ScRangeName* pGlobalR
...
@@ -85,6 +83,7 @@ ScRangeManagerTable::ScRangeManagerTable( Window* pWindow, ScRangeName* pGlobalR
Show
();
Show
();
maHeaderBar
.
Show
();
maHeaderBar
.
Show
();
SetSelectionMode
(
MULTIPLE_SELECTION
);
SetSelectionMode
(
MULTIPLE_SELECTION
);
Init
(
rRangeMap
);
}
}
void
ScRangeManagerTable
::
addEntry
(
const
ScRangeNameLine
&
rLine
)
void
ScRangeManagerTable
::
addEntry
(
const
ScRangeNameLine
&
rLine
)
...
@@ -106,13 +105,13 @@ void ScRangeManagerTable::GetLine(ScRangeNameLine& rLine, SvLBoxEntry* pEntry)
...
@@ -106,13 +105,13 @@ void ScRangeManagerTable::GetLine(ScRangeNameLine& rLine, SvLBoxEntry* pEntry)
rLine
.
aScope
=
GetEntryText
(
pEntry
,
2
);
rLine
.
aScope
=
GetEntryText
(
pEntry
,
2
);
}
}
void
ScRangeManagerTable
::
UpdateEntries
(
)
void
ScRangeManagerTable
::
Init
(
const
boost
::
ptr_map
<
rtl
::
OUString
,
ScRangeName
>&
rRangeMap
)
{
{
Clear
();
Clear
();
for
(
std
::
map
<
rtl
::
OUString
,
ScRangeName
*>::
iterator
itr
=
maTabRangeNames
.
begin
();
for
(
boost
::
ptr_map
<
rtl
::
OUString
,
ScRangeName
>::
const_iterator
itr
=
rRangeMap
.
begin
();
itr
!=
maTabRangeNames
.
end
();
++
itr
)
itr
!=
rRangeMap
.
end
();
++
itr
)
{
{
ScRangeName
*
pLocalRangeName
=
itr
->
second
;
const
ScRangeName
*
pLocalRangeName
=
itr
->
second
;
ScRangeNameLine
aLine
;
ScRangeNameLine
aLine
;
if
(
itr
->
first
==
rtl
::
OUString
(
RTL_CONSTASCII_USTRINGPARAM
(
STR_GLOBAL_RANGE_NAME
)))
if
(
itr
->
first
==
rtl
::
OUString
(
RTL_CONSTASCII_USTRINGPARAM
(
STR_GLOBAL_RANGE_NAME
)))
aLine
.
aScope
=
maGlobalString
;
aLine
.
aScope
=
maGlobalString
;
...
...
sc/source/ui/undo/undorangename.cxx
Dosyayı görüntüle @
106f128f
...
@@ -43,31 +43,27 @@ using ::std::auto_ptr;
...
@@ -43,31 +43,27 @@ using ::std::auto_ptr;
ScUndoAllRangeNames
::
ScUndoAllRangeNames
(
ScUndoAllRangeNames
::
ScUndoAllRangeNames
(
ScDocShell
*
pDocSh
,
ScDocShell
*
pDocSh
,
const
ScRangeName
*
pOldGlobal
,
const
ScRangeName
*
pNewGlobal
,
const
std
::
map
<
rtl
::
OUString
,
ScRangeName
*>&
rOldNames
,
const
ScRangeName
::
TabNameCopyMap
&
rOldLocal
,
const
ScRangeName
::
TabNameCopyMap
&
rNewLocal
)
:
const
boost
::
ptr_map
<
rtl
::
OUString
,
ScRangeName
>&
rNewNames
)
:
ScSimpleUndo
(
pDocSh
)
ScSimpleUndo
(
pDocSh
)
{
{
if
(
pOldGlobal
)
maOldGlobalNames
=
*
pOldGlobal
;
if
(
pNewGlobal
)
maNewGlobalNames
=
*
pNewGlobal
;
// Copy sheet-local names.
// Copy sheet-local names.
ScRangeName
::
TabNameCopyMap
::
const_iterator
itr
,
itrEnd
;
std
::
map
<
rtl
::
OUString
,
ScRangeName
*>
::
const_iterator
itr
,
itrEnd
;
for
(
itr
=
rOld
Local
.
begin
(),
itrEnd
=
rOldLocal
.
end
();
itr
!=
itrEnd
;
++
itr
)
for
(
itr
=
rOld
Names
.
begin
(),
itrEnd
=
rOldNames
.
end
();
itr
!=
itrEnd
;
++
itr
)
{
{
SAL_WNODEPRECATED_DECLARATIONS_PUSH
SAL_WNODEPRECATED_DECLARATIONS_PUSH
auto_ptr
<
ScRangeName
>
p
(
new
ScRangeName
(
*
itr
->
second
));
auto_ptr
<
ScRangeName
>
p
(
new
ScRangeName
(
*
itr
->
second
));
SAL_WNODEPRECATED_DECLARATIONS_POP
SAL_WNODEPRECATED_DECLARATIONS_POP
maOld
Local
Names
.
insert
(
itr
->
first
,
p
);
maOldNames
.
insert
(
itr
->
first
,
p
);
}
}
for
(
itr
=
rNewLocal
.
begin
(),
itrEnd
=
rNewLocal
.
end
();
itr
!=
itrEnd
;
++
itr
)
boost
::
ptr_map
<
rtl
::
OUString
,
ScRangeName
>::
const_iterator
it
,
itEnd
;
for
(
it
=
rNewNames
.
begin
(),
itEnd
=
rNewNames
.
end
();
it
!=
itEnd
;
++
it
)
{
{
SAL_WNODEPRECATED_DECLARATIONS_PUSH
SAL_WNODEPRECATED_DECLARATIONS_PUSH
auto_ptr
<
ScRangeName
>
p
(
new
ScRangeName
(
*
it
r
->
second
));
auto_ptr
<
ScRangeName
>
p
(
new
ScRangeName
(
*
it
->
second
));
SAL_WNODEPRECATED_DECLARATIONS_POP
SAL_WNODEPRECATED_DECLARATIONS_POP
maNew
LocalNames
.
insert
(
itr
->
first
,
p
);
maNew
Names
.
insert
(
it
->
first
,
p
);
}
}
}
}
...
@@ -77,12 +73,12 @@ ScUndoAllRangeNames::~ScUndoAllRangeNames()
...
@@ -77,12 +73,12 @@ ScUndoAllRangeNames::~ScUndoAllRangeNames()
void
ScUndoAllRangeNames
::
Undo
()
void
ScUndoAllRangeNames
::
Undo
()
{
{
DoChange
(
maOld
GlobalNames
,
maOldLocal
Names
);
DoChange
(
maOldNames
);
}
}
void
ScUndoAllRangeNames
::
Redo
()
void
ScUndoAllRangeNames
::
Redo
()
{
{
DoChange
(
maNew
GlobalNames
,
maNewLocal
Names
);
DoChange
(
maNewNames
);
}
}
void
ScUndoAllRangeNames
::
Repeat
(
SfxRepeatTarget
&
/*rTarget*/
)
void
ScUndoAllRangeNames
::
Repeat
(
SfxRepeatTarget
&
/*rTarget*/
)
...
@@ -99,21 +95,13 @@ String ScUndoAllRangeNames::GetComment() const
...
@@ -99,21 +95,13 @@ String ScUndoAllRangeNames::GetComment() const
return
ScGlobal
::
GetRscString
(
STR_UNDO_RANGENAMES
);
return
ScGlobal
::
GetRscString
(
STR_UNDO_RANGENAMES
);
}
}
void
ScUndoAllRangeNames
::
DoChange
(
const
ScRangeName
&
rGlobal
,
const
ScRangeName
::
TabNameMap
&
rLocal
)
void
ScUndoAllRangeNames
::
DoChange
(
const
boost
::
ptr_map
<
rtl
::
OUString
,
ScRangeName
*>&
rNames
)
{
{
ScDocument
&
rDoc
=
*
pDocShell
->
GetDocument
();
ScDocument
&
rDoc
=
*
pDocShell
->
GetDocument
();
rDoc
.
CompileNameFormula
(
true
);
rDoc
.
CompileNameFormula
(
true
);
// Global names.
rDoc
.
SetAllRangeNames
(
rNames
);
if
(
rGlobal
.
empty
())
rDoc
.
SetRangeName
(
NULL
);
else
rDoc
.
SetRangeName
(
new
ScRangeName
(
rGlobal
));
ScRangeName
::
TabNameCopyMap
aCopy
;
ScRangeName
::
copyLocalNames
(
rLocal
,
aCopy
);
rDoc
.
SetAllTabRangeNames
(
aCopy
);
rDoc
.
CompileNameFormula
(
true
);
rDoc
.
CompileNameFormula
(
true
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment