convert FrameListAnalyzer::EDetect to scoped enum
Change-Id: I4e1bd449c4ad60ec810ef52c73d6c6ff3dd313ee
This commit is contained in:
@@ -287,7 +287,7 @@ IMPL_LINK_NOARG(CloseDispatcher, impl_asyncCallback, LinkParamNone*, void)
|
||||
// If we found some special cases, we can
|
||||
// make some decisions earlier!
|
||||
css::uno::Reference< css::frame::XFramesSupplier > xDesktop( css::frame::Desktop::create(xContext), css::uno::UNO_QUERY_THROW);
|
||||
FrameListAnalyzer aCheck1(xDesktop, xCloseFrame, FrameListAnalyzer::E_HELP | FrameListAnalyzer::E_BACKINGCOMPONENT);
|
||||
FrameListAnalyzer aCheck1(xDesktop, xCloseFrame, FrameAnalyzerFlags::Help | FrameAnalyzerFlags::BackingComponent);
|
||||
|
||||
// Check for existing UNO connections.
|
||||
// NOTE: There is a race between checking this and connections being created/destroyed before
|
||||
@@ -330,7 +330,7 @@ IMPL_LINK_NOARG(CloseDispatcher, impl_asyncCallback, LinkParamNone*, void)
|
||||
{
|
||||
// OK; this frame is empty now.
|
||||
// Check the environment again to decide, what is the next step.
|
||||
FrameListAnalyzer aCheck2(xDesktop, xCloseFrame, FrameListAnalyzer::E_ALL);
|
||||
FrameListAnalyzer aCheck2(xDesktop, xCloseFrame, FrameAnalyzerFlags::All);
|
||||
|
||||
// c1) there is as minimum 1 frame open, which is visible and contains a document
|
||||
// different from our one. And it's not the help!
|
||||
@@ -456,7 +456,7 @@ bool CloseDispatcher::implts_prepareFrameForClosing(const css::uno::Reference< c
|
||||
}
|
||||
|
||||
css::uno::Reference< css::frame::XFramesSupplier > xDesktop( css::frame::Desktop::create( xContext ), css::uno::UNO_QUERY_THROW);
|
||||
FrameListAnalyzer aCheck(xDesktop, xFrame, FrameListAnalyzer::E_ALL);
|
||||
FrameListAnalyzer aCheck(xDesktop, xFrame, FrameAnalyzerFlags::All);
|
||||
|
||||
size_t c = aCheck.m_lModelFrames.size();
|
||||
size_t i = 0;
|
||||
|
||||
@@ -111,7 +111,7 @@ bool StartModuleDispatcher::implts_isBackingModePossible()
|
||||
FrameListAnalyzer aCheck(
|
||||
xDesktop,
|
||||
css::uno::Reference< css::frame::XFrame >(),
|
||||
FrameListAnalyzer::E_HELP | FrameListAnalyzer::E_BACKINGCOMPONENT);
|
||||
FrameAnalyzerFlags::Help | FrameAnalyzerFlags::BackingComponent);
|
||||
|
||||
bool bIsPossible = false;
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ namespace framework{
|
||||
|
||||
FrameListAnalyzer::FrameListAnalyzer( const css::uno::Reference< css::frame::XFramesSupplier >& xSupplier ,
|
||||
const css::uno::Reference< css::frame::XFrame >& xReferenceFrame ,
|
||||
sal_uInt32 eDetectMode )
|
||||
FrameAnalyzerFlags eDetectMode )
|
||||
: m_xSupplier (xSupplier )
|
||||
, m_xReferenceFrame(xReferenceFrame)
|
||||
, m_eDetectMode (eDetectMode )
|
||||
@@ -97,7 +97,7 @@ void FrameListAnalyzer::impl_analyze()
|
||||
// to sort it into the list of frames with the same model.
|
||||
// Suppress this step, if right detect mode isn't set.
|
||||
css::uno::Reference< css::frame::XModel > xReferenceModel;
|
||||
if ((m_eDetectMode & E_MODEL) == E_MODEL )
|
||||
if (m_eDetectMode & FrameAnalyzerFlags::Model)
|
||||
{
|
||||
css::uno::Reference< css::frame::XController > xReferenceController;
|
||||
if (m_xReferenceFrame.is())
|
||||
@@ -109,17 +109,14 @@ void FrameListAnalyzer::impl_analyze()
|
||||
// check, if the reference frame is in hidden mode.
|
||||
// But look, if this analyze step is really needed.
|
||||
css::uno::Reference< css::beans::XPropertySet > xSet(m_xReferenceFrame, css::uno::UNO_QUERY);
|
||||
if (
|
||||
((m_eDetectMode & E_HIDDEN) == E_HIDDEN) &&
|
||||
(xSet.is() )
|
||||
)
|
||||
if ( (m_eDetectMode & FrameAnalyzerFlags::Hidden) && xSet.is() )
|
||||
{
|
||||
xSet->getPropertyValue(FRAME_PROPNAME_ASCII_ISHIDDEN) >>= m_bReferenceIsHidden;
|
||||
}
|
||||
|
||||
// check, if the reference frame includes the backing component.
|
||||
// But look, if this analyze step is really needed.
|
||||
if (((m_eDetectMode & E_BACKINGCOMPONENT) == E_BACKINGCOMPONENT) && m_xReferenceFrame.is() )
|
||||
if ((m_eDetectMode & FrameAnalyzerFlags::BackingComponent) && m_xReferenceFrame.is() )
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -140,7 +137,7 @@ void FrameListAnalyzer::impl_analyze()
|
||||
// check, if the reference frame includes the help module.
|
||||
// But look, if this analyze step is really needed.
|
||||
if (
|
||||
((m_eDetectMode & E_HELP) == E_HELP ) &&
|
||||
(m_eDetectMode & FrameAnalyzerFlags::Help) &&
|
||||
(m_xReferenceFrame.is() ) &&
|
||||
(m_xReferenceFrame->getName() == SPECIALTARGET_HELPTASK)
|
||||
)
|
||||
@@ -165,7 +162,7 @@ void FrameListAnalyzer::impl_analyze()
|
||||
continue;
|
||||
|
||||
if (
|
||||
((m_eDetectMode & E_ZOMBIE) == E_ZOMBIE) &&
|
||||
(m_eDetectMode & FrameAnalyzerFlags::Zombie) &&
|
||||
(
|
||||
(!xFrame->getContainerWindow().is()) ||
|
||||
(!xFrame->getComponentWindow().is())
|
||||
@@ -178,7 +175,7 @@ void FrameListAnalyzer::impl_analyze()
|
||||
// a) Is it the special help task?
|
||||
// Return it separated from any return list.
|
||||
if (
|
||||
((m_eDetectMode & E_HELP) == E_HELP ) &&
|
||||
(m_eDetectMode & FrameAnalyzerFlags::Help) &&
|
||||
(xFrame->getName()==SPECIALTARGET_HELPTASK)
|
||||
)
|
||||
{
|
||||
@@ -190,7 +187,7 @@ void FrameListAnalyzer::impl_analyze()
|
||||
// Return it separated from any return list.
|
||||
// But check if the reference task itself is the backing frame.
|
||||
// Our user must know it to decide right.
|
||||
if ((m_eDetectMode & E_BACKINGCOMPONENT) == E_BACKINGCOMPONENT)
|
||||
if (m_eDetectMode & FrameAnalyzerFlags::BackingComponent)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -210,7 +207,7 @@ void FrameListAnalyzer::impl_analyze()
|
||||
|
||||
// c) Or is it the a task, which uses the specified model?
|
||||
// Add it to the list of "model frames".
|
||||
if ((m_eDetectMode & E_MODEL) == E_MODEL)
|
||||
if (m_eDetectMode & FrameAnalyzerFlags::Model)
|
||||
{
|
||||
css::uno::Reference< css::frame::XController > xController = xFrame->getController();
|
||||
css::uno::Reference< css::frame::XModel > xModel;
|
||||
@@ -229,7 +226,7 @@ void FrameListAnalyzer::impl_analyze()
|
||||
// visible state ... if it's allowed to do so.
|
||||
|
||||
bool bHidden = false;
|
||||
if ((m_eDetectMode & E_HIDDEN) == E_HIDDEN )
|
||||
if (m_eDetectMode & FrameAnalyzerFlags::Hidden)
|
||||
{
|
||||
xSet.set(xFrame, css::uno::UNO_QUERY);
|
||||
if (xSet.is())
|
||||
|
||||
@@ -914,9 +914,9 @@ bool LoadEnv::impl_furtherDocsAllowed()
|
||||
|
||||
FrameListAnalyzer aAnalyzer(xDesktop,
|
||||
css::uno::Reference< css::frame::XFrame >(),
|
||||
FrameListAnalyzer::E_HELP |
|
||||
FrameListAnalyzer::E_BACKINGCOMPONENT |
|
||||
FrameListAnalyzer::E_HIDDEN);
|
||||
FrameAnalyzerFlags::Help |
|
||||
FrameAnalyzerFlags::BackingComponent |
|
||||
FrameAnalyzerFlags::Hidden);
|
||||
|
||||
sal_Int32 nOpenDocuments = aAnalyzer.m_lOtherVisibleFrames.size();
|
||||
bAllowed = (nOpenDocuments < nMaxOpenDocuments);
|
||||
@@ -1352,7 +1352,7 @@ css::uno::Reference< css::frame::XFrame > LoadEnv::impl_searchRecycleTarget()
|
||||
return css::uno::Reference< css::frame::XFrame >();
|
||||
|
||||
css::uno::Reference< css::frame::XFramesSupplier > xSupplier( css::frame::Desktop::create( m_xContext ), css::uno::UNO_QUERY);
|
||||
FrameListAnalyzer aTasksAnalyzer(xSupplier, css::uno::Reference< css::frame::XFrame >(), FrameListAnalyzer::E_BACKINGCOMPONENT);
|
||||
FrameListAnalyzer aTasksAnalyzer(xSupplier, css::uno::Reference< css::frame::XFrame >(), FrameAnalyzerFlags::BackingComponent);
|
||||
if (aTasksAnalyzer.m_xBackingComponent.is())
|
||||
{
|
||||
if (!impl_isFrameAlreadyUsedForLoading(aTasksAnalyzer.m_xBackingComponent))
|
||||
|
||||
@@ -3254,7 +3254,7 @@ void Frame::impl_checkMenuCloser()
|
||||
FrameListAnalyzer aAnalyzer(
|
||||
xTaskSupplier,
|
||||
this,
|
||||
FrameListAnalyzer::E_HIDDEN | FrameListAnalyzer::E_HELP | FrameListAnalyzer::E_BACKINGCOMPONENT);
|
||||
FrameAnalyzerFlags::Hidden | FrameAnalyzerFlags::Help | FrameAnalyzerFlags::BackingComponent);
|
||||
|
||||
// specify the new frame, which must have this special state ...
|
||||
css::uno::Reference< css::frame::XFrame2 > xNewCloserFrame;
|
||||
|
||||
@@ -21,10 +21,30 @@
|
||||
#define INCLUDED_FRAMEWORK_FRAMELISTANALYZER_HXX
|
||||
|
||||
#include <com/sun/star/frame/XFrame.hpp>
|
||||
|
||||
#include <framework/fwedllapi.h>
|
||||
#include <o3tl/typed_flags_set.hxx>
|
||||
|
||||
#include <vector>
|
||||
|
||||
/** These enums can be combined as flags to enable/disable
|
||||
special search algorithm during analyze phase.
|
||||
see impl_analyze() for further information.
|
||||
But note: To be useable as flags, these enums
|
||||
must be values of range [2^n]! */
|
||||
enum class FrameAnalyzerFlags
|
||||
{
|
||||
Model = 1,
|
||||
Help = 2,
|
||||
BackingComponent = 4,
|
||||
Hidden = 8,
|
||||
All = 15,
|
||||
Zombie = 32768 // use it for special test scenarios only!!!
|
||||
};
|
||||
namespace o3tl {
|
||||
template<> struct typed_flags<FrameAnalyzerFlags> : is_typed_flags<FrameAnalyzerFlags, 32768+15> {};
|
||||
}
|
||||
|
||||
|
||||
namespace framework{
|
||||
|
||||
/** analyze and split the current available frame list of a given frames supplier
|
||||
@@ -41,22 +61,6 @@ class FWE_DLLPUBLIC FrameListAnalyzer final
|
||||
|
||||
public:
|
||||
|
||||
/** These enums can be combined as flags to enable/disable
|
||||
special search algorithm during analyze phase.
|
||||
see impl_analyze() for further information.
|
||||
But note: To be useable as flags, these enums
|
||||
must be values of range [2^n]! */
|
||||
enum EDetect
|
||||
{
|
||||
E_MODEL = 1,
|
||||
E_HELP = 2,
|
||||
E_BACKINGCOMPONENT = 4,
|
||||
E_HIDDEN = 8,
|
||||
E_ALL = 15,
|
||||
E_ZOMBIE = 32768 // use it for special test scenarios only!!!
|
||||
};
|
||||
|
||||
|
||||
// member
|
||||
|
||||
public:
|
||||
@@ -69,10 +73,10 @@ class FWE_DLLPUBLIC FrameListAnalyzer final
|
||||
|
||||
/** enable/disable some special analyzing steps.
|
||||
see impl_analyze() for further information. */
|
||||
sal_uInt32 m_eDetectMode;
|
||||
FrameAnalyzerFlags m_eDetectMode;
|
||||
|
||||
/** contains all frames, which uses the same model like the reference frame.
|
||||
Will be filled only if m_eDetectMode has set the flag E_MODEL.
|
||||
Will be filled only if m_eDetectMode has set the flag FrameAnalyzerFlags::Model.
|
||||
The reference frame is never part of this list! */
|
||||
std::vector< css::uno::Reference< css::frame::XFrame > > m_lModelFrames;
|
||||
|
||||
@@ -140,17 +144,17 @@ class FWE_DLLPUBLIC FrameListAnalyzer final
|
||||
css::uno::Reference< css::frame::XFrame > m_xBackingComponent;
|
||||
|
||||
/** is set to true only, if the reference frame is a hidden one.
|
||||
This value is undefined if m_eDetectMode doesn't have set the flag E_HIDDEN! */
|
||||
This value is undefined if m_eDetectMode doesn't have set the flag FrameAnalyzerFlags::Hidden! */
|
||||
bool m_bReferenceIsHidden;
|
||||
|
||||
/** is set to true only, if the reference frame contains the help component.
|
||||
In this case the member m_xHelp is set to NULL every time.
|
||||
This value is undefined if m_eDetectMode doesn't have set the flag E_HELP! */
|
||||
This value is undefined if m_eDetectMode doesn't have set the flag FrameAnalyzerFlags::Help! */
|
||||
bool m_bReferenceIsHelp;
|
||||
|
||||
/** is set to true only, if the reference frame contains the backing component.
|
||||
In this case the member m_xBackingComponent is set to NULL every time.
|
||||
This value is undefined if m_eDetectMode doesn't have set the flag E_BACKINGCOMPONENT! */
|
||||
This value is undefined if m_eDetectMode doesn't have set the flag FrameAnalyzerFlags::BackingComponent! */
|
||||
bool m_bReferenceIsBacking;
|
||||
|
||||
|
||||
@@ -176,7 +180,7 @@ class FWE_DLLPUBLIC FrameListAnalyzer final
|
||||
*/
|
||||
FrameListAnalyzer( const css::uno::Reference< css::frame::XFramesSupplier >& xSupplier ,
|
||||
const css::uno::Reference< css::frame::XFrame >& xReferenceFrame ,
|
||||
sal_uInt32 eDetectMode );
|
||||
FrameAnalyzerFlags eDetectMode );
|
||||
~FrameListAnalyzer();
|
||||
|
||||
|
||||
|
||||
@@ -1748,7 +1748,7 @@ SfxViewFrame* SfxViewFrame::LoadViewIntoFrame_Impl_NoThrow( const SfxObjectShell
|
||||
try
|
||||
{
|
||||
// if there is a backing component, use it
|
||||
::framework::FrameListAnalyzer aAnalyzer( xDesktop, Reference< XFrame >(), ::framework::FrameListAnalyzer::E_BACKINGCOMPONENT );
|
||||
::framework::FrameListAnalyzer aAnalyzer( xDesktop, Reference< XFrame >(), FrameAnalyzerFlags::BackingComponent );
|
||||
|
||||
if ( aAnalyzer.m_xBackingComponent.is() )
|
||||
xFrame = aAnalyzer.m_xBackingComponent;
|
||||
|
||||
Reference in New Issue
Block a user