1
0
mirror of https://github.com/qTox/qTox.git synced 2024-03-22 14:00:36 +08:00

revert(chatlog): "edit load history in search"

This reverts commit 8c4b1e00a1.
This commit is contained in:
Anthony Bilinski 2020-04-05 01:19:05 -07:00
parent f29e948bed
commit 1104417022
No known key found for this signature in database
GPG Key ID: 2AA8E0DA1B31FB3C
11 changed files with 51 additions and 73 deletions

View File

@ -66,11 +66,9 @@ void Text::selectText(const QString& txt, const std::pair<int, int>& point)
return;
}
selectCursor = doc->find(txt, point.first);
selectPoint = point;
auto cursor = doc->find(txt, point.first);
regenerate();
update();
selectText(cursor, point);
}
void Text::selectText(const QRegularExpression &exp, const std::pair<int, int>& point)
@ -81,20 +79,14 @@ void Text::selectText(const QRegularExpression &exp, const std::pair<int, int>&
return;
}
selectCursor = doc->find(exp, point.first);
selectPoint = point;
auto cursor = doc->find(exp, point.first);
regenerate();
update();
selectText(cursor, point);
}
void Text::deselectText()
{
dirty = true;
selectCursor = QTextCursor();
selectPoint = {0, 0};
regenerate();
update();
}
@ -363,10 +355,6 @@ void Text::regenerate()
dirty = false;
}
if (!selectCursor.isNull()) {
selectText(selectCursor, selectPoint);
}
// if we are not visible -> free mem
if (!keepInMemory)
freeResources();
@ -474,6 +462,9 @@ void Text::selectText(QTextCursor& cursor, const std::pair<int, int>& point)
QTextCharFormat format;
format.setBackground(QBrush(Style::getColor(Style::SearchHighlighted)));
cursor.mergeCharFormat(format);
regenerate();
update();
}
}

View File

@ -23,7 +23,6 @@
#include "src/widget/style.h"
#include <QFont>
#include <QTextCursor>
class QTextDocument;
@ -110,7 +109,4 @@ private:
TextType textType;
QColor color;
QColor customColor;
QTextCursor selectCursor;
std::pair<int, int> selectPoint{0, 0};
};

View File

@ -1139,14 +1139,14 @@ QDateTime History::getDateWhereFindPhrase(const ToxPk& friendPk, const QDateTime
break;
}
QDateTime time = from;
QDateTime date = from;
if (!time.isValid()) {
time = QDateTime::currentDateTime();
if (!date.isValid()) {
date = QDateTime::currentDateTime();
}
if (parameter.period == PeriodSearch::AfterDate || parameter.period == PeriodSearch::BeforeDate) {
time = parameter.time;
date = QDateTime(parameter.date);
}
QString period;
@ -1156,15 +1156,15 @@ QDateTime History::getDateWhereFindPhrase(const ToxPk& friendPk, const QDateTime
break;
case PeriodSearch::AfterDate:
period = QStringLiteral("AND timestamp > '%1' ORDER BY timestamp ASC LIMIT 1;")
.arg(time.toMSecsSinceEpoch());
.arg(date.toMSecsSinceEpoch());
break;
case PeriodSearch::BeforeDate:
period = QStringLiteral("AND timestamp < '%1' ORDER BY timestamp DESC LIMIT 1;")
.arg(time.toMSecsSinceEpoch());
.arg(date.toMSecsSinceEpoch());
break;
default:
period = QStringLiteral("AND timestamp < '%1' ORDER BY timestamp DESC LIMIT 1;")
.arg(time.toMSecsSinceEpoch());
.arg(date.toMSecsSinceEpoch());
break;
}

View File

@ -36,7 +36,7 @@
#include "src/widget/contentlayout.h"
#include "src/widget/emoticonswidget.h"
#include "src/widget/form/chatform.h"
#include "src/widget/gui.h"
#include "src/widget/form/loadhistorydialog.h"
#include "src/widget/maskablepixmapwidget.h"
#include "src/widget/searchform.h"
#include "src/widget/style.h"
@ -676,23 +676,6 @@ QDateTime GenericChatForm::getTime(const ChatLine::Ptr &chatLine) const
return QDateTime();
}
void GenericChatForm::loadHistory(const QDateTime &time, const LoadHistoryDialog::LoadType type)
{
chatWidget->clear();
messages.clear();
auto begin = firstItemAfterDate(time.date(), chatLog);
auto end = ChatLogIdx(begin.get() + 1);
renderMessages(begin, end);
if (type == LoadHistoryDialog::from) {
loadHistoryUpper();
} else {
loadHistoryLower();
}
}
void GenericChatForm::disableSearchText()
{
@ -839,10 +822,22 @@ void GenericChatForm::onLoadHistory()
{
LoadHistoryDialog dlg(&chatLog);
if (dlg.exec()) {
chatWidget->clear();
messages.clear();
QDateTime time = dlg.getFromDate();
auto type = dlg.getLoadType();
loadHistory(time, type);
auto begin = firstItemAfterDate(dlg.getFromDate().date(), chatLog);
auto end = ChatLogIdx(begin.get() + 1);
renderMessages(begin, end);
if (type == LoadHistoryDialog::from) {
loadHistoryUpper();
} else {
loadHistoryLower();
}
}
}
@ -889,12 +884,6 @@ void GenericChatForm::searchInBegin(const QString& phrase, const ParameterSearch
{
disableSearchText();
if (!parameter.time.isNull()) {
LoadHistoryDialog::LoadType type = (parameter.period == PeriodSearch::BeforeDate)
? LoadHistoryDialog::to : LoadHistoryDialog::from;
loadHistory(parameter.time, type);
}
bool bForwardSearch = false;
switch (parameter.period) {
case PeriodSearch::WithTheFirst: {
@ -912,13 +901,13 @@ void GenericChatForm::searchInBegin(const QString& phrase, const ParameterSearch
}
case PeriodSearch::AfterDate: {
bForwardSearch = true;
searchPos.logIdx = firstItemAfterDate(parameter.time.date(), chatLog);
searchPos.logIdx = firstItemAfterDate(parameter.date, chatLog);
searchPos.numMatches = 0;
break;
}
case PeriodSearch::BeforeDate: {
bForwardSearch = false;
searchPos.logIdx = firstItemAfterDate(parameter.time.date(), chatLog);
searchPos.logIdx = firstItemAfterDate(parameter.date, chatLog);
searchPos.numMatches = 0;
break;
}
@ -1066,7 +1055,7 @@ void GenericChatForm::loadHistoryLower()
void GenericChatForm::loadHistoryUpper()
{
auto begin = messages.rbegin()->first;
auto begin = messages.end()->first;
int add = 100;
if (begin.get() + 100 > chatLog.getNextIdx().get()) {

View File

@ -22,7 +22,6 @@
#include "src/chatlog/chatmessage.h"
#include "src/core/toxpk.h"
#include "src/model/ichatlog.h"
#include "src/widget/form/loadhistorydialog.h"
#include "src/widget/searchtypes.h"
#include <QMenu>
@ -127,7 +126,6 @@ private:
void retranslateUi();
void addSystemDateMessage(const QDate& date);
QDateTime getTime(const ChatLine::Ptr& chatLine) const;
void loadHistory(const QDateTime& time, const LoadHistoryDialog::LoadType type);
void renderItem(const ChatLogItem &item, bool hideName, bool colorizeNames, ChatMessage::Ptr &chatMessage);
void renderFile(QString displayName, ToxFile file, bool isSelf, QDateTime timestamp, ChatMessage::Ptr &chatMessage);

View File

@ -75,12 +75,14 @@ LoadHistoryDialog::LoadType LoadHistoryDialog::getLoadType()
return LoadType::to;
}
void LoadHistoryDialog::turnSearchMode()
void LoadHistoryDialog::setTitle(const QString& title)
{
setWindowTitle(tr("Select date dialog"));
ui->fromLabel->setText(tr("Select a date"));
ui->loadTypeComboBox->setVisible(false);
ui->infoLabel->setVisible(false);
setWindowTitle(title);
}
void LoadHistoryDialog::setInfoLabel(const QString& info)
{
ui->fromLabel->setText(info);
}
void LoadHistoryDialog::highlightDates(int year, int month)

View File

@ -44,7 +44,8 @@ public:
QDateTime getFromDate();
LoadType getLoadType();
void turnSearchMode();
void setTitle(const QString& title);
void setInfoLabel(const QString& info);
public slots:
void highlightDates(int year, int month);

View File

@ -41,7 +41,7 @@
</widget>
</item>
<item>
<widget class="QLabel" name="infoLabel">
<widget class="QLabel" name="label">
<property name="text">
<string>(about 100 messages are loaded)</string>
</property>

View File

@ -90,7 +90,7 @@ ParameterSearch SearchSettingsForm::getParameterSearch()
break;
}
ps.time = startTime;
ps.date = startDate;
ps.isUpdate = isUpdate;
isUpdate = false;
@ -105,7 +105,7 @@ void SearchSettingsForm::reloadTheme()
void SearchSettingsForm::updateStartDateLabel()
{
ui->startDateLabel->setText(startTime.toString(Settings::getInstance().getDateFormat()));
ui->startDateLabel->setText(startDate.toString(Settings::getInstance().getDateFormat()));
}
void SearchSettingsForm::setUpdate(const bool isUpdate)
@ -123,8 +123,8 @@ void SearchSettingsForm::onStartSearchSelected(const int index)
ui->choiceDateButton->setProperty("state", QStringLiteral("green"));
ui->choiceDateButton->setStyleSheet(Style::getStylesheet(QStringLiteral("chatForm/buttons.css")));
if (startTime.isNull()) {
startTime = QDateTime::currentDateTime();
if (startDate.isNull()) {
startDate = QDate::currentDate();
updateStartDateLabel();
}
@ -166,9 +166,10 @@ void SearchSettingsForm::onRegularClicked(const bool checked)
void SearchSettingsForm::onChoiceDate()
{
LoadHistoryDialog dlg;
dlg.turnSearchMode();
dlg.setTitle(tr("Select Date Dialog"));
dlg.setInfoLabel(tr("Select a date"));
if (dlg.exec()) {
startTime = dlg.getFromDate();
startDate = dlg.getFromDate().date();
updateStartDateLabel();
}

View File

@ -39,7 +39,7 @@ public:
private:
Ui::SearchSettingsForm *ui;
QDateTime startTime;
QDate startDate;
bool isUpdate{false};
void updateStartDateLabel();

View File

@ -47,13 +47,13 @@ enum class SearchDirection {
struct ParameterSearch {
FilterSearch filter{FilterSearch::None};
PeriodSearch period{PeriodSearch::None};
QDateTime time;
QDate date;
bool isUpdate{false};
bool operator ==(const ParameterSearch& other) {
return filter == other.filter &&
period == other.period &&
time == other.time;
date == other.date;
}
bool operator !=(const ParameterSearch& other) {