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
000bb6af
Kaydet (Commit)
000bb6af
authored
Mar 20, 2012
tarafından
Noel Grandin
Kaydeden (comit)
Fridrich Štrba
Mar 22, 2012
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Convert tools/table.hxx usage to std::map in Basic IDE module
üst
e55595d0
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
137 additions
and
110 deletions
+137
-110
basides1.cxx
basctl/source/basicide/basides1.cxx
+32
-22
basides2.cxx
basctl/source/basicide/basides2.cxx
+10
-10
basides3.cxx
basctl/source/basicide/basides3.cxx
+17
-10
basidesh.cxx
basctl/source/basicide/basidesh.cxx
+64
-53
basobj2.cxx
basctl/source/basicide/basobj2.cxx
+1
-1
basobj3.cxx
basctl/source/basicide/basobj3.cxx
+3
-4
bastypes.cxx
basctl/source/basicide/bastypes.cxx
+4
-4
localizationmgr.cxx
basctl/source/basicide/localizationmgr.cxx
+2
-3
basidesh.hxx
basctl/source/inc/basidesh.hxx
+4
-3
No files found.
basctl/source/basicide/basides1.cxx
Dosyayı görüntüle @
000bb6af
...
...
@@ -146,6 +146,7 @@ void BasicIDEShell::ExecuteCurrent( SfxRequest& rReq )
DBG_ASSERT
(
nWhich
,
"Wich fuer SearchItem ?"
);
const
SfxPoolItem
&
rItem
=
pArgs
->
Get
(
nWhich
);
DBG_ASSERT
(
rItem
.
ISA
(
SvxSearchItem
),
"Kein Searchitem!"
);
IDEWindowTable
::
const_iterator
it
;
if
(
rItem
.
ISA
(
SvxSearchItem
)
)
{
// memorize item because of the adjustments...
...
...
@@ -155,22 +156,20 @@ void BasicIDEShell::ExecuteCurrent( SfxRequest& rReq )
if
(
((
const
SvxSearchItem
&
)
rItem
).
GetCommand
()
==
SVX_SEARCHCMD_REPLACE_ALL
)
{
sal_uInt16
nActModWindows
=
0
;
IDEBaseWindow
*
pWin
=
aIDEWindowTable
.
First
();
while
(
pWin
)
for
(
it
=
aIDEWindowTable
.
begin
();
it
!=
aIDEWindowTable
.
end
();
++
it
)
{
IDEBaseWindow
*
pWin
=
it
->
second
;
if
(
!
pWin
->
IsSuspended
()
&&
pWin
->
IsA
(
TYPE
(
ModulWindow
)
)
)
nActModWindows
++
;
pWin
=
aIDEWindowTable
.
Next
();
}
if
(
(
nActModWindows
<=
1
)
||
(
!
((
const
SvxSearchItem
&
)
rItem
).
GetSelection
()
&&
QueryBox
(
pCurWin
,
WB_YES_NO
|
WB_DEF_YES
,
String
(
IDEResId
(
RID_STR_SEARCHALLMODULES
)
)
).
Execute
()
==
RET_YES
)
)
{
pWin
=
aIDEWindowTable
.
First
();
while
(
pWin
)
for
(
it
=
aIDEWindowTable
.
begin
();
it
!=
aIDEWindowTable
.
end
();
++
it
)
{
IDEBaseWindow
*
pWin
=
it
->
second
;
if
(
!
pWin
->
IsSuspended
()
&&
pWin
->
IsA
(
TYPE
(
ModulWindow
)
)
)
nFound
=
nFound
+
((
ModulWindow
*
)
pWin
)
->
StartSearchAndReplace
(
(
const
SvxSearchItem
&
)
rItem
);
pWin
=
aIDEWindowTable
.
Next
();
}
}
else
...
...
@@ -187,8 +186,15 @@ void BasicIDEShell::ExecuteCurrent( SfxRequest& rReq )
{
// search other modules...
sal_Bool
bChangeCurWindow
=
sal_False
;
aIDEWindowTable
.
Seek
(
pCurWin
);
IDEBaseWindow
*
pWin
=
aIDEWindowTable
.
Next
();
for
(
it
=
aIDEWindowTable
.
begin
();
it
!=
aIDEWindowTable
.
end
();
++
it
)
if
(
it
->
second
==
pCurWin
)
break
;
if
(
it
!=
aIDEWindowTable
.
end
()
)
++
it
;
IDEBaseWindow
*
pWin
=
NULL
;
if
(
it
!=
aIDEWindowTable
.
end
()
)
pWin
=
it
->
second
;
sal_Bool
bSearchedFromStart
=
sal_False
;
while
(
!
nFound
&&
!
bCanceled
&&
(
pWin
||
!
bSearchedFromStart
)
)
{
...
...
@@ -200,7 +206,9 @@ void BasicIDEShell::ExecuteCurrent( SfxRequest& rReq )
QueryBox
aQuery
(
pParent
,
WB_YES_NO
|
WB_DEF_YES
,
ResId
::
toString
(
IDEResId
(
RID_STR_SEARCHFROMSTART
)));
if
(
aQuery
.
Execute
()
==
RET_YES
)
{
pWin
=
aIDEWindowTable
.
First
();
it
=
aIDEWindowTable
.
begin
();
if
(
it
!=
aIDEWindowTable
.
end
()
)
pWin
=
it
->
second
;
bSearchedFromStart
=
sal_True
;
}
else
...
...
@@ -222,7 +230,11 @@ void BasicIDEShell::ExecuteCurrent( SfxRequest& rReq )
}
}
if
(
pWin
&&
(
pWin
!=
pCurWin
)
)
pWin
=
aIDEWindowTable
.
Next
();
{
++
it
;
if
(
it
!=
aIDEWindowTable
.
end
()
)
pWin
=
it
->
second
;
}
else
pWin
=
0
;
}
...
...
@@ -453,10 +465,10 @@ void BasicIDEShell::ExecuteGlobal( SfxRequest& rReq )
DBG_ASSERT
(
rReq
.
GetArgs
(),
"arguments expected"
);
const
SfxUInt16Item
&
rTabId
=
(
const
SfxUInt16Item
&
)
rReq
.
GetArgs
()
->
Get
(
SID_BASICIDE_ARG_TABID
);
const
SfxStringItem
&
rModName
=
(
const
SfxStringItem
&
)
rReq
.
GetArgs
()
->
Get
(
SID_BASICIDE_ARG_MODULENAME
);
IDEBaseWindow
*
pWin
=
aIDEWindowTable
.
Get
(
rTabId
.
GetValue
()
);
DBG_ASSERT
(
pWin
,
"Window nicht im Liste, aber in TabBar ?"
);
if
(
pWin
)
if
(
aIDEWindowTable
.
find
(
rTabId
.
GetValue
()
)
!=
aIDEWindowTable
.
end
()
)
{
IDEBaseWindow
*
pWin
=
aIDEWindowTable
[
rTabId
.
GetValue
()
];
::
rtl
::
OUString
aNewName
(
rModName
.
GetValue
()
);
::
rtl
::
OUString
aOldName
(
pWin
->
GetName
()
);
if
(
aNewName
!=
aOldName
)
...
...
@@ -490,7 +502,7 @@ void BasicIDEShell::ExecuteGlobal( SfxRequest& rReq )
else
{
// set old name in TabWriter
sal_uInt16
nId
=
(
sal_uInt16
)
aIDEWindowTable
.
GetKey
(
pWin
);
sal_uInt16
nId
=
GetIDEWindowId
(
pWin
);
DBG_ASSERT
(
nId
,
"No entry in Tabbar!"
);
if
(
nId
)
pTabBar
->
SetPageText
(
nId
,
aOldName
);
...
...
@@ -523,9 +535,9 @@ void BasicIDEShell::ExecuteGlobal( SfxRequest& rReq )
case
SID_BASICIDE_STOREALLMODULESOURCES
:
case
SID_BASICIDE_UPDATEALLMODULESOURCES
:
{
IDEBaseWindow
*
pWin
=
aIDEWindowTable
.
First
();
while
(
pWin
)
for
(
IDEWindowTable
::
const_iterator
it
=
aIDEWindowTable
.
begin
();
it
!=
aIDEWindowTable
.
end
();
++
it
)
{
IDEBaseWindow
*
pWin
=
it
->
second
;
if
(
!
pWin
->
IsSuspended
()
&&
pWin
->
IsA
(
TYPE
(
ModulWindow
)
)
)
{
if
(
rReq
.
GetSlot
()
==
SID_BASICIDE_STOREALLMODULESOURCES
)
...
...
@@ -533,7 +545,6 @@ void BasicIDEShell::ExecuteGlobal( SfxRequest& rReq )
else
pWin
->
UpdateData
();
}
pWin
=
aIDEWindowTable
.
Next
();
}
}
break
;
...
...
@@ -1192,7 +1203,7 @@ void BasicIDEShell::SetCurWindow( IDEBaseWindow* pNewWin, sal_Bool bUpdateTabBar
}
if
(
bUpdateTabBar
)
{
sal_uLong
nKey
=
aIDEWindowTable
.
GetKey
(
pCurWin
);
sal_uLong
nKey
=
GetIDEWindowId
(
pCurWin
);
if
(
pCurWin
&&
(
pTabBar
->
GetPagePos
(
(
sal_uInt16
)
nKey
)
==
TAB_PAGE_NOTFOUND
)
)
pTabBar
->
InsertPage
(
(
sal_uInt16
)
nKey
,
pCurWin
->
GetTitle
()
);
// has just been faded in
pTabBar
->
SetCurPageId
(
(
sal_uInt16
)
nKey
);
...
...
@@ -1275,9 +1286,9 @@ IDEBaseWindow* BasicIDEShell::FindApplicationWindow()
IDEBaseWindow
*
BasicIDEShell
::
FindWindow
(
const
ScriptDocument
&
rDocument
,
const
::
rtl
::
OUString
&
rLibName
,
const
::
rtl
::
OUString
&
rName
,
BasicIDEType
nType
,
sal_Bool
bFindSuspended
)
{
IDEBaseWindow
*
pWin
=
aIDEWindowTable
.
First
();
while
(
pWin
)
for
(
IDEWindowTable
::
const_iterator
it
=
aIDEWindowTable
.
begin
();
it
!=
aIDEWindowTable
.
end
();
++
it
)
{
IDEBaseWindow
*
pWin
=
it
->
second
;
if
(
!
pWin
->
IsSuspended
()
||
bFindSuspended
)
{
if
(
rLibName
.
isEmpty
()
||
rName
.
isEmpty
()
||
nType
==
BASICIDE_TYPE_UNKNOWN
)
...
...
@@ -1292,7 +1303,6 @@ IDEBaseWindow* BasicIDEShell::FindWindow( const ScriptDocument& rDocument, const
return
pWin
;
}
}
pWin
=
aIDEWindowTable
.
Next
();
}
return
0
;
}
...
...
@@ -1451,9 +1461,9 @@ void BasicIDEShell::Deactivate( sal_Bool bMDI )
// test CanClose to also test during deactivating the BasicIDE whether
// the sourcecode is too large in one of the modules...
for
(
sal_uLong
nWin
=
0
;
nWin
<
aIDEWindowTable
.
Count
();
nWin
++
)
for
(
IDEWindowTable
::
const_iterator
it
=
aIDEWindowTable
.
begin
();
it
!=
aIDEWindowTable
.
end
();
++
it
)
{
IDEBaseWindow
*
pWin
=
aIDEWindowTable
.
GetObject
(
nWin
)
;
IDEBaseWindow
*
pWin
=
it
->
second
;
if
(
/* !pWin->IsSuspended() && */
!
pWin
->
CanClose
()
)
{
if
(
!
m_aCurLibName
.
isEmpty
()
&&
(
pWin
->
IsDocument
(
m_aCurDocument
)
||
pWin
->
GetLibName
()
!=
m_aCurLibName
)
)
...
...
basctl/source/basicide/basides2.cxx
Dosyayı görüntüle @
000bb6af
...
...
@@ -231,13 +231,7 @@ ModulWindow* BasicIDEShell::CreateBasWin( const ScriptDocument& rDocument, const
else
{
pWin
->
SetStatus
(
pWin
->
GetStatus
()
&
~
BASWIN_SUSPENDED
);
IDEBaseWindow
*
pTmp
=
aIDEWindowTable
.
First
();
while
(
pTmp
&&
!
nKey
)
{
if
(
pTmp
==
pWin
)
nKey
=
aIDEWindowTable
.
GetCurKey
();
pTmp
=
aIDEWindowTable
.
Next
();
}
nKey
=
GetIDEWindowId
(
pWin
);
DBG_ASSERT
(
nKey
,
"CreateBasWin: Kein Key- Fenster nicht gefunden!"
);
}
if
(
nKey
&&
xLib
.
is
()
&&
rDocument
.
isInVBAMode
()
)
...
...
@@ -269,17 +263,23 @@ ModulWindow* BasicIDEShell::CreateBasWin( const ScriptDocument& rDocument, const
ModulWindow
*
BasicIDEShell
::
FindBasWin
(
const
ScriptDocument
&
rDocument
,
const
::
rtl
::
OUString
&
rLibName
,
const
::
rtl
::
OUString
&
rModName
,
sal_Bool
bCreateIfNotExist
,
sal_Bool
bFindSuspended
)
{
ModulWindow
*
pModWin
=
0
;
IDEBaseWindow
*
pWin
=
aIDEWindowTable
.
First
();
while
(
pWin
&&
!
pModWin
)
for
(
IDEWindowTable
::
const_iterator
it
=
aIDEWindowTable
.
begin
();
it
!=
aIDEWindowTable
.
end
();
++
it
)
{
IDEBaseWindow
*
pWin
=
it
->
second
;
if
(
(
!
pWin
->
IsSuspended
()
||
bFindSuspended
)
&&
pWin
->
IsA
(
TYPE
(
ModulWindow
)
)
)
{
if
(
rLibName
.
isEmpty
()
)
{
pModWin
=
(
ModulWindow
*
)
pWin
;
break
;
}
else
if
(
pWin
->
IsDocument
(
rDocument
)
&&
pWin
->
GetLibName
()
==
rLibName
&&
pWin
->
GetName
()
==
rModName
)
{
pModWin
=
(
ModulWindow
*
)
pWin
;
break
;
}
}
pWin
=
aIDEWindowTable
.
Next
();
}
if
(
!
pModWin
&&
bCreateIfNotExist
)
pModWin
=
CreateBasWin
(
rDocument
,
rLibName
,
rModName
);
...
...
basctl/source/basicide/basides3.cxx
Dosyayı görüntüle @
000bb6af
...
...
@@ -110,13 +110,7 @@ DialogWindow* BasicIDEShell::CreateDlgWin( const ScriptDocument& rDocument, cons
else
{
pWin
->
SetStatus
(
pWin
->
GetStatus
()
&
~
BASWIN_SUSPENDED
);
IDEBaseWindow
*
pTmp
=
aIDEWindowTable
.
First
();
while
(
pTmp
&&
!
nKey
)
{
if
(
pTmp
==
pWin
)
nKey
=
aIDEWindowTable
.
GetCurKey
();
pTmp
=
aIDEWindowTable
.
Next
();
}
nKey
=
GetIDEWindowId
(
pWin
);
DBG_ASSERT
(
nKey
,
"CreateDlgWin: Kein Key - Fenster nicht gefunden!"
);
}
...
...
@@ -136,17 +130,22 @@ DialogWindow* BasicIDEShell::CreateDlgWin( const ScriptDocument& rDocument, cons
DialogWindow
*
BasicIDEShell
::
FindDlgWin
(
const
ScriptDocument
&
rDocument
,
const
::
rtl
::
OUString
&
rLibName
,
const
::
rtl
::
OUString
&
rDlgName
,
sal_Bool
bCreateIfNotExist
,
sal_Bool
bFindSuspended
)
{
DialogWindow
*
pDlgWin
=
0
;
IDEBaseWindow
*
pWin
=
aIDEWindowTable
.
First
();
while
(
pWin
&&
!
pDlgWin
)
for
(
IDEWindowTable
::
const_iterator
it
=
aIDEWindowTable
.
begin
();
it
!=
aIDEWindowTable
.
end
();
++
it
)
{
IDEBaseWindow
*
pWin
=
it
->
second
;
if
(
(
!
pWin
->
IsSuspended
()
||
bFindSuspended
)
&&
pWin
->
IsA
(
TYPE
(
DialogWindow
)
)
)
{
if
(
rLibName
.
isEmpty
()
)
{
pDlgWin
=
(
DialogWindow
*
)
pWin
;
break
;
}
else
if
(
pWin
->
IsDocument
(
rDocument
)
&&
pWin
->
GetLibName
()
==
rLibName
&&
pWin
->
GetName
()
==
rDlgName
)
{
pDlgWin
=
(
DialogWindow
*
)
pWin
;
break
;
}
}
pWin
=
aIDEWindowTable
.
Next
();
}
if
(
!
pDlgWin
&&
bCreateIfNotExist
)
pDlgWin
=
CreateDlgWin
(
rDocument
,
rLibName
,
rDlgName
);
...
...
@@ -154,6 +153,14 @@ DialogWindow* BasicIDEShell::FindDlgWin( const ScriptDocument& rDocument, const
return
pDlgWin
;
}
sal_uInt16
BasicIDEShell
::
GetIDEWindowId
(
const
IDEBaseWindow
*
pWin
)
const
{
for
(
IDEWindowTable
::
const_iterator
it
=
aIDEWindowTable
.
begin
();
it
!=
aIDEWindowTable
.
end
();
++
it
)
if
(
it
->
second
==
pWin
)
return
it
->
first
;
return
0
;
}
SdrView
*
BasicIDEShell
::
GetCurDlgView
()
const
{
if
(
!
pCurWin
||
!
pCurWin
->
IsA
(
TYPE
(
DialogWindow
)
)
)
...
...
basctl/source/basicide/basidesh.cxx
Dosyayı görüntüle @
000bb6af
...
...
@@ -245,15 +245,13 @@ BasicIDEShell::~BasicIDEShell()
SetWindow
(
0
);
SetCurWindow
(
0
);
IDEBaseWindow
*
pWin
=
aIDEWindowTable
.
First
();
while
(
pWin
)
for
(
IDEWindowTable
::
const_iterator
it
=
aIDEWindowTable
.
begin
();
it
!=
aIDEWindowTable
.
end
();
++
it
)
{
// no store; does already happen when the BasicManagers are destroyed
delete
pWin
;
pWin
=
aIDEWindowTable
.
Next
();
delete
it
->
second
;
}
aIDEWindowTable
.
C
lear
();
aIDEWindowTable
.
c
lear
();
delete
pTabBar
;
delete
pObjectCatalog
;
DestroyModulWindowLayout
();
...
...
@@ -316,11 +314,12 @@ void BasicIDEShell::onDocumentClosed( const ScriptDocument& _rDocument )
bool
bSetCurWindow
=
false
;
bool
bSetCurLib
=
(
_rDocument
==
m_aCurDocument
);
std
::
vector
<
IDEBaseWindow
*>
aDeleteVec
;
// remove all windows which belong to this document
for
(
sal_uLong
nWin
=
aIDEWindowTable
.
Count
();
nWin
;
)
for
(
IDEWindowTable
::
const_iterator
it
=
aIDEWindowTable
.
begin
();
it
!=
aIDEWindowTable
.
end
();
++
it
)
{
IDEBaseWindow
*
pWin
=
aIDEWindowTable
.
GetObject
(
--
nWin
)
;
IDEBaseWindow
*
pWin
=
it
->
second
;
if
(
pWin
->
IsDocument
(
_rDocument
)
)
{
if
(
pWin
->
GetStatus
()
&
(
BASWIN_RUNNINGBASIC
|
BASWIN_INRESCHEDULE
)
)
...
...
@@ -332,14 +331,18 @@ void BasicIDEShell::onDocumentClosed( const ScriptDocument& _rDocument )
pWin
->
BasicStopped
();
}
else
{
pWin
->
StoreData
();
if
(
pWin
==
pCurWin
)
bSetCurWindow
=
true
;
RemoveWindow
(
pWin
,
sal_True
,
sal_False
);
}
aDeleteVec
.
push_back
(
pWin
);
}
}
// delete windows outside main loop so we don't invalidate the original iterator
for
(
std
::
vector
<
IDEBaseWindow
*>::
const_iterator
it
=
aDeleteVec
.
begin
();
it
!=
aDeleteVec
.
end
();
++
it
)
{
IDEBaseWindow
*
pWin
=
*
it
;
pWin
->
StoreData
();
if
(
pWin
==
pCurWin
)
bSetCurWindow
=
true
;
RemoveWindow
(
pWin
,
sal_True
,
sal_False
);
}
// remove lib info
BasicIDEData
*
pData
=
BasicIDEGlobals
::
GetExtraData
();
...
...
@@ -362,9 +365,9 @@ void BasicIDEShell::onDocumentTitleChanged( const ScriptDocument& /*_rDocument*/
void
BasicIDEShell
::
onDocumentModeChanged
(
const
ScriptDocument
&
_rDocument
)
{
for
(
sal_uLong
nWin
=
aIDEWindowTable
.
Count
();
nWin
;
)
for
(
IDEWindowTable
::
const_iterator
it
=
aIDEWindowTable
.
begin
();
it
!=
aIDEWindowTable
.
end
();
++
it
)
{
IDEBaseWindow
*
pWin
=
aIDEWindowTable
.
GetObject
(
--
nWin
)
;
IDEBaseWindow
*
pWin
=
it
->
second
;
if
(
pWin
->
IsDocument
(
_rDocument
)
&&
_rDocument
.
isDocument
()
)
pWin
->
SetReadOnly
(
_rDocument
.
isReadOnly
()
);
}
...
...
@@ -372,9 +375,9 @@ void BasicIDEShell::onDocumentModeChanged( const ScriptDocument& _rDocument )
void
BasicIDEShell
::
StoreAllWindowData
(
sal_Bool
bPersistent
)
{
for
(
sal_uLong
nWin
=
0
;
nWin
<
aIDEWindowTable
.
Count
();
nWin
++
)
for
(
IDEWindowTable
::
const_iterator
it
=
aIDEWindowTable
.
begin
();
it
!=
aIDEWindowTable
.
end
();
++
it
)
{
IDEBaseWindow
*
pWin
=
aIDEWindowTable
.
GetObject
(
nWin
)
;
IDEBaseWindow
*
pWin
=
it
->
second
;
DBG_ASSERT
(
pWin
,
"PrepareClose: NULL-Pointer in Table?"
);
if
(
!
pWin
->
IsSuspended
()
)
pWin
->
StoreData
();
...
...
@@ -414,9 +417,9 @@ sal_uInt16 BasicIDEShell::PrepareClose( sal_Bool bUI, sal_Bool bForBrowsing )
else
{
sal_Bool
bCanClose
=
sal_True
;
for
(
sal_uLong
nWin
=
0
;
bCanClose
&&
(
nWin
<
aIDEWindowTable
.
Count
()
);
nWin
++
)
for
(
sal_uLong
nWin
=
0
;
bCanClose
&&
(
nWin
<
aIDEWindowTable
.
size
()
);
nWin
++
)
{
IDEBaseWindow
*
pWin
=
aIDEWindowTable
.
GetObject
(
nWin
)
;
IDEBaseWindow
*
pWin
=
aIDEWindowTable
[
nWin
]
;
if
(
!
pWin
->
CanClose
()
)
{
if
(
!
m_aCurLibName
.
isEmpty
()
&&
(
pWin
->
IsDocument
(
m_aCurDocument
)
||
pWin
->
GetLibName
()
!=
m_aCurLibName
)
)
...
...
@@ -484,7 +487,7 @@ IMPL_LINK_INLINE_END( BasicIDEShell, TabBarSplitHdl, TabBar *, pTBar )
IMPL_LINK
(
BasicIDEShell
,
TabBarHdl
,
TabBar
*
,
pCurTabBar
)
{
sal_uInt16
nCurId
=
pCurTabBar
->
GetCurPageId
();
IDEBaseWindow
*
pWin
=
aIDEWindowTable
.
Get
(
nCurId
)
;
IDEBaseWindow
*
pWin
=
aIDEWindowTable
[
nCurId
]
;
DBG_ASSERT
(
pWin
,
"Eintrag in TabBar passt zu keinem Fenster!"
);
SetCurWindow
(
pWin
);
...
...
@@ -505,7 +508,7 @@ sal_Bool BasicIDEShell::NextPage( sal_Bool bPrev )
if
(
nPos
<
pTabBar
->
GetPageCount
()
)
{
IDEBaseWindow
*
pWin
=
aIDEWindowTable
.
Get
(
pTabBar
->
GetPageId
(
nPos
)
)
;
IDEBaseWindow
*
pWin
=
aIDEWindowTable
[
pTabBar
->
GetPageId
(
nPos
)
]
;
SetCurWindow
(
pWin
,
sal_True
);
bRet
=
sal_True
;
}
...
...
@@ -652,14 +655,14 @@ void BasicIDEShell::SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId&,
m_pCurLocalizationMgr
->
handleBasicStarted
();
}
IDEBaseWindow
*
pWin
=
aIDEWindowTable
.
First
();
while
(
pWin
)
for
(
IDEWindowTable
::
const_iterator
it
=
aIDEWindowTable
.
begin
();
it
!=
aIDEWindowTable
.
end
();
++
it
)
{
IDEBaseWindow
*
pWin
=
it
->
second
;
if
(
nHintId
==
SBX_HINT_BASICSTART
)
pWin
->
BasicStarted
();
else
pWin
->
BasicStopped
();
pWin
=
aIDEWindowTable
.
Next
();
}
}
}
...
...
@@ -672,17 +675,20 @@ void BasicIDEShell::SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId&,
void
BasicIDEShell
::
CheckWindows
()
{
sal_Bool
bSetCurWindow
=
sal_False
;
for
(
sal_uLong
nWin
=
0
;
nWin
<
aIDEWindowTable
.
Count
();
nWin
++
)
std
::
vector
<
IDEBaseWindow
*>
aDeleteVec
;
for
(
IDEWindowTable
::
const_iterator
it
=
aIDEWindowTable
.
begin
();
it
!=
aIDEWindowTable
.
end
();
++
it
)
{
IDEBaseWindow
*
pWin
=
aIDEWindowTable
.
GetObject
(
nWin
)
;
IDEBaseWindow
*
pWin
=
it
->
second
;
if
(
pWin
->
GetStatus
()
&
BASWIN_TOBEKILLED
)
{
pWin
->
StoreData
();
if
(
pWin
==
pCurWin
)
bSetCurWindow
=
sal_True
;
RemoveWindow
(
pWin
,
sal_True
,
sal_False
);
nWin
--
;
}
aDeleteVec
.
push_back
(
pWin
);
}
for
(
std
::
vector
<
IDEBaseWindow
*>::
const_iterator
it
=
aDeleteVec
.
begin
();
it
!=
aDeleteVec
.
end
();
++
it
)
{
IDEBaseWindow
*
pWin
=
*
it
;
pWin
->
StoreData
();
if
(
pWin
==
pCurWin
)
bSetCurWindow
=
sal_True
;
RemoveWindow
(
pWin
,
sal_True
,
sal_False
);
}
if
(
bSetCurWindow
)
SetCurWindow
(
FindApplicationWindow
(),
sal_True
);
...
...
@@ -693,17 +699,20 @@ void BasicIDEShell::CheckWindows()
void
BasicIDEShell
::
RemoveWindows
(
const
ScriptDocument
&
rDocument
,
const
::
rtl
::
OUString
&
rLibName
,
sal_Bool
bDestroy
)
{
sal_Bool
bChangeCurWindow
=
pCurWin
?
sal_False
:
sal_True
;
for
(
sal_uLong
nWin
=
0
;
nWin
<
aIDEWindowTable
.
Count
();
nWin
++
)
std
::
vector
<
IDEBaseWindow
*>
aDeleteVec
;
for
(
IDEWindowTable
::
const_iterator
it
=
aIDEWindowTable
.
begin
();
it
!=
aIDEWindowTable
.
end
();
++
it
)
{
IDEBaseWindow
*
pWin
=
aIDEWindowTable
.
GetObject
(
nWin
)
;
IDEBaseWindow
*
pWin
=
it
->
second
;
if
(
pWin
->
IsDocument
(
rDocument
)
&&
pWin
->
GetLibName
()
==
rLibName
)
{
if
(
pWin
==
pCurWin
)
bChangeCurWindow
=
sal_True
;
pWin
->
StoreData
();
RemoveWindow
(
pWin
,
bDestroy
,
sal_False
);
nWin
--
;
}
aDeleteVec
.
push_back
(
pWin
);
}
for
(
std
::
vector
<
IDEBaseWindow
*>::
const_iterator
it
=
aDeleteVec
.
begin
();
it
!=
aDeleteVec
.
end
();
++
it
)
{
IDEBaseWindow
*
pWin
=
*
it
;
if
(
pWin
==
pCurWin
)
bChangeCurWindow
=
sal_True
;
pWin
->
StoreData
();
RemoveWindow
(
pWin
,
bDestroy
,
sal_False
);
}
if
(
bChangeCurWindow
)
SetCurWindow
(
FindApplicationWindow
(),
sal_True
);
...
...
@@ -717,9 +726,10 @@ void BasicIDEShell::UpdateWindows()
sal_Bool
bChangeCurWindow
=
pCurWin
?
sal_False
:
sal_True
;
if
(
!
m_aCurLibName
.
isEmpty
()
)
{
for
(
sal_uLong
nWin
=
0
;
nWin
<
aIDEWindowTable
.
Count
();
nWin
++
)
std
::
vector
<
IDEBaseWindow
*>
aDeleteVec
;
for
(
IDEWindowTable
::
const_iterator
it
=
aIDEWindowTable
.
begin
();
it
!=
aIDEWindowTable
.
end
();
++
it
)
{
IDEBaseWindow
*
pWin
=
aIDEWindowTable
.
GetObject
(
nWin
)
;
IDEBaseWindow
*
pWin
=
it
->
second
;
if
(
!
pWin
->
IsDocument
(
m_aCurDocument
)
||
pWin
->
GetLibName
()
!=
m_aCurLibName
)
{
if
(
pWin
==
pCurWin
)
...
...
@@ -729,12 +739,13 @@ void BasicIDEShell::UpdateWindows()
// Window is frozen at first, later the windows should be changed
// anyway to be marked as hidden instead of being deleted.
if
(
!
(
pWin
->
GetStatus
()
&
(
BASWIN_TOBEKILLED
|
BASWIN_RUNNINGBASIC
|
BASWIN_SUSPENDED
)
)
)
{
RemoveWindow
(
pWin
,
sal_False
,
sal_False
);
nWin
--
;
}
aDeleteVec
.
push_back
(
pWin
);
}
}
for
(
std
::
vector
<
IDEBaseWindow
*>::
const_iterator
it
=
aDeleteVec
.
begin
();
it
!=
aDeleteVec
.
end
();
++
it
)
{
RemoveWindow
(
*
it
,
sal_False
,
sal_False
);
}
}
if
(
bCreatingWindow
)
...
...
@@ -859,9 +870,9 @@ void BasicIDEShell::UpdateWindows()
void
BasicIDEShell
::
RemoveWindow
(
IDEBaseWindow
*
pWindow_
,
sal_Bool
bDestroy
,
sal_Bool
bAllowChangeCurWindow
)
{
DBG_ASSERT
(
pWindow_
,
"Kann keinen NULL-Pointer loeschen!"
);
sal_uLong
nKey
=
aIDEWindowTable
.
GetKey
(
pWindow_
);
sal_uLong
nKey
=
GetIDEWindowId
(
pWindow_
);
pTabBar
->
RemovePage
(
(
sal_uInt16
)
nKey
);
aIDEWindowTable
.
Remov
e
(
nKey
);
aIDEWindowTable
.
eras
e
(
nKey
);
if
(
pWindow_
==
pCurWin
)
{
if
(
bAllowChangeCurWindow
)
...
...
@@ -895,7 +906,7 @@ void BasicIDEShell::RemoveWindow( IDEBaseWindow* pWindow_, sal_Bool bDestroy, sa
// there will be no notify...
pWindow_
->
BasicStopped
();
}
aIDEWindowTable
.
Insert
(
nKey
,
pWindow_
)
;
// jump in again
aIDEWindowTable
[
nKey
]
=
pWindow_
;
// jump in again
}
}
else
...
...
@@ -903,7 +914,7 @@ void BasicIDEShell::RemoveWindow( IDEBaseWindow* pWindow_, sal_Bool bDestroy, sa
pWindow_
->
Hide
();
pWindow_
->
AddStatus
(
BASWIN_SUSPENDED
);
pWindow_
->
Deactivating
();
aIDEWindowTable
.
Insert
(
nKey
,
pWindow_
)
;
// jump in again
aIDEWindowTable
[
nKey
]
=
pWindow_
;
// jump in again
}
}
...
...
@@ -913,7 +924,7 @@ void BasicIDEShell::RemoveWindow( IDEBaseWindow* pWindow_, sal_Bool bDestroy, sa
sal_uInt16
BasicIDEShell
::
InsertWindowInTable
(
IDEBaseWindow
*
pNewWin
)
{
nCurKey
++
;
aIDEWindowTable
.
Insert
(
nCurKey
,
pNewWin
)
;
aIDEWindowTable
[
nCurKey
]
=
pNewWin
;
return
nCurKey
;
}
...
...
basctl/source/basicide/basobj2.cxx
Dosyayı görüntüle @
000bb6af
...
...
@@ -208,7 +208,7 @@ bool RenameModule( Window* pErrorParent, const ScriptDocument& rDocument, const
pModWin
->
SetSbModule
(
(
SbModule
*
)
pModWin
->
GetBasic
()
->
FindModule
(
rNewName
)
);
// update tabwriter
sal_uInt16
nId
=
(
sal_uInt16
)(
pIDEShell
->
GetIDEWindowTable
()).
GetKey
(
pWin
);
sal_uInt16
nId
=
pIDEShell
->
GetIDEWindowId
(
pWin
);
DBG_ASSERT
(
nId
,
"No entry in Tabbar!"
);
if
(
nId
)
{
...
...
basctl/source/basicide/basobj3.cxx
Dosyayı görüntüle @
000bb6af
...
...
@@ -217,7 +217,7 @@ bool RenameDialog( Window* pErrorParent, const ScriptDocument& rDocument, const
((
DialogWindow
*
)
pWin
)
->
UpdateBrowser
();
// update tabwriter
sal_uInt16
nId
=
(
sal_uInt16
)(
pIDEShell
->
GetIDEWindowTable
()).
GetKey
(
pWin
);
sal_uInt16
nId
=
pIDEShell
->
GetIDEWindowId
(
pWin
);
DBG_ASSERT
(
nId
,
"No entry in Tabbar!"
);
if
(
nId
)
{
...
...
@@ -338,13 +338,12 @@ void StopBasic()
if
(
pShell
)
{
IDEWindowTable
&
rWindows
=
pShell
->
GetIDEWindowTable
();
IDEBaseWindow
*
pWin
=
rWindows
.
First
();
while
(
pWin
)
for
(
IDEWindowTable
::
const_iterator
it
=
rWindows
.
begin
();
it
!=
rWindows
.
end
();
++
it
)
{
IDEBaseWindow
*
pWin
=
it
->
second
;
// call BasicStopped manually because the Stop-Notify
// might not get through otherwise
pWin
->
BasicStopped
();
pWin
=
rWindows
.
Next
();
}
}
BasicIDE
::
BasicStopped
();
...
...
basctl/source/basicide/bastypes.cxx
Dosyayı görüntüle @
000bb6af
...
...
@@ -462,10 +462,10 @@ void BasicIDETabBar::Command( const CommandEvent& rCEvt )
if
(
pBasic
)
{
IDEWindowTable
&
aIDEWindowTable
=
pIDEShell
->
GetIDEWindowTable
();
IDE
BaseWindow
*
pWin
=
aIDEWindowTable
.
Get
(
GetCurPageId
()
);
if
(
pWin
&&
pWin
->
ISA
(
ModulWindow
)
)
IDE
WindowTable
::
const_iterator
it
=
aIDEWindowTable
.
find
(
GetCurPageId
()
);
if
(
it
!=
aIDEWindowTable
.
end
()
&&
it
->
second
->
ISA
(
ModulWindow
)
)
{
SbModule
*
pActiveModule
=
(
SbModule
*
)
pBasic
->
FindModule
(
pWin
->
GetName
()
);
SbModule
*
pActiveModule
=
(
SbModule
*
)
pBasic
->
FindModule
(
it
->
second
->
GetName
()
);
if
(
pActiveModule
&&
(
pActiveModule
->
GetModuleType
()
==
script
::
ModuleType
::
DOCUMENT
)
)
{
aPopup
.
EnableItem
(
SID_BASICIDE_DELETECURRENT
,
sal_False
);
...
...
@@ -532,7 +532,7 @@ void BasicIDETabBar::Sort()
sal_uInt16
nId
=
GetPageId
(
i
);
aTabBarSortHelper
.
nPageId
=
nId
;
aTabBarSortHelper
.
aPageText
=
GetPageText
(
nId
);
IDEBaseWindow
*
pWin
=
aIDEWindowTable
.
Get
(
nId
)
;
IDEBaseWindow
*
pWin
=
aIDEWindowTable
[
nId
]
;
if
(
pWin
->
IsA
(
TYPE
(
ModulWindow
)
)
)
{
...
...
basctl/source/basicide/localizationmgr.cxx
Dosyayı görüntüle @
000bb6af
...
...
@@ -823,10 +823,10 @@ DialogWindow* FindDialogWindowForEditor( DlgEditor* pEditor )
{
BasicIDEShell
*
pIDEShell
=
BasicIDEGlobals
::
GetShell
();
IDEWindowTable
&
aIDEWindowTable
=
pIDEShell
->
GetIDEWindowTable
();
IDEBaseWindow
*
pWin
=
aIDEWindowTable
.
First
();
DialogWindow
*
pFoundDlgWin
=
NULL
;
while
(
pWin
)
for
(
IDEWindowTable
::
const_iterator
it
=
aIDEWindowTable
.
begin
();
it
!=
aIDEWindowTable
.
end
();
++
it
)
{
IDEBaseWindow
*
pWin
=
it
->
second
;
if
(
!
pWin
->
IsSuspended
()
&&
pWin
->
IsA
(
TYPE
(
DialogWindow
)
)
)
{
DialogWindow
*
pDlgWin
=
(
DialogWindow
*
)
pWin
;
...
...
@@ -837,7 +837,6 @@ DialogWindow* FindDialogWindowForEditor( DlgEditor* pEditor )
break
;
}
}
pWin
=
aIDEWindowTable
.
Next
();
}
return
pFoundDlgWin
;
}
...
...
basctl/source/inc/basidesh.hxx
Dosyayı görüntüle @
000bb6af
...
...
@@ -34,8 +34,8 @@
#include <com/sun/star/container/XContainerListener.hpp>
#include <sfx2/viewsh.hxx>
#include <svx/ifaceids.hxx>
#include <tools/table.hxx>
#include <vcl/scrbar.hxx>
#include <map>
class
SfxViewFactory
;
...
...
@@ -60,9 +60,9 @@ class LocalizationMgr;
struct
BasicIDEShell_Impl
;
#if _SOLAR__PRIVATE
DECLARE_TABLE
(
IDEWindowTable
,
IDEBaseWindow
*
)
typedef
std
::
map
<
sal_uInt16
,
IDEBaseWindow
*>
IDEWindowTable
;
#else
typedef
Table
IDEWindowTable
;
typedef
std
::
map
<
sal_uInt16
,
void
*>
IDEWindowTable
;
#endif
namespace
BasicIDE
...
...
@@ -186,6 +186,7 @@ public:
ScrollBarBox
&
GetScrollBarBox
()
{
return
aScrollBarBox
;
}
TabBar
*
GetTabBar
()
{
return
(
TabBar
*
)
pTabBar
;
}
IDEWindowTable
&
GetIDEWindowTable
()
{
return
aIDEWindowTable
;
}
sal_uInt16
GetIDEWindowId
(
const
IDEBaseWindow
*
pWin
)
const
;
SdrView
*
GetCurDlgView
()
const
;
...
...
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