[Libreoffice-commits] .: sw/sdi sw/source

Caolán McNamara caolan at kemper.freedesktop.org
Wed Mar 30 07:57:57 PDT 2011


 sw/sdi/annotsh.sdi               |    7 ++
 sw/sdi/drwtxtsh.sdi              |    6 ++
 sw/source/ui/inc/annotsh.hxx     |    3 +
 sw/source/ui/inc/drwtxtsh.hxx    |    3 +
 sw/source/ui/inc/textsh.hxx      |    3 -
 sw/source/ui/shells/annotsh.cxx  |   93 +++++++++++++++++++++---------------
 sw/source/ui/shells/drwtxtsh.cxx |   98 +++++++++++++++++++++++---------------
 sw/source/ui/shells/textsh.cxx   |  100 ++++++++++++++-------------------------
 8 files changed, 174 insertions(+), 139 deletions(-)

New commits:
commit c5659cb9ce671c6264018e05bdee8b170c9a7bf7
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Tue Mar 29 21:07:59 2011 +0100

    centralize caserotate and add to other shells

diff --git a/sw/sdi/annotsh.sdi b/sw/sdi/annotsh.sdi
index 629a371..b0697bb 100644
--- a/sw/sdi/annotsh.sdi
+++ b/sw/sdi/annotsh.sdi
@@ -198,6 +198,13 @@ interface Annotation : _Annotation
         StateMethod = NoState ;
         DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR";
     ]
+
+    SID_TRANSLITERATE_ROTATE_CASE
+    [
+        ExecMethod = ExecRotateTransliteration;
+        StateMethod = NoState ;
+        DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR";
+    ]
     
     SID_TRANSLITERATE_UPPER
     [
diff --git a/sw/sdi/drwtxtsh.sdi b/sw/sdi/drwtxtsh.sdi
index 149344c..6bf9721 100644
--- a/sw/sdi/drwtxtsh.sdi
+++ b/sw/sdi/drwtxtsh.sdi
@@ -496,6 +496,12 @@ interface TextDrawText
         StateMethod = NoState ;
         DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR";
     ]
+    SID_TRANSLITERATE_ROTATE_CASE
+    [
+        ExecMethod = ExecRotateTransliteration;
+        StateMethod = NoState ;
+        DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR";
+    ]
     SID_TRANSLITERATE_UPPER
     [
         ExecMethod = ExecTransliteration;
diff --git a/sw/source/ui/inc/annotsh.hxx b/sw/source/ui/inc/annotsh.hxx
index 9ad2a59..b8bd66d 100644
--- a/sw/source/ui/inc/annotsh.hxx
+++ b/sw/source/ui/inc/annotsh.hxx
@@ -31,11 +31,13 @@
 #include <sfx2/shell.hxx>
 #include "shellid.hxx"
 #include "swmodule.hxx"
+#include <unotools/caserotate.hxx>
 
 class SwView;
 class SwAnnotationShell: public SfxShell
 {
     SwView&		rView;
+    RotateTransliteration m_aRotateCase;
 
 public:
     SFX_DECL_INTERFACE(SW_ANNOTATIONSHELL)
@@ -60,6 +62,7 @@ public:
     void		StateClpbrd(SfxItemSet &rSet);
 
     void 		ExecTransliteration(SfxRequest &);
+    void                ExecRotateTransliteration(SfxRequest &);
 
     void		ExecUndo(SfxRequest &rReq);
     void		StateUndo(SfxItemSet &rSet);
diff --git a/sw/source/ui/inc/drwtxtsh.hxx b/sw/source/ui/inc/drwtxtsh.hxx
index 8340144..9119479 100644
--- a/sw/source/ui/inc/drwtxtsh.hxx
+++ b/sw/source/ui/inc/drwtxtsh.hxx
@@ -30,6 +30,7 @@
 
 #include <sfx2/shell.hxx>
 #include "shellid.hxx"
+#include <unotools/caserotate.hxx>
 
 class SdrView;
 class SwView;
@@ -39,6 +40,7 @@ class SfxModule;
 class SwDrawTextShell: public SfxShell
 {
     SwView		&rView;
+    RotateTransliteration m_aRotateCase;
 
     SdrView		*pSdrView;
 
@@ -79,6 +81,7 @@ public:
     void		StateClpbrd(SfxItemSet &rSet);
     void		StateInsert(SfxItemSet &rSet);
     void 		ExecTransliteration(SfxRequest &);
+    void                ExecRotateTransliteration(SfxRequest &);
 
     void		Init();
     void		StateStatusline(SfxItemSet &rSet);
diff --git a/sw/source/ui/inc/textsh.hxx b/sw/source/ui/inc/textsh.hxx
index 86edca3..8108749 100644
--- a/sw/source/ui/inc/textsh.hxx
+++ b/sw/source/ui/inc/textsh.hxx
@@ -30,6 +30,7 @@
 #define _SWTEXTSH_HXX
 
 #include <basesh.hxx>
+#include <unotools/caserotate.hxx>
 
 class AbstractSvxPostItDialog;
 class SwFldMgr;
@@ -38,7 +39,7 @@ class SvxHyperlinkItem;
 class SwTextShell: public SwBaseShell
 {
     SwFldMgr*	pPostItFldMgr;
-    sal_uInt32  nF3ShiftCounter;
+    RotateTransliteration m_aRotateCase;
 
     void InsertSymbol( SfxRequest& );
     void InsertHyperlink(const SvxHyperlinkItem& rHlnkItem);
diff --git a/sw/source/ui/shells/annotsh.cxx b/sw/source/ui/shells/annotsh.cxx
index 16f04b3..a4e1ba7 100644
--- a/sw/source/ui/shells/annotsh.cxx
+++ b/sw/source/ui/shells/annotsh.cxx
@@ -1292,53 +1292,70 @@ void SwAnnotationShell::GetLinguState(SfxItemSet &rSet)
 void SwAnnotationShell::ExecTransliteration(SfxRequest &rReq)
 {
     SwPostItMgr* pPostItMgr = rView.GetPostItMgr();
-    if ( !pPostItMgr || !pPostItMgr->HasActiveSidebarWin() )
+    if (!pPostItMgr || !pPostItMgr->HasActiveSidebarWin())
         return;
 
     OutlinerView* pOLV = pPostItMgr->GetActiveSidebarWin()->GetOutlinerView();
 
+    if (!pOLV)
+        return;
+
     using namespace ::com::sun::star::i18n;
+
+    sal_uInt32 nMode = 0;
+
+    switch( rReq.GetSlot() )
     {
-        sal_uInt32 nMode = 0;
+        case SID_TRANSLITERATE_SENTENCE_CASE:
+            nMode = TransliterationModulesExtra::SENTENCE_CASE;
+            break;
+        case SID_TRANSLITERATE_TITLE_CASE:
+            nMode = TransliterationModulesExtra::TITLE_CASE;
+            break;
+        case SID_TRANSLITERATE_TOGGLE_CASE:
+            nMode = TransliterationModulesExtra::TOGGLE_CASE;
+            break;
+        case SID_TRANSLITERATE_UPPER:
+            nMode = TransliterationModules_LOWERCASE_UPPERCASE;
+            break;
+        case SID_TRANSLITERATE_LOWER:
+            nMode = TransliterationModules_UPPERCASE_LOWERCASE;
+            break;
+        case SID_TRANSLITERATE_HALFWIDTH:
+            nMode = TransliterationModules_FULLWIDTH_HALFWIDTH;
+            break;
+        case SID_TRANSLITERATE_FULLWIDTH:
+            nMode = TransliterationModules_HALFWIDTH_FULLWIDTH;
+            break;
+        case SID_TRANSLITERATE_HIRAGANA:
+            nMode = TransliterationModules_KATAKANA_HIRAGANA;
+            break;
+        case SID_TRANSLITERATE_KATAGANA:
+            nMode = TransliterationModules_HIRAGANA_KATAKANA;
+            break;
 
-        switch( rReq.GetSlot() )
-        {
-            case SID_TRANSLITERATE_SENTENCE_CASE:
-                nMode = TransliterationModulesExtra::SENTENCE_CASE;
-                break;
-            case SID_TRANSLITERATE_TITLE_CASE:
-                nMode = TransliterationModulesExtra::TITLE_CASE;
-                break;
-            case SID_TRANSLITERATE_TOGGLE_CASE:
-                nMode = TransliterationModulesExtra::TOGGLE_CASE;
-                break;
-            case SID_TRANSLITERATE_UPPER:
-                nMode = TransliterationModules_LOWERCASE_UPPERCASE;
-                break;
-            case SID_TRANSLITERATE_LOWER:
-                nMode = TransliterationModules_UPPERCASE_LOWERCASE;
-                break;
-            case SID_TRANSLITERATE_HALFWIDTH:
-                nMode = TransliterationModules_FULLWIDTH_HALFWIDTH;
-                break;
-            case SID_TRANSLITERATE_FULLWIDTH:
-                nMode = TransliterationModules_HALFWIDTH_FULLWIDTH;
-                break;
-            case SID_TRANSLITERATE_HIRAGANA:
-                nMode = TransliterationModules_KATAKANA_HIRAGANA;
-                break;
-            case SID_TRANSLITERATE_KATAGANA:
-                nMode = TransliterationModules_HIRAGANA_KATAKANA;
-                break;
+        default:
+            OSL_ENSURE(!this, "wrong dispatcher");
+    }
 
-            default:
-                OSL_ENSURE(!this, "wrong dispatcher");
-        }
+    if( nMode )
+        pOLV->TransliterateText( nMode );
+}
 
-        if( nMode )
-        {
-            pOLV->TransliterateText( nMode );
-        }
+void SwAnnotationShell::ExecRotateTransliteration( SfxRequest & rReq )
+{
+    if( rReq.GetSlot() == SID_TRANSLITERATE_ROTATE_CASE )
+    {
+        SwPostItMgr* pPostItMgr = rView.GetPostItMgr();
+        if (!pPostItMgr || !pPostItMgr->HasActiveSidebarWin())
+            return;
+
+        OutlinerView* pOLV = pPostItMgr->GetActiveSidebarWin()->GetOutlinerView();
+
+        if (!pOLV)
+            return;
+
+        pOLV->TransliterateText(m_aRotateCase.getNextMode());
     }
 }
 
diff --git a/sw/source/ui/shells/drwtxtsh.cxx b/sw/source/ui/shells/drwtxtsh.cxx
index 6fce73b..830c67b 100644
--- a/sw/source/ui/shells/drwtxtsh.cxx
+++ b/sw/source/ui/shells/drwtxtsh.cxx
@@ -628,54 +628,76 @@ void SwDrawTextShell::StateUndo(SfxItemSet &rSet)
 
 void SwDrawTextShell::ExecTransliteration( SfxRequest & rReq )
 {
+    if (!pSdrView)
+        return;
+
     using namespace i18n;
+
+    sal_uInt32 nMode = 0;
+
+    switch( rReq.GetSlot() )
     {
-        sal_uInt32 nMode = 0;
+    case SID_TRANSLITERATE_SENTENCE_CASE:
+        nMode = TransliterationModulesExtra::SENTENCE_CASE;
+        break;
+    case SID_TRANSLITERATE_TITLE_CASE:
+        nMode = TransliterationModulesExtra::TITLE_CASE;
+        break;
+    case SID_TRANSLITERATE_TOGGLE_CASE:
+        nMode = TransliterationModulesExtra::TOGGLE_CASE;
+        break;
+    case SID_TRANSLITERATE_UPPER:
+        nMode = TransliterationModules_LOWERCASE_UPPERCASE;
+        break;
+    case SID_TRANSLITERATE_LOWER:
+        nMode = TransliterationModules_UPPERCASE_LOWERCASE;
+        break;
 
-        switch( rReq.GetSlot() )
-        {
-        case SID_TRANSLITERATE_SENTENCE_CASE:
-            nMode = TransliterationModulesExtra::SENTENCE_CASE;
-            break;
-        case SID_TRANSLITERATE_TITLE_CASE:
-            nMode = TransliterationModulesExtra::TITLE_CASE;
-            break;
-        case SID_TRANSLITERATE_TOGGLE_CASE:
-            nMode = TransliterationModulesExtra::TOGGLE_CASE;
-            break;
-        case SID_TRANSLITERATE_UPPER:
-            nMode = TransliterationModules_LOWERCASE_UPPERCASE;
-            break;
-        case SID_TRANSLITERATE_LOWER:
-            nMode = TransliterationModules_UPPERCASE_LOWERCASE;
-            break;
+    case SID_TRANSLITERATE_HALFWIDTH:
+        nMode = TransliterationModules_FULLWIDTH_HALFWIDTH;
+        break;
+    case SID_TRANSLITERATE_FULLWIDTH:
+        nMode = TransliterationModules_HALFWIDTH_FULLWIDTH;
+        break;
 
-        case SID_TRANSLITERATE_HALFWIDTH:
-            nMode = TransliterationModules_FULLWIDTH_HALFWIDTH;
-            break;
-        case SID_TRANSLITERATE_FULLWIDTH:
-            nMode = TransliterationModules_HALFWIDTH_FULLWIDTH;
-            break;
+    case SID_TRANSLITERATE_HIRAGANA:
+        nMode = TransliterationModules_KATAKANA_HIRAGANA;
+        break;
+    case SID_TRANSLITERATE_KATAGANA:
+        nMode = TransliterationModules_HIRAGANA_KATAKANA;
+        break;
 
-        case SID_TRANSLITERATE_HIRAGANA:
-            nMode = TransliterationModules_KATAKANA_HIRAGANA;
-            break;
-        case SID_TRANSLITERATE_KATAGANA:
-            nMode = TransliterationModules_HIRAGANA_KATAKANA;
-            break;
+    default:
+        OSL_ENSURE(!this, "wrong dispatcher");
+    }
 
-        default:
-            OSL_ENSURE(!this, "wrong dispatcher");
-        }
+    if( nMode )
+    {
+        OutlinerView* pOLV = pSdrView->GetTextEditOutlinerView();
 
-        if( nMode )
-        {
-            OutlinerView* pOLV = pSdrView->GetTextEditOutlinerView();
-            pOLV->TransliterateText( nMode );
-        }
+        if (!pOLV)
+            return;
+
+        pOLV->TransliterateText( nMode );
     }
 }
 
+void SwDrawTextShell::ExecRotateTransliteration( SfxRequest & rReq )
+{
+    if( rReq.GetSlot() == SID_TRANSLITERATE_ROTATE_CASE )
+    {
+        if (!pSdrView)
+            return;
+
+        OutlinerView* pOLV = pSdrView->GetTextEditOutlinerView();
+
+        if (!pOLV)
+            return;
+
+        pOLV->TransliterateText( m_aRotateCase.getNextMode() );
+    }
+} 
+
 /*--------------------------------------------------------------------
     Beschreibung:	Sonderzeichen einfuegen (siehe SDraw: FUBULLET.CXX)
  --------------------------------------------------------------------*/
diff --git a/sw/source/ui/shells/textsh.cxx b/sw/source/ui/shells/textsh.cxx
index 6321749..de64856 100644
--- a/sw/source/ui/shells/textsh.cxx
+++ b/sw/source/ui/shells/textsh.cxx
@@ -954,80 +954,56 @@ void  SwTextShell::ExecDelete(SfxRequest &rReq)
 void SwTextShell::ExecTransliteration( SfxRequest & rReq )
 {
     using namespace ::com::sun::star::i18n;
-    {
-        sal_uInt32 nMode = 0;
+    sal_uInt32 nMode = 0;
 
-        switch( rReq.GetSlot() )
-        {
-        case SID_TRANSLITERATE_SENTENCE_CASE:
-            nMode = TransliterationModulesExtra::SENTENCE_CASE;
-            break;
-        case SID_TRANSLITERATE_TITLE_CASE:
-            nMode = TransliterationModulesExtra::TITLE_CASE;
-            break;
-        case SID_TRANSLITERATE_TOGGLE_CASE:
-            nMode = TransliterationModulesExtra::TOGGLE_CASE;
-            break;
-        case SID_TRANSLITERATE_UPPER:
-            nMode = TransliterationModules_LOWERCASE_UPPERCASE;
-            break;
-        case SID_TRANSLITERATE_LOWER:
-            nMode = TransliterationModules_UPPERCASE_LOWERCASE;
-            break;
-
-        case SID_TRANSLITERATE_HALFWIDTH:
-            nMode = TransliterationModules_FULLWIDTH_HALFWIDTH;
-            break;
-        case SID_TRANSLITERATE_FULLWIDTH:
-            nMode = TransliterationModules_HALFWIDTH_FULLWIDTH;
-            break;
+    switch( rReq.GetSlot() )
+    {
+    case SID_TRANSLITERATE_SENTENCE_CASE:
+        nMode = TransliterationModulesExtra::SENTENCE_CASE;
+        break;
+    case SID_TRANSLITERATE_TITLE_CASE:
+        nMode = TransliterationModulesExtra::TITLE_CASE;
+        break;
+    case SID_TRANSLITERATE_TOGGLE_CASE:
+        nMode = TransliterationModulesExtra::TOGGLE_CASE;
+        break;
+    case SID_TRANSLITERATE_UPPER:
+        nMode = TransliterationModules_LOWERCASE_UPPERCASE;
+        break;
+    case SID_TRANSLITERATE_LOWER:
+        nMode = TransliterationModules_UPPERCASE_LOWERCASE;
+        break;
 
-        case SID_TRANSLITERATE_HIRAGANA:
-            nMode = TransliterationModules_KATAKANA_HIRAGANA;
-            break;
-        case SID_TRANSLITERATE_KATAGANA:
-            nMode = TransliterationModules_HIRAGANA_KATAKANA;
-            break;
+    case SID_TRANSLITERATE_HALFWIDTH:
+        nMode = TransliterationModules_FULLWIDTH_HALFWIDTH;
+        break;
+    case SID_TRANSLITERATE_FULLWIDTH:
+        nMode = TransliterationModules_HALFWIDTH_FULLWIDTH;
+        break;
 
-        default:
-            OSL_ENSURE(!this, "wrong dispatcher");
-        }
+    case SID_TRANSLITERATE_HIRAGANA:
+        nMode = TransliterationModules_KATAKANA_HIRAGANA;
+        break;
+    case SID_TRANSLITERATE_KATAGANA:
+        nMode = TransliterationModules_HIRAGANA_KATAKANA;
+        break;
 
-        if( nMode )
-            GetShell().TransliterateText( nMode );
+    default:
+        OSL_ENSURE(!this, "wrong dispatcher");
     }
+
+    if( nMode )
+        GetShell().TransliterateText( nMode );
 }
 
 void SwTextShell::ExecRotateTransliteration( SfxRequest & rReq )
 {
-    using namespace ::com::sun::star::i18n;
-    {
-        sal_uInt32 nMode = 0;
-
-        if( rReq.GetSlot() == SID_TRANSLITERATE_ROTATE_CASE ) {
-            switch ( nF3ShiftCounter ) {
-                case 0:
-                    nMode = TransliterationModulesExtra::TITLE_CASE;
-                    break;
-                case 1:
-                    nMode = TransliterationModules_LOWERCASE_UPPERCASE;
-                    break;
-                case 2:
-                    nMode = TransliterationModules_UPPERCASE_LOWERCASE;
-                    nF3ShiftCounter = -1;
-                    break;
-            }
-
-            if ( nMode )
-                GetShell().TransliterateText( nMode );
-
-            nF3ShiftCounter++;
-        }
-    }
+    if( rReq.GetSlot() == SID_TRANSLITERATE_ROTATE_CASE )
+        GetShell().TransliterateText( m_aRotateCase.getNextMode() );
 }
 
 SwTextShell::SwTextShell(SwView &_rView) :
-    SwBaseShell(_rView), pPostItFldMgr( 0 ), nF3ShiftCounter(0)
+    SwBaseShell(_rView), pPostItFldMgr( 0 )
 {
     SetName(String::CreateFromAscii("Text"));
     SetHelpId(SW_TEXTSHELL);


More information about the Libreoffice-commits mailing list