I did tentatively the modification for calc, and draw. It works for me.

Balint

2011. március 16. 22:26 Caolán McNamara írta, <caol...@redhat.com>:

> On Wed, 2011-03-16 at 21:45 +0100, Bálint Dózsa wrote:
> > Hi,
> >
> > Here is a modification. (Shift+F3 is not hardcoded)
>
> Cool, this looks good stuff on first glance.
>
> Probably a few open questions around handling the e.g. "annotation"
> shell for using it inside those insert->comment things, and whether it
> should be a writer only feature and/or in calc/draw too.
>
> Not sure about whether we should e.g. reset the mode when moving from
> one place to another in the document or detect the current case mode
> based on the selection and shift to the next one rather than hook off a
> count.
>
> If noone else gets around to this by Fri I'll have a look at sticking
> this in.
>
> C.
>
>
From 5ac5046adc66885a0a2b9b5059b37682b5dfc6fb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?B=C3=A1lint=20D=C3=B3zsa?= <dozsabal...@gmail.com>
Date: Thu, 17 Mar 2011 14:21:13 +0100
Subject: [PATCH] FIX BUG 32559 - calc

---
 sc/sdi/cellsh.sdi             |    1 +
 sc/source/ui/inc/cellsh.hxx   |    3 +++
 sc/source/ui/view/cellsh.cxx  |    3 ++-
 sc/source/ui/view/cellsh1.cxx |   30 ++++++++++++++++++++++++++++++
 4 files changed, 36 insertions(+), 1 deletions(-)

diff --git a/sc/sdi/cellsh.sdi b/sc/sdi/cellsh.sdi
index b4bd228..9ad0621 100644
--- a/sc/sdi/cellsh.sdi
+++ b/sc/sdi/cellsh.sdi
@@ -197,6 +197,7 @@ interface CellSelection
     SID_TRANSLITERATE_SENTENCE_CASE [ ExecMethod = ExecuteTrans; StateMethod = GetBlockState; ]
     SID_TRANSLITERATE_TITLE_CASE    [ ExecMethod = ExecuteTrans; StateMethod = GetBlockState; ]
     SID_TRANSLITERATE_TOGGLE_CASE   [ ExecMethod = ExecuteTrans; StateMethod = GetBlockState; ]
+    SID_TRANSLITERATE_ROTATE_CASE   [ ExecMethod = ExecuteRotateTrans; StateMethod = GetBlockState; ]
     SID_TRANSLITERATE_UPPER		[ ExecMethod = ExecuteTrans; StateMethod = GetBlockState; ]
     SID_TRANSLITERATE_LOWER		[ ExecMethod = ExecuteTrans; StateMethod = GetBlockState; ]
     SID_TRANSLITERATE_HALFWIDTH	[ ExecMethod = ExecuteTrans; StateMethod = GetBlockState; ]
diff --git a/sc/source/ui/inc/cellsh.hxx b/sc/source/ui/inc/cellsh.hxx
index 3614389..dbe6262 100644
--- a/sc/source/ui/inc/cellsh.hxx
+++ b/sc/source/ui/inc/cellsh.hxx
@@ -71,6 +71,8 @@ private:
     DECL_LINK( ClipboardChanged, TransferableDataHelper* );
     DECL_LINK( DialogClosed, AbstractScLinkedAreaDlg* );
 
+    sal_uInt32  nF3ShiftCounter;
+
 public:
 
     TYPEINFO();
@@ -84,6 +86,7 @@ public:
 
     void		ExecuteEdit( SfxRequest& rReq );
     void		ExecuteTrans( SfxRequest& rReq );
+    void                ExecuteRotateTrans( SfxRequest& rReq );
 
     void		GetBlockState( SfxItemSet& rSet );
     void		GetCellState( SfxItemSet& rSet );
diff --git a/sc/source/ui/view/cellsh.cxx b/sc/source/ui/view/cellsh.cxx
index 7c52a2d..1fdfa03 100644
--- a/sc/source/ui/view/cellsh.cxx
+++ b/sc/source/ui/view/cellsh.cxx
@@ -89,7 +89,8 @@ SFX_IMPL_INTERFACE(ScCellShell, ScFormatShell , ScResId(SCSTR_CELLSHELL) )
 ScCellShell::ScCellShell(ScViewData* pData) :
     ScFormatShell(pData),
     pImpl( new CellShell_Impl() ),
-    bPastePossible(FALSE)
+    bPastePossible(FALSE),
+    nF3ShiftCounter(0)
 {
     SetHelpId(HID_SCSHELL_CELLSH);
     SetName(String::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM("Cell")));
diff --git a/sc/source/ui/view/cellsh1.cxx b/sc/source/ui/view/cellsh1.cxx
index 26938b7..22097a0 100644
--- a/sc/source/ui/view/cellsh1.cxx
+++ b/sc/source/ui/view/cellsh1.cxx
@@ -112,6 +112,8 @@
 #include <com/sun/star/beans/PropertyValue.hpp>
 #include <com/sun/star/beans/XPropertySet.hpp>
 #include <cppuhelper/bootstrap.hxx>
+#include <com/sun/star/i18n/TransliterationModules.hpp>
+#include <com/sun/star/i18n/TransliterationModulesExtra.hpp>
 
 #include <boost/scoped_ptr.hpp>
 
@@ -2088,6 +2090,34 @@ void ScCellShell::ExecuteTrans( SfxRequest& rReq )
     }
 }
 
+void ScCellShell::ExecuteRotateTrans( 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 )
+                GetViewData()->GetView()->TransliterateText( nMode );
+
+            nF3ShiftCounter++;
+        }
+    }
+}
+
 void ScCellShell::ExecuteExternalSource(
     const String& _rFile, const String& _rFilter, const String& _rOptions,
     const String& _rSource, ULONG _nRefresh, SfxRequest& _rRequest )
-- 
1.7.3.4

From bf8a4a232bbc976e4e7685f33ede4c32183add5b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?B=C3=A1lint=20D=C3=B3zsa?= <dozsabal...@gmail.com>
Date: Thu, 17 Mar 2011 15:53:50 +0100
Subject: [PATCH] FIX BUG 32559 - draw

---
 sd/sdi/_drvwsh.sdi                 |    5 +++++
 sd/source/ui/inc/DrawViewShell.hxx |    3 +++
 sd/source/ui/view/drviewsa.cxx     |    1 +
 sd/source/ui/view/drviewse.cxx     |   29 +++++++++++++++++++++++++++++
 4 files changed, 38 insertions(+), 0 deletions(-)

diff --git a/sd/sdi/_drvwsh.sdi b/sd/sdi/_drvwsh.sdi
index 554dd88..59d2337 100755
--- a/sd/sdi/_drvwsh.sdi
+++ b/sd/sdi/_drvwsh.sdi
@@ -2159,6 +2159,11 @@ interface DrawView
         ExecMethod = FuSupport ;
         StateMethod = GetCtrlState ;
     ]
+    SID_TRANSLITERATE_ROTATE_CASE // ole : no, status : ?
+    [
+        ExecMethod = FuSupportRotate ;
+        StateMethod = GetCtrlState ;
+    ]
     SID_TRANSLITERATE_LOWER // ole : no, status : ?
     [
         ExecMethod = FuSupport ;
diff --git a/sd/source/ui/inc/DrawViewShell.hxx b/sd/source/ui/inc/DrawViewShell.hxx
index be9207f..94bfeb3 100644
--- a/sd/source/ui/inc/DrawViewShell.hxx
+++ b/sd/source/ui/inc/DrawViewShell.hxx
@@ -72,6 +72,8 @@ class DrawViewShell
     : public ViewShell,
       public SfxListener
 {
+    sal_uInt32  nF3ShiftCounter;
+
 public:
     static const int SLOTARRAY_COUNT = 24;
 
@@ -218,6 +220,7 @@ public:
     void	        FuTemporary(SfxRequest& rReq);
     void	        FuPermanent(SfxRequest& rReq);
     void	        FuSupport(SfxRequest& rReq);
+    void                FuSupportRotate(SfxRequest& rReq);
     void	        FuTable(SfxRequest& rReq);
 
     void	        AttrExec (SfxRequest& rReq);
diff --git a/sd/source/ui/view/drviewsa.cxx b/sd/source/ui/view/drviewsa.cxx
index c8779b0..727c32b 100644
--- a/sd/source/ui/view/drviewsa.cxx
+++ b/sd/source/ui/view/drviewsa.cxx
@@ -140,6 +140,7 @@ DrawViewShell::DrawViewShell( SfxViewFrame* pFrame, ViewShellBase& rViewShellBas
 : ViewShell (pFrame, pParentWindow, rViewShellBase)
 , maTabControl(this, pParentWindow)
 , mbIsInSwitchPage(false)
+, nF3ShiftCounter(0)
 {
     if (pFrameViewArgument != NULL)
         mpFrameView = pFrameViewArgument;
diff --git a/sd/source/ui/view/drviewse.cxx b/sd/source/ui/view/drviewse.cxx
index 17a01f7..e532903 100644
--- a/sd/source/ui/view/drviewse.cxx
+++ b/sd/source/ui/view/drviewse.cxx
@@ -1475,6 +1475,35 @@ void DrawViewShell::FuSupport(SfxRequest& rReq)
     }
 }
 
+void DrawViewShell::FuSupportRotate(SfxRequest &rReq)
+{
+    using namespace ::com::sun::star::i18n;
+    {
+        sal_uInt32 nMode = 0;
+        OutlinerView* pOLV = GetView()->GetTextEditOutlinerView();
+
+        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 )
+                pOLV->TransliterateText( nMode );
+
+            nF3ShiftCounter++;
+        }
+    }
+}
+
 /*************************************************************************
 |*
 |* URL-Feld einfuegen
-- 
1.7.3.4

From 155e69d09a29ec733e8e603738a3f4833d88db8b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?B=C3=A1lint=20D=C3=B3zsa?= <dozsabal...@gmail.com>
Date: Thu, 17 Mar 2011 15:55:39 +0100
Subject: [PATCH] FIX BUG 32559 - officecfg

---
 .../data/org/openoffice/Office/Accelerators.xcu    |   12 +++++++++++-
 1 files changed, 11 insertions(+), 1 deletions(-)

diff --git a/officecfg/registry/data/org/openoffice/Office/Accelerators.xcu b/officecfg/registry/data/org/openoffice/Office/Accelerators.xcu
index de1380a..0962939 100755
--- a/officecfg/registry/data/org/openoffice/Office/Accelerators.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/Accelerators.xcu
@@ -538,6 +538,11 @@
       <value xml:lang="en-US">.uno:DefineName</value>
      </prop>
     </node>
+    <node oor:name="F3_SHIFT" oor:op="replace">
+     <prop oor:name="Command"><value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
+      <value xml:lang="en-US">.uno:ChangeCaseRotateCase</value>
+     </prop>
+    </node>
     <node oor:name="F4" oor:op="replace">
      <prop oor:name="Command"><value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
       <value xml:lang="en-US">.uno:ViewDataSourceBrowser</value>
@@ -1110,10 +1115,15 @@
       <value xml:lang="en-US">.uno:LeaveGroup</value>
      </prop>
     </node>
-    <node oor:name="F3_SHIFT" oor:op="replace">
+    <!--<node oor:name="F3_SHIFT" oor:op="replace">
      <prop oor:name="Command"><value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
       <value xml:lang="en-US">.uno:CopyObjects</value>
      </prop>
+    </node>-->
+    <node oor:name="F3_SHIFT" oor:op="replace">
+     <prop oor:name="Command"><value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
+      <value xml:lang="en-US">.uno:ChangeCaseRotateCase</value>
+     </prop>
     </node>
     <node oor:name="F4" oor:op="replace">
      <prop oor:name="Command"><value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
-- 
1.7.3.4

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

Reply via email to