aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
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.cpp8
-rw-r--r--src/kvirc/ui/kvi_input_editor.cpp3
-rw-r--r--src/modules/editor/scripteditor.cpp29
-rw-r--r--src/modules/options/optw_input.cpp8
-rw-r--r--src/modules/spaste/controller.cpp21
7 files changed, 45 insertions, 30 deletions
diff --git a/src/kvirc/kernel/kvi_options.cpp b/src/kvirc/kernel/kvi_options.cpp
index 376a14bc4..ba159b92b 100644
--- a/src/kvirc/kernel/kvi_options.cpp
+++ b/src/kvirc/kernel/kvi_options.cpp
@@ -637,7 +637,8 @@ KviUIntOption g_uintOptionsTable[KVI_NUM_UINT_OPTIONS]=
UINT_OPTION("LinesToPasteOnChannelJoin",10,KviOption_sectFlagLogging),
UINT_OPTION("DaysIntervalToPasteOnChannelJoin",10,KviOption_sectFlagLogging),
UINT_OPTION("LinesToPasteOnQueryJoin",10,KviOption_sectFlagLogging),
- UINT_OPTION("DaysIntervalToPasteOnQueryJoin",10,KviOption_sectFlagLogging)
+ UINT_OPTION("DaysIntervalToPasteOnQueryJoin",10,KviOption_sectFlagLogging),
+ UINT_OPTION("SpacesToExpandTabulationInput",8,KviOption_sectFlagInput)
};
#define FONT_OPTION(_name,_face,_size,_flags) \
diff --git a/src/kvirc/kernel/kvi_options.h b/src/kvirc/kernel/kvi_options.h
index a5e482eb4..920d83858 100644
--- a/src/kvirc/kernel/kvi_options.h
+++ b/src/kvirc/kernel/kvi_options.h
@@ -576,8 +576,9 @@ DECLARE_OPTION_STRUCT(KviStringListOption,QStringList)
#define KviOption_uintDaysIntervalToPasteOnChannelJoin 70 /* channel */
#define KviOption_uintLinesToPasteOnQueryJoin 71 /* query */
#define KviOption_uintDaysIntervalToPasteOnQueryJoin 72 /* query */
+#define KviOption_uintSpacesToExpandTabulationInput 73 /* number of spaces used in tabulation expansion in the inputbar */
-#define KVI_NUM_UINT_OPTIONS 73
+#define KVI_NUM_UINT_OPTIONS 74
namespace KviIdentdOutputMode {
enum Mode {
diff --git a/src/kvirc/ui/kvi_input.cpp b/src/kvirc/ui/kvi_input.cpp
index e49bd23ca..aef849adc 100644
--- a/src/kvirc/ui/kvi_input.cpp
+++ b/src/kvirc/ui/kvi_input.cpp
@@ -172,7 +172,7 @@ KviInput::KviInput(KviWindow * pPar, KviUserListView * pView)
m_pIconButton->setAutoRaise(true);
m_pHistoryButton->setAutoRaise(true);
m_pHideToolsButton->setAutoRaise(true);
-
+
m_pLayout->addWidget(m_pHideToolsButton,0);
m_pLayout->addWidget(m_pButtonContainer,0);
m_pLayout->addWidget(m_pInputEditor,10000);
@@ -278,6 +278,7 @@ void KviInput::keyPressEvent(QKeyEvent *e)
}
}
}
+ szText.replace('\t',QString(KVI_OPTION_UINT(KviOption_uintSpacesToExpandTabulationInput),' ')); //expand tabs to spaces
KviUserInput::parse(szText,m_pWindow,QString(),m_pCommandlineModeButton->isChecked());
m_pMultiLineEditor->setText("");
}
@@ -307,7 +308,8 @@ void KviInput::multilineEditorButtonToggled(bool bOn)
m_pLayout->removeWidget(m_pMultiLineEditor);
KviScriptEditor::destroyInstance(m_pMultiLineEditor);
m_pMultiLineEditor = 0;
- szTmp.replace(QRegExp("[\a\f\n\r\t\v]"), QString(" "));
+ szTmp.replace(QRegExp("[\a\f\n\r\v]"), QString(" "));
+ szTmp.replace('\t',QString(KVI_OPTION_UINT(KviOption_uintSpacesToExpandTabulationInput),' ')); //expand tabs to spaces
m_pInputEditor->setText(szTmp);
m_pInputEditor->show();
m_pWindow->childrenTreeChanged(0);
@@ -382,7 +384,6 @@ int KviInput::heightHint() const
void KviInput::setText(const QString & szText)
{
- // FIXME: Latin1 -> QString ?
if(m_pMultiLineEditor)
m_pMultiLineEditor->setText(szText);
else m_pInputEditor->setText(szText);
@@ -426,7 +427,6 @@ void KviInput::setFocusProxy(QWidget *)
/* do nothing */
}
-//const QString & KviInput::text()
QString KviInput::text()
{
QString szText;
diff --git a/src/kvirc/ui/kvi_input_editor.cpp b/src/kvirc/ui/kvi_input_editor.cpp
index 655b7bef2..c7b035c0b 100644
--- a/src/kvirc/ui/kvi_input_editor.cpp
+++ b/src/kvirc/ui/kvi_input_editor.cpp
@@ -859,8 +859,7 @@ void KviInputEditor::insertText(const QString & szTxt)
QString szText = szTxt; // crop away constness
if(szText.isEmpty())return;
- //szText.replaceAll('\t'," "); //Do not paste tabs
- //szText.replace(QRegExp("\t")," "); // do not paste tabs
+ szText.replace('\t',QString(KVI_OPTION_UINT(KviOption_uintSpacesToExpandTabulationInput),' ')); //expand tabs to spaces
m_bUpdatesEnabled = false;
removeSelected();
diff --git a/src/modules/editor/scripteditor.cpp b/src/modules/editor/scripteditor.cpp
index 1b6ee2841..70534a8e4 100644
--- a/src/modules/editor/scripteditor.cpp
+++ b/src/modules/editor/scripteditor.cpp
@@ -343,24 +343,25 @@ void KviScriptEditorWidget::keyPressEvent(QKeyEvent * e)
// Adapted from QT4 QCompleter example
bool isShortcut = ((e->modifiers() & Qt::ControlModifier) && e->key() == Qt::Key_E); // CTRL+E
if (!m_pCompleter || !isShortcut) // dont process the shortcut when we have a completer
- QTextEdit::keyPressEvent(e);
+ QTextEdit::keyPressEvent(e);
const bool ctrlOrShift = e->modifiers() & (Qt::ControlModifier | Qt::ShiftModifier);
- if (!m_pCompleter || (ctrlOrShift && e->text().isEmpty()))
- return;
- static QString eow("~!@#$%^&*()_+{}|:\"<>?,/;'[]\\-="); // end of word
- bool hasModifier = (e->modifiers() != Qt::NoModifier) && !ctrlOrShift;
- QString completionPrefix = textUnderCursor();
+ if (!m_pCompleter || (ctrlOrShift && e->text().isEmpty()))
+ return;
+ static QString eow("~!@#$%^&*()_+{}|:\"<>?,/;'[]\\-="); // end of word
+ bool hasModifier = (e->modifiers() != Qt::NoModifier) && !ctrlOrShift;
+ QString completionPrefix = textUnderCursor();
if (!isShortcut && (hasModifier || e->text().isEmpty()|| completionPrefix.length() < 3 || eow.contains(e->text().right(1))))
{
- m_pCompleter->popup()->hide();
+ m_pCompleter->popup()->hide();
return;
- }
- if (completionPrefix != m_pCompleter->completionPrefix()) {
- m_pCompleter->setCompletionPrefix(completionPrefix);
- m_pCompleter->popup()->setCurrentIndex(m_pCompleter->completionModel()->index(0, 0));
- }
- QRect cr = cursorRect();
- cr.setWidth(m_pCompleter->popup()->sizeHintForColumn(0)+ m_pCompleter->popup()->verticalScrollBar()->sizeHint().width());
+ }
+ if (completionPrefix != m_pCompleter->completionPrefix())
+ {
+ m_pCompleter->setCompletionPrefix(completionPrefix);
+ m_pCompleter->popup()->setCurrentIndex(m_pCompleter->completionModel()->index(0, 0));
+ }
+ QRect cr = cursorRect();
+ cr.setWidth(m_pCompleter->popup()->sizeHintForColumn(0)+ m_pCompleter->popup()->verticalScrollBar()->sizeHint().width());
m_pCompleter->complete(cr);
}
diff --git a/src/modules/options/optw_input.cpp b/src/modules/options/optw_input.cpp
index 246ff2502..0ea7f720e 100644
--- a/src/modules/options/optw_input.cpp
+++ b/src/modules/options/optw_input.cpp
@@ -143,12 +143,14 @@ KviInputFeaturesOptionsWidget::KviInputFeaturesOptionsWidget(QWidget * parent)
addBoolSelector(0,0,0,0,__tr2qs_ctx("Warp cursor at the end of line when browsing history","options"),KviOption_boolInputHistoryCursorAtEnd);
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);
- KviTalGroupBox * g = addGroupBox(0,3,0,3,Qt::Horizontal,__tr2qs_ctx("Nick completion","options"));
+ 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);
+
+ 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);
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);
- addBoolSelector(0,4,0,4,__tr2qs_ctx("Commandline in user-friendly mode by default","options"),KviOption_boolCommandlineInUserFriendlyModeByDefault);
- addRowSpacer(0,5,0,5);
+ addRowSpacer(0,6,0,6);
}
KviInputFeaturesOptionsWidget::~KviInputFeaturesOptionsWidget()
diff --git a/src/modules/spaste/controller.cpp b/src/modules/spaste/controller.cpp
index 80d354ec0..db2e0a711 100644
--- a/src/modules/spaste/controller.cpp
+++ b/src/modules/spaste/controller.cpp
@@ -1,10 +1,10 @@
//=============================================================================
//
// File : controller.h
-// Creation date : Thu Apr 30 2002 17:13:12 GMT by Juanjo Álvarez
+// Creation date : Thu Apr 30 2002 17:13:12 GMT by Juanjo Alvarez
//
// This file is part of the KVirc irc client distribution
-// Copyright (C) 2002 Juanjo Álvarez (juanjux@yahoo.es)
+// Copyright (C) 2002 Juanjo Alvarez (juanjux@yahoo.es)
// Copyright (C) 2002-2008 Szymon Stefanek (kvirc@tin.it)
//
// This program is FREE software. You can redistribute it and/or
@@ -100,6 +100,8 @@ void SPasteController::pasteFile(void)
if(line.isEmpty())
line = QChar(KVI_TEXT_RESET);
+ line.replace('\t',QString(KVI_OPTION_UINT(KviOption_uintSpacesToExpandTabulationInput),' ')); //expand tabs to spaces
+
if(!g_pApp->windowExists(m_pWindow))
{
m_pFile->close();
@@ -118,10 +120,19 @@ void SPasteController::pasteClipboard(void)
if(m_clipBuffIterator != m_pClipBuff->end())
{
if(!g_pApp->windowExists(m_pWindow))
+ {
delete this;
- else {
- if((*m_clipBuffIterator).isEmpty())(*m_clipBuffIterator) = QChar(KVI_TEXT_RESET);
- m_pWindow->ownMessage((*m_clipBuffIterator).toAscii()); // <-- not good :/
+ } else {
+ QString line;
+ if((*m_clipBuffIterator).isEmpty())
+ {
+ line = QChar(KVI_TEXT_RESET);
+ } else {
+ line = *m_clipBuffIterator;
+ }
+
+ line.replace('\t',QString(KVI_OPTION_UINT(KviOption_uintSpacesToExpandTabulationInput),' ')); //expand tabs to spaces
+ m_pWindow->ownMessage(line);
++m_clipBuffIterator;
}
} else delete this;//Clipboard finished