diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/kvirc/kernel/kvi_options.cpp | 3 | ||||
| -rw-r--r-- | src/kvirc/kernel/kvi_options.h | 3 | ||||
| -rw-r--r-- | src/kvirc/ui/kvi_input.cpp | 8 | ||||
| -rw-r--r-- | src/kvirc/ui/kvi_input_editor.cpp | 3 | ||||
| -rw-r--r-- | src/modules/editor/scripteditor.cpp | 29 | ||||
| -rw-r--r-- | src/modules/options/optw_input.cpp | 8 | ||||
| -rw-r--r-- | src/modules/spaste/controller.cpp | 21 |
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 |
