[Libreoffice-commits] core.git: 2 commits - cui/source dbaccess/source desktop/source extensions/source filter/source framework/source include/o3tl include/unotools sc/source sd/source sfx2/source starmath/source svx/source sw/source unotools/source xmloff/source

Noel Grandin noel at peralex.com
Tue Apr 7 04:06:14 PDT 2015


 cui/source/dialogs/hlmailtp.cxx                      |    2 
 cui/source/options/optcolor.cxx                      |   10 
 cui/source/options/optfltr.cxx                       |    8 
 cui/source/options/optpath.cxx                       |    2 
 cui/source/options/optsave.cxx                       |   66 +--
 cui/source/options/treeopt.cxx                       |   16 
 dbaccess/source/filter/xml/dbloader2.cxx             |    2 
 dbaccess/source/ui/app/AppController.cxx             |    6 
 dbaccess/source/ui/browser/genericcontroller.cxx     |   16 
 dbaccess/source/ui/dlg/ConnectionHelper.cxx          |    2 
 desktop/source/app/app.cxx                           |   70 +--
 desktop/source/app/officeipcthread.cxx               |   34 -
 extensions/source/propctrlr/formcomponenthandler.cxx |    6 
 filter/source/xsltdialog/xmlfiltersettingsdialog.cxx |    7 
 framework/source/dispatch/closedispatcher.cxx        |    2 
 framework/source/dispatch/startmoduledispatcher.cxx  |    2 
 framework/source/services/frame.cxx                  |    4 
 include/o3tl/enumarray.hxx                           |    5 
 include/unotools/moduleoptions.hxx                   |   52 +-
 sc/source/ui/unoobj/docuno.cxx                       |    2 
 sc/source/ui/view/cellsh2.cxx                        |    2 
 sd/source/ui/view/DocumentRenderer.cxx               |    2 
 sfx2/source/appl/appserv.cxx                         |    2 
 sfx2/source/appl/sfxhelp.cxx                         |   16 
 sfx2/source/bastyp/fltfnc.cxx                        |    4 
 sfx2/source/dialog/backingwindow.cxx                 |   12 
 sfx2/source/doc/docfac.cxx                           |    8 
 sfx2/source/doc/templatedlg.cxx                      |   10 
 sfx2/source/view/viewfrm.cxx                         |    2 
 starmath/source/unomodel.cxx                         |    2 
 svx/source/dialog/srchdlg.cxx                        |   28 -
 svx/source/form/fmshell.cxx                          |    4 
 svx/source/form/fmvwimp.cxx                          |    2 
 sw/source/core/view/printdata.cxx                    |    2 
 sw/source/uibase/uiview/viewstat.cxx                 |    2 
 unotools/source/config/moduleoptions.cxx             |  361 +++++++------------
 xmloff/source/core/xmlexp.cxx                        |    4 
 xmloff/source/draw/shapeexport.cxx                   |    8 
 38 files changed, 352 insertions(+), 433 deletions(-)

New commits:
commit 869aaf83bd6159dbfbc3e648b20537fd135dc6ca
Author: Noel Grandin <noel at peralex.com>
Date:   Tue Apr 7 10:59:56 2015 +0200

    convert SvtModuleOptions::EModule to scoped enum
    
    Change-Id: I9665fc003cb3a44f4db857b24584fa3a70487259

diff --git a/cui/source/dialogs/hlmailtp.cxx b/cui/source/dialogs/hlmailtp.cxx
index 068d412..5c114ff 100644
--- a/cui/source/dialogs/hlmailtp.cxx
+++ b/cui/source/dialogs/hlmailtp.cxx
@@ -62,7 +62,7 @@ SvxHyperlinkMailTp::SvxHyperlinkMailTp ( vcl::Window *pParent, IconChoiceDialog*
     m_pBtAdrBook->SetClickHdl      ( LINK ( this, SvxHyperlinkMailTp, ClickAdrBookHdl_Impl ) );
     m_pCbbReceiver->SetModifyHdl   ( LINK ( this, SvxHyperlinkMailTp, ModifiedReceiverHdl_Impl) );
 
-    if ( !SvtModuleOptions().IsModuleInstalled( SvtModuleOptions::E_SDATABASE ) )
+    if ( !SvtModuleOptions().IsModuleInstalled( SvtModuleOptions::EModule::DATABASE ) )
         m_pBtAdrBook->Hide();
 }
 
diff --git a/cui/source/options/optcolor.cxx b/cui/source/options/optcolor.cxx
index 0d9cdaf..d716644 100644
--- a/cui/source/options/optcolor.cxx
+++ b/cui/source/options/optcolor.cxx
@@ -786,15 +786,15 @@ bool ColorConfigWindow_Impl::IsGroupVisible (Group eGroup) const
     {
         case Group_Writer:
         case Group_Html:
-            return aModuleOptions.IsModuleInstalled(SvtModuleOptions::E_SWRITER);
+            return aModuleOptions.IsModuleInstalled(SvtModuleOptions::EModule::WRITER);
         case Group_Calc:
-            return aModuleOptions.IsModuleInstalled(SvtModuleOptions::E_SCALC);
+            return aModuleOptions.IsModuleInstalled(SvtModuleOptions::EModule::CALC);
         case Group_Draw:
             return
-                aModuleOptions.IsModuleInstalled(SvtModuleOptions::E_SDRAW) ||
-                aModuleOptions.IsModuleInstalled(SvtModuleOptions::E_SIMPRESS);
+                aModuleOptions.IsModuleInstalled(SvtModuleOptions::EModule::DRAW) ||
+                aModuleOptions.IsModuleInstalled(SvtModuleOptions::EModule::IMPRESS);
         case Group_Sql:
-            return aModuleOptions.IsModuleInstalled(SvtModuleOptions::E_SDATABASE);
+            return aModuleOptions.IsModuleInstalled(SvtModuleOptions::EModule::DATABASE);
         default:
             return true;
     }
diff --git a/cui/source/options/optfltr.cxx b/cui/source/options/optfltr.cxx
index 1f2fb44..51cfc2d 100644
--- a/cui/source/options/optfltr.cxx
+++ b/cui/source/options/optfltr.cxx
@@ -245,13 +245,13 @@ void OfaMSFilterTabPage2::Reset( const SfxItemSet* )
     SvtModuleOptions aModuleOpt;
 
     // int the same sequence as the enums of MSFltrPg2_CheckBoxEntries
-    if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SMATH ) )
+    if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::EModule::MATH ) )
         InsertEntry( sChgToFromMath, static_cast< sal_IntPtr >( Math ) );
-    if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SWRITER ) )
+    if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::EModule::WRITER ) )
         InsertEntry( sChgToFromWriter, static_cast< sal_IntPtr >( Writer ) );
-    if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SCALC ) )
+    if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::EModule::CALC ) )
         InsertEntry( sChgToFromCalc, static_cast< sal_IntPtr >( Calc ) );
-    if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SIMPRESS ) )
+    if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::EModule::IMPRESS ) )
         InsertEntry( sChgToFromImpress, static_cast< sal_IntPtr >( Impress ) );
     InsertEntry( sChgToFromSmartArt, static_cast< sal_IntPtr >( SmartArt ), true, false );
 
diff --git a/cui/source/options/optpath.cxx b/cui/source/options/optpath.cxx
index f7798ad..1106933 100644
--- a/cui/source/options/optpath.cxx
+++ b/cui/source/options/optpath.cxx
@@ -289,7 +289,7 @@ void SvxPathTabPage::Reset( const SfxItemSet* )
     {
         // only writer uses autotext
         if ( i == SvtPathOptions::PATH_AUTOTEXT
-            && !SvtModuleOptions().IsModuleInstalled( SvtModuleOptions::E_SWRITER ) )
+            && !SvtModuleOptions().IsModuleInstalled( SvtModuleOptions::EModule::WRITER ) )
             continue;
 
         switch (i)
diff --git a/cui/source/options/optsave.cxx b/cui/source/options/optsave.cxx
index da95054..1bc7861 100644
--- a/cui/source/options/optsave.cxx
+++ b/cui/source/options/optsave.cxx
@@ -123,7 +123,7 @@ SfxSaveTabPage::SfxSaveTabPage( vcl::Window* pParent, const SfxItemSet& rCoreSet
     aAutoSaveEdit->SetMaxTextLen( 2 );
 
     SvtModuleOptions aModuleOpt;
-    if ( !aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SMATH ) )
+    if ( !aModuleOpt.IsModuleInstalled( SvtModuleOptions::EModule::MATH ) )
     {
         aSaveAsLB->RemoveEntry(aSaveAsLB->GetEntryPos( reinterpret_cast<void*>(APP_MATH) ));
         aDocTypeLB->RemoveEntry(aDocTypeLB->GetEntryPos( reinterpret_cast<void*>(APP_MATH) ));
@@ -134,7 +134,7 @@ SfxSaveTabPage::SfxSaveTabPage( vcl::Window* pParent, const SfxItemSet& rCoreSet
         pImpl->aDefaultReadonlyArr[APP_MATH] = aModuleOpt.IsDefaultFilterReadonly(SvtModuleOptions::EFactory::MATH);
     }
 
-    if ( !aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SDRAW ) )
+    if ( !aModuleOpt.IsModuleInstalled( SvtModuleOptions::EModule::DRAW ) )
     {
         aSaveAsLB->RemoveEntry(aSaveAsLB->GetEntryPos( reinterpret_cast<void*>(APP_DRAW) ));
         aDocTypeLB->RemoveEntry(aDocTypeLB->GetEntryPos( reinterpret_cast<void*>(APP_DRAW) ));
@@ -145,7 +145,7 @@ SfxSaveTabPage::SfxSaveTabPage( vcl::Window* pParent, const SfxItemSet& rCoreSet
         pImpl->aDefaultReadonlyArr[APP_DRAW] = aModuleOpt.IsDefaultFilterReadonly(SvtModuleOptions::EFactory::DRAW);
     }
 
-    if ( !aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SIMPRESS ) )
+    if ( !aModuleOpt.IsModuleInstalled( SvtModuleOptions::EModule::IMPRESS ) )
     {
         aSaveAsLB->RemoveEntry(aSaveAsLB->GetEntryPos( reinterpret_cast<void*>(APP_IMPRESS) ));
         aDocTypeLB->RemoveEntry(aDocTypeLB->GetEntryPos( reinterpret_cast<void*>(APP_IMPRESS) ));
@@ -156,7 +156,7 @@ SfxSaveTabPage::SfxSaveTabPage( vcl::Window* pParent, const SfxItemSet& rCoreSet
         pImpl->aDefaultReadonlyArr[APP_IMPRESS] = aModuleOpt.IsDefaultFilterReadonly(SvtModuleOptions::EFactory::IMPRESS);
     }
 
-    if ( !aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SCALC ) )
+    if ( !aModuleOpt.IsModuleInstalled( SvtModuleOptions::EModule::CALC ) )
     {
         aSaveAsLB->RemoveEntry(aSaveAsLB->GetEntryPos( reinterpret_cast<void*>(APP_CALC) ));
         aDocTypeLB->RemoveEntry(aDocTypeLB->GetEntryPos( reinterpret_cast<void*>(APP_CALC) ));
@@ -167,7 +167,7 @@ SfxSaveTabPage::SfxSaveTabPage( vcl::Window* pParent, const SfxItemSet& rCoreSet
         pImpl->aDefaultReadonlyArr[APP_CALC] = aModuleOpt.IsDefaultFilterReadonly(SvtModuleOptions::EFactory::CALC);
     }
 
-    if ( !aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SWRITER ) )
+    if ( !aModuleOpt.IsModuleInstalled( SvtModuleOptions::EModule::WRITER ) )
     {
         aSaveAsLB->RemoveEntry(aSaveAsLB->GetEntryPos( reinterpret_cast<void*>(APP_WRITER) ));
         aSaveAsLB->RemoveEntry(aSaveAsLB->GetEntryPos( reinterpret_cast<void*>(APP_WRITER_WEB) ));
diff --git a/cui/source/options/treeopt.cxx b/cui/source/options/treeopt.cxx
index b1a274e..42154b2 100644
--- a/cui/source/options/treeopt.cxx
+++ b/cui/source/options/treeopt.cxx
@@ -1564,7 +1564,7 @@ void OfaTreeOptionsDialog::Initialize( const Reference< XFrame >& _xFrame )
 
     // Writer and Writer/Web options
     SvtModuleOptions aModuleOpt;
-    if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SWRITER ) )
+    if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::EModule::WRITER ) )
     {
         // text document
         ResStringArray& rTextArray = aDlgResource.GetTextArray();
@@ -1614,7 +1614,7 @@ void OfaTreeOptionsDialog::Initialize( const Reference< XFrame >& _xFrame )
     }
 
     // Calc options
-    if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SCALC ) )
+    if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::EModule::CALC ) )
     {
         if ( aFactory == "com.sun.star.sheet.SpreadsheetDocument" )
         {
@@ -1639,7 +1639,7 @@ void OfaTreeOptionsDialog::Initialize( const Reference< XFrame >& _xFrame )
 
     // Impress options
     SfxModule* pSdMod = *reinterpret_cast<SfxModule**>(GetAppData( SHL_DRAW ));
-    if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SIMPRESS ) )
+    if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::EModule::IMPRESS ) )
     {
         if ( aFactory == "com.sun.star.presentation.PresentationDocument" )
         {
@@ -1662,7 +1662,7 @@ void OfaTreeOptionsDialog::Initialize( const Reference< XFrame >& _xFrame )
     }
 
     // Draw options
-    if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SDRAW ) )
+    if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::EModule::DRAW ) )
     {
         if ( aFactory == "com.sun.star.drawing.DrawingDocument" )
         {
@@ -1685,7 +1685,7 @@ void OfaTreeOptionsDialog::Initialize( const Reference< XFrame >& _xFrame )
     }
 
     // Math options
-    if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SMATH ) )
+    if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::EModule::MATH ) )
     {
         if ( aFactory == "com.sun.star.formula.FormulaProperties" )
         {
@@ -1707,9 +1707,9 @@ void OfaTreeOptionsDialog::Initialize( const Reference< XFrame >& _xFrame )
 
     // Database - needed only if there is an application which integrates with databases
     if ( !lcl_isOptionHidden( SID_SB_STARBASEOPTIONS, aOptionsDlgOpt ) &&
-        (   aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SDATABASE )
-        ||  aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SWRITER )
-        ||  aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SCALC )
+        (   aModuleOpt.IsModuleInstalled( SvtModuleOptions::EModule::DATABASE )
+        ||  aModuleOpt.IsModuleInstalled( SvtModuleOptions::EModule::WRITER )
+        ||  aModuleOpt.IsModuleInstalled( SvtModuleOptions::EModule::CALC )
         ) )
     {
         ResStringArray& rDSArray = aDlgResource.GetDatasourcesArray();
diff --git a/dbaccess/source/ui/app/AppController.cxx b/dbaccess/source/ui/app/AppController.cxx
index 632da15..84d51f9 100644
--- a/dbaccess/source/ui/app/AppController.cxx
+++ b/dbaccess/source/ui/app/AppController.cxx
@@ -628,11 +628,11 @@ FeatureState OApplicationController::GetState(sal_uInt16 _nId) const
             case SID_NEWDOC:
             case SID_APP_NEW_FORM:
             case ID_DOCUMENT_CREATE_REPWIZ:
-                aReturn.bEnabled = !isDataSourceReadOnly() && SvtModuleOptions().IsModuleInstalled(SvtModuleOptions::E_SWRITER);
+                aReturn.bEnabled = !isDataSourceReadOnly() && SvtModuleOptions().IsModuleInstalled(SvtModuleOptions::EModule::WRITER);
                 break;
             case SID_APP_NEW_REPORT:
                 aReturn.bEnabled = !isDataSourceReadOnly()
-                                    && SvtModuleOptions().IsModuleInstalled(SvtModuleOptions::E_SWRITER);
+                                    && SvtModuleOptions().IsModuleInstalled(SvtModuleOptions::EModule::WRITER);
                 if ( aReturn.bEnabled )
                 {
                     Reference< XContentEnumerationAccess > xEnumAccess(m_xContext->getServiceManager(), UNO_QUERY);
@@ -713,7 +713,7 @@ FeatureState OApplicationController::GetState(sal_uInt16 _nId) const
             case SID_REPORT_CREATE_REPWIZ_PRE_SEL:
             case SID_APP_NEW_REPORT_PRE_SEL:
                 aReturn.bEnabled = !isDataSourceReadOnly()
-                                    && SvtModuleOptions().IsModuleInstalled(SvtModuleOptions::E_SWRITER)
+                                    && SvtModuleOptions().IsModuleInstalled(SvtModuleOptions::EModule::WRITER)
                                     && getContainer()->isALeafSelected();
                 if ( aReturn.bEnabled )
                 {
diff --git a/dbaccess/source/ui/browser/genericcontroller.cxx b/dbaccess/source/ui/browser/genericcontroller.cxx
index 94db646..0613b7d 100644
--- a/dbaccess/source/ui/browser/genericcontroller.cxx
+++ b/dbaccess/source/ui/browser/genericcontroller.cxx
@@ -1180,21 +1180,21 @@ namespace
                 // could not determine the document type we're living in
                 // ->fallback
                 SvtModuleOptions aModOpt;
-                if ( aModOpt.IsModuleInstalled( SvtModuleOptions::E_SWRITER ) )
+                if ( aModOpt.IsModuleInstalled( SvtModuleOptions::EModule::WRITER ) )
                     pReturn = "swriter";
-                else if ( aModOpt.IsModuleInstalled( SvtModuleOptions::E_SDATABASE ) )
+                else if ( aModOpt.IsModuleInstalled( SvtModuleOptions::EModule::DATABASE ) )
                     pReturn = "sdatabase";
-                else if ( aModOpt.IsModuleInstalled( SvtModuleOptions::E_SCALC ) )
+                else if ( aModOpt.IsModuleInstalled( SvtModuleOptions::EModule::CALC ) )
                     pReturn = "scalc";
-                else if ( aModOpt.IsModuleInstalled( SvtModuleOptions::E_SIMPRESS ) )
+                else if ( aModOpt.IsModuleInstalled( SvtModuleOptions::EModule::IMPRESS ) )
                     pReturn = "simpress";
-                else if ( aModOpt.IsModuleInstalled( SvtModuleOptions::E_SDRAW ) )
+                else if ( aModOpt.IsModuleInstalled( SvtModuleOptions::EModule::DRAW ) )
                     pReturn = "sdraw";
-                else if ( aModOpt.IsModuleInstalled( SvtModuleOptions::E_SMATH ) )
+                else if ( aModOpt.IsModuleInstalled( SvtModuleOptions::EModule::MATH ) )
                     pReturn = "smath";
-                else if ( aModOpt.IsModuleInstalled( SvtModuleOptions::E_SCHART ) )
+                else if ( aModOpt.IsModuleInstalled( SvtModuleOptions::EModule::CHART ) )
                     pReturn = "schart";
-                else if ( aModOpt.IsModuleInstalled( SvtModuleOptions::E_SBASIC ) )
+                else if ( aModOpt.IsModuleInstalled( SvtModuleOptions::EModule::BASIC ) )
                     pReturn = "sbasic";
                 else
                 {
diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx
index f85026e..9756394 100644
--- a/desktop/source/app/app.cxx
+++ b/desktop/source/app/app.cxx
@@ -1502,7 +1502,7 @@ int Desktop::Main()
         if ( !pExecGlobals->bRestartRequested )
         {
             if ((!rCmdLineArgs.WantsToLoadDocument() && !rCmdLineArgs.IsInvisible() && !rCmdLineArgs.IsHeadless() && !rCmdLineArgs.IsQuickstart()) &&
-                (SvtModuleOptions().IsModuleInstalled(SvtModuleOptions::E_SSTARTMODULE)) &&
+                (SvtModuleOptions().IsModuleInstalled(SvtModuleOptions::EModule::STARTMODULE)) &&
                 (!bExistsRecoveryData                                                  ) &&
                 (!bExistsSessionData                                                   ) &&
                 (!Application::AnyInput( VclInputFlags::APPEVENT )                          ))
@@ -2335,13 +2335,13 @@ void Desktop::OpenClients()
             SvtModuleOptions    aOpt;
 
             // Support command line parameters to start a module (as preselection)
-            if ( rArgs.IsWriter() && aOpt.IsModuleInstalled( SvtModuleOptions::E_SWRITER ) )
+            if ( rArgs.IsWriter() && aOpt.IsModuleInstalled( SvtModuleOptions::EModule::WRITER ) )
                 aRequest.aModule = aOpt.GetFactoryName( SvtModuleOptions::EFactory::WRITER );
-            else if ( rArgs.IsCalc() && aOpt.IsModuleInstalled( SvtModuleOptions::E_SCALC ) )
+            else if ( rArgs.IsCalc() && aOpt.IsModuleInstalled( SvtModuleOptions::EModule::CALC ) )
                 aRequest.aModule = aOpt.GetFactoryName( SvtModuleOptions::EFactory::CALC );
-            else if ( rArgs.IsImpress() && aOpt.IsModuleInstalled( SvtModuleOptions::E_SIMPRESS ) )
+            else if ( rArgs.IsImpress() && aOpt.IsModuleInstalled( SvtModuleOptions::EModule::IMPRESS ) )
                 aRequest.aModule= aOpt.GetFactoryName( SvtModuleOptions::EFactory::IMPRESS );
-            else if ( rArgs.IsDraw() && aOpt.IsModuleInstalled( SvtModuleOptions::E_SDRAW ) )
+            else if ( rArgs.IsDraw() && aOpt.IsModuleInstalled( SvtModuleOptions::EModule::DRAW ) )
                 aRequest.aModule= aOpt.GetFactoryName( SvtModuleOptions::EFactory::DRAW );
         }
 
@@ -2397,36 +2397,36 @@ void Desktop::OpenDefault()
     if ( rArgs.HasModuleParam() )
     {
         // Support new command line parameters to start a module
-        if ( rArgs.IsWriter() && aOpt.IsModuleInstalled( SvtModuleOptions::E_SWRITER ) )
+        if ( rArgs.IsWriter() && aOpt.IsModuleInstalled( SvtModuleOptions::EModule::WRITER ) )
             aName = aOpt.GetFactoryEmptyDocumentURL( SvtModuleOptions::EFactory::WRITER );
-        else if ( rArgs.IsCalc() && aOpt.IsModuleInstalled( SvtModuleOptions::E_SCALC ) )
+        else if ( rArgs.IsCalc() && aOpt.IsModuleInstalled( SvtModuleOptions::EModule::CALC ) )
             aName = aOpt.GetFactoryEmptyDocumentURL( SvtModuleOptions::EFactory::CALC );
-        else if ( rArgs.IsImpress() && aOpt.IsModuleInstalled( SvtModuleOptions::E_SIMPRESS ) )
+        else if ( rArgs.IsImpress() && aOpt.IsModuleInstalled( SvtModuleOptions::EModule::IMPRESS ) )
             aName = aOpt.GetFactoryEmptyDocumentURL( SvtModuleOptions::EFactory::IMPRESS );
-        else if ( rArgs.IsBase() && aOpt.IsModuleInstalled( SvtModuleOptions::E_SDATABASE ) )
+        else if ( rArgs.IsBase() && aOpt.IsModuleInstalled( SvtModuleOptions::EModule::DATABASE ) )
             aName = aOpt.GetFactoryEmptyDocumentURL( SvtModuleOptions::EFactory::DATABASE );
-        else if ( rArgs.IsDraw() && aOpt.IsModuleInstalled( SvtModuleOptions::E_SDRAW ) )
+        else if ( rArgs.IsDraw() && aOpt.IsModuleInstalled( SvtModuleOptions::EModule::DRAW ) )
             aName = aOpt.GetFactoryEmptyDocumentURL( SvtModuleOptions::EFactory::DRAW );
-        else if ( rArgs.IsMath() && aOpt.IsModuleInstalled( SvtModuleOptions::E_SMATH ) )
+        else if ( rArgs.IsMath() && aOpt.IsModuleInstalled( SvtModuleOptions::EModule::MATH ) )
             aName = aOpt.GetFactoryEmptyDocumentURL( SvtModuleOptions::EFactory::MATH );
-        else if ( rArgs.IsGlobal() && aOpt.IsModuleInstalled( SvtModuleOptions::E_SWRITER ) )
+        else if ( rArgs.IsGlobal() && aOpt.IsModuleInstalled( SvtModuleOptions::EModule::WRITER ) )
             aName = aOpt.GetFactoryEmptyDocumentURL( SvtModuleOptions::EFactory::WRITERGLOBAL );
-        else if ( rArgs.IsWeb() && aOpt.IsModuleInstalled( SvtModuleOptions::E_SWRITER ) )
+        else if ( rArgs.IsWeb() && aOpt.IsModuleInstalled( SvtModuleOptions::EModule::WRITER ) )
             aName = aOpt.GetFactoryEmptyDocumentURL( SvtModuleOptions::EFactory::WRITERWEB );
     }
 
     if ( aName.isEmpty() )
     {
         // Old way to create a default document
-        if ( aOpt.IsModuleInstalled( SvtModuleOptions::E_SWRITER ) )
+        if ( aOpt.IsModuleInstalled( SvtModuleOptions::EModule::WRITER ) )
             aName = aOpt.GetFactoryEmptyDocumentURL( SvtModuleOptions::EFactory::WRITER );
-        else if ( aOpt.IsModuleInstalled( SvtModuleOptions::E_SCALC ) )
+        else if ( aOpt.IsModuleInstalled( SvtModuleOptions::EModule::CALC ) )
             aName = aOpt.GetFactoryEmptyDocumentURL( SvtModuleOptions::EFactory::CALC );
-        else if ( aOpt.IsModuleInstalled( SvtModuleOptions::E_SIMPRESS ) )
+        else if ( aOpt.IsModuleInstalled( SvtModuleOptions::EModule::IMPRESS ) )
             aName = aOpt.GetFactoryEmptyDocumentURL( SvtModuleOptions::EFactory::IMPRESS );
-        else if ( aOpt.IsModuleInstalled( SvtModuleOptions::E_SDATABASE ) )
+        else if ( aOpt.IsModuleInstalled( SvtModuleOptions::EModule::DATABASE ) )
             aName = aOpt.GetFactoryEmptyDocumentURL( SvtModuleOptions::EFactory::DATABASE );
-        else if ( aOpt.IsModuleInstalled( SvtModuleOptions::E_SDRAW ) )
+        else if ( aOpt.IsModuleInstalled( SvtModuleOptions::EModule::DRAW ) )
             aName = aOpt.GetFactoryEmptyDocumentURL( SvtModuleOptions::EFactory::DRAW );
         else
             return;
diff --git a/desktop/source/app/officeipcthread.cxx b/desktop/source/app/officeipcthread.cxx
index 083172c..1a3cc9f 100644
--- a/desktop/source/app/officeipcthread.cxx
+++ b/desktop/source/app/officeipcthread.cxx
@@ -927,13 +927,13 @@ void OfficeIPCThread::execute()
                         SvtModuleOptions    aOpt;
 
                         // Support command line parameters to start a module (as preselection)
-                        if ( aCmdLineArgs->IsWriter() && aOpt.IsModuleInstalled( SvtModuleOptions::E_SWRITER ) )
+                        if ( aCmdLineArgs->IsWriter() && aOpt.IsModuleInstalled( SvtModuleOptions::EModule::WRITER ) )
                             pRequest->aModule = aOpt.GetFactoryName( SvtModuleOptions::EFactory::WRITER );
-                        else if ( aCmdLineArgs->IsCalc() && aOpt.IsModuleInstalled( SvtModuleOptions::E_SCALC ) )
+                        else if ( aCmdLineArgs->IsCalc() && aOpt.IsModuleInstalled( SvtModuleOptions::EModule::CALC ) )
                             pRequest->aModule = aOpt.GetFactoryName( SvtModuleOptions::EFactory::CALC );
-                        else if ( aCmdLineArgs->IsImpress() && aOpt.IsModuleInstalled( SvtModuleOptions::E_SIMPRESS ) )
+                        else if ( aCmdLineArgs->IsImpress() && aOpt.IsModuleInstalled( SvtModuleOptions::EModule::IMPRESS ) )
                             pRequest->aModule= aOpt.GetFactoryName( SvtModuleOptions::EFactory::IMPRESS );
-                        else if ( aCmdLineArgs->IsDraw() && aOpt.IsModuleInstalled( SvtModuleOptions::E_SDRAW ) )
+                        else if ( aCmdLineArgs->IsDraw() && aOpt.IsModuleInstalled( SvtModuleOptions::EModule::DRAW ) )
                             pRequest->aModule= aOpt.GetFactoryName( SvtModuleOptions::EFactory::DRAW );
                     }
 
diff --git a/extensions/source/propctrlr/formcomponenthandler.cxx b/extensions/source/propctrlr/formcomponenthandler.cxx
index 9cb3ce6..1059415 100644
--- a/extensions/source/propctrlr/formcomponenthandler.cxx
+++ b/extensions/source/propctrlr/formcomponenthandler.cxx
@@ -904,7 +904,7 @@ namespace pcr
                 // no cursor source if no Base is installed. #124939#
                 // This fix is not intendend to appear on the main trunk. If you find it there,
                 // please tell me! frank.schoenheit at sun.com
-                if ( SvtModuleOptions().IsModuleInstalled( SvtModuleOptions::E_SDATABASE ) )
+                if ( SvtModuleOptions().IsModuleInstalled( SvtModuleOptions::EModule::DATABASE ) )
                     const_cast< FormComponentPropertyHandler* >( this )->m_bHaveListSource = true;
                 break;
 
@@ -912,7 +912,7 @@ namespace pcr
                 // no cursor source if no Base is installed. #124939#
                 // This fix is not intendend to appear on the main trunk. If you find it there,
                 // please tell me! frank.schoenheit at sun.com
-                if ( SvtModuleOptions().IsModuleInstalled( SvtModuleOptions::E_SDATABASE ) )
+                if ( SvtModuleOptions().IsModuleInstalled( SvtModuleOptions::EModule::DATABASE ) )
                     const_cast< FormComponentPropertyHandler* >( this )->m_bHaveCommand = true;
                 break;
             }   // switch ( nPropId )
@@ -2286,7 +2286,7 @@ namespace pcr
         // This fix is not intendend to appear on the main trunk. If you find it there,
         // please tell me! frank.schoenheit at sun.com
         if ( ( nPropertyUIFlags & PROP_FLAG_DATA_PROPERTY ) != 0 )
-            if ( !SvtModuleOptions().IsModuleInstalled( SvtModuleOptions::E_SDATABASE ) )
+            if ( !SvtModuleOptions().IsModuleInstalled( SvtModuleOptions::EModule::DATABASE ) )
                 return true;
 
         return false;
diff --git a/framework/source/dispatch/closedispatcher.cxx b/framework/source/dispatch/closedispatcher.cxx
index 5eb206b..9548861 100644
--- a/framework/source/dispatch/closedispatcher.cxx
+++ b/framework/source/dispatch/closedispatcher.cxx
@@ -345,7 +345,7 @@ IMPL_LINK_NOARG(CloseDispatcher, impl_asyncCallback)
             {
                 if (eOperation == E_CLOSE_FRAME)
                     bTerminateApp = true;
-                else if( SvtModuleOptions().IsModuleInstalled(SvtModuleOptions::E_SSTARTMODULE) )
+                else if( SvtModuleOptions().IsModuleInstalled(SvtModuleOptions::EModule::STARTMODULE) )
                     bEstablishBackingMode = true;
                 else
                     bTerminateApp = true;
diff --git a/framework/source/dispatch/startmoduledispatcher.cxx b/framework/source/dispatch/startmoduledispatcher.cxx
index e0e1718..726802c 100644
--- a/framework/source/dispatch/startmoduledispatcher.cxx
+++ b/framework/source/dispatch/startmoduledispatcher.cxx
@@ -112,7 +112,7 @@ void SAL_CALL StartModuleDispatcher::removeStatusListener(const css::uno::Refere
 
 bool StartModuleDispatcher::implts_isBackingModePossible()
 {
-    if ( ! SvtModuleOptions().IsModuleInstalled(SvtModuleOptions::E_SSTARTMODULE))
+    if ( ! SvtModuleOptions().IsModuleInstalled(SvtModuleOptions::EModule::STARTMODULE))
         return false;
 
     css::uno::Reference< css::frame::XFramesSupplier > xDesktop(
diff --git a/framework/source/services/frame.cxx b/framework/source/services/frame.cxx
index de6fd0ba..dc6eba7 100644
--- a/framework/source/services/frame.cxx
+++ b/framework/source/services/frame.cxx
@@ -3120,7 +3120,7 @@ void Frame::impl_setCloser( /*IN*/ const css::uno::Reference< css::frame::XFrame
                             /*IN*/       bool                                   bState  )
 {
     // Note: If start module is not installed - no closer has to be shown!
-    if (!SvtModuleOptions().IsModuleInstalled(SvtModuleOptions::E_SSTARTMODULE))
+    if (!SvtModuleOptions().IsModuleInstalled(SvtModuleOptions::EModule::STARTMODULE))
         return;
 
     try
diff --git a/include/unotools/moduleoptions.hxx b/include/unotools/moduleoptions.hxx
index 9bc5e09..23e975c 100644
--- a/include/unotools/moduleoptions.hxx
+++ b/include/unotools/moduleoptions.hxx
@@ -49,19 +49,19 @@ class UNOTOOLS_DLLPUBLIC SAL_WARN_UNUSED SvtModuleOptions : public utl::detail::
 {
     public:
 
-        enum EModule
+        enum class EModule
         {
-            E_SWRITER       = 0,
-            E_SCALC         = 1,
-            E_SDRAW         = 2,
-            E_SIMPRESS      = 3,
-            E_SMATH         = 4,
-            E_SCHART        = 5,
-            E_SSTARTMODULE  = 6,
-            E_SBASIC        = 7,
-            E_SDATABASE     = 8,
-            E_SWEB          = 9,
-            E_SGLOBAL       = 10
+            WRITER       = 0,
+            CALC         = 1,
+            DRAW         = 2,
+            IMPRESS      = 3,
+            MATH         = 4,
+            CHART        = 5,
+            STARTMODULE  = 6,
+            BASIC        = 7,
+            DATABASE     = 8,
+            WEB          = 9,
+            GLOBAL       = 10
         };
 
         /*ATTENTION:
diff --git a/sc/source/ui/unoobj/docuno.cxx b/sc/source/ui/unoobj/docuno.cxx
index 07a79c6..e3ead3d 100644
--- a/sc/source/ui/unoobj/docuno.cxx
+++ b/sc/source/ui/unoobj/docuno.cxx
@@ -248,7 +248,7 @@ ScPrintUIOptions::ScPrintUIOptions()
     // create Section for spreadsheet (results in an extra tab page in dialog)
     SvtModuleOptions aOpt;
     OUString aAppGroupname( aStrings.GetString( 9 ) );
-    aAppGroupname = aAppGroupname.replaceFirst( "%s", aOpt.GetModuleName( SvtModuleOptions::E_SCALC ) );
+    aAppGroupname = aAppGroupname.replaceFirst( "%s", aOpt.GetModuleName( SvtModuleOptions::EModule::CALC ) );
     m_aUIProperties[nIdx++].Value = setGroupControlOpt("tabcontrol-page2", aAppGroupname, OUString());
 
     // show subgroup for pages
diff --git a/sc/source/ui/view/cellsh2.cxx b/sc/source/ui/view/cellsh2.cxx
index 24acddd..6e5bf88 100644
--- a/sc/source/ui/view/cellsh2.cxx
+++ b/sc/source/ui/view/cellsh2.cxx
@@ -1074,7 +1074,7 @@ void ScCellShell::GetDBState( SfxItemSet& rSet )
 
             case SID_VIEW_DATA_SOURCE_BROWSER:
                 {
-                    if (!SvtModuleOptions().IsModuleInstalled(SvtModuleOptions::E_SDATABASE))
+                    if (!SvtModuleOptions().IsModuleInstalled(SvtModuleOptions::EModule::DATABASE))
                         rSet.Put(SfxVisibilityItem(nWhich, false));
                     else
                         //  get state (BoolItem) from SfxViewFrame
diff --git a/sd/source/ui/view/DocumentRenderer.cxx b/sd/source/ui/view/DocumentRenderer.cxx
index 8802c7f..b49fffc 100644
--- a/sd/source/ui/view/DocumentRenderer.cxx
+++ b/sd/source/ui/view/DocumentRenderer.cxx
@@ -378,7 +378,7 @@ namespace {
             SvtModuleOptions aOpt;
             OUString aAppGroupname(SD_RESSTR(_STR_IMPRESS_PRINT_UI_GROUP_NAME));
             aAppGroupname = aAppGroupname.replaceFirst("%s", aOpt.GetModuleName(
-                mbImpress ? SvtModuleOptions::E_SIMPRESS : SvtModuleOptions::E_SDRAW));
+                mbImpress ? SvtModuleOptions::EModule::IMPRESS : SvtModuleOptions::EModule::DRAW));
             AddDialogControl(vcl::PrinterOptionsHelper::setGroupControlOpt("tabcontrol-page2", aAppGroupname, ".HelpID:vcl:PrintDialog:TabPage:AppPage"));
 
             uno::Sequence< OUString > aHelpIds, aWidgetIds;
diff --git a/sfx2/source/appl/appserv.cxx b/sfx2/source/appl/appserv.cxx
index 4c4db65..e9b32c5 100644
--- a/sfx2/source/appl/appserv.cxx
+++ b/sfx2/source/appl/appserv.cxx
@@ -702,7 +702,7 @@ void SfxApplication::MiscState_Impl(SfxItemSet &rSet)
             switch(nWhich)
             {
                 case SID_TEMPLATE_ADDRESSBOKSOURCE:
-                    if ( !SvtModuleOptions().IsModuleInstalled(SvtModuleOptions::E_SDATABASE) )
+                    if ( !SvtModuleOptions().IsModuleInstalled(SvtModuleOptions::EModule::DATABASE) )
                         rSet.Put(SfxVisibilityItem(nWhich, false));
                     break;
                 case SID_EXITANDRETURN:
diff --git a/sfx2/source/appl/sfxhelp.cxx b/sfx2/source/appl/sfxhelp.cxx
index 4e0e195..247e80e 100644
--- a/sfx2/source/appl/sfxhelp.cxx
+++ b/sfx2/source/appl/sfxhelp.cxx
@@ -240,21 +240,21 @@ OUString getDefaultModule_Impl()
 {
     OUString sDefaultModule;
     SvtModuleOptions aModOpt;
-    if ( aModOpt.IsModuleInstalled( SvtModuleOptions::E_SWRITER ) )
+    if ( aModOpt.IsModuleInstalled( SvtModuleOptions::EModule::WRITER ) )
         sDefaultModule = "swriter";
-    else if ( aModOpt.IsModuleInstalled( SvtModuleOptions::E_SCALC ) )
+    else if ( aModOpt.IsModuleInstalled( SvtModuleOptions::EModule::CALC ) )
         sDefaultModule = "scalc";
-    else if ( aModOpt.IsModuleInstalled( SvtModuleOptions::E_SIMPRESS ) )
+    else if ( aModOpt.IsModuleInstalled( SvtModuleOptions::EModule::IMPRESS ) )
         sDefaultModule = "simpress";
-    else if ( aModOpt.IsModuleInstalled( SvtModuleOptions::E_SDRAW ) )
+    else if ( aModOpt.IsModuleInstalled( SvtModuleOptions::EModule::DRAW ) )
         sDefaultModule = "sdraw";
-    else if ( aModOpt.IsModuleInstalled( SvtModuleOptions::E_SMATH ) )
+    else if ( aModOpt.IsModuleInstalled( SvtModuleOptions::EModule::MATH ) )
         sDefaultModule = "smath";
-    else if ( aModOpt.IsModuleInstalled( SvtModuleOptions::E_SCHART ) )
+    else if ( aModOpt.IsModuleInstalled( SvtModuleOptions::EModule::CHART ) )
         sDefaultModule = "schart";
-    else if ( aModOpt.IsModuleInstalled( SvtModuleOptions::E_SBASIC ) )
+    else if ( aModOpt.IsModuleInstalled( SvtModuleOptions::EModule::BASIC ) )
         sDefaultModule = "sbasic";
-    else if ( aModOpt.IsModuleInstalled( SvtModuleOptions::E_SDATABASE ) )
+    else if ( aModOpt.IsModuleInstalled( SvtModuleOptions::EModule::DATABASE ) )
         sDefaultModule = "sdatabase";
     else
     {
diff --git a/sfx2/source/dialog/backingwindow.cxx b/sfx2/source/dialog/backingwindow.cxx
index a22285b..ad9f98f 100644
--- a/sfx2/source/dialog/backingwindow.cxx
+++ b/sfx2/source/dialog/backingwindow.cxx
@@ -238,22 +238,22 @@ void BackingWindow::initControls()
             aFileNewAppsAvailable.insert( sURL );
     }
 
-    if (aModuleOptions.IsModuleInstalled(SvtModuleOptions::E_SWRITER))
+    if (aModuleOptions.IsModuleInstalled(SvtModuleOptions::EModule::WRITER))
         mpAllRecentThumbnails->mnFileTypes |= TYPE_WRITER;
 
-    if (aModuleOptions.IsModuleInstalled(SvtModuleOptions::E_SCALC))
+    if (aModuleOptions.IsModuleInstalled(SvtModuleOptions::EModule::CALC))
         mpAllRecentThumbnails->mnFileTypes |= TYPE_CALC;
 
-    if (aModuleOptions.IsModuleInstalled(SvtModuleOptions::E_SIMPRESS))
+    if (aModuleOptions.IsModuleInstalled(SvtModuleOptions::EModule::IMPRESS))
         mpAllRecentThumbnails->mnFileTypes |= TYPE_IMPRESS;
 
-    if (aModuleOptions.IsModuleInstalled(SvtModuleOptions::E_SDRAW))
+    if (aModuleOptions.IsModuleInstalled(SvtModuleOptions::EModule::DRAW))
         mpAllRecentThumbnails->mnFileTypes |= TYPE_DRAW;
 
-    if (aModuleOptions.IsModuleInstalled(SvtModuleOptions::E_SDATABASE))
+    if (aModuleOptions.IsModuleInstalled(SvtModuleOptions::EModule::DATABASE))
         mpAllRecentThumbnails->mnFileTypes |= TYPE_DATABASE;
 
-    if (aModuleOptions.IsModuleInstalled(SvtModuleOptions::E_SMATH))
+    if (aModuleOptions.IsModuleInstalled(SvtModuleOptions::EModule::MATH))
         mpAllRecentThumbnails->mnFileTypes |= TYPE_MATH;
 
     mpAllRecentThumbnails->mnFileTypes |= TYPE_OTHER;
diff --git a/sfx2/source/doc/templatedlg.cxx b/sfx2/source/doc/templatedlg.cxx
index fd6190d..fee3db0 100644
--- a/sfx2/source/doc/templatedlg.cxx
+++ b/sfx2/source/doc/templatedlg.cxx
@@ -863,10 +863,10 @@ void SfxTemplateManagerDlg::OnTemplateImport ()
 
     // add filters of modules which are installed
     SvtModuleOptions aModuleOpt;
-    if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SWRITER ) )
+    if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::EModule::WRITER ) )
         sFilterExt += "*.ott;*.stw;*.oth";
 
-    if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SCALC ) )
+    if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::EModule::CALC ) )
     {
         if ( !sFilterExt.isEmpty() )
             sFilterExt += ";";
@@ -874,7 +874,7 @@ void SfxTemplateManagerDlg::OnTemplateImport ()
         sFilterExt += "*.ots;*.stc";
     }
 
-    if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SIMPRESS ) )
+    if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::EModule::IMPRESS ) )
     {
         if ( !sFilterExt.isEmpty() )
             sFilterExt += ";";
@@ -882,7 +882,7 @@ void SfxTemplateManagerDlg::OnTemplateImport ()
         sFilterExt += "*.otp;*.sti";
     }
 
-    if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SDRAW ) )
+    if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::EModule::DRAW ) )
     {
         if ( !sFilterExt.isEmpty() )
             sFilterExt += ";";
diff --git a/sfx2/source/view/viewfrm.cxx b/sfx2/source/view/viewfrm.cxx
index 4f1a03a..c36076b 100644
--- a/sfx2/source/view/viewfrm.cxx
+++ b/sfx2/source/view/viewfrm.cxx
@@ -3073,7 +3073,7 @@ void SfxViewFrame::ChildWindowExecute( SfxRequest &rReq )
     SFX_REQUEST_ARG(rReq, pShowItem, SfxBoolItem, nSID, false);
     if ( nSID == SID_VIEW_DATA_SOURCE_BROWSER )
     {
-        if (!SvtModuleOptions().IsModuleInstalled(SvtModuleOptions::E_SDATABASE))
+        if (!SvtModuleOptions().IsModuleInstalled(SvtModuleOptions::EModule::DATABASE))
             return;
         Reference < XFrame > xFrame = GetFrame().GetTopFrame().GetFrameInterface();
         Reference < XFrame > xBeamer( xFrame->findFrame( "_beamer", FrameSearchFlag::CHILDREN ) );
diff --git a/starmath/source/unomodel.cxx b/starmath/source/unomodel.cxx
index b8c4ad0..4ade3f8 100644
--- a/starmath/source/unomodel.cxx
+++ b/starmath/source/unomodel.cxx
@@ -85,7 +85,7 @@ SmPrintUIOptions::SmPrintUIOptions()
     SvtModuleOptions aOpt;
     OUString aAppGroupname(
         aLocalizedStrings.GetString( 0 ).
-            replaceFirst( "%s", aOpt.GetModuleName( SvtModuleOptions::E_SMATH ) ) );
+            replaceFirst( "%s", aOpt.GetModuleName( SvtModuleOptions::EModule::MATH ) ) );
     m_aUIProperties[nIdx++].Value = setGroupControlOpt("tabcontrol-page2", aAppGroupname, ".HelpID:vcl:PrintDialog:TabPage:AppPage");
 
     // create subgroup for print options
diff --git a/svx/source/form/fmshell.cxx b/svx/source/form/fmshell.cxx
index bdec9ce..fa95fc6 100644
--- a/svx/source/form/fmshell.cxx
+++ b/svx/source/form/fmshell.cxx
@@ -847,7 +847,7 @@ void FmFormShell::GetState(SfxItemSet &rSet)
                 break;
 
             case SID_FM_USE_WIZARDS:
-                if  ( !SvtModuleOptions().IsModuleInstalled( SvtModuleOptions::E_SDATABASE ) )
+                if  ( !SvtModuleOptions().IsModuleInstalled( SvtModuleOptions::EModule::DATABASE ) )
                     rSet.Put( SfxVisibilityItem( nWhich, false ) );
                 else if (!GetFormModel())
                     rSet.DisableItem( nWhich );
@@ -869,7 +869,7 @@ void FmFormShell::GetState(SfxItemSet &rSet)
 
             case SID_FM_NAVIGATIONBAR:
             case SID_FM_DBGRID:
-                if ( !SvtModuleOptions().IsModuleInstalled( SvtModuleOptions::E_SDATABASE ) )
+                if ( !SvtModuleOptions().IsModuleInstalled( SvtModuleOptions::EModule::DATABASE ) )
                 {
                     rSet.Put( SfxVisibilityItem( nWhich, false ) );
                     break;
diff --git a/svx/source/form/fmvwimp.cxx b/svx/source/form/fmvwimp.cxx
index e6f7557..c900752 100644
--- a/svx/source/form/fmvwimp.cxx
+++ b/svx/source/form/fmvwimp.cxx
@@ -997,7 +997,7 @@ void FmXFormView::onCreatedFormObject( FmFormObj& _rFormObject )
 
     // #i46898# no wizards if there is no Base installed - currently, all wizards are
     // database related
-    if ( !SvtModuleOptions().IsModuleInstalled( SvtModuleOptions::E_SDATABASE ) )
+    if ( !SvtModuleOptions().IsModuleInstalled( SvtModuleOptions::EModule::DATABASE ) )
         return;
 
     if ( m_nControlWizardEvent )
diff --git a/sw/source/core/view/printdata.cxx b/sw/source/core/view/printdata.cxx
index 2e50e90..f0c11fe 100644
--- a/sw/source/core/view/printdata.cxx
+++ b/sw/source/core/view/printdata.cxx
@@ -193,7 +193,7 @@ SwPrintUIOptions::SwPrintUIOptions(
     // create "writer" section (new tab page in dialog)
     SvtModuleOptions aModOpt;
     OUString aAppGroupname( aLocalizedStrings.GetString( 0 ) );
-    aAppGroupname = aAppGroupname.replaceFirst( "%s", aModOpt.GetModuleName( SvtModuleOptions::E_SWRITER ) );
+    aAppGroupname = aAppGroupname.replaceFirst( "%s", aModOpt.GetModuleName( SvtModuleOptions::EModule::WRITER ) );
     m_aUIProperties[ nIdx++ ].Value = setGroupControlOpt("tabcontrol-page2", aAppGroupname, ".HelpID:vcl:PrintDialog:TabPage:AppPage");
 
     // create sub section for Contents
diff --git a/sw/source/uibase/uiview/viewstat.cxx b/sw/source/uibase/uiview/viewstat.cxx
index d55975b..b2aafe0 100644
--- a/sw/source/uibase/uiview/viewstat.cxx
+++ b/sw/source/uibase/uiview/viewstat.cxx
@@ -395,7 +395,7 @@ void SwView::GetState(SfxItemSet &rSet)
                     rSet.DisableItem(nWhich);
             break;
             case  SID_VIEW_DATA_SOURCE_BROWSER:
-                if ( !SvtModuleOptions().IsModuleInstalled( SvtModuleOptions::E_SDATABASE ) )
+                if ( !SvtModuleOptions().IsModuleInstalled( SvtModuleOptions::EModule::DATABASE ) )
                     rSet.Put( SfxVisibilityItem( nWhich, false ) );
                 else
                     rSet.Put( SfxBoolItem( nWhich, GetViewFrame()->HasChildWindow( SID_BROWSER ) ) );
diff --git a/unotools/source/config/moduleoptions.cxx b/unotools/source/config/moduleoptions.cxx
index 1102310..b646e3e 100644
--- a/unotools/source/config/moduleoptions.cxx
+++ b/unotools/source/config/moduleoptions.cxx
@@ -447,27 +447,27 @@ bool SvtModuleOptions_Impl::IsModuleInstalled( SvtModuleOptions::EModule eModule
     bool bInstalled = false;
     switch( eModule )
     {
-        case SvtModuleOptions::E_SWRITER    :   bInstalled = m_lFactories[SvtModuleOptions::EFactory::WRITER].getInstalled();
+        case SvtModuleOptions::EModule::WRITER    :   bInstalled = m_lFactories[SvtModuleOptions::EFactory::WRITER].getInstalled();
                                                 break;
-        case SvtModuleOptions::E_SWEB       :   bInstalled = m_lFactories[SvtModuleOptions::EFactory::WRITERWEB].getInstalled();
+        case SvtModuleOptions::EModule::WEB       :   bInstalled = m_lFactories[SvtModuleOptions::EFactory::WRITERWEB].getInstalled();
                                                 break;
-        case SvtModuleOptions::E_SGLOBAL    :   bInstalled = m_lFactories[SvtModuleOptions::EFactory::WRITERGLOBAL].getInstalled();
+        case SvtModuleOptions::EModule::GLOBAL    :   bInstalled = m_lFactories[SvtModuleOptions::EFactory::WRITERGLOBAL].getInstalled();
                                                 break;
-        case SvtModuleOptions::E_SCALC      :   bInstalled = m_lFactories[SvtModuleOptions::EFactory::CALC].getInstalled();
+        case SvtModuleOptions::EModule::CALC      :   bInstalled = m_lFactories[SvtModuleOptions::EFactory::CALC].getInstalled();
                                                 break;
-        case SvtModuleOptions::E_SDRAW      :   bInstalled = m_lFactories[SvtModuleOptions::EFactory::DRAW].getInstalled();
+        case SvtModuleOptions::EModule::DRAW      :   bInstalled = m_lFactories[SvtModuleOptions::EFactory::DRAW].getInstalled();
                                                 break;
-        case SvtModuleOptions::E_SIMPRESS   :   bInstalled = m_lFactories[SvtModuleOptions::EFactory::IMPRESS].getInstalled();
+        case SvtModuleOptions::EModule::IMPRESS   :   bInstalled = m_lFactories[SvtModuleOptions::EFactory::IMPRESS].getInstalled();
                                                 break;
-        case SvtModuleOptions::E_SMATH      :   bInstalled = m_lFactories[SvtModuleOptions::EFactory::MATH].getInstalled();
+        case SvtModuleOptions::EModule::MATH      :   bInstalled = m_lFactories[SvtModuleOptions::EFactory::MATH].getInstalled();
                                                 break;
-        case SvtModuleOptions::E_SCHART     :   bInstalled = m_lFactories[SvtModuleOptions::EFactory::CHART].getInstalled();
+        case SvtModuleOptions::EModule::CHART     :   bInstalled = m_lFactories[SvtModuleOptions::EFactory::CHART].getInstalled();
                                                 break;
-        case SvtModuleOptions::E_SSTARTMODULE : bInstalled = m_lFactories[SvtModuleOptions::EFactory::STARTMODULE].getInstalled();
+        case SvtModuleOptions::EModule::STARTMODULE : bInstalled = m_lFactories[SvtModuleOptions::EFactory::STARTMODULE].getInstalled();
                                                 break;
-        case SvtModuleOptions::E_SBASIC     :   bInstalled = true; // Couldn't be deselected by setup yet!
+        case SvtModuleOptions::EModule::BASIC     :   bInstalled = true; // Couldn't be deselected by setup yet!
                                                 break;
-        case SvtModuleOptions::E_SDATABASE  :   bInstalled = m_lFactories[SvtModuleOptions::EFactory::DATABASE].getInstalled();
+        case SvtModuleOptions::EModule::DATABASE  :   bInstalled = m_lFactories[SvtModuleOptions::EFactory::DATABASE].getInstalled();
                                                 break;
     }
 
@@ -711,7 +711,7 @@ bool SvtModuleOptions_Impl::ClassifyFactoryByName( const OUString& sName, SvtMod
     // no else!
     if( !bState )
     {
-        eFactory = SvtModuleOptions::E_BASIC;
+        eFactory = SvtModuleOptions::EFactory::BASIC;
         bState   = ( sName == FACTORYNAME_BASIC);
     }
 
@@ -937,43 +937,43 @@ void SvtModuleOptions::SetFactoryDefaultFilter(       EFactory         eFactory,
 bool SvtModuleOptions::IsMath() const
 {
     ::osl::MutexGuard aGuard( impl_GetOwnStaticMutex() );
-    return m_pDataContainer->IsModuleInstalled( E_SMATH );
+    return m_pDataContainer->IsModuleInstalled( EModule::MATH );
 }
 
 bool SvtModuleOptions::IsChart() const
 {
     ::osl::MutexGuard aGuard( impl_GetOwnStaticMutex() );
-    return m_pDataContainer->IsModuleInstalled( E_SCHART );
+    return m_pDataContainer->IsModuleInstalled( EModule::CHART );
 }
 
 bool SvtModuleOptions::IsCalc() const
 {
     ::osl::MutexGuard aGuard( impl_GetOwnStaticMutex() );
-    return m_pDataContainer->IsModuleInstalled( E_SCALC );
+    return m_pDataContainer->IsModuleInstalled( EModule::CALC );
 }
 
 bool SvtModuleOptions::IsDraw() const
 {
     ::osl::MutexGuard aGuard( impl_GetOwnStaticMutex() );
-    return m_pDataContainer->IsModuleInstalled( E_SDRAW );
+    return m_pDataContainer->IsModuleInstalled( EModule::DRAW );
 }
 
 bool SvtModuleOptions::IsWriter() const
 {
     ::osl::MutexGuard aGuard( impl_GetOwnStaticMutex() );
-    return m_pDataContainer->IsModuleInstalled( E_SWRITER );
+    return m_pDataContainer->IsModuleInstalled( EModule::WRITER );
 }
 
 bool SvtModuleOptions::IsImpress() const
 {
     ::osl::MutexGuard aGuard( impl_GetOwnStaticMutex() );
-    return m_pDataContainer->IsModuleInstalled( E_SIMPRESS );
+    return m_pDataContainer->IsModuleInstalled( EModule::IMPRESS );
 }
 
 bool SvtModuleOptions::IsDataBase() const
 {
     ::osl::MutexGuard aGuard( impl_GetOwnStaticMutex() );
-    return m_pDataContainer->IsModuleInstalled( E_SDATABASE );
+    return m_pDataContainer->IsModuleInstalled( EModule::DATABASE );
 }
 
 namespace
@@ -997,16 +997,16 @@ OUString SvtModuleOptions::GetModuleName( EModule eModule ) const
 {
     switch( eModule )
     {
-        case SvtModuleOptions::E_SWRITER    :   { return OUString("Writer"); }
-        case SvtModuleOptions::E_SWEB       :   { return OUString("Web"); }
-        case SvtModuleOptions::E_SGLOBAL    :   { return OUString("Global"); }
-        case SvtModuleOptions::E_SCALC      :   { return OUString("Calc"); }
-        case SvtModuleOptions::E_SDRAW      :   { return OUString("Draw"); }
-        case SvtModuleOptions::E_SIMPRESS   :   { return OUString("Impress"); }
-        case SvtModuleOptions::E_SMATH      :   { return OUString("Math"); }
-        case SvtModuleOptions::E_SCHART     :   { return OUString("Chart"); }
-        case SvtModuleOptions::E_SBASIC     :   { return OUString("Basic"); }
-        case SvtModuleOptions::E_SDATABASE  :   { return OUString("Database"); }
+        case SvtModuleOptions::EModule::WRITER    :   { return OUString("Writer"); }
+        case SvtModuleOptions::EModule::WEB       :   { return OUString("Web"); }
+        case SvtModuleOptions::EModule::GLOBAL    :   { return OUString("Global"); }
+        case SvtModuleOptions::EModule::CALC      :   { return OUString("Calc"); }
+        case SvtModuleOptions::EModule::DRAW      :   { return OUString("Draw"); }
+        case SvtModuleOptions::EModule::IMPRESS   :   { return OUString("Impress"); }
+        case SvtModuleOptions::EModule::MATH      :   { return OUString("Math"); }
+        case SvtModuleOptions::EModule::CHART     :   { return OUString("Chart"); }
+        case SvtModuleOptions::EModule::BASIC     :   { return OUString("Basic"); }
+        case SvtModuleOptions::EModule::DATABASE  :   { return OUString("Database"); }
         default:
             OSL_FAIL( "unknown module" );
             break;
@@ -1172,21 +1172,21 @@ SvtModuleOptions::EFactory SvtModuleOptions::ClassifyFactoryByModel(const css::u
 OUString SvtModuleOptions::GetDefaultModuleName()
 {
     OUString aModule;
-    if (m_pDataContainer->IsModuleInstalled(SvtModuleOptions::E_SWRITER))
+    if (m_pDataContainer->IsModuleInstalled(SvtModuleOptions::EModule::WRITER))
         aModule = GetFactoryShortName(SvtModuleOptions::EFactory::WRITER);
-    else if (m_pDataContainer->IsModuleInstalled(SvtModuleOptions::E_SCALC))
+    else if (m_pDataContainer->IsModuleInstalled(SvtModuleOptions::EModule::CALC))
         aModule = GetFactoryShortName(SvtModuleOptions::EFactory::CALC);
-    else if (m_pDataContainer->IsModuleInstalled(SvtModuleOptions::E_SIMPRESS))
+    else if (m_pDataContainer->IsModuleInstalled(SvtModuleOptions::EModule::IMPRESS))
         aModule = GetFactoryShortName(SvtModuleOptions::EFactory::IMPRESS);
-    else if (m_pDataContainer->IsModuleInstalled(SvtModuleOptions::E_SDATABASE))
+    else if (m_pDataContainer->IsModuleInstalled(SvtModuleOptions::EModule::DATABASE))
         aModule = GetFactoryShortName(SvtModuleOptions::EFactory::DATABASE);
-    else if (m_pDataContainer->IsModuleInstalled(SvtModuleOptions::E_SDRAW))
+    else if (m_pDataContainer->IsModuleInstalled(SvtModuleOptions::EModule::DRAW))
         aModule = GetFactoryShortName(SvtModuleOptions::EFactory::DRAW);
-    else if (m_pDataContainer->IsModuleInstalled(SvtModuleOptions::E_SWEB))
+    else if (m_pDataContainer->IsModuleInstalled(SvtModuleOptions::EModule::WEB))
         aModule = GetFactoryShortName(SvtModuleOptions::EFactory::WRITERWEB);
-    else if (m_pDataContainer->IsModuleInstalled(SvtModuleOptions::E_SGLOBAL))
+    else if (m_pDataContainer->IsModuleInstalled(SvtModuleOptions::EModule::GLOBAL))
         aModule = GetFactoryShortName(SvtModuleOptions::EFactory::WRITERGLOBAL);
-    else if (m_pDataContainer->IsModuleInstalled(SvtModuleOptions::E_SMATH))
+    else if (m_pDataContainer->IsModuleInstalled(SvtModuleOptions::EModule::MATH))
         aModule = GetFactoryShortName(SvtModuleOptions::EFactory::MATH);
     return aModule;
 }
commit 4906c243877681b4559b495c1dfb4dbf8c51cfb8
Author: Noel Grandin <noel at peralex.com>
Date:   Thu Apr 2 10:28:17 2015 +0200

    convert SvtModuleOptions::EFactory to enum class
    
    and fix issues in iterating through o3tl::enumarray
    
    Change-Id: Ia59ef9be44d8c92c2e406fa71aa92269578e26e3

diff --git a/cui/source/options/optsave.cxx b/cui/source/options/optsave.cxx
index 2767ef9..da95054 100644
--- a/cui/source/options/optsave.cxx
+++ b/cui/source/options/optsave.cxx
@@ -130,8 +130,8 @@ SfxSaveTabPage::SfxSaveTabPage( vcl::Window* pParent, const SfxItemSet& rCoreSet
     }
     else
     {
-        pImpl->aDefaultArr[APP_MATH] = aModuleOpt.GetFactoryDefaultFilter(SvtModuleOptions::E_MATH);
-        pImpl->aDefaultReadonlyArr[APP_MATH] = aModuleOpt.IsDefaultFilterReadonly(SvtModuleOptions::E_MATH);
+        pImpl->aDefaultArr[APP_MATH] = aModuleOpt.GetFactoryDefaultFilter(SvtModuleOptions::EFactory::MATH);
+        pImpl->aDefaultReadonlyArr[APP_MATH] = aModuleOpt.IsDefaultFilterReadonly(SvtModuleOptions::EFactory::MATH);
     }
 
     if ( !aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SDRAW ) )
@@ -141,8 +141,8 @@ SfxSaveTabPage::SfxSaveTabPage( vcl::Window* pParent, const SfxItemSet& rCoreSet
     }
     else
     {
-        pImpl->aDefaultArr[APP_DRAW] = aModuleOpt.GetFactoryDefaultFilter(SvtModuleOptions::E_DRAW);
-        pImpl->aDefaultReadonlyArr[APP_DRAW] = aModuleOpt.IsDefaultFilterReadonly(SvtModuleOptions::E_DRAW);
+        pImpl->aDefaultArr[APP_DRAW] = aModuleOpt.GetFactoryDefaultFilter(SvtModuleOptions::EFactory::DRAW);
+        pImpl->aDefaultReadonlyArr[APP_DRAW] = aModuleOpt.IsDefaultFilterReadonly(SvtModuleOptions::EFactory::DRAW);
     }
 
     if ( !aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SIMPRESS ) )
@@ -152,8 +152,8 @@ SfxSaveTabPage::SfxSaveTabPage( vcl::Window* pParent, const SfxItemSet& rCoreSet
     }
     else
     {
-        pImpl->aDefaultArr[APP_IMPRESS] = aModuleOpt.GetFactoryDefaultFilter(SvtModuleOptions::E_IMPRESS);
-        pImpl->aDefaultReadonlyArr[APP_IMPRESS] = aModuleOpt.IsDefaultFilterReadonly(SvtModuleOptions::E_IMPRESS);
+        pImpl->aDefaultArr[APP_IMPRESS] = aModuleOpt.GetFactoryDefaultFilter(SvtModuleOptions::EFactory::IMPRESS);
+        pImpl->aDefaultReadonlyArr[APP_IMPRESS] = aModuleOpt.IsDefaultFilterReadonly(SvtModuleOptions::EFactory::IMPRESS);
     }
 
     if ( !aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SCALC ) )
@@ -163,8 +163,8 @@ SfxSaveTabPage::SfxSaveTabPage( vcl::Window* pParent, const SfxItemSet& rCoreSet
     }
     else
     {
-        pImpl->aDefaultArr[APP_CALC] = aModuleOpt.GetFactoryDefaultFilter(SvtModuleOptions::E_CALC);
-        pImpl->aDefaultReadonlyArr[APP_CALC] = aModuleOpt.IsDefaultFilterReadonly(SvtModuleOptions::E_CALC);
+        pImpl->aDefaultArr[APP_CALC] = aModuleOpt.GetFactoryDefaultFilter(SvtModuleOptions::EFactory::CALC);
+        pImpl->aDefaultReadonlyArr[APP_CALC] = aModuleOpt.IsDefaultFilterReadonly(SvtModuleOptions::EFactory::CALC);
     }
 
     if ( !aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SWRITER ) )
@@ -178,12 +178,12 @@ SfxSaveTabPage::SfxSaveTabPage( vcl::Window* pParent, const SfxItemSet& rCoreSet
     }
     else
     {
-        pImpl->aDefaultArr[APP_WRITER] = aModuleOpt.GetFactoryDefaultFilter(SvtModuleOptions::E_WRITER);
-        pImpl->aDefaultArr[APP_WRITER_WEB] = aModuleOpt.GetFactoryDefaultFilter(SvtModuleOptions::E_WRITERWEB);
-        pImpl->aDefaultArr[APP_WRITER_GLOBAL] = aModuleOpt.GetFactoryDefaultFilter(SvtModuleOptions::E_WRITERGLOBAL);
-        pImpl->aDefaultReadonlyArr[APP_WRITER] = aModuleOpt.IsDefaultFilterReadonly(SvtModuleOptions::E_WRITER);
-        pImpl->aDefaultReadonlyArr[APP_WRITER_WEB] = aModuleOpt.IsDefaultFilterReadonly(SvtModuleOptions::E_WRITERWEB);
-        pImpl->aDefaultReadonlyArr[APP_WRITER_GLOBAL] = aModuleOpt.IsDefaultFilterReadonly(SvtModuleOptions::E_WRITERGLOBAL);
+        pImpl->aDefaultArr[APP_WRITER] = aModuleOpt.GetFactoryDefaultFilter(SvtModuleOptions::EFactory::WRITER);
+        pImpl->aDefaultArr[APP_WRITER_WEB] = aModuleOpt.GetFactoryDefaultFilter(SvtModuleOptions::EFactory::WRITERWEB);
+        pImpl->aDefaultArr[APP_WRITER_GLOBAL] = aModuleOpt.GetFactoryDefaultFilter(SvtModuleOptions::EFactory::WRITERGLOBAL);
+        pImpl->aDefaultReadonlyArr[APP_WRITER] = aModuleOpt.IsDefaultFilterReadonly(SvtModuleOptions::EFactory::WRITER);
+        pImpl->aDefaultReadonlyArr[APP_WRITER_WEB] = aModuleOpt.IsDefaultFilterReadonly(SvtModuleOptions::EFactory::WRITERWEB);
+        pImpl->aDefaultReadonlyArr[APP_WRITER_GLOBAL] = aModuleOpt.IsDefaultFilterReadonly(SvtModuleOptions::EFactory::WRITERGLOBAL);
     }
 
     aLink = LINK( this, SfxSaveTabPage, ODFVersionHdl_Impl );
@@ -312,32 +312,32 @@ bool SfxSaveTabPage::FillItemSet( SfxItemSet* rSet )
 
     SvtModuleOptions aModuleOpt;
     if(!pImpl->aDefaultArr[APP_MATH].isEmpty() &&
-            pImpl->aDefaultArr[APP_MATH] != aModuleOpt.GetFactoryDefaultFilter(SvtModuleOptions::E_MATH))
-        aModuleOpt.SetFactoryDefaultFilter(SvtModuleOptions::E_MATH, pImpl->aDefaultArr[APP_MATH]);
+            pImpl->aDefaultArr[APP_MATH] != aModuleOpt.GetFactoryDefaultFilter(SvtModuleOptions::EFactory::MATH))
+        aModuleOpt.SetFactoryDefaultFilter(SvtModuleOptions::EFactory::MATH, pImpl->aDefaultArr[APP_MATH]);
 
     if( !pImpl->aDefaultArr[APP_DRAW].isEmpty() &&
-            pImpl->aDefaultArr[APP_DRAW] != aModuleOpt.GetFactoryDefaultFilter(SvtModuleOptions::E_DRAW))
-            aModuleOpt.SetFactoryDefaultFilter(SvtModuleOptions::E_DRAW, pImpl->aDefaultArr[APP_DRAW]);
+            pImpl->aDefaultArr[APP_DRAW] != aModuleOpt.GetFactoryDefaultFilter(SvtModuleOptions::EFactory::DRAW))
+            aModuleOpt.SetFactoryDefaultFilter(SvtModuleOptions::EFactory::DRAW, pImpl->aDefaultArr[APP_DRAW]);
 
     if(!pImpl->aDefaultArr[APP_IMPRESS].isEmpty() &&
-            pImpl->aDefaultArr[APP_IMPRESS] != aModuleOpt.GetFactoryDefaultFilter(SvtModuleOptions::E_IMPRESS))
-        aModuleOpt.SetFactoryDefaultFilter(SvtModuleOptions::E_IMPRESS, pImpl->aDefaultArr[APP_IMPRESS]);
+            pImpl->aDefaultArr[APP_IMPRESS] != aModuleOpt.GetFactoryDefaultFilter(SvtModuleOptions::EFactory::IMPRESS))
+        aModuleOpt.SetFactoryDefaultFilter(SvtModuleOptions::EFactory::IMPRESS, pImpl->aDefaultArr[APP_IMPRESS]);
 
     if(!pImpl->aDefaultArr[APP_CALC].isEmpty() &&
-            pImpl->aDefaultArr[APP_CALC] != aModuleOpt.GetFactoryDefaultFilter(SvtModuleOptions::E_CALC))
-        aModuleOpt.SetFactoryDefaultFilter(SvtModuleOptions::E_CALC, pImpl->aDefaultArr[APP_CALC]);
+            pImpl->aDefaultArr[APP_CALC] != aModuleOpt.GetFactoryDefaultFilter(SvtModuleOptions::EFactory::CALC))
+        aModuleOpt.SetFactoryDefaultFilter(SvtModuleOptions::EFactory::CALC, pImpl->aDefaultArr[APP_CALC]);
 
     if(!pImpl->aDefaultArr[APP_WRITER].isEmpty() &&
-            pImpl->aDefaultArr[APP_WRITER] != aModuleOpt.GetFactoryDefaultFilter(SvtModuleOptions::E_WRITER))
-        aModuleOpt.SetFactoryDefaultFilter(SvtModuleOptions::E_WRITER, pImpl->aDefaultArr[APP_WRITER]);
+            pImpl->aDefaultArr[APP_WRITER] != aModuleOpt.GetFactoryDefaultFilter(SvtModuleOptions::EFactory::WRITER))
+        aModuleOpt.SetFactoryDefaultFilter(SvtModuleOptions::EFactory::WRITER, pImpl->aDefaultArr[APP_WRITER]);
 
     if(!pImpl->aDefaultArr[APP_WRITER_WEB].isEmpty() &&
-            pImpl->aDefaultArr[APP_WRITER_WEB] != aModuleOpt.GetFactoryDefaultFilter(SvtModuleOptions::E_WRITERWEB))
-        aModuleOpt.SetFactoryDefaultFilter(SvtModuleOptions::E_WRITERWEB, pImpl->aDefaultArr[APP_WRITER_WEB]);
+            pImpl->aDefaultArr[APP_WRITER_WEB] != aModuleOpt.GetFactoryDefaultFilter(SvtModuleOptions::EFactory::WRITERWEB))
+        aModuleOpt.SetFactoryDefaultFilter(SvtModuleOptions::EFactory::WRITERWEB, pImpl->aDefaultArr[APP_WRITER_WEB]);
 
     if(!pImpl->aDefaultArr[APP_WRITER_GLOBAL].isEmpty() &&
-            pImpl->aDefaultArr[APP_WRITER_GLOBAL] != aModuleOpt.GetFactoryDefaultFilter(SvtModuleOptions::E_WRITERGLOBAL))
-        aModuleOpt.SetFactoryDefaultFilter(SvtModuleOptions::E_WRITERGLOBAL, pImpl->aDefaultArr[APP_WRITER_GLOBAL]);
+            pImpl->aDefaultArr[APP_WRITER_GLOBAL] != aModuleOpt.GetFactoryDefaultFilter(SvtModuleOptions::EFactory::WRITERGLOBAL))
+        aModuleOpt.SetFactoryDefaultFilter(SvtModuleOptions::EFactory::WRITERGLOBAL, pImpl->aDefaultArr[APP_WRITER_GLOBAL]);
 
     return bModified;
 }
diff --git a/dbaccess/source/filter/xml/dbloader2.cxx b/dbaccess/source/filter/xml/dbloader2.cxx
index c457334..5714649 100644
--- a/dbaccess/source/filter/xml/dbloader2.cxx
+++ b/dbaccess/source/filter/xml/dbloader2.cxx
@@ -421,7 +421,7 @@ void SAL_CALL DBContentLoader::load(const Reference< XFrame > & rFrame, const OU
     {
         Reference< XDatabaseContext > xDatabaseContext( DatabaseContext::create(m_aContext) );
 
-        OUString sFactoryName = SvtModuleOptions().GetFactoryEmptyDocumentURL(SvtModuleOptions::E_DATABASE);
+        OUString sFactoryName = SvtModuleOptions().GetFactoryEmptyDocumentURL(SvtModuleOptions::EFactory::DATABASE);
         bCreateNew = sFactoryName.match(_rURL);
 
         Reference< XDocumentDataSource > xDocumentDataSource;
diff --git a/dbaccess/source/ui/dlg/ConnectionHelper.cxx b/dbaccess/source/ui/dlg/ConnectionHelper.cxx
index 5d8f1e2..a02b5d6 100644
--- a/dbaccess/source/ui/dlg/ConnectionHelper.cxx
+++ b/dbaccess/source/ui/dlg/ConnectionHelper.cxx
@@ -220,7 +220,7 @@ namespace dbaui
                 ::sfx2::FileDialogHelper aFileDlg(
                     ui::dialogs::TemplateDescription::FILEOPEN_READONLY_VERSION,
                     0,
-                    aModule.GetFactoryEmptyDocumentURL(SvtModuleOptions::E_CALC)
+                    aModule.GetFactoryEmptyDocumentURL(SvtModuleOptions::EFactory::CALC)
                     ,SfxFilterFlags::IMPORT);
                 askForFileName(aFileDlg);
             }
diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx
index bb352e2..f85026e 100644
--- a/desktop/source/app/app.cxx
+++ b/desktop/source/app/app.cxx
@@ -2336,13 +2336,13 @@ void Desktop::OpenClients()
 
             // Support command line parameters to start a module (as preselection)
             if ( rArgs.IsWriter() && aOpt.IsModuleInstalled( SvtModuleOptions::E_SWRITER ) )
-                aRequest.aModule = aOpt.GetFactoryName( SvtModuleOptions::E_WRITER );
+                aRequest.aModule = aOpt.GetFactoryName( SvtModuleOptions::EFactory::WRITER );
             else if ( rArgs.IsCalc() && aOpt.IsModuleInstalled( SvtModuleOptions::E_SCALC ) )
-                aRequest.aModule = aOpt.GetFactoryName( SvtModuleOptions::E_CALC );
+                aRequest.aModule = aOpt.GetFactoryName( SvtModuleOptions::EFactory::CALC );
             else if ( rArgs.IsImpress() && aOpt.IsModuleInstalled( SvtModuleOptions::E_SIMPRESS ) )
-                aRequest.aModule= aOpt.GetFactoryName( SvtModuleOptions::E_IMPRESS );
+                aRequest.aModule= aOpt.GetFactoryName( SvtModuleOptions::EFactory::IMPRESS );
             else if ( rArgs.IsDraw() && aOpt.IsModuleInstalled( SvtModuleOptions::E_SDRAW ) )
-                aRequest.aModule= aOpt.GetFactoryName( SvtModuleOptions::E_DRAW );
+                aRequest.aModule= aOpt.GetFactoryName( SvtModuleOptions::EFactory::DRAW );
         }
 
         // check for printing disabled
@@ -2398,36 +2398,36 @@ void Desktop::OpenDefault()
     {
         // Support new command line parameters to start a module
         if ( rArgs.IsWriter() && aOpt.IsModuleInstalled( SvtModuleOptions::E_SWRITER ) )
-            aName = aOpt.GetFactoryEmptyDocumentURL( SvtModuleOptions::E_WRITER );
+            aName = aOpt.GetFactoryEmptyDocumentURL( SvtModuleOptions::EFactory::WRITER );
         else if ( rArgs.IsCalc() && aOpt.IsModuleInstalled( SvtModuleOptions::E_SCALC ) )
-            aName = aOpt.GetFactoryEmptyDocumentURL( SvtModuleOptions::E_CALC );
+            aName = aOpt.GetFactoryEmptyDocumentURL( SvtModuleOptions::EFactory::CALC );
         else if ( rArgs.IsImpress() && aOpt.IsModuleInstalled( SvtModuleOptions::E_SIMPRESS ) )
-            aName = aOpt.GetFactoryEmptyDocumentURL( SvtModuleOptions::E_IMPRESS );
+            aName = aOpt.GetFactoryEmptyDocumentURL( SvtModuleOptions::EFactory::IMPRESS );
         else if ( rArgs.IsBase() && aOpt.IsModuleInstalled( SvtModuleOptions::E_SDATABASE ) )
-            aName = aOpt.GetFactoryEmptyDocumentURL( SvtModuleOptions::E_DATABASE );
+            aName = aOpt.GetFactoryEmptyDocumentURL( SvtModuleOptions::EFactory::DATABASE );
         else if ( rArgs.IsDraw() && aOpt.IsModuleInstalled( SvtModuleOptions::E_SDRAW ) )
-            aName = aOpt.GetFactoryEmptyDocumentURL( SvtModuleOptions::E_DRAW );
+            aName = aOpt.GetFactoryEmptyDocumentURL( SvtModuleOptions::EFactory::DRAW );
         else if ( rArgs.IsMath() && aOpt.IsModuleInstalled( SvtModuleOptions::E_SMATH ) )
-            aName = aOpt.GetFactoryEmptyDocumentURL( SvtModuleOptions::E_MATH );
+            aName = aOpt.GetFactoryEmptyDocumentURL( SvtModuleOptions::EFactory::MATH );
         else if ( rArgs.IsGlobal() && aOpt.IsModuleInstalled( SvtModuleOptions::E_SWRITER ) )
-            aName = aOpt.GetFactoryEmptyDocumentURL( SvtModuleOptions::E_WRITERGLOBAL );
+            aName = aOpt.GetFactoryEmptyDocumentURL( SvtModuleOptions::EFactory::WRITERGLOBAL );
         else if ( rArgs.IsWeb() && aOpt.IsModuleInstalled( SvtModuleOptions::E_SWRITER ) )
-            aName = aOpt.GetFactoryEmptyDocumentURL( SvtModuleOptions::E_WRITERWEB );
+            aName = aOpt.GetFactoryEmptyDocumentURL( SvtModuleOptions::EFactory::WRITERWEB );
     }
 
     if ( aName.isEmpty() )
     {
         // Old way to create a default document
         if ( aOpt.IsModuleInstalled( SvtModuleOptions::E_SWRITER ) )
-            aName = aOpt.GetFactoryEmptyDocumentURL( SvtModuleOptions::E_WRITER );
+            aName = aOpt.GetFactoryEmptyDocumentURL( SvtModuleOptions::EFactory::WRITER );
         else if ( aOpt.IsModuleInstalled( SvtModuleOptions::E_SCALC ) )
-            aName = aOpt.GetFactoryEmptyDocumentURL( SvtModuleOptions::E_CALC );
+            aName = aOpt.GetFactoryEmptyDocumentURL( SvtModuleOptions::EFactory::CALC );
         else if ( aOpt.IsModuleInstalled( SvtModuleOptions::E_SIMPRESS ) )
-            aName = aOpt.GetFactoryEmptyDocumentURL( SvtModuleOptions::E_IMPRESS );
+            aName = aOpt.GetFactoryEmptyDocumentURL( SvtModuleOptions::EFactory::IMPRESS );
         else if ( aOpt.IsModuleInstalled( SvtModuleOptions::E_SDATABASE ) )
-            aName = aOpt.GetFactoryEmptyDocumentURL( SvtModuleOptions::E_DATABASE );
+            aName = aOpt.GetFactoryEmptyDocumentURL( SvtModuleOptions::EFactory::DATABASE );
         else if ( aOpt.IsModuleInstalled( SvtModuleOptions::E_SDRAW ) )
-            aName = aOpt.GetFactoryEmptyDocumentURL( SvtModuleOptions::E_DRAW );
+            aName = aOpt.GetFactoryEmptyDocumentURL( SvtModuleOptions::EFactory::DRAW );
         else
             return;
     }
diff --git a/desktop/source/app/officeipcthread.cxx b/desktop/source/app/officeipcthread.cxx
index d148b8a..083172c 100644
--- a/desktop/source/app/officeipcthread.cxx
+++ b/desktop/source/app/officeipcthread.cxx
@@ -852,23 +852,23 @@ void OfficeIPCThread::execute()
                     if ( aCmdLineArgs->HasModuleParam() && !bDocRequestSent )
                     {
                         SvtModuleOptions aOpt;
-                        SvtModuleOptions::EFactory eFactory = SvtModuleOptions::E_WRITER;
+                        SvtModuleOptions::EFactory eFactory = SvtModuleOptions::EFactory::WRITER;
                         if ( aCmdLineArgs->IsWriter() )
-                            eFactory = SvtModuleOptions::E_WRITER;
+                            eFactory = SvtModuleOptions::EFactory::WRITER;
                         else if ( aCmdLineArgs->IsCalc() )
-                            eFactory = SvtModuleOptions::E_CALC;
+                            eFactory = SvtModuleOptions::EFactory::CALC;
                         else if ( aCmdLineArgs->IsDraw() )
-                            eFactory = SvtModuleOptions::E_DRAW;
+                            eFactory = SvtModuleOptions::EFactory::DRAW;
                         else if ( aCmdLineArgs->IsImpress() )
-                            eFactory = SvtModuleOptions::E_IMPRESS;
+                            eFactory = SvtModuleOptions::EFactory::IMPRESS;
                         else if ( aCmdLineArgs->IsBase() )
-                            eFactory = SvtModuleOptions::E_DATABASE;
+                            eFactory = SvtModuleOptions::EFactory::DATABASE;
                         else if ( aCmdLineArgs->IsMath() )
-                            eFactory = SvtModuleOptions::E_MATH;
+                            eFactory = SvtModuleOptions::EFactory::MATH;
                         else if ( aCmdLineArgs->IsGlobal() )
-                            eFactory = SvtModuleOptions::E_WRITERGLOBAL;
+                            eFactory = SvtModuleOptions::EFactory::WRITERGLOBAL;
                         else if ( aCmdLineArgs->IsWeb() )
-                            eFactory = SvtModuleOptions::E_WRITERWEB;
+                            eFactory = SvtModuleOptions::EFactory::WRITERWEB;
 
                         if ( !pRequest->aOpenList.empty() )
                             pRequest->aModule = aOpt.GetFactoryName( eFactory );
@@ -928,13 +928,13 @@ void OfficeIPCThread::execute()
 
                         // Support command line parameters to start a module (as preselection)
                         if ( aCmdLineArgs->IsWriter() && aOpt.IsModuleInstalled( SvtModuleOptions::E_SWRITER ) )
-                            pRequest->aModule = aOpt.GetFactoryName( SvtModuleOptions::E_WRITER );
+                            pRequest->aModule = aOpt.GetFactoryName( SvtModuleOptions::EFactory::WRITER );
                         else if ( aCmdLineArgs->IsCalc() && aOpt.IsModuleInstalled( SvtModuleOptions::E_SCALC ) )
-                            pRequest->aModule = aOpt.GetFactoryName( SvtModuleOptions::E_CALC );
+                            pRequest->aModule = aOpt.GetFactoryName( SvtModuleOptions::EFactory::CALC );
                         else if ( aCmdLineArgs->IsImpress() && aOpt.IsModuleInstalled( SvtModuleOptions::E_SIMPRESS ) )
-                            pRequest->aModule= aOpt.GetFactoryName( SvtModuleOptions::E_IMPRESS );
+                            pRequest->aModule= aOpt.GetFactoryName( SvtModuleOptions::EFactory::IMPRESS );
                         else if ( aCmdLineArgs->IsDraw() && aOpt.IsModuleInstalled( SvtModuleOptions::E_SDRAW ) )
-                            pRequest->aModule= aOpt.GetFactoryName( SvtModuleOptions::E_DRAW );
+                            pRequest->aModule= aOpt.GetFactoryName( SvtModuleOptions::EFactory::DRAW );
                     }
 
                     ImplPostProcessDocumentsEvent( pRequest );
diff --git a/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx b/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx
index 57d451d..271db0b 100644
--- a/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx
+++ b/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx
@@ -29,6 +29,7 @@
 #include <unotools/streamwrap.hxx>
 #include <unotools/pathoptions.hxx>
 #include <osl/file.hxx>
+#include <o3tl/enumrange.hxx>
 #include <vcl/msgbox.hxx>
 #include <sfx2/filedlghelper.hxx>
 #include "svtools/treelistentry.hxx"
@@ -187,16 +188,14 @@ void XMLFilterSettingsDialog::updateStates()
         filter_info_impl* pInfo = static_cast<filter_info_impl*>(pSelectedEntry->GetUserData());
         bIsReadonly = pInfo->mbReadonly;
 
-        sal_Int32 nFact = SvtModuleOptions::E_WRITER;
-        while(nFact <= SvtModuleOptions::E_BASIC)
+        for( auto nFact : o3tl::enumrange<SvtModuleOptions::EFactory>())
         {
-            OUString sDefault = maModuleOpt.GetFactoryDefaultFilter((SvtModuleOptions::EFactory)nFact);
+            OUString sDefault = maModuleOpt.GetFactoryDefaultFilter(nFact);
             if( sDefault == pInfo->maFilterName )
             {
                 bIsDefault = true;
                 break;
             }
-            ++nFact;
         }
     }
     m_pPBEdit->Enable( bHasSelection && !bMultiSelection && !bIsReadonly);
diff --git a/framework/source/services/frame.cxx b/framework/source/services/frame.cxx
index ee75278..de6fd0ba 100644
--- a/framework/source/services/frame.cxx
+++ b/framework/source/services/frame.cxx
@@ -2948,7 +2948,7 @@ void Frame::implts_setIconOnWindow()
             if( xModel.is() )
             {
                 SvtModuleOptions::EFactory eFactory = SvtModuleOptions::ClassifyFactoryByModel(xModel);
-                if (eFactory != SvtModuleOptions::E_UNKNOWN_FACTORY)
+                if (eFactory != SvtModuleOptions::EFactory::UNKNOWN_FACTORY)
                     nIcon = SvtModuleOptions().GetFactoryIcon( eFactory );
             }
         }
diff --git a/include/o3tl/enumarray.hxx b/include/o3tl/enumarray.hxx
index 6bc3dff..76fdec1 100644
--- a/include/o3tl/enumarray.hxx
+++ b/include/o3tl/enumarray.hxx
@@ -67,8 +67,8 @@ public:
     { for (size_type i=0; i<=max_index; ++i) detail_values[i] = val; }
 
     size_type size() const { return max_index + 1; }
-    iterator  begin()      { return iterator(this, 0); }
-    iterator  end()        { return iterator(this, size()); }
+    iterator  begin()      { return iterator(*this, 0); }
+    iterator  end()        { return iterator(*this, size()); }
 
 //private:
     V detail_values[max_index + 1];
@@ -89,6 +89,7 @@ public:
     value_type &operator*()  { return m_buf[static_cast<key_type>(m_pos)]; }
     value_type *operator->() { return &(operator*()); }
     self_type  &operator++() { ++m_pos; return *this; }
+    bool        operator!=(const self_type& other) { return &m_buf != &other.m_buf || m_pos != other.m_pos; }
 };
 
 }; // namespace o3tl
diff --git a/include/unotools/moduleoptions.hxx b/include/unotools/moduleoptions.hxx
index 29dff59..9bc5e09 100644
--- a/include/unotools/moduleoptions.hxx
+++ b/include/unotools/moduleoptions.hxx
@@ -68,21 +68,21 @@ class UNOTOOLS_DLLPUBLIC SAL_WARN_UNUSED SvtModuleOptions : public utl::detail::
             If you change these enum ... don't forget to change reading/writing and order of configuration values too!
             See "SvtModuleOptions_Impl::impl_GetSetNames()" and his ctor for further information.
          */
-        enum EFactory
+        enum class EFactory
         {
-            E_UNKNOWN_FACTORY = -1,
-            E_WRITER        =  0,
-            E_WRITERWEB     =  1,
-            E_WRITERGLOBAL  =  2,
-            E_CALC          =  3,
-            E_DRAW          =  4,
-            E_IMPRESS       =  5,
-            E_MATH          =  6,
-            E_CHART         =  7,
-            E_STARTMODULE   =  8,
-            E_DATABASE      =  9,
-            E_BASIC         = 10
-
+            UNKNOWN_FACTORY = -1,
+            WRITER        =  0,
+            WRITERWEB     =  1,
+            WRITERGLOBAL  =  2,
+            CALC          =  3,
+            DRAW          =  4,
+            IMPRESS       =  5,
+            MATH          =  6,
+            CHART         =  7,
+            STARTMODULE   =  8,
+            DATABASE      =  9,
+            BASIC         = 10,
+            LAST = BASIC
         };
 
     public:
diff --git a/sfx2/source/bastyp/fltfnc.cxx b/sfx2/source/bastyp/fltfnc.cxx
index 4baecd5..9e0f8de 100644
--- a/sfx2/source/bastyp/fltfnc.cxx
+++ b/sfx2/source/bastyp/fltfnc.cxx
@@ -204,12 +204,12 @@ const SfxFilter* SfxFilterContainer::GetDefaultFilter_Impl( const OUString& rNam
     // Interpret given name as Service- and ShortName!
     SvtModuleOptions aOpt;
     SvtModuleOptions::EFactory eFactory = SvtModuleOptions::ClassifyFactoryByServiceName(rName);
-    if (eFactory == SvtModuleOptions::E_UNKNOWN_FACTORY)
+    if (eFactory == SvtModuleOptions::EFactory::UNKNOWN_FACTORY)
         eFactory = SvtModuleOptions::ClassifyFactoryByShortName(rName);
 
     // could not classify factory by its service nor by its short name.
     // Must be an unknown factory! => return NULL
-    if (eFactory == SvtModuleOptions::E_UNKNOWN_FACTORY)
+    if (eFactory == SvtModuleOptions::EFactory::UNKNOWN_FACTORY)
         return NULL;
 
     // For the following code we need some additional information.
diff --git a/sfx2/source/doc/docfac.cxx b/sfx2/source/doc/docfac.cxx
index 55dd582..ba2ff68 100644
--- a/sfx2/source/doc/docfac.cxx
+++ b/sfx2/source/doc/docfac.cxx
@@ -301,9 +301,9 @@ void SfxObjectFactory::SetSystemTemplate( const OUString& rServiceName, const OU
 void SfxObjectFactory::SetStandardTemplate( const OUString& rServiceName, const OUString& rTemplate )
 {
     SvtModuleOptions::EFactory eFac = SvtModuleOptions::ClassifyFactoryByServiceName(rServiceName);
-    if (eFac == SvtModuleOptions::E_UNKNOWN_FACTORY)
+    if (eFac == SvtModuleOptions::EFactory::UNKNOWN_FACTORY)
         eFac = SvtModuleOptions::ClassifyFactoryByShortName(rServiceName);
-    if (eFac != SvtModuleOptions::E_UNKNOWN_FACTORY)
+    if (eFac != SvtModuleOptions::EFactory::UNKNOWN_FACTORY)
     {
         SetSystemTemplate( rServiceName, rTemplate );
         SvtModuleOptions().SetFactoryStandardTemplate(eFac, rTemplate);
@@ -313,11 +313,11 @@ void SfxObjectFactory::SetStandardTemplate( const OUString& rServiceName, const
 OUString SfxObjectFactory::GetStandardTemplate( const OUString& rServiceName )
 {
     SvtModuleOptions::EFactory eFac = SvtModuleOptions::ClassifyFactoryByServiceName(rServiceName);
-    if (eFac == SvtModuleOptions::E_UNKNOWN_FACTORY)
+    if (eFac == SvtModuleOptions::EFactory::UNKNOWN_FACTORY)
         eFac = SvtModuleOptions::ClassifyFactoryByShortName(rServiceName);
 
     OUString sTemplate;
-    if (eFac != SvtModuleOptions::E_UNKNOWN_FACTORY)
+    if (eFac != SvtModuleOptions::EFactory::UNKNOWN_FACTORY)
         sTemplate = SvtModuleOptions().GetFactoryStandardTemplate(eFac);
 
     return sTemplate;
diff --git a/sfx2/source/doc/templatedlg.cxx b/sfx2/source/doc/templatedlg.cxx
index d20dfc4..fd6190d 100644
--- a/sfx2/source/doc/templatedlg.cxx
+++ b/sfx2/source/doc/templatedlg.cxx
@@ -1716,7 +1716,7 @@ static std::vector<OUString> lcl_getAllFactoryURLs ()
     {
         if ( ! SfxObjectFactory::GetStandardTemplate( aServiceNames[i] ).isEmpty() )
         {
-            SvtModuleOptions::EFactory eFac = SvtModuleOptions::E_WRITER;
+            SvtModuleOptions::EFactory eFac = SvtModuleOptions::EFactory::WRITER;
             SvtModuleOptions::ClassifyFactoryByName( aServiceNames[i], eFac );
             aList.push_back(aModOpt.GetFactoryEmptyDocumentURL(eFac));
         }
diff --git a/svx/source/dialog/srchdlg.cxx b/svx/source/dialog/srchdlg.cxx
index 83340bf..a8b7267 100644
--- a/svx/source/dialog/srchdlg.cxx
+++ b/svx/source/dialog/srchdlg.cxx
@@ -630,7 +630,7 @@ namespace
 {
     SvtModuleOptions::EFactory getModule(SfxBindings& rBindings)
     {
-        SvtModuleOptions::EFactory eFactory(SvtModuleOptions::E_UNKNOWN_FACTORY);
+        SvtModuleOptions::EFactory eFactory(SvtModuleOptions::EFactory::UNKNOWN_FACTORY);
         try
         {
             const uno::Reference< frame::XFrame > xFrame =
@@ -655,12 +655,12 @@ void SvxSearchDialog::ShowOptionalControls_Impl()
     SvtCJKOptions aCJKOptions;
     SvtCTLOptions aCTLOptions;
     SvtModuleOptions::EFactory eFactory = getModule(rBindings);
-    bool bDrawApp = eFactory == SvtModuleOptions::E_DRAW;
+    bool bDrawApp = eFactory == SvtModuleOptions::EFactory::DRAW;
     bool bWriterApp =
-        eFactory == SvtModuleOptions::E_WRITER ||
-        eFactory == SvtModuleOptions::E_WRITERWEB ||
-        eFactory == SvtModuleOptions::E_WRITERGLOBAL;
-    bool bCalcApp = eFactory == SvtModuleOptions::E_CALC;
+        eFactory == SvtModuleOptions::EFactory::WRITER ||
+        eFactory == SvtModuleOptions::EFactory::WRITERWEB ||
+        eFactory == SvtModuleOptions::EFactory::WRITERGLOBAL;
+    bool bCalcApp = eFactory == SvtModuleOptions::EFactory::CALC;
 
     m_pLayoutBtn->Show(!bDrawApp);
     m_pNotesBtn->Show(bWriterApp);
@@ -1803,10 +1803,10 @@ IMPL_LINK( SvxSearchDialog, FocusHdl_Impl, Control *, pCtrl )
     {
         SvtModuleOptions::EFactory eFactory = getModule(rBindings);
         bool bWriterApp =
-            eFactory == SvtModuleOptions::E_WRITER ||
-            eFactory == SvtModuleOptions::E_WRITERWEB ||
-            eFactory == SvtModuleOptions::E_WRITERGLOBAL;
-        bool bCalcApp = eFactory == SvtModuleOptions::E_CALC;
+            eFactory == SvtModuleOptions::EFactory::WRITER ||
+            eFactory == SvtModuleOptions::EFactory::WRITERWEB ||
+            eFactory == SvtModuleOptions::EFactory::WRITERGLOBAL;
+        bool bCalcApp = eFactory == SvtModuleOptions::EFactory::CALC;
 
         if (bWriterApp)
             m_pLayoutBtn->SetText(aLayoutWriterStr);
@@ -1931,10 +1931,10 @@ IMPL_LINK_NOARG(SvxSearchDialog, NoFormatHdl_Impl)
 {
     SvtModuleOptions::EFactory eFactory = getModule(rBindings);
     bool bWriterApp =
-        eFactory == SvtModuleOptions::E_WRITER ||
-        eFactory == SvtModuleOptions::E_WRITERWEB ||
-        eFactory == SvtModuleOptions::E_WRITERGLOBAL;
-    bool bCalcApp = eFactory == SvtModuleOptions::E_CALC;
+        eFactory == SvtModuleOptions::EFactory::WRITER ||
+        eFactory == SvtModuleOptions::EFactory::WRITERWEB ||
+        eFactory == SvtModuleOptions::EFactory::WRITERGLOBAL;
+    bool bCalcApp = eFactory == SvtModuleOptions::EFactory::CALC;
 
     if (bCalcApp)
         m_pLayoutBtn->SetText( aLayoutCalcStr );
diff --git a/unotools/source/config/moduleoptions.cxx b/unotools/source/config/moduleoptions.cxx
index 24df404..1102310 100644
--- a/unotools/source/config/moduleoptions.cxx
+++ b/unotools/source/config/moduleoptions.cxx
@@ -22,9 +22,10 @@
 #include <unotools/configmgr.hxx>
 #include <unotools/configitem.hxx>
 #include <comphelper/processfactory.hxx>
+#include <comphelper/sequence.hxx>
 #include <osl/diagnose.h>
+#include <o3tl/enumarray.hxx>
 #include <rtl/ustrbuf.hxx>
-
 #include <rtl/instance.hxx>
 #include <com/sun/star/uno/Any.hxx>
 #include <com/sun/star/uno/Sequence.hxx>
@@ -264,8 +265,6 @@ struct FactoryInfo
         css::uno::Reference< css::util::XStringSubstitution >  xSubstVars;
 };
 
-typedef FactoryInfo   FactoryInfoList[FACTORYCOUNT];
-
 /*-************************************************************************************************************
     @short          IMPL data container for wrapper class SvtModulOptions!
     @descr          These class is used as a static data container of class SvtModuleOptions. The hold it by using
@@ -325,7 +324,7 @@ class SvtModuleOptions_Impl : public ::utl::ConfigItem
     //  private member
 
     private:
-        FactoryInfoList     m_lFactories;
+        o3tl::enumarray<SvtModuleOptions::EFactory, FactoryInfo> m_lFactories;
         bool            m_bReadOnlyStatesWellKnown;
 };
 
@@ -343,8 +342,8 @@ SvtModuleOptions_Impl::SvtModuleOptions_Impl()
     ,   m_bReadOnlyStatesWellKnown( false )
 {
     // First initialize list of factory infos! Otherwise we couldnt guarantee right working of these class.
-    for( sal_Int32 nFactory=0; nFactory<FACTORYCOUNT; ++nFactory )
-        m_lFactories[nFactory].free();
+    for( auto & rFactory : m_lFactories )
+        rFactory.free();
 
     // Get name list of all existing set node names in configuration to read her properties in impl_Read().
     // These list is a list of long names of our factories.
@@ -400,18 +399,15 @@ void SvtModuleOptions_Impl::ImplCommit()
     // Step over all factories and get her really changed values only.
     // Build list of these ones and use it for commit.
     css::uno::Sequence< css::beans::PropertyValue > lCommitProperties( FACTORYCOUNT*PROPERTYCOUNT );
-    FactoryInfo*                                    pInfo            = NULL;
     sal_Int32                                       nRealCount       = 0;
     OUString                                 sBasePath;
-    for( sal_Int32 nFactory=0; nFactory<FACTORYCOUNT; ++nFactory )
+    for( FactoryInfo & rInfo : m_lFactories )
     {
-        pInfo = &(m_lFactories[nFactory]);
-
         // These path is used to build full qualified property names ....
         // See pInfo->getChangedProperties() for further information
-        sBasePath  = PATHSEPARATOR + pInfo->getFactory() + PATHSEPARATOR;
+        sBasePath  = PATHSEPARATOR + rInfo.getFactory() + PATHSEPARATOR;
 
-        const css::uno::Sequence< css::beans::PropertyValue > lChangedProperties = pInfo->getChangedProperties ( sBasePath );
+        const css::uno::Sequence< css::beans::PropertyValue > lChangedProperties = rInfo.getChangedProperties ( sBasePath );
         const css::beans::PropertyValue*                      pChangedProperties = lChangedProperties.getConstArray();
         sal_Int32                                             nPropertyCount     = lChangedProperties.getLength();
         for( sal_Int32 nProperty=0; nProperty<nPropertyCount; ++nProperty )
@@ -451,27 +447,27 @@ bool SvtModuleOptions_Impl::IsModuleInstalled( SvtModuleOptions::EModule eModule
     bool bInstalled = false;
     switch( eModule )
     {
-        case SvtModuleOptions::E_SWRITER    :   bInstalled = m_lFactories[SvtModuleOptions::E_WRITER].getInstalled();
+        case SvtModuleOptions::E_SWRITER    :   bInstalled = m_lFactories[SvtModuleOptions::EFactory::WRITER].getInstalled();
                                                 break;
-        case SvtModuleOptions::E_SWEB       :   bInstalled = m_lFactories[SvtModuleOptions::E_WRITERWEB].getInstalled();
+        case SvtModuleOptions::E_SWEB       :   bInstalled = m_lFactories[SvtModuleOptions::EFactory::WRITERWEB].getInstalled();
                                                 break;
-        case SvtModuleOptions::E_SGLOBAL    :   bInstalled = m_lFactories[SvtModuleOptions::E_WRITERGLOBAL].getInstalled();
+        case SvtModuleOptions::E_SGLOBAL    :   bInstalled = m_lFactories[SvtModuleOptions::EFactory::WRITERGLOBAL].getInstalled();
                                                 break;
-        case SvtModuleOptions::E_SCALC      :   bInstalled = m_lFactories[SvtModuleOptions::E_CALC].getInstalled();
+        case SvtModuleOptions::E_SCALC      :   bInstalled = m_lFactories[SvtModuleOptions::EFactory::CALC].getInstalled();
                                                 break;
-        case SvtModuleOptions::E_SDRAW      :   bInstalled = m_lFactories[SvtModuleOptions::E_DRAW].getInstalled();
+        case SvtModuleOptions::E_SDRAW      :   bInstalled = m_lFactories[SvtModuleOptions::EFactory::DRAW].getInstalled();
                                                 break;
-        case SvtModuleOptions::E_SIMPRESS   :   bInstalled = m_lFactories[SvtModuleOptions::E_IMPRESS].getInstalled();
+        case SvtModuleOptions::E_SIMPRESS   :   bInstalled = m_lFactories[SvtModuleOptions::EFactory::IMPRESS].getInstalled();
                                                 break;
-        case SvtModuleOptions::E_SMATH      :   bInstalled = m_lFactories[SvtModuleOptions::E_MATH].getInstalled();
+        case SvtModuleOptions::E_SMATH      :   bInstalled = m_lFactories[SvtModuleOptions::EFactory::MATH].getInstalled();
                                                 break;
-        case SvtModuleOptions::E_SCHART     :   bInstalled = m_lFactories[SvtModuleOptions::E_CHART].getInstalled();
+        case SvtModuleOptions::E_SCHART     :   bInstalled = m_lFactories[SvtModuleOptions::EFactory::CHART].getInstalled();
                                                 break;
-        case SvtModuleOptions::E_SSTARTMODULE :   bInstalled = m_lFactories[SvtModuleOptions::E_STARTMODULE].getInstalled();
+        case SvtModuleOptions::E_SSTARTMODULE : bInstalled = m_lFactories[SvtModuleOptions::EFactory::STARTMODULE].getInstalled();
                                                 break;
         case SvtModuleOptions::E_SBASIC     :   bInstalled = true; // Couldn't be deselected by setup yet!
                                                 break;
-        case SvtModuleOptions::E_SDATABASE  :   bInstalled = m_lFactories[SvtModuleOptions::E_DATABASE].getInstalled();
+        case SvtModuleOptions::E_SDATABASE  :   bInstalled = m_lFactories[SvtModuleOptions::EFactory::DATABASE].getInstalled();
                                                 break;
     }
 
@@ -480,64 +476,18 @@ bool SvtModuleOptions_Impl::IsModuleInstalled( SvtModuleOptions::EModule eModule
 
 ::com::sun::star::uno::Sequence < OUString > SvtModuleOptions_Impl::GetAllServiceNames()
 {
-    sal_uInt32 nCount=0;
-    if( m_lFactories[SvtModuleOptions::E_WRITER].getInstalled() )
-        nCount++;
-    if ( m_lFactories[SvtModuleOptions::E_WRITERWEB].getInstalled() )
-        nCount++;
-    if ( m_lFactories[SvtModuleOptions::E_WRITERGLOBAL].getInstalled() )
-        nCount++;
-    if( m_lFactories[SvtModuleOptions::E_SCALC].getInstalled() )
-        nCount++;
-    if( m_lFactories[SvtModuleOptions::E_SDRAW].getInstalled() )
-        nCount++;
-    if( m_lFactories[SvtModuleOptions::E_SIMPRESS].getInstalled() )
-        nCount++;
-    if( m_lFactories[SvtModuleOptions::E_SCHART].getInstalled() )
-        nCount++;
-    if( m_lFactories[SvtModuleOptions::E_SMATH].getInstalled() )
-        nCount++;
-    if( m_lFactories[SvtModuleOptions::E_SBASIC].getInstalled() )
-        nCount++;
-    if( m_lFactories[SvtModuleOptions::E_SDATABASE].getInstalled() )
-        nCount++;
-
-    css::uno::Sequence < OUString > aRet( nCount );
-    sal_Int32 n=0;
-    if( m_lFactories[SvtModuleOptions::E_WRITER].getInstalled() )
-        aRet[n++] = m_lFactories[SvtModuleOptions::E_WRITER].getFactory();
-    if ( m_lFactories[SvtModuleOptions::E_WRITERWEB].getInstalled() )
-        aRet[n++] = m_lFactories[SvtModuleOptions::E_WRITERWEB].getFactory();
-    if ( m_lFactories[SvtModuleOptions::E_WRITERGLOBAL].getInstalled() )
-        aRet[n++] = m_lFactories[SvtModuleOptions::E_WRITERGLOBAL].getFactory();
-    if( m_lFactories[SvtModuleOptions::E_SCALC].getInstalled() )
-        aRet[n++] = m_lFactories[SvtModuleOptions::E_SCALC].getFactory();
-    if( m_lFactories[SvtModuleOptions::E_SDRAW].getInstalled() )
-        aRet[n++] = m_lFactories[SvtModuleOptions::E_SDRAW].getFactory();
-    if( m_lFactories[SvtModuleOptions::E_SIMPRESS].getInstalled() )
-        aRet[n++] = m_lFactories[SvtModuleOptions::E_SIMPRESS].getFactory();
-    if( m_lFactories[SvtModuleOptions::E_SCHART].getInstalled() )
-        aRet[n++] = m_lFactories[SvtModuleOptions::E_SCHART].getFactory();
-    if( m_lFactories[SvtModuleOptions::E_SMATH].getInstalled() )
-        aRet[n++] = m_lFactories[SvtModuleOptions::E_SMATH].getFactory();
-    if( m_lFactories[SvtModuleOptions::E_SBASIC].getInstalled() )
-        aRet[n++] = m_lFactories[SvtModuleOptions::E_SBASIC].getFactory();
-    if( m_lFactories[SvtModuleOptions::E_SDATABASE].getInstalled() )
-        aRet[n++] = m_lFactories[SvtModuleOptions::E_SDATABASE].getFactory();
-
-    return aRet;
+    std::vector<OUString> aVec;
+
+    for( auto & rFactory : m_lFactories )
+        if( rFactory.getInstalled() )
+            aVec.push_back( rFactory.getFactory() );
+
+    return comphelper::containerToSequence(aVec);
 }
 
 OUString SvtModuleOptions_Impl::GetFactoryName( SvtModuleOptions::EFactory eFactory ) const
 {
-    OUString sName;
-
-    if( eFactory>=0 && eFactory<FACTORYCOUNT )
-    {
-        sName = m_lFactories[eFactory].getFactory();
-    }
-
-    return sName;
+    return m_lFactories[eFactory].getFactory();
 }
 
 OUString SvtModuleOptions::GetFactoryShortName(SvtModuleOptions::EFactory eFactory)
@@ -550,26 +500,26 @@ OUString SvtModuleOptions::GetFactoryShortName(SvtModuleOptions::EFactory eFacto
     OUString sShortName;
     switch( eFactory )
     {
-        case SvtModuleOptions::E_WRITER        :  sShortName = "swriter";
-                                                  break;
-        case SvtModuleOptions::E_WRITERWEB     :  sShortName = "swriter/web";
-                                                  break;
-        case SvtModuleOptions::E_WRITERGLOBAL  :  sShortName = "swriter/GlobalDocument";
-                                                  break;
-        case SvtModuleOptions::E_CALC          :  sShortName = "scalc";
-                                                  break;
-        case SvtModuleOptions::E_DRAW          :  sShortName = "sdraw";
-                                                  break;
-        case SvtModuleOptions::E_IMPRESS       :  sShortName = "simpress";
-                                                  break;
-        case SvtModuleOptions::E_MATH          :  sShortName = "smath";
-                                                  break;
-        case SvtModuleOptions::E_CHART         :  sShortName = "schart";
-                                                  break;
-        case SvtModuleOptions::E_BASIC         :  sShortName = "sbasic";
-                                                  break;
-        case SvtModuleOptions::E_DATABASE     :  sShortName = "sdatabase";
-                                                  break;
+        case SvtModuleOptions::EFactory::WRITER   :  sShortName = "swriter";
+                                                       break;
+        case SvtModuleOptions::EFactory::WRITERWEB:  sShortName = "swriter/web";
+                                                       break;
+        case SvtModuleOptions::EFactory::WRITERGLOBAL:  sShortName = "swriter/GlobalDocument";
+                                                       break;
+        case SvtModuleOptions::EFactory::CALC     :  sShortName = "scalc";
+                                                       break;
+        case SvtModuleOptions::EFactory::DRAW     :  sShortName = "sdraw";
+                                                       break;
+        case SvtModuleOptions::EFactory::IMPRESS  :  sShortName = "simpress";
+                                                       break;
+        case SvtModuleOptions::EFactory::MATH     :  sShortName = "smath";
+                                                       break;
+        case SvtModuleOptions::EFactory::CHART    :  sShortName = "schart";
+                                                       break;
+        case SvtModuleOptions::EFactory::BASIC    :  sShortName = "sbasic";
+                                                       break;
+        case SvtModuleOptions::EFactory::DATABASE :  sShortName = "sdatabase";
+                                                       break;
         default:
             OSL_FAIL( "unknown factory" );
             break;
@@ -580,14 +530,7 @@ OUString SvtModuleOptions::GetFactoryShortName(SvtModuleOptions::EFactory eFacto
 
 OUString SvtModuleOptions_Impl::GetFactoryStandardTemplate( SvtModuleOptions::EFactory eFactory ) const
 {
-    OUString sFile;
-
-    if( eFactory>=0 && eFactory<FACTORYCOUNT )
-    {
-        sFile = m_lFactories[eFactory].getTemplateFile();
-    }
-
-    return sFile;
+    return m_lFactories[eFactory].getTemplateFile();
 }
 
 OUString SvtModuleOptions_Impl::GetFactoryEmptyDocumentURL( SvtModuleOptions::EFactory eFactory )
@@ -600,25 +543,25 @@ OUString SvtModuleOptions_Impl::GetFactoryEmptyDocumentURL( SvtModuleOptions::EF
     OUString sURL;
     switch( eFactory )
     {
-        case SvtModuleOptions::E_WRITER        :  sURL = "private:factory/swriter";
+        case SvtModuleOptions::EFactory::WRITER        :  sURL = "private:factory/swriter";
                                                   break;
-        case SvtModuleOptions::E_WRITERWEB     :  sURL = "private:factory/swriter/web";
+        case SvtModuleOptions::EFactory::WRITERWEB     :  sURL = "private:factory/swriter/web";
                                                   break;
-        case SvtModuleOptions::E_WRITERGLOBAL  :  sURL = "private:factory/swriter/GlobalDocument";
+        case SvtModuleOptions::EFactory::WRITERGLOBAL  :  sURL = "private:factory/swriter/GlobalDocument";
                                                   break;
-        case SvtModuleOptions::E_CALC          :  sURL = "private:factory/scalc";
+        case SvtModuleOptions::EFactory::CALC          :  sURL = "private:factory/scalc";
                                                   break;
-        case SvtModuleOptions::E_DRAW          :  sURL = "private:factory/sdraw";
+        case SvtModuleOptions::EFactory::DRAW          :  sURL = "private:factory/sdraw";
                                                   break;
-        case SvtModuleOptions::E_IMPRESS       :  sURL = "private:factory/simpress?slot=6686";
+        case SvtModuleOptions::EFactory::IMPRESS       :  sURL = "private:factory/simpress?slot=6686";
                                                   break;
-        case SvtModuleOptions::E_MATH          :  sURL = "private:factory/smath";
+        case SvtModuleOptions::EFactory::MATH          :  sURL = "private:factory/smath";
                                                   break;
-        case SvtModuleOptions::E_CHART         :  sURL = "private:factory/schart";
+        case SvtModuleOptions::EFactory::CHART         :  sURL = "private:factory/schart";
                                                   break;
-        case SvtModuleOptions::E_BASIC         :  sURL = "private:factory/sbasic";
+        case SvtModuleOptions::EFactory::BASIC         :  sURL = "private:factory/sbasic";
                                                   break;
-        case SvtModuleOptions::E_DATABASE     :  sURL = "private:factory/sdatabase?Interactive";
+        case SvtModuleOptions::EFactory::DATABASE     :  sURL = "private:factory/sdatabase?Interactive";
                                                   break;
         default:
             OSL_FAIL( "unknown factory" );
@@ -629,55 +572,31 @@ OUString SvtModuleOptions_Impl::GetFactoryEmptyDocumentURL( SvtModuleOptions::EF
 
 OUString SvtModuleOptions_Impl::GetFactoryDefaultFilter( SvtModuleOptions::EFactory eFactory ) const
 {
-    OUString sDefaultFilter;
-
-    if( eFactory>=0 && eFactory<FACTORYCOUNT )
-    {
-        sDefaultFilter = m_lFactories[eFactory].getDefaultFilter();
-    }
-    return sDefaultFilter;
+    return m_lFactories[eFactory].getDefaultFilter();
 }
 
 bool SvtModuleOptions_Impl::IsDefaultFilterReadonly( SvtModuleOptions::EFactory eFactory   ) const
 {
-    bool bRet = false;
-    if( eFactory>=0 && eFactory<FACTORYCOUNT )
-    {
-        bRet = m_lFactories[eFactory].isDefaultFilterReadonly();
-    }
-    return bRet;
+    return m_lFactories[eFactory].isDefaultFilterReadonly();
 }
 
 sal_Int32 SvtModuleOptions_Impl::GetFactoryIcon( SvtModuleOptions::EFactory eFactory ) const
 {
-    sal_Int32 nIcon = 0;
-
-    if( eFactory>=0 && eFactory<FACTORYCOUNT )
-    {
-        nIcon = m_lFactories[eFactory].getIcon();
-    }
-
-    return nIcon;
+    return m_lFactories[eFactory].getIcon();
 }
 
 void SvtModuleOptions_Impl::SetFactoryStandardTemplate(       SvtModuleOptions::EFactory eFactory   ,
                                                         const OUString&           sTemplate  )
 {
-    if( eFactory>=0 && eFactory<FACTORYCOUNT )
-    {
-        m_lFactories[eFactory].setTemplateFile( sTemplate );
-        SetModified();
-    }
+    m_lFactories[eFactory].setTemplateFile( sTemplate );
+    SetModified();
 }
 
 void SvtModuleOptions_Impl::SetFactoryDefaultFilter(       SvtModuleOptions::EFactory eFactory,
                                                      const OUString&           sFilter )
 {
-    if( eFactory>=0 && eFactory<FACTORYCOUNT )
-    {
-        m_lFactories[eFactory].setDefaultFilter( sFilter );
-        SetModified();
-    }
+    m_lFactories[eFactory].setDefaultFilter( sFilter );
+    SetModified();
 }
 
 /*-************************************************************************************************************
@@ -733,60 +652,60 @@ bool SvtModuleOptions_Impl::ClassifyFactoryByName( const OUString& sName, SvtMod
 {
     bool bState;
 
-    eFactory = SvtModuleOptions::E_WRITER;
+    eFactory = SvtModuleOptions::EFactory::WRITER;
     bState   = ( sName == FACTORYNAME_WRITER );
 
     if( !bState )
     {
-        eFactory = SvtModuleOptions::E_WRITERWEB;
+        eFactory = SvtModuleOptions::EFactory::WRITERWEB;
         bState   = ( sName == FACTORYNAME_WRITERWEB );
     }
     // no else!
     if( !bState )
     {
-        eFactory = SvtModuleOptions::E_WRITERGLOBAL;
+        eFactory = SvtModuleOptions::EFactory::WRITERGLOBAL;
         bState   = ( sName == FACTORYNAME_WRITERGLOBAL );
     }
     // no else!
     if( !bState )
     {
-        eFactory = SvtModuleOptions::E_CALC;
+        eFactory = SvtModuleOptions::EFactory::CALC;
         bState   = ( sName == FACTORYNAME_CALC );
     }
     // no else!
     if( !bState )
     {
-        eFactory = SvtModuleOptions::E_DRAW;
+        eFactory = SvtModuleOptions::EFactory::DRAW;
         bState   = ( sName == FACTORYNAME_DRAW );
     }
     // no else!
     if( !bState )
     {
-        eFactory = SvtModuleOptions::E_IMPRESS;
+        eFactory = SvtModuleOptions::EFactory::IMPRESS;
         bState   = ( sName == FACTORYNAME_IMPRESS );
     }
     // no else!
     if( !bState )
     {
-        eFactory = SvtModuleOptions::E_MATH;
+        eFactory = SvtModuleOptions::EFactory::MATH;
         bState   = ( sName == FACTORYNAME_MATH );
     }
     // no else!
     if( !bState )
     {
-        eFactory = SvtModuleOptions::E_CHART;
+        eFactory = SvtModuleOptions::EFactory::CHART;
         bState   = ( sName == FACTORYNAME_CHART );
     }
     // no else!
     if( !bState )
     {
-        eFactory = SvtModuleOptions::E_DATABASE;
+        eFactory = SvtModuleOptions::EFactory::DATABASE;
         bState   = ( sName == FACTORYNAME_DATABASE );
     }
     // no else!
     if( !bState )
     {
-        eFactory = SvtModuleOptions::E_STARTMODULE;
+        eFactory = SvtModuleOptions::EFactory::STARTMODULE;
         bState   = ( sName == FACTORYNAME_STARTMODULE);
     }
     // no else!

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list