diff options
| author | 2008-09-25 01:06:53 +0000 | |
|---|---|---|
| committer | 2008-09-25 01:06:53 +0000 | |
| commit | 6e293eea2da5c003faf8b9eb385db3b9a6b3b347 (patch) | |
| tree | d0e878b8610ce8e21775e0f56a31d7a279bbcd59 /src/modules/editor | |
| parent | cleaning todo-qt4 (diff) | |
| download | KVIrc-6e293eea2da5c003faf8b9eb385db3b9a6b3b347.tar.gz KVIrc-6e293eea2da5c003faf8b9eb385db3b9a6b3b347.tar.bz2 KVIrc-6e293eea2da5c003faf8b9eb385db3b9a6b3b347.zip | |
improved hungarian notation; stylish fixes
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@2559 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src/modules/editor')
| -rw-r--r-- | src/modules/editor/scripteditor.cpp | 841 | ||||
| -rw-r--r-- | src/modules/editor/scripteditor.h | 119 |
2 files changed, 485 insertions, 475 deletions
diff --git a/src/modules/editor/scripteditor.cpp b/src/modules/editor/scripteditor.cpp index 654bd3c06..8cdf22db6 100644 --- a/src/modules/editor/scripteditor.cpp +++ b/src/modules/editor/scripteditor.cpp @@ -38,14 +38,14 @@ #include "kvi_console.h" #include "kvi_window.h" #include "kvi_iconmanager.h" -#include "kvi_tal_groupbox.h" -#include "kvi_tal_scrollview.h" #include "kvi_kvs_kernel.h" #include "kvi_modulemanager.h" #include "kvi_config.h" #include "kvi_tal_vbox.h" - #include "kvi_tal_hbox.h" +#include "kvi_tal_groupbox.h" +#include "kvi_tal_scrollview.h" + #include <QScrollBar> #include <QLayout> #include <QMessageBox> @@ -58,9 +58,9 @@ #include <QMenu> #include <QListWidget> -extern KVIRC_API KviModuleManager * g_pModuleManager; +extern KVIRC_API KviModuleManager * g_pModuleManager; extern KviPointerList<KviScriptEditorImplementation> * g_pScriptEditorWindowList; -extern KviModule * g_pEditorModulePointer; +extern KviModule * g_pEditorModulePointer; static QColor g_clrBackground(0,0,0); static QColor g_clrNormalText(100,100,100); @@ -73,211 +73,166 @@ static QColor g_clrPunctuation(180,180,0); static QColor g_clrFind(0,0,0); static QFont g_fntNormal("Courier New",8); -KviScriptEditorWidgetColorOptions::KviScriptEditorWidgetColorOptions(QWidget * pParent) -: QDialog(pParent) -{ - m_pSelectorInterfaceList = new KviPointerList<KviSelectorInterface>; - m_pSelectorInterfaceList->setAutoDelete(false); - setWindowTitle(__tr2qs_ctx("Preferences","editor")); - QGridLayout * g = new QGridLayout(this); - KviTalVBox * box = new KviTalVBox(this); - g->addWidget(box,0,0); - box->setMargin(0); - box->setSpacing(0); - KviFontSelector * f = new KviFontSelector(box,__tr2qs_ctx("Font:","editor"),&g_fntNormal,true); - m_pSelectorInterfaceList->append(f); - KviTalGroupBox * gbox = new KviTalGroupBox(Qt::Horizontal,__tr2qs("Colors" ),box); - gbox->setInsideSpacing(0); - KviColorSelector * s = addColorSelector(gbox,__tr2qs_ctx("Background:","editor"),&g_clrBackground,true); - s = addColorSelector(gbox,__tr2qs_ctx("Normal text:","editor"),&g_clrNormalText,true); - s = addColorSelector(gbox,__tr2qs_ctx("Brackets:","editor"),&g_clrBracket,true); - s = addColorSelector(gbox,__tr2qs_ctx("Comments:","editor"),&g_clrComment,true); - s = addColorSelector(gbox,__tr2qs_ctx("Functions:","editor"),&g_clrFunction,true); - s = addColorSelector(gbox,__tr2qs_ctx("Keywords:","editor"),&g_clrKeyword,true); - s = addColorSelector(gbox,__tr2qs_ctx("Variables:","editor"),&g_clrVariable,true); - s = addColorSelector(gbox,__tr2qs_ctx("Punctuation:","editor"),&g_clrPunctuation,true); - s = addColorSelector(gbox,__tr2qs_ctx("Find:","editor"),&g_clrFind,true); - - - KviTalHBox * hbox = new KviTalHBox(box); - - QPushButton * b = new QPushButton(__tr2qs_ctx("&OK","editor"),hbox); - b->setDefault(true); - connect(b,SIGNAL(clicked()),this,SLOT(okClicked())); - - b = new QPushButton(__tr2qs_ctx("Cancel","editor"),hbox); - connect(b,SIGNAL(clicked()),this,SLOT(reject())); -} - -KviScriptEditorWidgetColorOptions::~KviScriptEditorWidgetColorOptions() -{ - delete m_pSelectorInterfaceList; -} - -KviColorSelector * KviScriptEditorWidgetColorOptions::addColorSelector(QWidget * pParent,const QString & txt,QColor * pOption,bool bEnabled) -{ - KviColorSelector * s = new KviColorSelector(pParent,txt,pOption,bEnabled); - m_pSelectorInterfaceList->append(s); - return s; -} - -void KviScriptEditorWidgetColorOptions::okClicked() -{ - for(KviSelectorInterface * i = m_pSelectorInterfaceList->first();i;i = m_pSelectorInterfaceList->next()) - { - i->commit(); - } - - accept(); -} - - KviScriptEditorWidget::KviScriptEditorWidget(QWidget * pParent) : QTextEdit(pParent) { setTabStopWidth(48); setWordWrapMode(QTextOption::NoWrap); - m_pParent=pParent; - m_szHelp="Nothing"; + m_pParent = pParent; + m_szHelp = "Nothing"; updateOptions(); - m_szFind=""; - m_pCompleter=0; + m_szFind = ""; + m_pCompleter = 0; QStringList szListFunctionsCommands; QString tmp("kvscompleter.idx"); + QString szPath; g_pApp->getLocalKvircDirectory(szPath,KviApp::ConfigPlugins,tmp); if(!KviFileUtils::fileExists(szPath)) { - m_pStartTimer=new QTimer(); + m_pStartTimer = new QTimer(); m_pStartTimer->setInterval(500); connect(m_pStartTimer,SIGNAL(timeout()),this,SLOT(asyncCompleterCreation())); m_pStartTimer->start(500); - } - else loadCompleterFromFile(); + } else loadCompleterFromFile(); } KviScriptEditorWidget::~KviScriptEditorWidget() { - if (m_pCompleter) delete m_pCompleter; - + if(m_pCompleter) + delete m_pCompleter; } + void KviScriptEditorWidget::asyncCompleterCreation() { - static int index=0; - static int modulesCount=0; - if (!index) + static int iIndex = 0; + static int iModulesCount = 0; + if(!iIndex) { - m_pListCompletition=new QStringList(); + m_pListCompletition = new QStringList(); QString szPath; g_pApp->getGlobalKvircDirectory(szPath,KviApp::Plugins); QDir d(szPath); - #if defined(COMPILE_ON_WINDOWS) +#if defined(COMPILE_ON_WINDOWS) d.setNameFilters(QStringList("kvi*.dll")); - #elif defined(COMPILE_ON_MINGW) +#elif defined(COMPILE_ON_MINGW) d.setNameFilters(QStringList("libkvi*.dll")); - #else +#else d.setNameFilters(QStringList("libkvi*.so")); - #endif +#endif m_pListModulesNames = new QStringList(d.entryList(QDir::Files | QDir::Readable)); - modulesCount=m_pListModulesNames->count(); + iModulesCount = m_pListModulesNames->count(); } - QString szModuleName=m_pListModulesNames->at(index); - index++; - szModuleName=szModuleName.replace("lib",""); + + QString szModuleName = m_pListModulesNames->at(iIndex); + iIndex++; + +#if defined(COMPILE_ON_WINDOWS) szModuleName=szModuleName.replace("kvi",""); szModuleName=szModuleName.replace(".dll",""); +#elif defined(COMPILE_ON_MINGW) + szModuleName=szModuleName.replace("libkvi",""); + szModuleName=szModuleName.replace(".dll",""); +#else + szModuleName=szModuleName.replace("libkvi",""); szModuleName=szModuleName.replace(".so",""); +#endif KviModule * pModule = g_pModuleManager->getModule(szModuleName); if(pModule) { pModule->getAllFunctionsCommandsModule(m_pListCompletition,szModuleName); } - if (index==modulesCount) + + if(iIndex == iModulesCount) { m_pStartTimer->stop(); m_pStartTimer->deleteLater(); - m_pStartTimer=0; - QString tmp("kvscompleter.idx"); + m_pStartTimer = 0; + QString szTmp("kvscompleter.idx"); QString szPath; - g_pApp->getLocalKvircDirectory(szPath,KviApp::ConfigPlugins,tmp); - QString szBuffer=m_pListCompletition->join(","); + g_pApp->getLocalKvircDirectory(szPath,KviApp::ConfigPlugins,szTmp); + QString szBuffer = m_pListCompletition->join(","); QFile f(szPath); f.open(QIODevice::WriteOnly); f.write(szBuffer.toUtf8()); f.close(); createCompleter(*m_pListCompletition); - index=0; - modulesCount=0; + iIndex = 0; + iModulesCount = 0; delete m_pListCompletition; delete m_pListModulesNames; } - - } - void KviScriptEditorWidget::loadCompleterFromFile() { QStringList szListFunctionsCommand; - QString tmp("kvscompleter.idx"); + QString szTmp("kvscompleter.idx"); QString szPath; - g_pApp->getLocalKvircDirectory(szPath,KviApp::ConfigPlugins,tmp); + g_pApp->getLocalKvircDirectory(szPath,KviApp::ConfigPlugins,szTmp); QString szBuffer; QFile f(szPath); f.open(QIODevice::ReadOnly); - szBuffer=f.readAll(); + szBuffer = f.readAll(); f.close(); - szListFunctionsCommand=szBuffer.split(','); + szListFunctionsCommand = szBuffer.split(','); createCompleter(szListFunctionsCommand); } -void KviScriptEditorWidget::createCompleter(QStringList &list) + +void KviScriptEditorWidget::createCompleter(QStringList & list) { - m_pCompleter=new QCompleter(list); + m_pCompleter = new QCompleter(list); m_pCompleter->setCaseSensitivity(Qt::CaseInsensitive); m_pCompleter->setWrapAround(false); m_pCompleter->setWidget(this); m_pCompleter->setCompletionMode(QCompleter::PopupCompletion); m_pCompleter->setCaseSensitivity(Qt::CaseInsensitive); - QObject::connect(m_pCompleter, SIGNAL(activated(const QString&)),this, SLOT(insertCompletion(const QString&))); + QObject::connect(m_pCompleter, SIGNAL(activated(const QString &)),this, SLOT(insertCompletion(const QString &))); +} + +void KviScriptEditorWidget::insertCompletion(const QString & szCompletion) +{ + QTextCursor tc = textCursor(); + int iExtra = szCompletion.length() - m_pCompleter->completionPrefix().length(); + tc.movePosition(QTextCursor::Left); + tc.movePosition(QTextCursor::EndOfWord); + + QString szTmp = szCompletion.right(iExtra); + debug ("append %s to %s",szTmp.toUtf8().data(),m_pCompleter->completionPrefix().toUtf8().data()); + if(szCompletion.left(1)=="$") + szTmp.append("("); + else + szTmp.append(" "); + + tc.insertText(szTmp); + setTextCursor(tc); } - void KviScriptEditorWidget::insertCompletion(const QString& completion) - { - QTextCursor tc = textCursor(); - int extra = completion.length() - m_pCompleter->completionPrefix().length(); - tc.movePosition(QTextCursor::Left); - tc.movePosition(QTextCursor::EndOfWord); - QString tmp=completion.right(extra); - debug ("append %s to %s",tmp.toUtf8().data(),m_pCompleter->completionPrefix().toUtf8().data()); - if (completion.left(1)=="$") tmp.append("("); - else tmp.append(" "); - tc.insertText(tmp); - setTextCursor(tc); - } -void KviScriptEditorWidget::contextMenuEvent(QContextMenuEvent *event) + +void KviScriptEditorWidget::contextMenuEvent(QContextMenuEvent * e) { - QMenu *pop=createStandardContextMenu(); - pop->addAction(__tr2qs("Context sensitive help"),this,SLOT(slotHelp()),Qt::CTRL+Qt::Key_H); - pop->addAction(__tr2qs("&Replace"),this,SLOT(slotReplace()),Qt::CTRL+Qt::Key_R); - pop->exec(event->globalPos()); - delete pop; + QMenu * pMenu = createStandardContextMenu(); + pMenu->addAction(__tr2qs("Context sensitive help"),this,SLOT(slotHelp()),Qt::CTRL+Qt::Key_H); + pMenu->addAction(__tr2qs("&Replace"),this,SLOT(slotReplace()),Qt::CTRL+Qt::Key_R); + pMenu->exec(e->globalPos()); + delete pMenu; } void KviScriptEditorWidget::slotFind() { - m_szFind=((KviScriptEditorImplementation*)m_pParent)->getFindlineedit()->text(); + m_szFind = ((KviScriptEditorImplementation*)m_pParent)->findLineEdit()->text(); setText(toPlainText()); } void KviScriptEditorWidget::slotReplace() { - KviScriptEditorReplaceDialog *dialog=new KviScriptEditorReplaceDialog(this,__tr("Find & Replace")); - connect (dialog,SIGNAL(replaceAll(const QString &,const QString &)),m_pParent,SLOT(slotReplaceAll(const QString &,const QString &))); - connect (dialog,SIGNAL(initFind()),m_pParent,SLOT(slotInitFind())); - connect (dialog,SIGNAL(nextFind(const QString &)),m_pParent,SLOT(slotNextFind(const QString &))); - if(dialog->exec()){}; + KviScriptEditorReplaceDialog * pDialog = new KviScriptEditorReplaceDialog(this,__tr("Find & Replace")); + connect(pDialog,SIGNAL(replaceAll(const QString &,const QString &)),m_pParent,SLOT(slotReplaceAll(const QString &,const QString &))); + connect(pDialog,SIGNAL(initFind()),m_pParent,SLOT(slotInitFind())); + connect(pDialog,SIGNAL(nextFind(const QString &)),m_pParent,SLOT(slotNextFind(const QString &))); + if(pDialog->exec()){}; } void KviScriptEditorWidget::slotHelp() @@ -287,43 +242,41 @@ void KviScriptEditorWidget::slotHelp() void KviScriptEditorWidget::updateOptions() { - QPalette p=palette(); - p.setColor(QPalette::Base, g_clrBackground); + QPalette p = palette(); + p.setColor(QPalette::Base,g_clrBackground); p.setColor(QPalette::Text,g_clrNormalText); setPalette(p); setFont(g_fntNormal); setTextColor(g_clrNormalText); -// setTextFormat(Qt::PlainText); + //setTextFormat(Qt::PlainText); // this will rehighlight everything setText(toPlainText()); // an "hack" to ensure Update all in the editor - KviScriptSyntaxHighlighter *h = new KviScriptSyntaxHighlighter(this); + KviScriptEditorSyntaxHighlighter *h = new KviScriptEditorSyntaxHighlighter(this); (void)h; - p = ((KviScriptEditorImplementation*)m_pParent)->getFindlineedit()->palette(); + p = ((KviScriptEditorImplementation*)m_pParent)->findLineEdit()->palette(); p.setColor(foregroundRole(),g_clrFind); - ((KviScriptEditorImplementation*)m_pParent)->getFindlineedit()->setPalette(p); + ((KviScriptEditorImplementation*)m_pParent)->findLineEdit()->setPalette(p); } - QCompleter *KviScriptEditorWidget::completer() const - { - return m_pCompleter; - } void KviScriptEditorWidget::keyPressEvent(QKeyEvent * e) { + if(m_pCompleter && m_pCompleter->popup()->isVisible()) + { + switch(e->key()) + { + case Qt::Key_Enter: + case Qt::Key_Return: + case Qt::Key_Escape: + case Qt::Key_Tab: + case Qt::Key_Backtab: + e->ignore(); + return; + default: + break; + } + } - if (m_pCompleter && m_pCompleter->popup()->isVisible()) { - switch (e->key()) { - case Qt::Key_Enter: - case Qt::Key_Return: - case Qt::Key_Escape: - case Qt::Key_Tab: - case Qt::Key_Backtab: - e->ignore(); - return; - default: - break; - } - } if(e->modifiers() == Qt::ControlModifier) { switch(e->key()) @@ -350,161 +303,242 @@ void KviScriptEditorWidget::keyPressEvent(QKeyEvent * e) } } - 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); - 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(); - debug ("completition prefix %s",completionPrefix.toUtf8().data()); - if (!isShortcut && (hasModifier || e->text().isEmpty()|| completionPrefix.length() < 3 - || eow.contains(e->text().right(1)))) { - 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()); - m_pCompleter->complete(cr); + bool bIsShortcut = ((e->modifiers() & Qt::ControlModifier) && e->key() == Qt::Key_E); // CTRL+E + + // don't process the shortcut when we have a completer + if(!m_pCompleter || !bIsShortcut) + QTextEdit::keyPressEvent(e); + + const bool bCtrlOrShift = e->modifiers() & (Qt::ControlModifier | Qt::ShiftModifier); + if(!m_pCompleter || (bCtrlOrShift && e->text().isEmpty())) + return; + + // end of word + static QString szEow("~!@#$%^&*()_+{}|:\"<>?,/;'[]\\-="); + bool hasModifier = (e->modifiers() != Qt::NoModifier) && !bCtrlOrShift; + + QString szCompletionPrefix = textUnderCursor(); + debug ("completition prefix %s",szCompletionPrefix.toUtf8().data()); + if(!bIsShortcut && (hasModifier || e->text().isEmpty() + || szCompletionPrefix.length() < 3 + || szEow.contains(e->text().right(1)) + ) + ) + { + m_pCompleter->popup()->hide(); + return; + } + + if(szCompletionPrefix != m_pCompleter->completionPrefix()) + { + m_pCompleter->setCompletionPrefix(szCompletionPrefix); + 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); } - QString KviScriptEditorWidget::textUnderCursor() const - { - QString szWord; +QString KviScriptEditorWidget::textUnderCursor() const +{ + QString szWord; QTextCursor tc = textCursor(); - if (tc.atBlockStart())return QString(); + if(tc.atBlockStart()) + return QString(); + tc.clearSelection(); tc.movePosition(QTextCursor::StartOfWord); - if (tc.atBlockStart()) + if(tc.atBlockStart()) { tc.movePosition(QTextCursor::EndOfWord,QTextCursor::KeepAnchor); - if(tc.atBlockEnd()) return tc.selectedText(); + if(tc.atBlockEnd()) + return tc.selectedText(); + tc.movePosition(QTextCursor::NextCharacter,QTextCursor::KeepAnchor); - szWord=tc.selectedText(); - if (szWord.right(1)!=".") szWord.chop(1); + szWord = tc.selectedText(); + if(szWord.right(1)!=".") + szWord.chop(1); + return szWord; } + tc.movePosition(QTextCursor::PreviousCharacter); tc.movePosition(QTextCursor::EndOfWord,QTextCursor::KeepAnchor); szWord=tc.selectedText(); - if (szWord.left(1)==".") + if(szWord.left(1)==".") { tc.movePosition(QTextCursor::StartOfWord); tc.movePosition(QTextCursor::PreviousCharacter); tc.movePosition(QTextCursor::PreviousWord); tc.movePosition(QTextCursor::EndOfWord,QTextCursor::KeepAnchor,1); szWord.prepend(tc.selectedText()); - } - else szWord.remove(0,1); + } else szWord.remove(0,1); + return szWord; } -void KviScriptEditorWidget::mouseReleaseEvent (QMouseEvent *e) +void KviScriptEditorWidget::mouseReleaseEvent(QMouseEvent * e) { -return; -// completelistbox->hide(); + return; + //completelistbox->hide(); if (e->button() == Qt::RightButton) { - QString buffer; - /*int para = paragraphAt(e->pos()); - int index=charAt(e->pos(),¶); - buffer=this->text(para); - getWordOnCursor(buffer,index); - */ - QRect r=cursorRect(); - QTextCursor cur=cursorForPosition(e->pos()); - cur.select(QTextCursor::WordUnderCursor); - buffer=cur.selectedText(); - QString tmp=buffer; - KviPointerList<QString> *l; - if (tmp.left(1) == "$") - { - tmp.remove(0,1); - l=KviKvsKernel::instance()->completeCommandAllocateResult(tmp); - if (l->count() != 1) buffer=""; - else buffer=*(l->at(0)); - } - else - { - l=KviKvsKernel::instance()->completeCommandAllocateResult(tmp); - if (l->count() != 1) buffer=""; - else buffer=*(l->at(0)); - } - for (int i=0;i<l->count();i++){ - QString str=*(l->at(i)); - } - KviKvsKernel::instance()->freeCompletionResult(l); - m_szHelp=buffer; - } - QTextEdit::mouseReleaseEvent(e); + QString szBuffer; + /* + int iPara = paragraphAt(e->pos()); + int iIndex=charAt(e->pos(),&iPara); + szBuffer = this->text(iPara); + getWordOnCursor(szBuffer,iIndex); + */ + QRect r = cursorRect(); + QTextCursor cur = cursorForPosition(e->pos()); + cur.select(QTextCursor::WordUnderCursor); + szBuffer = cur.selectedText(); + QString szTmp = szBuffer; + KviPointerList<QString> * pList; + if(szTmp.left(1) == "$") + { + szTmp.remove(0,1); + pList = KviKvsKernel::instance()->completeCommandAllocateResult(szTmp); + if (pList->count() != 1) + szBuffer = ""; + else + szBuffer = *(pList->at(0)); + } else { + pList = KviKvsKernel::instance()->completeCommandAllocateResult(szTmp); + if (pList->count() != 1) + szBuffer = ""; + else + szBuffer = *(pList->at(0)); + } + for (int i=0; i < pList->count(); i++) + QString str = *(pList->at(i)); + + KviKvsKernel::instance()->freeCompletionResult(pList); + m_szHelp = szBuffer; + } + QTextEdit::mouseReleaseEvent(e); } bool KviScriptEditorWidget::contextSensitiveHelp() const { + /* + QString szBuffer; + int iPara, iIndex; + getCursorPosition(&iPara,&iIndex); + szBuffer = text(iPara); -/* QString buffer; - int para,index; - getCursorPosition(¶,&index); - buffer=text(para); - - getWordOnCursor(buffer,index); -*/ + getWordOnCursor(szBuffer,iIndex); + */ - QRect r=cursorRect(); - QTextCursor cur=cursorForPosition(QPoint(r.x(),r.y())); + QRect r = cursorRect(); + QTextCursor cur = cursorForPosition(QPoint(r.x(),r.y())); cur.select(QTextCursor::WordUnderCursor); - QString text=cur.selectedText(); - QString tmp=text; - /*KviPointerList<QString> * l; - if(tmp.left(1) == "$") + QString szText = cur.selectedText(); + QString szTmp = szText; + /* + KviPointerList<QString> * pList; + if(szTmp.left(1) == "$") { - tmp.remove(0,1); - l = g_pUserParser->completeFunctionAllocateResult(tmp); + szTmp.remove(0,1); + pList = g_pUserParser->completeFunctionAllocateResult(szTmp); } else { - l = g_pUserParser->completeCommandAllocateResult(tmp); + pList = g_pUserParser->completeCommandAllocateResult(szTmp); } - debug ("command or func %s",tmp.toUtf8().data()); + debug ("command or func %s",szTmp.toUtf8().data()); + bool bOk = false; - if(l) + if(pList) { - for(QString * s = l->first();s;s = l->next()) + for(QString * s = pList->first(); s; s = pList->next()) { - if(KviQString::equalCI(*s,buffer)) + if(KviQString::equalCI(*s,szBuffer)) { - l->last(); + pList->last(); bOk = true; } } } - g_pUserParser->freeCompletionResult(l); - if(!bOk)return false; - */ -/* - QString parse; - KviQString::sprintf(parse,"timer -s (help,0){ help -s %Q; }",&buffer); - debug ("parsing %s",parse.latin1()); - KviKvsScript::run(parse,(KviWindow*)g_pApp->activeConsole()); + g_pUserParser->freeCompletionResult(pList); + if(!bOk)return false; + QString szParse; + KviQString::sprintf(szParse,"timer -s (help,0){ help -s %Q; }",&szBuffer); + debug ("parsing %s",szParse.toLatin1()); + KviKvsScript::run(szParse,(KviWindow*)g_pApp->activeConsole()); */ + return true; } -KviScriptSyntaxHighlighter::KviScriptSyntaxHighlighter(KviScriptEditorWidget * pWidget) +KviScriptEditorWidgetColorOptions::KviScriptEditorWidgetColorOptions(QWidget * pParent) +: QDialog(pParent) +{ + m_pSelectorInterfaceList = new KviPointerList<KviSelectorInterface>; + m_pSelectorInterfaceList->setAutoDelete(false); + setWindowTitle(__tr2qs_ctx("Preferences","editor")); + QGridLayout * g = new QGridLayout(this); + KviTalVBox * box = new KviTalVBox(this); + g->addWidget(box,0,0); + box->setMargin(0); + box->setSpacing(0); + KviFontSelector * f = new KviFontSelector(box,__tr2qs_ctx("Font:","editor"),&g_fntNormal,true); + m_pSelectorInterfaceList->append(f); + KviTalGroupBox * gbox = new KviTalGroupBox(Qt::Horizontal,__tr2qs("Colors" ),box); + gbox->setInsideSpacing(0); + KviColorSelector * s = addColorSelector(gbox,__tr2qs_ctx("Background:","editor"),&g_clrBackground,true); + s = addColorSelector(gbox,__tr2qs_ctx("Normal text:","editor"),&g_clrNormalText,true); + s = addColorSelector(gbox,__tr2qs_ctx("Brackets:","editor"),&g_clrBracket,true); + s = addColorSelector(gbox,__tr2qs_ctx("Comments:","editor"),&g_clrComment,true); + s = addColorSelector(gbox,__tr2qs_ctx("Functions:","editor"),&g_clrFunction,true); + s = addColorSelector(gbox,__tr2qs_ctx("Keywords:","editor"),&g_clrKeyword,true); + s = addColorSelector(gbox,__tr2qs_ctx("Variables:","editor"),&g_clrVariable,true); + s = addColorSelector(gbox,__tr2qs_ctx("Punctuation:","editor"),&g_clrPunctuation,true); + s = addColorSelector(gbox,__tr2qs_ctx("Find:","editor"),&g_clrFind,true); + + KviTalHBox * hbox = new KviTalHBox(box); + + QPushButton * b = new QPushButton(__tr2qs_ctx("&OK","editor"),hbox); + b->setDefault(true); + connect(b,SIGNAL(clicked()),this,SLOT(okClicked())); + + b = new QPushButton(__tr2qs_ctx("Cancel","editor"),hbox); + connect(b,SIGNAL(clicked()),this,SLOT(reject())); +} + +KviScriptEditorWidgetColorOptions::~KviScriptEditorWidgetColorOptions() +{ + delete m_pSelectorInterfaceList; +} + +KviColorSelector * KviScriptEditorWidgetColorOptions::addColorSelector(QWidget * pParent,const QString & txt,QColor * pOption,bool bEnabled) +{ + KviColorSelector * s = new KviColorSelector(pParent,txt,pOption,bEnabled); + m_pSelectorInterfaceList->append(s); + return s; +} + +void KviScriptEditorWidgetColorOptions::okClicked() +{ + for(KviSelectorInterface * i = m_pSelectorInterfaceList->first();i;i = m_pSelectorInterfaceList->next()) + { + i->commit(); + } + + accept(); +} + + +KviScriptEditorSyntaxHighlighter::KviScriptEditorSyntaxHighlighter(KviScriptEditorWidget * pWidget) : QSyntaxHighlighter(pWidget),m_pTextEdit(pWidget) { } -KviScriptSyntaxHighlighter::~KviScriptSyntaxHighlighter() +KviScriptEditorSyntaxHighlighter::~KviScriptEditorSyntaxHighlighter() { } @@ -512,10 +546,11 @@ KviScriptSyntaxHighlighter::~KviScriptSyntaxHighlighter() #define IN_LINE 2 #define IN_STRING 4 -void KviScriptSyntaxHighlighter::highlightBlock(const QString &text) +void KviScriptEditorSyntaxHighlighter::highlightBlock(const QString & szText) { - const QChar * pBuf = (const QChar *)text.utf16(); + const QChar * pBuf = (const QChar *)szText.utf16(); const QChar * c = pBuf; + QTextCharFormat commentFormat; commentFormat.setForeground(g_clrComment); commentFormat.setFont(g_fntNormal); @@ -544,35 +579,37 @@ void KviScriptSyntaxHighlighter::highlightBlock(const QString &text) functionFormat.setForeground(g_clrFunction); functionFormat.setFont(g_fntNormal); - QTextCharFormat findFormat; findFormat.setForeground(g_clrFind); findFormat.setFont(g_fntNormal); - int endStateOfLastPara=previousBlockState(); - if(endStateOfLastPara < 0)endStateOfLastPara = 0; + int iEndStateOfLastPara = previousBlockState(); + if(iEndStateOfLastPara < 0) + iEndStateOfLastPara = 0; /* QRegExp reg("[$][a-zA-Z][a-zA-Z0-9_\\.:]+"); int index = text.indexOf(reg); - while (index >= 0) { - int length = reg.matchedLength(); - setFormat(index, length, functionFormat); - index = text.indexOf(reg, index + length); - } + while (index >= 0) + { + int length = reg.matchedLength(); + setFormat(index, length, functionFormat); + index = text.indexOf(reg, index + length); + } QRegExp reg1("[{}]+"); index = text.indexOf(reg1); - while (index >= 0) { - int length = reg1.matchedLength(); - setFormat(index, length, bracketFormat); - index = text.indexOf(reg1, index + length); - } + while (index >= 0) + { + int length = reg1.matchedLength(); + setFormat(index, length, bracketFormat); + index = text.indexOf(reg1, index + length); + } */ - bool bNewCommand = !(endStateOfLastPara & IN_LINE); - bool bInComment = endStateOfLastPara & IN_COMMENT; - bool bInString = endStateOfLastPara & IN_STRING; - if (bInComment) debug ("start incomment %s",text.toUtf8().data()); + bool bNewCommand = !(iEndStateOfLastPara & IN_LINE); + bool bInComment = iEndStateOfLastPara & IN_COMMENT; + bool bInString = iEndStateOfLastPara & IN_STRING; + if (bInComment) debug ("start incomment %s",szText.toUtf8().data()); const QChar * pBegin; while(c->unicode()) @@ -638,6 +675,7 @@ void KviScriptSyntaxHighlighter::highlightBlock(const QString &text) setFormat(pBegin - pBuf,c - pBegin,commentFormat); continue; } + if(c->unicode() == '/') { c++; @@ -655,6 +693,7 @@ void KviScriptSyntaxHighlighter::highlightBlock(const QString &text) } c--; } + if(c->unicode() && (c->isLetterOrNumber() || (c->unicode() == '_'))) { c++; @@ -698,6 +737,7 @@ void KviScriptSyntaxHighlighter::highlightBlock(const QString &text) continue; } } + if(c->unicode() == '$') { c++; @@ -787,46 +827,34 @@ void KviScriptSyntaxHighlighter::highlightBlock(const QString &text) } } - bool i=TRUE; - KviScriptEditorWidget *editor=((KviScriptEditorWidget *)textEdit()); - QString szFind=editor->m_szFind; + bool bCheck = true; + KviScriptEditorWidget * pEditor = ((KviScriptEditorWidget *)textEdit()); + QString szFind = pEditor->m_szFind; if (!szFind.isEmpty()) { - int index=0; - while (i) + int iIndex = 0; + while(bCheck) { - index=text.indexOf(szFind,index,Qt::CaseInsensitive); - if (index != -1) + iIndex = szText.indexOf(szFind,iIndex,Qt::CaseInsensitive); + if (iIndex != -1) { - setFormat(index,szFind.length(),findFormat); - index += szFind.length(); - } - else i=false; + setFormat(iIndex,szFind.length(),findFormat); + iIndex += szFind.length(); + } else bCheck = false; } } if(bInString) setCurrentBlockState(IN_LINE | IN_STRING); - } -// 22.02.2005 :: 00:01 -// valgrind --leak-check=yes --num-callers=10 -v kvirc -f -// -//==30299== Warning: SIGSEGV not in user code; either from syscall kill() -//==30299== or possible Valgrind bug. This message is only shown 3 times. -//==30299== Warning: SIGSEGV not in user code; either from syscall kill() -//==30299== or possible Valgrind bug. This message is only shown 3 times. -//==30299== Warning: SIGSEGV not in user code; either from syscall kill() -//==30299== or possible Valgrind bug. This message is only shown 3 times. - KviScriptEditorImplementation::KviScriptEditorImplementation(QWidget * par) :KviScriptEditor(par) { if(g_pScriptEditorWindowList->isEmpty())loadOptions(); g_pScriptEditorWindowList->append(this); - m_lastCursorPos=0; + m_lastCursorPos = 0; QGridLayout * g = new QGridLayout(this); m_pFindLineedit = new QLineEdit(" ",this); @@ -880,7 +908,8 @@ KviScriptEditorImplementation::KviScriptEditorImplementation(QWidget * par) KviScriptEditorImplementation::~KviScriptEditorImplementation() { g_pScriptEditorWindowList->removeRef(this); - if(g_pScriptEditorWindowList->isEmpty())saveOptions(); + if(g_pScriptEditorWindowList->isEmpty()) + saveOptions(); } void KviScriptEditorImplementation::loadOptions() @@ -909,12 +938,11 @@ bool KviScriptEditorImplementation::isModified() void KviScriptEditorImplementation::slotFind() { emit find(m_pFindLineedit->text()); - } -void KviScriptEditorImplementation::slotNextFind(const QString &text) +void KviScriptEditorImplementation::slotNextFind(const QString & szText) { -// emit nextFind(const QString &text); +// emit nextFind(const QString & szText); } void KviScriptEditorImplementation::slotInitFind() @@ -922,17 +950,17 @@ void KviScriptEditorImplementation::slotInitFind() emit initFind(); } -void KviScriptEditorImplementation::slotReplaceAll(const QString &txt,const QString &txt1) +void KviScriptEditorImplementation::slotReplaceAll(const QString & szToReplace, const QString & szReplaceWith) { - emit replaceAll(txt,txt1); + emit replaceAll(szToReplace,szReplaceWith); } void KviScriptEditorImplementation::saveOptions() { - QString tmp; - g_pEditorModulePointer->getDefaultConfigFileName(tmp); + QString szTmp; + g_pEditorModulePointer->getDefaultConfigFileName(szTmp); - KviConfig cfg(tmp,KviConfig::Write); + KviConfig cfg(szTmp,KviConfig::Write); cfg.writeEntry("Background",g_clrBackground);; cfg.writeEntry("NormalText",g_clrNormalText); cfg.writeEntry("Bracket",g_clrBracket); @@ -950,7 +978,7 @@ void KviScriptEditorImplementation::setFocus() m_pEditor->setFocus(); } -void KviScriptEditorImplementation::focusInEvent(QFocusEvent *) +void KviScriptEditorImplementation::focusInEvent(QFocusEvent * e) { m_pEditor->setFocus(); } @@ -964,117 +992,105 @@ void KviScriptEditorImplementation::setEnabled(bool bEnabled) void KviScriptEditorImplementation::saveToFile() { - QString fName; - if(KviFileDialog::askForSaveFileName(fName, + QString szFileName; + if(KviFileDialog::askForSaveFileName(szFileName, __tr2qs_ctx("Choose a Filename - KVIrc","editor"), QString::null, QString::null,false,true,true)) { - QString buffer = m_pEditor->toPlainText(); + QString szBuffer = m_pEditor->toPlainText(); //if(tmp.isEmpty())tmp = ""; //KviStr buffer = tmp.toUtf8().data(); - if(!KviFileUtils::writeFile(fName,buffer)) + if(!KviFileUtils::writeFile(szFileName,szBuffer)) { - QString tmp; + QString szTmp; QMessageBox::warning(this, __tr2qs_ctx("Save Failed - KVIrc","editor"), - KviQString::sprintf(tmp,__tr2qs_ctx("Can't open the file %s for writing.","editor"),&fName)); + KviQString::sprintf(szTmp,__tr2qs_ctx("Can't open the file %s for writing.","editor"),&szFileName)); } } } -void KviScriptEditorImplementation::setText(const KviQCString &txt) +void KviScriptEditorImplementation::setText(const KviQCString & szText) { - m_pEditor->setText(txt.data()); + m_pEditor->setText(szText.data()); //m_pEditor->setTextFormat(Qt::PlainText); //m_pEditor->moveCursor(KviTalTextEdit::MoveEnd,false); m_pEditor->document()->setModified(false); updateRowColLabel(); } -void KviScriptEditorImplementation::getText(KviQCString &txt) -{ - txt = m_pEditor->toPlainText().toUtf8(); -} - -QLineEdit * KviScriptEditorImplementation::getFindlineedit() +void KviScriptEditorImplementation::text(KviQCString & szText) { - return m_pFindLineedit; + szText = m_pEditor->toPlainText().toUtf8(); } -void KviScriptEditorImplementation::setText(const QString &txt) +void KviScriptEditorImplementation::setText(const QString & szText) { - m_pEditor->setText(txt); -// m_pEditor->setTextFormat(Qt::PlainText); + m_pEditor->setText(szText); + //m_pEditor->setTextFormat(Qt::PlainText); m_pEditor->textCursor().movePosition(QTextCursor::End); m_pEditor->document()->setModified(false); updateRowColLabel(); } -void KviScriptEditorImplementation::getText(QString &txt) +void KviScriptEditorImplementation::text(QString & szText) { - txt = m_pEditor->toPlainText(); + szText = m_pEditor->toPlainText(); } -void KviScriptEditorImplementation::setFindText(const QString &txt) +void KviScriptEditorImplementation::setFindText(const QString & szText) { - m_pFindLineedit->setText(txt); + m_pFindLineedit->setText(szText); m_pEditor->slotFind(); - } -void KviScriptEditorImplementation::setFindLineeditReadOnly(bool b) +void KviScriptEditorImplementation::setFindLineEditReadOnly(bool b) { m_pFindLineedit->setReadOnly(b); - } void KviScriptEditorImplementation::updateRowColLabel() { - if (m_lastCursorPos==m_pEditor->textCursor().position()) return; - int iRow=m_pEditor->textCursor().blockNumber(); - int iCol=m_pEditor->textCursor().columnNumber(); - QString tmp; - KviQString::sprintf(tmp,__tr2qs_ctx("Row: %d Col: %d","editor"),iRow,iCol); - m_pRowColLabel->setText(tmp); - m_lastCursorPos=m_pEditor->textCursor().position(); + if(m_lastCursorPos==m_pEditor->textCursor().position()) + return; + int iRow = m_pEditor->textCursor().blockNumber(); + int iCol = m_pEditor->textCursor().columnNumber(); + QString szTmp; + KviQString::sprintf(szTmp,__tr2qs_ctx("Row: %d Col: %d","editor"),iRow,iCol); + m_pRowColLabel->setText(szTmp); + m_lastCursorPos = m_pEditor->textCursor().position(); } -int KviScriptEditorImplementation::getCursor() -{ - return m_lastCursorPos; -} - -void KviScriptEditorImplementation::setCursorPosition(int pos) +void KviScriptEditorImplementation::setCursorPosition(int iPos) { - QTextCursor cur=m_pEditor->textCursor(); - cur.setPosition(pos); + QTextCursor cur = m_pEditor->textCursor(); + cur.setPosition(iPos); m_pEditor->setTextCursor(cur); updateRowColLabel(); } void KviScriptEditorImplementation::loadFromFile() { - - QString fName; - if(KviFileDialog::askForOpenFileName(fName, + QString szFileName; + if(KviFileDialog::askForOpenFileName(szFileName, __tr2qs_ctx("Load Script File - KVIrc","editor"), QString::null,KVI_FILTER_SCRIPT,false,true)) { - QString buffer; - if(KviFileUtils::loadFile(fName,buffer)) + QString szBuffer; + if(KviFileUtils::loadFile(szFileName,szBuffer)) { - m_pEditor->setText(buffer); + m_pEditor->setText(szBuffer); setCursorPosition(0); //m_pEditor->moveCursor(KviTalTextEdit::MoveEnd,false); //updateRowColLabel(); } else { - QString tmp; + QString szTmp; QMessageBox::warning(this, __tr2qs_ctx("Open Failed - KVIrc","editor"), - KviQString::sprintf(tmp,__tr2qs_ctx("Can't open the file %s for reading.","editor"),&fName)); + KviQString::sprintf(szTmp,__tr2qs_ctx("Can't open the file %s for reading.","editor"),&szFileName)); } } } @@ -1083,108 +1099,109 @@ void KviScriptEditorImplementation::configureColors() { KviScriptEditorWidgetColorOptions dlg(this); if(dlg.exec() == QDialog::Accepted) - { m_pEditor->updateOptions(); saveOptions(); } } -KviScriptEditorReplaceDialog::KviScriptEditorReplaceDialog( QWidget* parent, const char* name) -: QDialog( parent) +KviScriptEditorReplaceDialog::KviScriptEditorReplaceDialog(QWidget * parent, const char * name) +: QDialog(parent) { - m_pParent=parent; + m_pParent = parent; emit initFind(); QPalette p = palette(); p.setColor(foregroundRole(),QColor( 0, 0, 0 )); p.setColor(backgroundRole(),QColor( 236, 233, 216 )); setPalette(p); - QGridLayout *layout = new QGridLayout( this); - layout->setObjectName("replace layout"); + QGridLayout * pLayout = new QGridLayout(this); + pLayout->setObjectName("replace layout"); + QLabel * m_pFindLabel = new QLabel(this); + m_pFindLabel->setObjectName("findlabel"); + m_pFindLabel->setText(tr("Word to Find")); + pLayout->addWidget(m_pFindLabel,0,0); - QLabel *findlabel = new QLabel( this); - findlabel->setObjectName("findlabel"); - findlabel->setText(tr("Word to Find")); - layout->addWidget( findlabel, 0, 0 ); + m_pFindLineEdit = new QLineEdit(this); + m_pFindLineEdit->setObjectName("findlineedit"); + pLayout->addWidget(m_pFindLineEdit,0,1); - m_pFindlineedit = new QLineEdit( this); - m_pFindlineedit->setObjectName( "findlineedit" ); - layout->addWidget(m_pFindlineedit,0,1); + QPushButton * pFindNext = new QPushButton(this); + pFindNext->setObjectName("findnext"); + pFindNext->setText(tr("&Find Next(WIP)")); + pFindNext->setEnabled(false); + pLayout->addWidget(pFindNext,0,2); + QLabel * m_pReplaceLabel = new QLabel(this); + m_pReplaceLabel->setObjectName("replacelabel"); + m_pReplaceLabel->setText(tr("Replace with")); + pLayout->addWidget(m_pReplaceLabel,1,0); - QLabel *replaceLabel = new QLabel( this); - replaceLabel->setObjectName( "replacelabel" ); - replaceLabel->setText(tr("Replace with")); - layout->addWidget( replaceLabel, 1, 0 ); + m_pReplaceLineEdit = new QLineEdit(this); + m_pReplaceLineEdit->setObjectName("replacelineedit"); + pLayout->addWidget(m_pReplaceLineEdit,1,1); - m_pReplacelineedit = new QLineEdit( this); - m_pReplacelineedit->setObjectName( "replacelineedit" ); - layout->addWidget( m_pReplacelineedit,1,1); + QPushButton * pReplace = new QPushButton(this); + pReplace->setObjectName("replace"); + pReplace->setText(tr("&Replace(WIP)")); + pReplace->setEnabled(false); + pLayout->addWidget(pReplace,1,2); - m_pFindlineedit->setFocus(); + m_pFindLineEdit->setFocus(); - QPushButton *cancelButton = new QPushButton( this); - cancelButton->setObjectName( "cancelButton" ); - cancelButton->setText(tr("&Cancel")); - layout->addWidget( cancelButton, 3, 1 ); + m_pCheckReplaceAll = new QCheckBox(this); + m_pCheckReplaceAll->setObjectName("replaceAll"); + m_pCheckReplaceAll->setText(tr("&Replace in all Aliases")); + pLayout->addWidget(m_pCheckReplaceAll,2,0); - replacebutton = new QPushButton( this); - replacebutton->setObjectName("replacebutton" ); - replacebutton->setText(tr("&Replace")); - replacebutton->setEnabled( FALSE ); - layout->addWidget( replacebutton, 3, 2 ); + QPushButton * pCancelButton = new QPushButton(this); + pCancelButton->setObjectName("cancelButton"); + pCancelButton->setText(tr("&Cancel")); + pLayout->addWidget(pCancelButton,3,1); - checkReplaceAll = new QCheckBox( this); - checkReplaceAll->setObjectName("replaceAll" ); - checkReplaceAll->setText(tr("&Replace in all Aliases")); - layout->addWidget( checkReplaceAll, 2, 0 ); + m_pReplaceButton = new QPushButton(this); + m_pReplaceButton->setObjectName("replacebutton"); + m_pReplaceButton->setText(tr("&Replace")); + m_pReplaceButton->setEnabled(false); + pLayout->addWidget(m_pReplaceButton,3,2); - findNext = new QPushButton(this); - findNext->setObjectName( "findNext(WIP)" ); - findNext->setText(tr("&Findnext")); - layout->addWidget( findNext, 0, 2 ); - findNext->setEnabled(false); - - replace = new QPushButton(this); - replace->setObjectName( "replace" ); - replace->setText(tr("&Replace(WIP)")); - layout->addWidget( replace, 1, 2 ); - replace->setEnabled(false); + setLayout(pLayout); // signals and slots connections - connect( replacebutton, SIGNAL( clicked() ), this, SLOT( slotReplace() ) ); - connect( findNext, SIGNAL( clicked() ),this,SLOT( slotNextFind())); - connect( cancelButton, SIGNAL( clicked() ), this, SLOT( reject() ) ); - connect( m_pFindlineedit, SIGNAL( textChanged(const QString &)), this, SLOT( textChanged(const QString &))); + connect(m_pReplaceButton, SIGNAL(clicked()), this, SLOT(slotReplace())); + connect(pFindNext, SIGNAL(clicked()),this,SLOT(slotNextFind())); + connect(pCancelButton, SIGNAL(clicked()), this, SLOT(reject())); + connect(m_pFindLineEdit, SIGNAL(textChanged(const QString &)), this, SLOT(textChanged(const QString &))); } - KviScriptEditorReplaceDialog::~KviScriptEditorReplaceDialog() { } -void KviScriptEditorReplaceDialog::textChanged(const QString &txt) +void KviScriptEditorReplaceDialog::textChanged(const QString & szText) { - if (!txt.isEmpty()) replacebutton->setEnabled(TRUE); - else replacebutton->setEnabled(FALSE); - + if(!szText.isEmpty()) + m_pReplaceButton->setEnabled(true); + else + m_pReplaceButton->setEnabled(false); } void KviScriptEditorReplaceDialog::slotReplace() { - QString txt=((KviScriptEditorWidget *)m_pParent)->toPlainText(); - if (checkReplaceAll->isChecked()) emit replaceAll(m_pFindlineedit->text(),m_pReplacelineedit->text()); - txt.replace(m_pFindlineedit->text(),m_pReplacelineedit->text(),Qt::CaseInsensitive); - ((KviScriptEditorWidget *)m_pParent)->setText(txt); + QString szText = ((KviScriptEditorWidget *)m_pParent)->toPlainText(); + if(m_pCheckReplaceAll->isChecked()) + emit replaceAll(m_pFindLineEdit->text(),m_pReplaceLineEdit->text()); + + szText.replace(m_pFindLineEdit->text(),m_pReplaceLineEdit->text(),Qt::CaseInsensitive); + ((KviScriptEditorWidget *)m_pParent)->setText(szText); ((KviScriptEditorWidget *)m_pParent)->document()->setModified(true); - m_pFindlineedit->setText(""); - m_pReplacelineedit->setText(""); - setTabOrder(m_pFindlineedit,m_pReplacelineedit); + m_pFindLineEdit->setText(""); + m_pReplaceLineEdit->setText(""); + setTabOrder(m_pFindLineEdit,m_pReplaceLineEdit); } void KviScriptEditorReplaceDialog::slotNextFind() { - emit nextFind(m_pFindlineedit->text()); + emit nextFind(m_pFindLineEdit->text()); } diff --git a/src/modules/editor/scripteditor.h b/src/modules/editor/scripteditor.h index c60accd76..cc08ff446 100644 --- a/src/modules/editor/scripteditor.h +++ b/src/modules/editor/scripteditor.h @@ -29,7 +29,7 @@ #include "kvi_pointerlist.h" #include "kvi_selectors.h" #include "kvi_qcstring.h" -#include <kvi_tal_textedit.h> +#include "kvi_tal_textedit.h" #include "kvi_tal_popupmenu.h" #include <QCompleter> @@ -39,13 +39,11 @@ #include <QTextEdit> #include <QListWidget> #include <QCheckBox> -// Q3PopupMenu - #include <QSyntaxHighlighter> class QTimer; -typedef KviPointerList<int> ColumnList; +//typedef KviPointerList<int> ColumnList; class KviScriptEditorWidget : public QTextEdit { @@ -55,47 +53,35 @@ public: KviScriptEditorWidget(QWidget * pParent); virtual ~KviScriptEditorWidget(); public: + QString m_szFind; +protected: + QCompleter * m_pCompleter; + QStringList * m_pListModulesNames; + QStringList * m_pListCompletition; + QTimer * m_pStartTimer; + QWidget * m_pParent; + QString m_szHelp; +public: void createCompleter(QStringList &list); void loadCompleterFromFile(); - QCompleter * completer() const; + QCompleter * completer() const { return m_pCompleter; }; QString textUnderCursor() const; void updateOptions(); - void find1(); - QString m_szFind; + //void find1(); bool contextSensitiveHelp() const; public slots: - void insertCompletion(const QString& completion); + void insertCompletion(const QString & szCompletion); void slotFind(); void slotHelp(); void slotReplace(); - - +protected slots: + void asyncCompleterCreation(); signals: void keyPressed(); protected: - QCompleter * m_pCompleter; - QStringList * m_pListModulesNames; - QStringList * m_pListCompletition; - QTimer *m_pStartTimer; - void contextMenuEvent(QContextMenuEvent *event); + void contextMenuEvent(QContextMenuEvent * e); virtual void keyPressEvent(QKeyEvent * e); - void mouseReleaseEvent(QMouseEvent *); - QWidget *m_pParent; - QString m_szHelp; - protected slots: - void asyncCompleterCreation(); - -}; - -class KviScriptSyntaxHighlighter : public QSyntaxHighlighter -{ -public: - KviScriptSyntaxHighlighter(KviScriptEditorWidget * pWidget); - virtual ~KviScriptSyntaxHighlighter(); -public: - QTextEdit *m_pTextEdit; - QTextEdit *textEdit(){return m_pTextEdit;} - void highlightBlock(const QString &text); + void mouseReleaseEvent(QMouseEvent * e); }; class KviScriptEditorWidgetColorOptions : public QDialog @@ -113,32 +99,45 @@ protected slots: void okClicked(); }; +class KviScriptEditorSyntaxHighlighter : public QSyntaxHighlighter +{ +public: + KviScriptEditorSyntaxHighlighter(KviScriptEditorWidget * pWidget); + virtual ~KviScriptEditorSyntaxHighlighter(); +public: + QTextEdit * m_pTextEdit; +public: + QTextEdit * textEdit(){ return m_pTextEdit; } + void highlightBlock(const QString & szText); +}; + class KviScriptEditorImplementation : public KviScriptEditor { Q_OBJECT public: KviScriptEditorImplementation(QWidget * par); virtual ~KviScriptEditorImplementation(); +public: + QLineEdit * m_pFindlineedit; protected: KviScriptEditorWidget * m_pEditor; QLabel * m_pRowColLabel; - int m_lastCursorPos; + int m_lastCursorPos; public: - virtual void setText(const QString &txt); - virtual void getText(QString &txt); - virtual void setText(const KviQCString &txt); - virtual void getText(KviQCString &txt); - virtual void setFindText(const QString & text); + virtual void setText(const QString & szText); + virtual void setText(const KviQCString & szText); + virtual void text(QString & szText); + virtual void text(KviQCString & szText); + virtual void setFindText(const QString & szText); virtual void setEnabled(bool bEnabled); virtual void setFocus(); virtual bool isModified(); - void setFindLineeditReadOnly(bool b); - void setCursorPosition(int); - int getCursor(); - QLineEdit *m_pFindlineedit; - QLineEdit * getFindlineedit(); + void setFindLineEditReadOnly(bool b); + void setCursorPosition(int iPos); + int cursor(){ return m_lastCursorPos; }; + QLineEdit * findLineEdit(){ return m_pFindLineedit; }; protected: - virtual void focusInEvent(QFocusEvent *e); + virtual void focusInEvent(QFocusEvent * e); void loadOptions(); void saveOptions(); protected slots: @@ -147,43 +146,37 @@ protected slots: void configureColors(); void updateRowColLabel(); void slotFind(); - void slotReplaceAll(const QString &,const QString &); + void slotReplaceAll(const QString & szToReplace, const QString & szReplaceWith); void slotInitFind(); void slotNextFind(const QString &); signals: - void find( const QString &); - void replaceAll( const QString &, const QString &); + void find(const QString &); + void replaceAll(const QString & szToReplace, const QString & szReplaceWith); void initFind(); - void nextFind(const QString &); + void nextFind(const QString & szText); }; class KviScriptEditorReplaceDialog: public QDialog { Q_OBJECT public: - KviScriptEditorReplaceDialog( QWidget* parent = 0, const char* name = 0); + KviScriptEditorReplaceDialog(QWidget * parent = 0, const char * name = 0); ~KviScriptEditorReplaceDialog(); - QLineEdit *m_pFindlineedit; - QLineEdit *m_pReplacelineedit; +public: + QLineEdit * m_pFindLineEdit; + QLineEdit * m_pReplaceLineEdit; protected: - QLabel *findlabel; - QLabel *replacelabel; - QPushButton *replacebutton; - QPushButton *replace; - QPushButton *findNext; - -// QPushButton *cancelbutton; - QCheckBox *checkReplaceAll; - QWidget *m_pParent; + QPushButton * m_pReplaceButton; + QCheckBox * m_pCheckReplaceAll; + QWidget * m_pParent; protected slots: void textChanged(const QString &); void slotReplace(); void slotNextFind(); signals: - void replaceAll( const QString &,const QString &); + void replaceAll(const QString &, const QString &); void initFind(); void nextFind(const QString &); }; - -#endif //!_SCRIPTEDITOR_H_ +#endif // _SCRIPTEDITOR_H_ |
