[PATCH] fdo#51296 Helptext added for hyperlinks, hlinks behave as i...
Akash Shetye (via Code Review)
gerrit at gerrit.libreoffice.org
Mon May 27 05:13:09 PDT 2013
Hi,
I have submitted a patch for review:
https://gerrit.libreoffice.org/4051
To pull it, you can do:
git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/51/4051/1
fdo#51296 Helptext added for hyperlinks, hlinks behave as in writer
Added prefixed of "ctrl+click to open hyperlink" to hlinks depending on the security setting. Now clicking links behave as in writer.
Change-Id: I87d0fecb6268463cd99478b70eb081ed958976be
---
M sc/inc/globstr.hrc
M sc/source/core/data/global.cxx
M sc/source/ui/src/globstr.src
M sc/source/ui/view/gridwin5.cxx
4 files changed, 72 insertions(+), 17 deletions(-)
diff --git a/sc/inc/globstr.hrc b/sc/inc/globstr.hrc
index 7dc6cd6..d053da6 100644
--- a/sc/inc/globstr.hrc
+++ b/sc/inc/globstr.hrc
@@ -673,7 +673,10 @@
#define STR_FUN_TEXT_SELECTION_COUNT 546
-#define STR_COUNT 547
+#define STR_CTRLCLICKHYPERLINK 548
+#define STR_CLICKHYPERLINK 549
+
+#define STR_COUNT 560
#endif
diff --git a/sc/source/core/data/global.cxx b/sc/source/core/data/global.cxx
index 95084a9..a34b1de 100644
--- a/sc/source/core/data/global.cxx
+++ b/sc/source/core/data/global.cxx
@@ -925,20 +925,20 @@
// aufgerufen, darum stimmen pScActiveViewShell und nScClickMouseModifier.
//SvtSecurityOptions to access Libreoffice global security parameters
SvtSecurityOptions aSecOpt;
- bool bProceedHyperlink = false;
- if ( (nScClickMouseModifier & KEY_MOD1) && aSecOpt.IsOptionSet( SvtSecurityOptions::E_CTRLCLICK_HYPERLINK )) // control-click -> into new window
+ bool bCtrlClickHappened = (nScClickMouseModifier & KEY_MOD1);
+ bool bCtrlClickSecOption = aSecOpt.IsOptionSet( SvtSecurityOptions::E_CTRLCLICK_HYPERLINK );
+ if( bCtrlClickHappened && !( bCtrlClickSecOption ) )
{
- //Ctrl key is pressed and ctrl+click hyperlink security control is set
- bProceedHyperlink = true;
- }
- else if( !aSecOpt.IsOptionSet( SvtSecurityOptions::E_CTRLCLICK_HYPERLINK ) )
- {
- //ctrl+click hyperlink security control is disabled just click will do
- bProceedHyperlink = true;
- }
- if ( !bProceedHyperlink )
+ //return since ctrl+click happened when the
+ //ctrl+click security option was disabled, link should not open
return;
-
+ }
+ else if( !( bCtrlClickHappened ) && bCtrlClickSecOption )
+ {
+ //ctrl+click did not happen; only click happened maybe with some
+ //other key combo. and security option is set, so return
+ return;
+ }
SfxStringItem aUrl( SID_FILE_NAME, rURL );
SfxStringItem aTarget( SID_TARGETNAME, rTarget );
aTarget.SetValue(OUString("_blank"));
diff --git a/sc/source/ui/src/globstr.src b/sc/source/ui/src/globstr.src
index b9ffd2a..9ab25c1 100644
--- a/sc/source/ui/src/globstr.src
+++ b/sc/source/ui/src/globstr.src
@@ -2065,6 +2065,14 @@
{
Text [ en-US ] = "Invalid condition." ;
};
+ String STR_CTRLCLICKHYPERLINK
+ {
+ Text [ en-US ] = "ctrl+click to open hyperlink:";
+ };
+ String STR_CLICKHYPERLINK
+ {
+ Text [ en-US ] = "click to open hyperlink:";
+ };
};
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/view/gridwin5.cxx b/sc/source/ui/view/gridwin5.cxx
index 7055c22..7253feb 100644
--- a/sc/source/ui/view/gridwin5.cxx
+++ b/sc/source/ui/view/gridwin5.cxx
@@ -31,6 +31,7 @@
#include <sfx2/viewfrm.hxx>
#include <unotools/localedatawrapper.hxx>
+#include <unotools/securityoptions.hxx>
#include "viewuno.hxx"
#include "AccessibleDocument.hxx"
@@ -49,7 +50,8 @@
#include "tabvwsh.hxx"
#include "userdat.hxx"
#include "postit.hxx"
-
+#include "global.hxx"
+#include "globstr.hrc"
// -----------------------------------------------------------------------
bool ScGridWindow::ShowNoteMarker( SCsCOL nPosX, SCsROW nPosY, bool bKeyboard )
@@ -237,16 +239,25 @@
void ScGridWindow::RequestHelp(const HelpEvent& rHEvt)
{
+ //To know whether to prefix STR_CTRLCLICKHYERLINK or STR_CLICKHYPERLINK
+ //to hyperlink tooltips/help text
+ SvtSecurityOptions aSecOpt;
+ //using sal_bool not bool because it seems so prominent
+ //stores state of ctrl click security setting
+ sal_Bool bCtrlClickHlink = aSecOpt.IsOptionSet( SvtSecurityOptions::E_CTRLCLICK_HYPERLINK );
+ //Global string STR_CTRLCLICKHYPERLINK i.e, "ctrl+click to open hyperlink:"
+ OUString aCtrlClickHlinkStr = ScGlobal::GetRscString( STR_CTRLCLICKHYPERLINK );
+ //Global string STR_CLICKHYPERLINK i.e, "click to open hyperlink"
+ //could have just used this and made STR_CTRLCLICKHYPERLINK by prefixing
+ //ctrl+ to it; But don't know if 'ctrl' needs localization?
+ OUString aClickHlinkStr = ScGlobal::GetRscString( STR_CLICKHYPERLINK );
sal_Bool bDone = false;
sal_Bool bHelpEnabled = ( rHEvt.GetMode() & ( HELPMODE_BALLOON | HELPMODE_QUICK ) ) != 0;
SdrView* pDrView = pViewData->GetScDrawView();
-
sal_Bool bDrawTextEdit = false;
if (pDrView)
bDrawTextEdit = pDrView->IsTextEdit();
-
// notes or change tracking
-
if ( bHelpEnabled && !bDrawTextEdit )
{
Point aPosPixel = ScreenToOutputPixel( rHEvt.GetMousePosPixel() );
@@ -300,6 +311,16 @@
aHelpText = pIMapObj->GetAltText();
if (!aHelpText.Len())
aHelpText = pIMapObj->GetURL();
+ if( bCtrlClickHlink )
+ {
+ //prefix STR_CTRLCLICKHYPERLINK to aHelpText
+ aHelpText = aCtrlClickHlinkStr + aHelpText;
+ }
+ else
+ {
+ //Option not set, so prefix STR_CLICKHYPERLINK
+ aHelpText = aClickHlinkStr + aHelpText;
+ }
aPixRect = LogicToPixel(aVEvt.pObj->GetLogicRect());
}
}
@@ -329,6 +350,17 @@
{
aPixRect = LogicToPixel(aVEvt.pObj->GetLogicRect());
aHelpText = pInfo->GetHlink();
+ if( bCtrlClickHlink )
+ {
+ //prefix STR_CTRLCLICKHYPERLINK to aHelpText
+ aHelpText = aCtrlClickHlinkStr + aHelpText;
+ }
+ else
+ {
+ //Option not set, so prefix STR_CLICKHYPERLINK
+ aHelpText = aClickHlinkStr + aHelpText;
+ }
+
}
}
}
@@ -344,6 +376,18 @@
aHelpText = INetURLObject::decode( aUrl, INET_HEX_ESCAPE,
INetURLObject::DECODE_UNAMBIGUOUS );
+ if( bCtrlClickHlink )
+ {
+ //prefix STR_CTRLCLICKHYPERLINK to aHelpText
+ aHelpText = aCtrlClickHlinkStr + aHelpText;
+ }
+ else
+ {
+ //Option not set, so prefix STR_CLICKHYPERLINK
+ aHelpText = aClickHlinkStr + aHelpText;
+ }
+
+
ScDocument* pDoc = pViewData->GetDocument();
SCsCOL nPosX;
SCsROW nPosY;
--
To view, visit https://gerrit.libreoffice.org/4051
To unsubscribe, visit https://gerrit.libreoffice.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I87d0fecb6268463cd99478b70eb081ed958976be
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: master
Gerrit-Owner: Akash Shetye <shetyeakash at gmail.com>
More information about the LibreOffice
mailing list