mirror of
https://github.com/YACReader/yacreader
synced 2025-05-28 03:10:27 -04:00
Simplify YACReaderSearchLineEdit
Modifiers are no longer needed since we have advanced search
This commit is contained in:
parent
8173f9f94c
commit
2e24c1f36f
@ -4,8 +4,6 @@
|
|||||||
#include <QStyle>
|
#include <QStyle>
|
||||||
#include <QLabel>
|
#include <QLabel>
|
||||||
|
|
||||||
#include <QRegExpValidator>
|
|
||||||
|
|
||||||
#include "QsLog.h"
|
#include "QsLog.h"
|
||||||
|
|
||||||
YACReaderSearchLineEdit::YACReaderSearchLineEdit(QWidget *parent)
|
YACReaderSearchLineEdit::YACReaderSearchLineEdit(QWidget *parent)
|
||||||
@ -47,26 +45,6 @@ YACReaderSearchLineEdit::YACReaderSearchLineEdit(QWidget *parent)
|
|||||||
setAttribute(Qt::WA_MacShowFocusRect, false);
|
setAttribute(Qt::WA_MacShowFocusRect, false);
|
||||||
setPlaceholderText(tr("type to search"));
|
setPlaceholderText(tr("type to search"));
|
||||||
|
|
||||||
// search modifiers
|
|
||||||
modifiers << "[read]"
|
|
||||||
<< "[unread]"; //<< "[author]";
|
|
||||||
modifiersCompleter = new QCompleter(modifiers);
|
|
||||||
|
|
||||||
QString regExpString;
|
|
||||||
foreach (QString modifier, modifiers) {
|
|
||||||
regExpString = regExpString + modifier.replace("[", "\\[").replace("]", "\\]") + ".*|";
|
|
||||||
}
|
|
||||||
|
|
||||||
regExpString = regExpString + "[^\\[].*";
|
|
||||||
|
|
||||||
QLOG_TRACE() << regExpString;
|
|
||||||
|
|
||||||
QRegExp regExp(regExpString);
|
|
||||||
QValidator *validator = new QRegExpValidator(regExp, this);
|
|
||||||
|
|
||||||
setValidator(validator);
|
|
||||||
setCompleter(modifiersCompleter);
|
|
||||||
|
|
||||||
connect(this, &QLineEdit::textChanged, this, &YACReaderSearchLineEdit::processText);
|
connect(this, &QLineEdit::textChanged, this, &YACReaderSearchLineEdit::processText);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -77,13 +55,9 @@ void YACReaderSearchLineEdit::clearText()
|
|||||||
connect(this, &QLineEdit::textChanged, this, &YACReaderSearchLineEdit::processText);
|
connect(this, &QLineEdit::textChanged, this, &YACReaderSearchLineEdit::processText);
|
||||||
}
|
}
|
||||||
|
|
||||||
// modifiers are not returned
|
|
||||||
const QString YACReaderSearchLineEdit::text()
|
const QString YACReaderSearchLineEdit::text()
|
||||||
{
|
{
|
||||||
QString text = QLineEdit::text();
|
return QLineEdit::text();
|
||||||
|
|
||||||
QRegExp regExp("\\[.*\\]");
|
|
||||||
return text.remove(regExp).trimmed();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void YACReaderSearchLineEdit::resizeEvent(QResizeEvent *)
|
void YACReaderSearchLineEdit::resizeEvent(QResizeEvent *)
|
||||||
@ -115,26 +89,5 @@ void YACReaderSearchLineEdit::updateCloseButton(const QString &text)
|
|||||||
|
|
||||||
void YACReaderSearchLineEdit::processText(const QString &text)
|
void YACReaderSearchLineEdit::processText(const QString &text)
|
||||||
{
|
{
|
||||||
|
emit filterChanged(YACReader::NoModifiers, text);
|
||||||
QRegExp regExp("(\\[.*\\])(.*)");
|
|
||||||
if (text.startsWith("[")) {
|
|
||||||
if (regExp.exactMatch(text)) // avoid search while the modifiers are being written
|
|
||||||
{
|
|
||||||
QString modifier = regExp.cap(1);
|
|
||||||
QString searchText = regExp.cap(2).trimmed();
|
|
||||||
|
|
||||||
int indexOfModifier = modifiers.indexOf(modifier);
|
|
||||||
if (indexOfModifier != -1) {
|
|
||||||
QLOG_TRACE() << "modifier : " << modifier << "text : " << searchText;
|
|
||||||
emit filterChanged(static_cast<YACReader::SearchModifiers>(indexOfModifier + 1), searchText); // TODO, do not use on indexOF
|
|
||||||
} else {
|
|
||||||
QLOG_ERROR() << "invalid modifier : " << modifier;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
QLOG_TRACE() << "full text :" << text << " : " << regExp.indexIn(text);
|
|
||||||
} else {
|
|
||||||
QLOG_TRACE() << "NoModifiers : " << text;
|
|
||||||
emit filterChanged(YACReader::NoModifiers, text);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -31,8 +31,6 @@ private slots:
|
|||||||
private:
|
private:
|
||||||
QToolButton *clearButton;
|
QToolButton *clearButton;
|
||||||
QLabel *searchLabel;
|
QLabel *searchLabel;
|
||||||
QCompleter *modifiersCompleter;
|
|
||||||
QStringList modifiers;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // YACREADER_SEARCH_LINE_EDIT_H
|
#endif // YACREADER_SEARCH_LINE_EDIT_H
|
||||||
|
Loading…
Reference in New Issue
Block a user