00001
00007 #ifndef HBSLPATTERNSPANEL_H_
00008 #define HBSLPATTERNSPANEL_H_
00009
00010 #include <QtGui/QGroupBox>
00011 #include <QtGui/QLabel>
00012 #include <QtGui/QPlainTextEdit>
00013 #include <QtGui/QVBoxLayout>
00014 #include <QtCore/QDebug>
00015
00016 #include "HighlightBlock.h"
00017
00022 class HBslPatternsPanel : public QGroupBox
00023 {
00024 Q_OBJECT
00025 private:
00026 SingleLineHighlightBlock * block;
00027 QLabel * patternLabel;
00028 QPlainTextEdit * patternEdit;
00029 QVBoxLayout * layout;
00030 public:
00039 HBslPatternsPanel(QWidget * parent,HighlightBlock * _block): QGroupBox(parent)
00040 {
00041 block=static_cast<SingleLineHighlightBlock*>(_block);
00042 this->setTitle("Regular expression pattern settings");
00043
00044 layout=new QVBoxLayout(this);
00045 patternLabel=new QLabel("Edit matching pattern",this);
00046 patternEdit=new QPlainTextEdit(block->getPattern(),this);
00047 layout->addWidget(patternLabel);
00048 layout->addWidget(patternEdit);
00049 connect(patternEdit,SIGNAL(textChanged()),this,SLOT(patternEditChanged()));
00050 patternEditChanged();
00051 };
00052 private slots:
00056 void patternEditChanged()
00057 {
00058 QString pattern=patternEdit->document()->toPlainText();
00059 block->setPattern(pattern);
00060 QPalette palette=patternEdit->palette();
00061 if (QRegExp(pattern).isValid())
00062 palette.setColor(QPalette::Base,QColor(150,255,150));
00063 else
00064 palette.setColor(QPalette::Base,QColor(255,150,150));
00065 patternEdit->setPalette(palette);
00066 }
00067 };
00068
00069 #endif