I have a class called FindAndReplaceBar, whose implementation is this:
#include "FindAndReplaceBar.h"
#include <QLabel>
#include <QPushButton>
#include <QGridLayout>
#include <QTextDocument>
#include <QLineEdit>
FindAndReplaceBar::FindAndReplaceBar(QObject *parent) :
QToolBar(NULL)
{
lblFind = new QLabel("Find: ",this);
lblReplace = new QLabel("Replace",this);
ledtFind = new QLineEdit(this);
ledtReplace = new QLineEdit(this);
QPixmap next(":/res/resources/next.gif");
QPixmap previous(":/res/resources/previous.gif");
QPixmap close(":/res/resources/close_icon.gif");
btnFindNext = new QPushButton(QIcon(next),"",this);
btnFindPrevious = new QPushButton(QIcon(previous),"",this);
btnClose = new QPushButton(QIcon(close),"",this);
btnReplace = new QPushButton("Replace",this);
btnReplaceAll = new QPushButton("Replace All",this);
btnFindNext->setFlat(true);
btnFindPrevious->setFlat(true);
btnClose->setFlat(true);
btnReplace->setFlat(true);
btnReplaceAll->setFlat(true);
lytFindAndReplaceBar = new QGridLayout(this);
lytFindAndReplaceBar->addWidget(lblFind,0,0,1,1);
lytFindAndReplaceBar->addWidget(ledtFind,0,1,1,2);
lytFindAndReplaceBar->addWidget(btnFindPrevious,0,3,1,1);
lytFindAndReplaceBar->addWidget(btnFindNext,0,4,1,1);
lytFindAndReplaceBar->addWidget(lblReplace,0,5,1,1);
lytFindAndReplaceBar->addWidget(ledtReplace,0,6,1,2);
lytFindAndReplaceBar->addWidget(btnReplace,0,8,1,1);
lytFindAndReplaceBar->addWidget(btnReplaceAll,0,9,1,1);
this->setLayout(lytFindAndReplaceBar);
connect(btnFindNext,SIGNAL(clicked()),this,SIGNAL(findNext()));
connect(btnFindPrevious,SIGNAL(pressed()),this,SIGNAL(findPrevious()));
connect(btnClose,SIGNAL(pressed()),this,SLOT(close()));
connect(btnReplace,SIGNAL(pressed()),this,SIGNAL(replace()));
connect(btnReplaceAll,SIGNAL(pressed()),this,SIGNAL(replaceAll()));
this->setStyleSheet("QToolBar{background: qlineargradient(x1:0,x2:0,y1:0,y2:1,stop:0 #fffaf0,stop:0.3 #fdf5e6)} QLineEdit{border-radius:4px;padding:2px;}");
}
void FindAndReplaceBar::findNext()
{
emit find(0);
}
void FindAndReplaceBar::findPrevious()
{
emit find(QTextDocument::FindBackward);
}
void FindAndReplaceBar::replace()
{
emit replace(false);
}
void FindAndReplaceBar::replaceAll()
{
emit replace(true);
}
QString FindAndReplaceBar::searchTerm()
{
return this->ledtFind->text();
}
QString FindAndReplaceBar::replaceTerm()
{
return this->ledtReplace->text();
}
void FindAndReplaceBar::setSearchFieldText(const QString & searchFieldText)
{
this->ledtFind->setText(searchFieldText);
}
void FindAndReplaceBar::setReplaceFieldText(const QString & replaceFieldText)
{
this->ledtReplace->setText(replaceFieldText);
}
When I run the program I get problems of multiple definitions of the functions:
findNext()
, findPrevious()
, replace()
, replaceAll()
.
The other definition is made in the moc_FindAndReplaceBar.cpp file. I'm not sure what the problem so I don't know how to fix it! I would really appreciate any help, thanks!