Hi,

I have submitted a patch for review:

    https://gerrit.libreoffice.org/1730

To pull it, you can do:

    git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/30/1730/1

Resolves fdo#46718 : UI: Delete multiple styles at once

Allows the user to delete multiple styles at once.
Previously you need to select one style at a time and confirm its deletion. The 
patch enables the user to select multiple styles at once and delete them in one 
step. This is particularly useful when the user has numerous styles which are 
not not used regualarly or shall not be used in the future .
Author : Rushi Shukla (rushbo...@gmail.com)
Change-Id: I88d0113d4d311f98de8e20a5f8c8ebc0e2025b6f
---
M sfx2/source/dialog/templdlg.cxx
M sfx2/source/inc/templdgi.hxx
2 files changed, 30 insertions(+), 8 deletions(-)



diff --git a/sfx2/source/dialog/templdlg.cxx b/sfx2/source/dialog/templdlg.cxx
index b315453..d707ea4 100644
--- a/sfx2/source/dialog/templdlg.cxx
+++ b/sfx2/source/dialog/templdlg.cxx
@@ -1991,7 +1991,12 @@
 
                 if ( pTreeBox )
                 {
-                    pTreeBox->RemoveParentKeepChildren( 
pTreeBox->FirstSelected() );
+                    while(pTreeBox->FirstSelected)
+                    {      
+                        SvTreeListEntry* temp = pTreeBox->NextSelected();      
                  
+                        pTreeBox->RemoveParentKeepChildren( 
pTreeBox->FirstSelected() );
+                        pTreeBox->FirstSelected() = temp ;
+                    }
                     bDontUpdate = sal_False;
                 }
             }
@@ -2038,6 +2043,7 @@
         const SfxStyleFamilyItem *pItem = GetFamilyItem_Impl();
         const SfxStyleFamily eFam = pItem->GetFamily();
         sal_uInt16 nFilter = 0;
+        sal_bool DelFlag = sal_false;
         if(pItem->GetFilterList().size() > nActFilter)
             nFilter = pItem->GetFilterList()[ nActFilter ]->nFlags;
         if(!nFilter)    // automatic
@@ -2045,14 +2051,29 @@
         const SfxStyleSheetBase *pStyle =
             pStyleSheetPool->Find(aTemplName,eFam, pTreeBox? SFXSTYLEBIT_ALL : 
nFilter);
 
-        OSL_ENSURE(pStyle, "Style ot found");
-        if(pStyle && pStyle->IsUserDefined())
+        OSL_ENSURE(pStyle, "Style not found");
+        if(pStyle)
         {
-            EnableDel(sal_True);
-        }
-        else
-        {
-            EnableDel(sal_False);
+           while(pTreeBox->FirstSelected)
+           {        
+                SfxStyleSheetBase *pcheck = GetSelectedStyle();
+                if(!(pcheck->UserDefined()))
+                {   
+                    sal_bool=false;      
+                    break;
+                }                
+                SvTreeListEntry* temp = pTreeBox->NextSelected();
+                if(pTreeBox->FirstSelected)                       
+                pTreeBox->FirstSelected() = temp ;
+            }
+            if(DelFlag)
+            {
+                EnableDel(sal_True);
+            }
+            else
+            {
+                EnableDel(sal_False);
+            }
         }
     }
     else
diff --git a/sfx2/source/inc/templdgi.hxx b/sfx2/source/inc/templdgi.hxx
index b5fdbd9..1bd6fe3 100644
--- a/sfx2/source/inc/templdgi.hxx
+++ b/sfx2/source/inc/templdgi.hxx
@@ -136,6 +136,7 @@
     SfxTemplateItem*            pFamilyState[MAX_FAMILIES];
     SfxStyleSheetBasePool*      pStyleSheetPool;
     SvTreeListBox*              pTreeBox;
+    pTreeBox.SetSelectionMode(MULTIPLE_SELECTION);
     SfxObjectShell*             pCurObjShell;
     ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModuleManager2 
>
                                 xModuleManager;

-- 
To view, visit https://gerrit.libreoffice.org/1730
To unsubscribe, visit https://gerrit.libreoffice.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I88d0113d4d311f98de8e20a5f8c8ebc0e2025b6f
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: master
Gerrit-Owner: Rushi Shukla <rushbo...@gmail.com>

_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to