aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGravatar Fabio Bas2009-03-15 16:48:46 +0000
committerGravatar Fabio Bas2009-03-15 16:48:46 +0000
commit7afb0c5065e4340f9229b639834271883feeff87 (patch)
tree96967386b24986f55717a7bfdb5c225fdd5cff6d /src
parenthighlight engine: added an option to switch between free match and strict wor... (diff)
downloadKVIrc-7afb0c5065e4340f9229b639834271883feeff87.tar.gz
KVIrc-7afb0c5065e4340f9229b639834271883feeff87.tar.bz2
KVIrc-7afb0c5065e4340f9229b639834271883feeff87.zip
implemented zsh completion (closes #2)
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@3144 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src')
-rw-r--r--src/kvirc/kernel/kvi_options.cpp3
-rw-r--r--src/kvirc/kernel/kvi_options.h3
-rw-r--r--src/kvirc/ui/kvi_input_editor.cpp15
-rw-r--r--src/modules/options/optw_input.cpp7
4 files changed, 24 insertions, 4 deletions
diff --git a/src/kvirc/kernel/kvi_options.cpp b/src/kvirc/kernel/kvi_options.cpp
index 59416504e..4dfc00a9e 100644
--- a/src/kvirc/kernel/kvi_options.cpp
+++ b/src/kvirc/kernel/kvi_options.cpp
@@ -314,7 +314,8 @@ KviBoolOption g_boolOptionsTable[KVI_NUM_BOOL_OPTIONS]=
BOOL_OPTION("PasteLastLogOnChannelJoin",false,KviOption_sectFlagLogging),
BOOL_OPTION("PasteLastLogOnQueryJoin",false,KviOption_sectFlagLogging),
BOOL_OPTION("UseSpecifiedSmartColorForOwnNick",false,KviOption_sectFlagIrcView | KviOption_groupTheme),
- BOOL_OPTION("UseFullWordHighlighting",false,KviOption_sectFlagIrcView)
+ BOOL_OPTION("UseFullWordHighlighting",false,KviOption_sectFlagIrcView),
+ BOOL_OPTION("ZshLikeNickCompletion",false,KviOption_sectFlagInput)
};
#define STRING_OPTION(_txt,_val,_flags) KviStringOption(KVI_STRING_OPTIONS_PREFIX _txt,_val,_flags)
diff --git a/src/kvirc/kernel/kvi_options.h b/src/kvirc/kernel/kvi_options.h
index 66eb093dc..e0a3bc199 100644
--- a/src/kvirc/kernel/kvi_options.h
+++ b/src/kvirc/kernel/kvi_options.h
@@ -322,7 +322,8 @@ DECLARE_OPTION_STRUCT(KviStringListOption,QStringList)
#define KviOption_boolPasteLastLogOnQueryJoin 228 /* query */
#define KviOption_boolUseSpecifiedSmartColorForOwnNick 229 /* interface::ircview */
#define KviOption_boolUseFullWordHighlighting 230 /* highlight */
-#define KVI_NUM_BOOL_OPTIONS 231
+#define KviOption_boolZshLikeNickCompletion 231
+#define KVI_NUM_BOOL_OPTIONS 232
#define KVI_STRING_OPTIONS_PREFIX "string"
diff --git a/src/kvirc/ui/kvi_input_editor.cpp b/src/kvirc/ui/kvi_input_editor.cpp
index ebabf1a77..de8fd9a07 100644
--- a/src/kvirc/ui/kvi_input_editor.cpp
+++ b/src/kvirc/ui/kvi_input_editor.cpp
@@ -1746,7 +1746,20 @@ void KviInputEditor::completion(bool bShift)
// empty word will end up here
if(m_pUserListView)
{
- if(KVI_OPTION_BOOL(KviOption_boolBashLikeNickCompletion))
+ if(KVI_OPTION_BOOL(KviOption_boolZshLikeNickCompletion))
+ {
+ if(m_szLastCompletedNick.isEmpty())
+ {
+ //first round of zsh completion
+ m_pUserListView->completeNickBashLike(szWord,&tmp,bShift);
+ bIsNick = true;
+ m_szLastCompletedNick=szWord;
+ } else {
+ standardNickCompletion(bShift,szWord,bFirstWordInLine);
+ repaintWithCursorOn();
+ return;
+ }
+ } else if(KVI_OPTION_BOOL(KviOption_boolBashLikeNickCompletion))
{
m_pUserListView->completeNickBashLike(szWord,&tmp,bShift);
bIsNick = true;
diff --git a/src/modules/options/optw_input.cpp b/src/modules/options/optw_input.cpp
index 0ea7f720e..d49594527 100644
--- a/src/modules/options/optw_input.cpp
+++ b/src/modules/options/optw_input.cpp
@@ -147,7 +147,12 @@ KviInputFeaturesOptionsWidget::KviInputFeaturesOptionsWidget(QWidget * parent)
addUIntSelector(0,4,0,4,__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"));
- addBoolSelector(g,__tr2qs_ctx("Use bash-like nick completion","options"),KviOption_boolBashLikeNickCompletion);
+ 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));
+ connect(b,SIGNAL(toggled(bool)),c,SLOT(setDisabled(bool)));
+ connect(c,SIGNAL(toggled(bool)),b,SLOT(setDisabled(bool)));
+
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);
addRowSpacer(0,6,0,6);