00001
00007 #ifndef HBMLPATTERNSPANEL_H_
00008 #define HBMLPATTERNSPANEL_H_
00009
00010 #include <QtGui/QGroupBox>
00011 #include <QtGui/QLabel>
00012 #include <QtGui/QPlainTextEdit>
00013 #include <QtGui/QVBoxLayout>
00014
00015 #include "HighlightBlock.h"
00016
00021 class HBmlPatternsPanel : public QGroupBox
00022 {
00023 Q_OBJECT
00024 private:
00025 MultiLinesHighlightBlock * block;
00026 QLabel * sPatternLabel;
00027 QPlainTextEdit * sPatternEdit;
00028 QLabel * ePatternLabel;
00029 QPlainTextEdit * ePatternEdit;
00030 QVBoxLayout * layout;
00031 public:
00040 HBmlPatternsPanel(QWidget * parent,HighlightBlock * _block): QGroupBox(parent)
00041 {
00042 block=static_cast<MultiLinesHighlightBlock*>(_block);
00043 this->setTitle("Regular expression pattern settings");
00044
00045 layout=new QVBoxLayout(this);
00046 sPatternLabel=new QLabel("Edit starting pattern",this);
00047 sPatternEdit=new QPlainTextEdit(block->getStartingPattern(),this);
00048 ePatternLabel=new QLabel("Edit ending pattern",this);
00049 ePatternEdit=new QPlainTextEdit(block->getEndingPattern(),this);
00050
00051 layout->addWidget(sPatternLabel);
00052 layout->addWidget(sPatternEdit);
00053 layout->addWidget(ePatternLabel);
00054 layout->addWidget(ePatternEdit);
00055
00056 connect(sPatternEdit,SIGNAL(textChanged()),this,SLOT(patternEditChanged()));
00057 connect(ePatternEdit,SIGNAL(textChanged()),this,SLOT(patternEditChanged()));
00058 patternEditChanged();
00059 };
00060 private slots:
00064 void patternEditChanged()
00065 {
00066 QString pattern=sPatternEdit->document()->toPlainText();
00067 block->setStartingPattern(pattern);
00068 QPalette palette=sPatternEdit->palette();
00069 if (QRegExp(pattern).isValid())
00070 palette.setColor(QPalette::Base,QColor(150,255,150));
00071 else
00072 palette.setColor(QPalette::Base,QColor(255,150,150));
00073 sPatternEdit->setPalette(palette);
00074
00075 pattern=ePatternEdit->document()->toPlainText();
00076 block->setEndingPattern(pattern);
00077 palette=ePatternEdit->palette();
00078 if (QRegExp(pattern).isValid())
00079 palette.setColor(QPalette::Base,QColor(150,255,150));
00080 else
00081 palette.setColor(QPalette::Base,QColor(255,150,150));
00082 ePatternEdit->setPalette(palette);
00083 }
00084 };
00085
00086 #endif