mirror of
https://github.com/qTox/qTox.git
synced 2024-03-22 14:00:36 +08:00
fix: add search symbol ' in history
This commit is contained in:
parent
f73021c376
commit
3e05279c09
|
@ -326,13 +326,17 @@ QList<History::DateMessages> History::getChatHistoryCounts(const ToxPk& friendPk
|
||||||
return counts;
|
return counts;
|
||||||
}
|
}
|
||||||
|
|
||||||
QDateTime History::getDateWhereFindPhrase(const QString& friendPk, const QDateTime& from, const QString& phrase)
|
QDateTime History::getDateWhereFindPhrase(const QString& friendPk, const QDateTime& from, QString phrase)
|
||||||
{
|
{
|
||||||
QList<QDateTime> counts;
|
QList<QDateTime> counts;
|
||||||
auto rowCallback = [&counts](const QVector<QVariant>& row) {
|
auto rowCallback = [&counts](const QVector<QVariant>& row) {
|
||||||
counts.append(QDateTime::fromMSecsSinceEpoch(row[0].toLongLong()));
|
counts.append(QDateTime::fromMSecsSinceEpoch(row[0].toLongLong()));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (phrase.contains("'")) {
|
||||||
|
phrase.replace("'", "''");
|
||||||
|
}
|
||||||
|
|
||||||
QString queryText =
|
QString queryText =
|
||||||
QString("SELECT timestamp "
|
QString("SELECT timestamp "
|
||||||
"FROM history "
|
"FROM history "
|
||||||
|
|
|
@ -82,7 +82,7 @@ public:
|
||||||
const QDateTime& to);
|
const QDateTime& to);
|
||||||
|
|
||||||
QList<DateMessages> getChatHistoryCounts(const ToxPk& friendPk, const QDate& from, const QDate& to);
|
QList<DateMessages> getChatHistoryCounts(const ToxPk& friendPk, const QDate& from, const QDate& to);
|
||||||
QDateTime getDateWhereFindPhrase(const QString& friendPk, const QDateTime& from, const QString& phrase);
|
QDateTime getDateWhereFindPhrase(const QString& friendPk, const QDateTime& from, QString phrase);
|
||||||
|
|
||||||
void markAsSent(qint64 messageId);
|
void markAsSent(qint64 messageId);
|
||||||
|
|
||||||
|
|
|
@ -492,7 +492,7 @@ void ChatForm::onVolMuteToggle()
|
||||||
void ChatForm::onSearchUp(const QString& phrase)
|
void ChatForm::onSearchUp(const QString& phrase)
|
||||||
{
|
{
|
||||||
if (phrase.isEmpty()) {
|
if (phrase.isEmpty()) {
|
||||||
desibleSearchText();
|
disableSearchText();
|
||||||
}
|
}
|
||||||
|
|
||||||
QVector<ChatLine::Ptr> lines = chatWidget->getLines();
|
QVector<ChatLine::Ptr> lines = chatWidget->getLines();
|
||||||
|
|
|
@ -543,7 +543,7 @@ void GenericChatForm::addSystemDateMessage()
|
||||||
insertChatMessage(ChatMessage::createChatInfoMessage(dateText, ChatMessage::INFO, QDateTime()));
|
insertChatMessage(ChatMessage::createChatInfoMessage(dateText, ChatMessage::INFO, QDateTime()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void GenericChatForm::desibleSearchText()
|
void GenericChatForm::disableSearchText()
|
||||||
{
|
{
|
||||||
if (searchPoint != QPoint(1, -1)) {
|
if (searchPoint != QPoint(1, -1)) {
|
||||||
QVector<ChatLine::Ptr> lines = chatWidget->getLines();
|
QVector<ChatLine::Ptr> lines = chatWidget->getLines();
|
||||||
|
@ -563,7 +563,7 @@ bool GenericChatForm::searchInText(const QString& phrase, bool searchUp)
|
||||||
bool isSearch = false;
|
bool isSearch = false;
|
||||||
|
|
||||||
if (phrase.isEmpty()) {
|
if (phrase.isEmpty()) {
|
||||||
desibleSearchText();
|
disableSearchText();
|
||||||
}
|
}
|
||||||
|
|
||||||
QVector<ChatLine::Ptr> lines = chatWidget->getLines();
|
QVector<ChatLine::Ptr> lines = chatWidget->getLines();
|
||||||
|
@ -799,7 +799,7 @@ void GenericChatForm::onSearchTriggered()
|
||||||
if (searchForm->isHidden()) {
|
if (searchForm->isHidden()) {
|
||||||
searchForm->removeSearchPhrase();
|
searchForm->removeSearchPhrase();
|
||||||
|
|
||||||
desibleSearchText();
|
disableSearchText();
|
||||||
} else {
|
} else {
|
||||||
searchPoint = QPoint(1, -1);
|
searchPoint = QPoint(1, -1);
|
||||||
searchAfterLoadHistory = false;
|
searchAfterLoadHistory = false;
|
||||||
|
@ -808,7 +808,7 @@ void GenericChatForm::onSearchTriggered()
|
||||||
|
|
||||||
void GenericChatForm::searchInBegin(const QString& phrase)
|
void GenericChatForm::searchInBegin(const QString& phrase)
|
||||||
{
|
{
|
||||||
desibleSearchText();
|
disableSearchText();
|
||||||
|
|
||||||
searchPoint = QPoint(1, -1);
|
searchPoint = QPoint(1, -1);
|
||||||
onSearchUp(phrase);
|
onSearchUp(phrase);
|
||||||
|
|
|
@ -131,7 +131,7 @@ protected:
|
||||||
virtual bool event(QEvent*) final override;
|
virtual bool event(QEvent*) final override;
|
||||||
virtual void resizeEvent(QResizeEvent* event) final override;
|
virtual void resizeEvent(QResizeEvent* event) final override;
|
||||||
virtual bool eventFilter(QObject* object, QEvent* event) final override;
|
virtual bool eventFilter(QObject* object, QEvent* event) final override;
|
||||||
void desibleSearchText();
|
void disableSearchText();
|
||||||
bool searchInText(const QString& phrase, bool searchUp);
|
bool searchInText(const QString& phrase, bool searchUp);
|
||||||
int indexForSearchInLine(const QString& txt, const QString& phrase, bool searchUp);
|
int indexForSearchInLine(const QString& txt, const QString& phrase, bool searchUp);
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,7 @@ SearchForm::SearchForm(QWidget* parent) : QWidget(parent)
|
||||||
|
|
||||||
upButton = createButton("searchUpButton", "green");
|
upButton = createButton("searchUpButton", "green");
|
||||||
downButton = createButton("searchDownButton", "green");
|
downButton = createButton("searchDownButton", "green");
|
||||||
hideButton = createButton("hideButton","red");
|
hideButton = createButton("hideButton", "red");
|
||||||
|
|
||||||
layout->setMargin(0);
|
layout->setMargin(0);
|
||||||
layout->addWidget(searchLine);
|
layout->addWidget(searchLine);
|
||||||
|
|
|
@ -39,6 +39,7 @@ protected:
|
||||||
virtual void showEvent(QShowEvent* event) final override;
|
virtual void showEvent(QShowEvent* event) final override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
// TODO: Merge with 'createButton' from chatformheader.cpp
|
||||||
QPushButton* createButton(const QString& name, const QString& state);
|
QPushButton* createButton(const QString& name, const QString& state);
|
||||||
|
|
||||||
QPushButton* upButton;
|
QPushButton* upButton;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user