aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGravatar Matt Ullman2015-11-04 16:39:05 -0500
committerGravatar Matt Ullman2015-11-04 16:39:05 -0500
commit4fa5b389e853065181447f11985b7b985de9165b (patch)
tree0d9638247e3276028a4ba5f644f768e8fa6ad32e /src
parentMerge pull request #1714 from blindsighttf2/favorites (diff)
downloadKVIrc-4fa5b389e853065181447f11985b7b985de9165b.tar.gz
KVIrc-4fa5b389e853065181447f11985b7b985de9165b.tar.bz2
KVIrc-4fa5b389e853065181447f11985b7b985de9165b.zip
events: Add option to require Control to copy
Closes #1709
Diffstat (limited to 'src')
-rw-r--r--src/kvirc/kernel/KviOptions.cpp3
-rw-r--r--src/kvirc/kernel/KviOptions.h3
-rw-r--r--src/kvirc/ui/KviIrcView.h1
-rw-r--r--src/kvirc/ui/KviIrcView_events.cpp4
-rw-r--r--src/modules/options/OptionsWidget_input.cpp11
5 files changed, 15 insertions, 7 deletions
diff --git a/src/kvirc/kernel/KviOptions.cpp b/src/kvirc/kernel/KviOptions.cpp
index 5148ae620..744df1afc 100644
--- a/src/kvirc/kernel/KviOptions.cpp
+++ b/src/kvirc/kernel/KviOptions.cpp
@@ -335,7 +335,8 @@ KviBoolOption g_boolOptionsTable[KVI_NUM_BOOL_OPTIONS]=
BOOL_OPTION("UserListViewUseAwayColor",true,KviOption_sectFlagUserListView | KviOption_resetUpdateGui),
BOOL_OPTION("ShowUserFlagForChannelsInWindowList",true,KviOption_sectFlagWindowList | KviOption_resetUpdateGui),
BOOL_OPTION("EnableCustomCursorWidth",false,KviOption_sectFlagGui | KviOption_resetUpdateGui),
- BOOL_OPTION("ShowFavoriteServersOnly",false,KviOption_sectFlagFrame)
+ BOOL_OPTION("ShowFavoriteServersOnly",false,KviOption_sectFlagFrame),
+ BOOL_OPTION("RequireControlToCopy",false,KviOption_sectFlagIrcView)
};
#define STRING_OPTION(_txt,_val,_flags) KviStringOption(KVI_STRING_OPTIONS_PREFIX _txt,_val,_flags)
diff --git a/src/kvirc/kernel/KviOptions.h b/src/kvirc/kernel/KviOptions.h
index f1fabb8bd..45a35f1dd 100644
--- a/src/kvirc/kernel/KviOptions.h
+++ b/src/kvirc/kernel/KviOptions.h
@@ -355,8 +355,9 @@ DECLARE_OPTION_STRUCT(KviStringListOption,QStringList)
#define KviOption_boolShowUserFlagForChannelsInWindowList 260
#define KviOption_boolEnableCustomCursorWidth 261 /* interface */
#define KviOption_boolShowFavoriteServersOnly 262 /* connection::ircservers */
+#define KviOption_boolRequireControlToCopy 263 /* interface::ircview */
-#define KVI_NUM_BOOL_OPTIONS 263
+#define KVI_NUM_BOOL_OPTIONS 264
#define KVI_STRING_OPTIONS_PREFIX "string"
diff --git a/src/kvirc/ui/KviIrcView.h b/src/kvirc/ui/KviIrcView.h
index ed27bd48c..5e950e6ec 100644
--- a/src/kvirc/ui/KviIrcView.h
+++ b/src/kvirc/ui/KviIrcView.h
@@ -125,6 +125,7 @@ private:
bool m_bMouseIsDown;
bool m_bShiftPressed;
+ bool m_bCtrlPressed;
bool m_bSkipScrollBarRepaint;
int m_iMouseTimer;
diff --git a/src/kvirc/ui/KviIrcView_events.cpp b/src/kvirc/ui/KviIrcView_events.cpp
index 140fb3d43..74e06e6d4 100644
--- a/src/kvirc/ui/KviIrcView_events.cpp
+++ b/src/kvirc/ui/KviIrcView_events.cpp
@@ -277,6 +277,7 @@ void KviIrcView::mousePressEvent(QMouseEvent * e)
m_bMouseIsDown = true;
m_bShiftPressed = (e->modifiers() & Qt::ShiftModifier);
+ m_bCtrlPressed = (e->modifiers() & Qt::ControlModifier);
if(m_iMouseTimer) // clicked at least twice within the doubleClickInterval(): this is a double click then...
{
@@ -496,6 +497,8 @@ void KviIrcView::mouseReleaseEvent(QMouseEvent *e)
QString szSelectionText;
while(tempLine)
{
+ if(KVI_OPTION_BOOL(KviOption_boolRequireControlToCopy) && !m_bCtrlPressed)
+ break;
if(tempLine->uIndex == init->uIndex)
{
if(tempLine->uIndex == end->uIndex)
@@ -637,6 +640,7 @@ void KviIrcView::mouseReleaseEvent(QMouseEvent *e)
{
m_bMouseIsDown = false;
m_bShiftPressed = false;
+ m_bCtrlPressed = false;
// Insert the lines blocked while selecting
while(KviIrcViewLine * l = m_pMessagesStoppedWhileSelecting->first())
{
diff --git a/src/modules/options/OptionsWidget_input.cpp b/src/modules/options/OptionsWidget_input.cpp
index 855497890..a900a8f3b 100644
--- a/src/modules/options/OptionsWidget_input.cpp
+++ b/src/modules/options/OptionsWidget_input.cpp
@@ -144,9 +144,10 @@ OptionsWidget_inputFeatures::OptionsWidget_inputFeatures(QWidget * parent)
addBoolSelector(0,1,0,1,__tr2qs_ctx("Enable the input history logging","options"),KviOption_boolEnableInputHistory); //G&N 2005
addBoolSelector(0,2,0,2,__tr2qs_ctx("Hide input toolbuttons by default","options"),KviOption_boolHideInputToolButtons);
addBoolSelector(0,3,0,3,__tr2qs_ctx("Commandline in user-friendly mode by default","options"),KviOption_boolCommandlineInUserFriendlyModeByDefault);
- addUIntSelector(0,4,0,4,__tr2qs_ctx("Expand tabulations in input using this amount of spaces:","options"),KviOption_uintSpacesToExpandTabulationInput,1,24,8,true);
+ addBoolSelector(0,4,0,4,__tr2qs_ctx("Require 'Control' to be held down to copy text","options"),KviOption_boolRequireControlToCopy);
+ addUIntSelector(0,5,0,5,__tr2qs_ctx("Expand tabulations in input using this amount of spaces:","options"),KviOption_uintSpacesToExpandTabulationInput,1,24,8,true);
- KviTalGroupBox * g = addGroupBox(0,5,0,5,Qt::Horizontal,__tr2qs_ctx("Nick Completion","options"));
+ KviTalGroupBox * g = addGroupBox(0,6,0,6,Qt::Horizontal,__tr2qs_ctx("Nick Completion","options"));
KviBoolSelector * b, *c;
b = addBoolSelector(g,__tr2qs_ctx("Use bash-like nick completion","options"),KviOption_boolBashLikeNickCompletion,!KVI_OPTION_BOOL(KviOption_boolZshLikeNickCompletion));
c = addBoolSelector(g,__tr2qs_ctx("Use zsh-like nick completion","options"),KviOption_boolZshLikeNickCompletion,!KVI_OPTION_BOOL(KviOption_boolBashLikeNickCompletion));
@@ -156,11 +157,11 @@ OptionsWidget_inputFeatures::OptionsWidget_inputFeatures(QWidget * parent)
addStringSelector(g,__tr2qs_ctx("Nick completion postfix string","options"),KviOption_stringNickCompletionPostfix);
addBoolSelector(g,__tr2qs_ctx("Use the completion postfix string for the first word only","options"),KviOption_boolUseNickCompletionPostfixForFirstWordOnly);
- KviBoolSelector *d = addBoolSelector(0,6,0,6,__tr2qs_ctx("Use a custom cursor width","options"),KviOption_boolEnableCustomCursorWidth);
- KviUIntSelector *f = addUIntSelector(0,7,0,7,__tr2qs_ctx("Custom cursor width:","options"),KviOption_uintCustomCursorWidth,1,24,8,KVI_OPTION_BOOL(KviOption_boolEnableCustomCursorWidth));
+ KviBoolSelector *d = addBoolSelector(0,7,0,7,__tr2qs_ctx("Use a custom cursor width","options"),KviOption_boolEnableCustomCursorWidth);
+ KviUIntSelector *f = addUIntSelector(0,8,0,8,__tr2qs_ctx("Custom cursor width:","options"),KviOption_uintCustomCursorWidth,1,24,8,KVI_OPTION_BOOL(KviOption_boolEnableCustomCursorWidth));
f->setSuffix(__tr2qs_ctx(" px","options"));
connect(d,SIGNAL(toggled(bool)),f,SLOT(setEnabled(bool)));
- addRowSpacer(0,8,0,8);
+ addRowSpacer(0,9,0,9);
}
OptionsWidget_inputFeatures::~OptionsWidget_inputFeatures()